diff --git a/app/scripts/comp/extension/protocol-impl.js b/app/scripts/comp/extension/protocol-impl.js index 4e6ee5f2..532786c7 100644 --- a/app/scripts/comp/extension/protocol-impl.js +++ b/app/scripts/comp/extension/protocol-impl.js @@ -415,29 +415,32 @@ const ProtocolHandlers = { const client = getClient(request); const filter = new SelectEntryFilter({ url: payload.url }, appModel, files); + filter.subdomains = false; + const entries = filter.getEntries(); if (!entries.length) { throw makeError(Errors.noMatches); } - const topMessage = Locale.extensionSelectPasswordFor.replace( - '{}', - getHumanReadableExtensionName(client) - ); - const selectEntryView = new SelectEntryView({ - filter, - topMessage - }); + let entry; - focusKeeWeb(); + if (entries.length === 1 && client.permissions.askGet === 'multiple') { + entry = entries[0]; + } else { + filter.subdomains = true; + const extName = getHumanReadableExtensionName(client); + const topMessage = Locale.extensionSelectPasswordFor.replace('{}', extName); + const selectEntryView = new SelectEntryView({ filter, topMessage }); - const result = await selectEntryView.showAndGetResult(); - if (!result?.entry) { - throw makeError(Errors.userRejected); + focusKeeWeb(); + + const result = await selectEntryView.showAndGetResult(); + entry = result?.entry; + if (!entry) { + throw makeError(Errors.userRejected); + } } - const entry = result.entry; - client.stats.passwordsRead++; return encryptResponse(request, {