From 36063e5fe349f186a9e2f187cb03b98c982095ad Mon Sep 17 00:00:00 2001 From: varjolintu Date: Sun, 28 May 2017 15:28:47 +0300 Subject: [PATCH] Added a feature to relaunch KeePassXC if it has been exited. --- CHANGELOG | 4 ++++ chromeKeePassXC/background/event.js | 34 ++++++++++++++++++++++++++- chromeKeePassXC/background/keepass.js | 5 +--- chromeKeePassXC/manifest.json | 2 +- chromeKeePassXC/popups/popup.js | 2 +- 5 files changed, 40 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 67c5a94..79220ff 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +0.1.8 (2017-05-28) +========================= +- Enable relaunching and reconnecting to KeePassXC + 0.1.7 (2017-05-28) ========================= - Removed debug logging messages diff --git a/chromeKeePassXC/background/event.js b/chromeKeePassXC/background/event.js index 373f24f..3cf623d 100644 --- a/chromeKeePassXC/background/event.js +++ b/chromeKeePassXC/background/event.js @@ -141,6 +141,37 @@ event.onGetStatus = function(callback, tab) { }, tab); } +event.onReconnect = function(callback, tab) { + keepass.connectToNative(); + keepass.generateNewKeyPair(); + keepass.changePublicKeys(null, function(pkRes) { + keepass.getDatabaseHash(function(gdRes) { + if (gdRes) { + keepass.testAssociation(function(response) { + keepass.isConfigured(function(configured) { + var keyId = null; + if (configured) { + keyId = keepass.keyRing[keepass.databaseHash].id; + } + + browserAction.showDefault(null, tab); + console.log(page.tabs[tab.id].errorMessage); + callback({ + identifier: keyId, + configured: configured, + databaseClosed: keepass.isDatabaseClosed, + keePassXCAvailable: keepass.isKeePassXCAvailable, + encryptionKeyUnrecognized: keepass.isEncryptionKeyUnrecognized, + associated: keepass.isAssociated(), + error: page.tabs[tab.id].errorMessage + }); + }); + }, tab); + } + }, null); + }); +} + event.onPopStack = function(callback, tab) { browserAction.stackPop(tab.id); browserAction.show(null, tab); @@ -250,5 +281,6 @@ event.messageHandlers = { 'stack_add': browserAction.stackAdd, 'update_available_keepassxc': event.onUpdateAvailableKeePassXC, 'generate_password': keepass.generatePassword, - 'copy_password': keepass.copyPassword + 'copy_password': keepass.copyPassword, + "reconnect": event.onReconnect }; \ No newline at end of file diff --git a/chromeKeePassXC/background/keepass.js b/chromeKeePassXC/background/keepass.js index cf90521..5465230 100644 --- a/chromeKeePassXC/background/keepass.js +++ b/chromeKeePassXC/background/keepass.js @@ -490,7 +490,7 @@ keepass.getDatabaseHash = function (callback, tab, triggerUnlock) { } keepass.changePublicKeys = function(tab, callback) { - if (!keepass.isConnected || keepass.serverPublicKey) { + if (!keepass.isConnected) { return; } @@ -529,9 +529,6 @@ keepass.changePublicKeys = function(tab, callback) { } keepass.generateNewKeyPair = function() { - if (keepass.keyPair.publicKey !== null && keepass.keyPair.secretKey !== null) - return; - keepass.keyPair = nacl.box.keyPair(); //console.log(keepass.b64e(keepass.keyPair.publicKey) + " " + keepass.b64e(keepass.keyPair.secretKey)); } diff --git a/chromeKeePassXC/manifest.json b/chromeKeePassXC/manifest.json index b15187e..5d5b568 100644 --- a/chromeKeePassXC/manifest.json +++ b/chromeKeePassXC/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "chromeKeePassXC", - "version": "0.1.7", + "version": "0.1.8", "description": "KeePassXC integration for modern web browsers", "author": "Sami Vänttinen", "icons": { diff --git a/chromeKeePassXC/popups/popup.js b/chromeKeePassXC/popups/popup.js index 91eea2f..0422901 100644 --- a/chromeKeePassXC/popups/popup.js +++ b/chromeKeePassXC/popups/popup.js @@ -54,7 +54,7 @@ $(function() { $("#reload-status-button").click(function() { browser.runtime.sendMessage({ - action: "get_status" + action: "reconnect" }, status_response); });