Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc-browser.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvarjolintu <sami.vanttinen@protonmail.com>2020-04-27 10:29:18 +0300
committervarjolintu <sami.vanttinen@protonmail.com>2020-12-16 17:39:17 +0300
commit05696e6692c792e6e670eead025d6c88e1a9bdec (patch)
tree74fbdb49504442e4a16300b8404639b6f5ab1e1c
parent9ea7a26677ce1208a8867b223dc7e2d32f32ad4c (diff)
Proxy reconnectproxy_reconnect_new
-rw-r--r--keepassxc-browser/background/init.js6
-rwxr-xr-xkeepassxc-browser/background/keepass.js26
2 files changed, 25 insertions, 7 deletions
diff --git a/keepassxc-browser/background/init.js b/keepassxc-browser/background/init.js
index 0e7840e..c5320ef 100644
--- a/keepassxc-browser/background/init.js
+++ b/keepassxc-browser/background/init.js
@@ -7,9 +7,9 @@
await page.initSitePreferences();
await page.initOpenedTabs();
await httpAuth.init();
- await keepass.reconnect(null, 5000); // 5 second timeout for the first connect
- await keepass.enableAutomaticReconnect();
- await keepass.updateDatabase();
+ keepass.connectToNative();
+ //await keepass.reconnect(null, 5000); // 5 second timeout for the first connect
+ //await keepass.enableAutomaticReconnect();
} catch (e) {
console.log('init.js failed');
}
diff --git a/keepassxc-browser/background/keepass.js b/keepassxc-browser/background/keepass.js
index a234e31..656e616 100755
--- a/keepassxc-browser/background/keepass.js
+++ b/keepassxc-browser/background/keepass.js
@@ -20,6 +20,7 @@ keepass.databaseHash = '';
keepass.previousDatabaseHash = '';
keepass.keyId = 'keepassxc-browser-cryptokey-name';
keepass.keyBody = 'keepassxc-browser-key';
+keepass.connectionTimeout = 5000; // Milliseconds
keepass.messageTimeout = 500; // Milliseconds
keepass.nonce = nacl.util.encodeBase64(nacl.randomBytes(keepass.keySize));
keepass.reconnectLoop = null;
@@ -1007,16 +1008,23 @@ keepass.connectToNative = function() {
};
keepass.onNativeMessage = function(response) {
- //console.log('Received message: ' + JSON.stringify(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.updateDatabase();
+ } else if (response.action === 'reconnected') {
+ setTimeout(function() {
+ keepass.reconnect(null, keepass.connectionTimeout);
+ }, 1000);
+ } else if (response.action === 'disconnected') {
+ if (keepass.isConnected) {
+ disconnect();
+ }
}
};
-function onDisconnected() {
- keepass.nativePort = null;
+function disconnect() {
keepass.isConnected = false;
keepass.isDatabaseClosed = true;
keepass.isKeePassXCAvailable = false;
@@ -1026,6 +1034,12 @@ function onDisconnected() {
page.clearCredentials(page.currentTabId, true);
keepass.updatePopup('cross');
keepass.updateDatabaseHashToContent();
+}
+
+function onDisconnected() {
+ console.log('onDisconnected');
+ keepass.nativePort = null;
+ disconnect();
console.log('Failed to connect: ' + (browser.runtime.lastError === null ? 'Unknown error' : browser.runtime.lastError.message));
}
@@ -1210,14 +1224,18 @@ keepass.disableAutomaticReconnect = function() {
};
keepass.reconnect = async function(tab, connectionTimeout) {
- keepass.connectToNative();
+ console.log('reconnect()');
+ keepass.isConnected = true;
keepass.generateNewKeyPair();
+
const keyChangeResult = await keepass.changePublicKeys(tab, true, connectionTimeout).catch((e) => {
+ console.log('Error changing keys');
return false;
});
// Change public keys timeout
if (!keyChangeResult) {
+ console.log('Key change timeout');
return false;
}