From bb5c4806b4cadc99979b6a6f99c89a59fb4d3ecc Mon Sep 17 00:00:00 2001 From: varjolintu Date: Mon, 31 Jul 2017 14:15:08 +0300 Subject: [PATCH] More error message related fixes --- CHANGELOG | 6 +++++- keepassxc-browser/background/browserAction.js | 4 +++- keepassxc-browser/background/event.js | 3 ++- keepassxc-browser/background/init.js | 8 +++----- keepassxc-browser/background/keepass.js | 15 ++++++++++++--- keepassxc-browser/keepassxc-browser.js | 1 - keepassxc-browser/options/options.html | 5 +++-- keepassxc-browser/options/options.js | 8 ++++++++ keepassxc-browser/popups/popup.html | 1 + keepassxc-browser/popups/popup_httpauth.html | 1 + keepassxc-browser/popups/popup_login.html | 1 + .../popups/popup_multiple-fields.html | 1 + keepassxc-browser/popups/popup_remember.html | 1 + 13 files changed, 41 insertions(+), 14 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6b8b184..ff72e14 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,11 @@ -0.2.7 (2017-??-??) +0.2.7 (2017-07-31) ========================= - Some Firefox related changes (credits to projectgus) - Fixed Skip button function when choosing own credential fields +- Adjusted some callbacks +- Fixed showing an error message on the same tab when KeePassXC is instantly closed +- Added null checking for onDisconnected() +- Any Chrome related stuff is now disabled on options pages when using Firefox 0.2.6 (2017-07-23) ========================= diff --git a/keepassxc-browser/background/browserAction.js b/keepassxc-browser/background/browserAction.js index 310f14f..48a9951 100644 --- a/keepassxc-browser/background/browserAction.js +++ b/keepassxc-browser/background/browserAction.js @@ -249,7 +249,9 @@ function getValueOrDefault(settings, key, defaultVal, min) { val = defaultVal; } return val; - } catch(e) { return defaultVal; } + } catch(e) { + return defaultVal; + } } browserAction.generateIconName = function(iconType, icon) { diff --git a/keepassxc-browser/background/event.js b/keepassxc-browser/background/event.js index e10a89a..8dcddcf 100644 --- a/keepassxc-browser/background/event.js +++ b/keepassxc-browser/background/event.js @@ -90,6 +90,7 @@ event.showStatus = function(configured, tab, callback) { } browserAction.showDefault(null, tab); + const errorMessage = page.tabs[tab.id].errorMessage; callback({ identifier: keyId, configured: configured, @@ -97,7 +98,7 @@ event.showStatus = function(configured, tab, callback) { keePassXCAvailable: keepass.isKeePassXCAvailable, encryptionKeyUnrecognized: keepass.isEncryptionKeyUnrecognized, associated: keepass.isAssociated(), - error: page.tabs[tab.id].errorMessage + error: errorMessage ? errorMessage : null }); } diff --git a/keepassxc-browser/background/init.js b/keepassxc-browser/background/init.js index d9f3cfc..c50f71e 100644 --- a/keepassxc-browser/background/init.js +++ b/keepassxc-browser/background/init.js @@ -82,11 +82,9 @@ browser.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { }); // Retrieve Credentials and try auto-login for HTTPAuth requests -if (browser.webRequest.onAuthRequired) { - browser.webRequest.onAuthRequired.addListener(httpAuth.handleRequest, - { urls: [''] }, ['asyncBlocking'] - ); -} +browser.webRequest.onAuthRequired.addListener(httpAuth.handleRequest, + { urls: [''] }, ['asyncBlocking'] +); browser.runtime.onMessage.addListener(event.onMessage); diff --git a/keepassxc-browser/background/keepass.js b/keepassxc-browser/background/keepass.js index 2d11a80..d72b43d 100644 --- a/keepassxc-browser/background/keepass.js +++ b/keepassxc-browser/background/keepass.js @@ -45,6 +45,7 @@ const kpErrors = { KEY_CHANGE_FAILED: 9, ENCRYPTION_KEY_UNRECOGNIZED: 10, NO_SAVED_DATABASES_FOUND: 11, + errorMessages : { 0: { msg: 'Unknown error' }, 1: { msg: 'Database not opened' }, @@ -58,6 +59,10 @@ const kpErrors = { 9: { msg: 'Key change was not successful.' }, 10: { msg: 'Encryption key is not recognized' }, 11: { msg: 'No saved databases found.' } + }, + + getError(errorCode) { + return this.errorMessages[errorCode].msg; } }; @@ -139,6 +144,7 @@ keepass.retrieveCredentials = function (callback, tab, url, submiturl, forceCall page.tabs[tab.id].errorMessage = null; if (!keepass.isConnected) { + callback([]); return; } @@ -199,7 +205,7 @@ keepass.retrieveCredentials = function (callback, tab, url, submiturl, forceCall // Redirects the callback to a listener (handleReply()) keepass.callbackOnId = function (ev, id, callback) { - let listener = ( (port, id) => { + let listener = ((port, id) => { let handler = (msg) => { if (msg && msg.action === id) { ev.removeListener(handler); @@ -275,11 +281,13 @@ keepass.generatePassword = function (callback, tab, forceCallback) { keepass.associate = function(callback, tab) { if (keepass.isAssociated()) { + callback([]); return; } keepass.getDatabaseHash((res) => { if (keepass.isDatabaseClosed || !keepass.isKeePassXCAvailable) { + callback([]); return; } @@ -487,6 +495,7 @@ keepass.getDatabaseHash = function (callback, tab, triggerUnlock) { keepass.changePublicKeys = function(tab, callback) { if (!keepass.isConnected) { + callback([]); return; } @@ -652,11 +661,11 @@ keepass.onNativeMessage = function (response) { } function onDisconnected() { - console.log('Failed to connect: ' + browser.runtime.lastError.message); keepass.nativePort = null; keepass.isConnected = false; keepass.isDatabaseClosed = true; keepass.isKeePassXCAvailable = false; + console.log('Failed to connect: ' + (browser.runtime.lastError === null ? 'Unknown error' : browser.runtime.lastError.message)); } keepass.nativeConnect = function() { @@ -714,7 +723,7 @@ keepass.verifyResponse = function(response, nonce, id) { keepass.handleError = function(tab, errorCode, errorMessage = '') { if (errorMessage.length === 0) { - errorMessage = kpErrors.errorMessages[errorCode].msg; + errorMessage = kpErrors.getError(errorCode); } console.log('Error ' + errorCode + ': ' + errorMessage); if (tab && page.tabs[tab.id]) { diff --git a/keepassxc-browser/keepassxc-browser.js b/keepassxc-browser/keepassxc-browser.js index 279913e..6555a60 100644 --- a/keepassxc-browser/keepassxc-browser.js +++ b/keepassxc-browser/keepassxc-browser.js @@ -79,7 +79,6 @@ function _fs(fieldId) { } - var cipAutocomplete = {}; // objects of username + description for autocomplete diff --git a/keepassxc-browser/options/options.html b/keepassxc-browser/options/options.html index af22cca..d0e9d93 100644 --- a/keepassxc-browser/options/options.html +++ b/keepassxc-browser/options/options.html @@ -2,7 +2,7 @@ Settings | keepassxc-browser - + @@ -29,7 +29,8 @@

If you just want to insert username + password into the fields where your focus is, press Ctrl + Shift + U.
- If you only want to insert the password, just press Ctrl + Shift + P. You can customize these shortcuts on chrome://extensions/configureCommands page + If you only want to insert the password, just press Ctrl + Shift + P. + You can customize these shortcuts on chrome://extensions/configureCommands page

diff --git a/keepassxc-browser/options/options.js b/keepassxc-browser/options/options.js index 25286df..64cb05b 100644 --- a/keepassxc-browser/options/options.js +++ b/keepassxc-browser/options/options.js @@ -1,3 +1,8 @@ +var isFirefox = false; +if (typeof browser !== 'undefined') { + isFirefox = true; +} + window.browser = (function () { return window.msBrowser || window.browser || window.chrome; })(); if (jQuery) { @@ -257,4 +262,7 @@ options.initSpecifiedCredentialFields = function() { options.initAbout = function() { $('#tab-about em.versionCIP').text(browser.runtime.getManifest().version); + if (isFirefox) { + $('#chrome-only').remove(); + } } diff --git a/keepassxc-browser/popups/popup.html b/keepassxc-browser/popups/popup.html index 76576db..c9af685 100644 --- a/keepassxc-browser/popups/popup.html +++ b/keepassxc-browser/popups/popup.html @@ -1,6 +1,7 @@ KeePassXC - Popup + diff --git a/keepassxc-browser/popups/popup_httpauth.html b/keepassxc-browser/popups/popup_httpauth.html index ff62344..afe2006 100644 --- a/keepassxc-browser/popups/popup_httpauth.html +++ b/keepassxc-browser/popups/popup_httpauth.html @@ -1,6 +1,7 @@ keepassxc-browser - Popup + diff --git a/keepassxc-browser/popups/popup_login.html b/keepassxc-browser/popups/popup_login.html index 4f02afe..5882ce9 100644 --- a/keepassxc-browser/popups/popup_login.html +++ b/keepassxc-browser/popups/popup_login.html @@ -1,6 +1,7 @@ KeePassXC - Popup + diff --git a/keepassxc-browser/popups/popup_multiple-fields.html b/keepassxc-browser/popups/popup_multiple-fields.html index f185875..2b6339c 100644 --- a/keepassxc-browser/popups/popup_multiple-fields.html +++ b/keepassxc-browser/popups/popup_multiple-fields.html @@ -1,6 +1,7 @@ keepassxc-browser - Popup + diff --git a/keepassxc-browser/popups/popup_remember.html b/keepassxc-browser/popups/popup_remember.html index 689f3ec..6f58a39 100644 --- a/keepassxc-browser/popups/popup_remember.html +++ b/keepassxc-browser/popups/popup_remember.html @@ -1,6 +1,7 @@ keepassxc-browser - Popup +