diff --git a/keepassxc-browser/background/event.js b/keepassxc-browser/background/event.js index 8bbd797..c730af6 100755 --- a/keepassxc-browser/background/event.js +++ b/keepassxc-browser/background/event.js @@ -256,8 +256,10 @@ kpxcEvent.onMultipleFieldsPopup = function(callback, tab) { browserAction.show(null, tab); }; -kpxcEvent.pageClearLogins = function(callback, tab) { - page.clearLogins(tab.id); +kpxcEvent.pageClearLogins = function(callback, tab, alreadyCalled) { + if (!alreadyCalled) { + page.clearLogins(tab.id); + } callback(); }; diff --git a/keepassxc-browser/keepassxc-browser.js b/keepassxc-browser/keepassxc-browser.js index ee57bdc..2e0e208 100755 --- a/keepassxc-browser/keepassxc-browser.js +++ b/keepassxc-browser/keepassxc-browser.js @@ -1,6 +1,7 @@ // contains already called method names var _called = {}; _called.retrieveCredentials = false; +_called.clearLogins = false; _called.manualFillRequested = 'none'; // Count of detected form fields on the page @@ -1213,7 +1214,8 @@ cip.initCredentialFields = function(forceCall) { } _called.initCredentialFields = true; - browser.runtime.sendMessage({ 'action': 'page_clear_logins' }).then(() => { + browser.runtime.sendMessage({ 'action': 'page_clear_logins', args: [_called.clearLogins] }).then(() => { + _called.clearLogins = true; const inputs = cipFields.getAllFields(); cipFields.prepareVisibleFieldsWithID('select'); cip.initPasswordGenerator(inputs); diff --git a/keepassxc-browser/popups/popup_login.js b/keepassxc-browser/popups/popup_login.js index b5f8225..eae62d3 100644 --- a/keepassxc-browser/popups/popup_login.js +++ b/keepassxc-browser/popups/popup_login.js @@ -1,6 +1,6 @@ $(function() { browser.runtime.getBackgroundPage().then((global) => { - browser.tabs.query({"active": true, "currentWindow": true}).then((tabs) => { + browser.tabs.query({'active': true, 'currentWindow': true}).then((tabs) => { if (tabs.length === 0) { return; // For example: only the background devtools or a popup are opened }