diff --git a/CHANGELOG b/CHANGELOG index 2e66924..d517fe6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +0.3.5 (??-??-2017) +========================= +- Removed database locked/unlocked status polling and replaced it with message handling from KeePassXC signals + 0.3.4 (14-10-2017) ========================= - Added support for Lock Database button diff --git a/keepassxc-browser/background/browserAction.js b/keepassxc-browser/background/browserAction.js index 12dd782..3a67a12 100644 --- a/keepassxc-browser/background/browserAction.js +++ b/keepassxc-browser/background/browserAction.js @@ -3,8 +3,6 @@ var browserAction = {}; const BLINK_TIMEOUT_DEFAULT = 7500; const BLINK_TIMEOUT_REDIRECT_THRESHOLD_TIME_DEFAULT = -1; const BLINK_TIMEOUT_REDIRECT_COUNT_DEFAULT = 1; -const MAXIMUM_POLL_COUNT = 8; // _interval (250 ms) * 8 = 2 sec -let databasePollCount = 0; browserAction.show = function(callback, tab) { let data = {}; @@ -36,21 +34,6 @@ browserAction.update = function(interval) { let data = page.tabs[page.currentTabId].stack[page.tabs[page.currentTabId].stack.length - 1]; - // Poll the database if it's open or closed - if (databasePollCount >= MAXIMUM_POLL_COUNT) { - if (keepass.isKeePassXCAvailable) { - keepass.testAssociation((response) => { - keepass.isConfigured((configured) => { - data.iconType = configured ? 'normal' : 'cross'; - browserAction.show(null, {'id': page.currentTabId}); - }); - }, null); - } - databasePollCount = 0; - } else { - databasePollCount += 1; - } - if (typeof data.visibleForMilliSeconds !== 'undefined') { if (data.visibleForMilliSeconds <= 0) { browserAction.stackPop(page.currentTabId); @@ -279,4 +262,4 @@ browserAction.generateIconName = function(iconType, icon) { name += '_19x19.png'; return name; -}; \ No newline at end of file +}; diff --git a/keepassxc-browser/background/keepass.js b/keepassxc-browser/background/keepass.js index 917a589..1605099 100644 --- a/keepassxc-browser/background/keepass.js +++ b/keepassxc-browser/background/keepass.js @@ -30,7 +30,9 @@ const kpActions = { TEST_ASSOCIATE: 'test-associate', GET_DATABASE_HASH: 'get-databasehash', CHANGE_PUBLIC_KEYS: 'change-public-keys', - LOCK_DATABASE: 'lock-database' + LOCK_DATABASE: 'lock-database', + DATABASE_LOCKED: 'database-locked', + DATABASE_UNLOCKED: 'database-unlocked' }; const kpErrors = { @@ -742,6 +744,17 @@ keepass.connectToNative = function() { keepass.onNativeMessage = function(response) { //console.log('Received message: ' + JSON.stringify(response)); + + // Handle database lock/unlock status + if (response.action === kpActions.DATABASE_LOCKED || response.action === kpActions.DATABASE_UNLOCKED) { + keepass.testAssociation((response) => { + keepass.isConfigured((configured) => { + let data = page.tabs[page.currentTabId].stack[page.tabs[page.currentTabId].stack.length - 1]; + data.iconType = configured ? 'normal' : 'cross'; + browserAction.show(null, {'id': page.currentTabId}); + }); + }, null); + } }; function onDisconnected() { diff --git a/keepassxc-browser/manifest.json b/keepassxc-browser/manifest.json index 944d50f..c90921c 100644 --- a/keepassxc-browser/manifest.json +++ b/keepassxc-browser/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "keepassxc-browser", - "version": "0.3.4", + "version": "0.3.5", "description": "KeePassXC integration for modern web browsers", "author": "Sami Vänttinen", "icons": {