From b1b5e3642e186b5547a6c8304a5c3a021c40f417 Mon Sep 17 00:00:00 2001 From: varjolintu Date: Mon, 11 Sep 2017 11:33:45 +0300 Subject: [PATCH] Fixed saving Dates with local storage and Chrome/Chromium --- keepassxc-browser/background/event.js | 4 ++-- keepassxc-browser/background/init.js | 6 +++--- keepassxc-browser/background/keepass.js | 16 ++++++++-------- keepassxc-browser/background/page.js | 2 +- keepassxc-browser/keepassxc-browser.js | 8 ++++++++ keepassxc-browser/options/options.js | 2 +- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/keepassxc-browser/background/event.js b/keepassxc-browser/background/event.js index e053d30..5342edc 100644 --- a/keepassxc-browser/background/event.js +++ b/keepassxc-browser/background/event.js @@ -110,14 +110,14 @@ event.onLoadSettings = function(callback, tab) { event.onLoadKeyRing = function(callback, tab) { browser.storage.local.get({'keyRing': {}}).then(function(item) { - keepass.keyRing = item.keyRing; + keepass.keyRing = JSON.parse(item.keyRing); if (keepass.isAssociated() && !keepass.keyRing[keepass.associated.hash]) { keepass.associated = { "value": false, "hash": null }; } - callback(item.keyRing); + callback(JSON.parse(item.keyRing)); }, (err) => { console.log('error loading keyRing: ' + err); }); diff --git a/keepassxc-browser/background/init.js b/keepassxc-browser/background/init.js index f9754ef..204dbfd 100644 --- a/keepassxc-browser/background/init.js +++ b/keepassxc-browser/background/init.js @@ -11,7 +11,7 @@ keepass.migrateKeyRing().then(() => { page.initOpenedTabs(); // set initial tab-ID - browser.tabs.query({"active": true, "currentWindow": true}).then(function(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 page.currentTabId = tabs[0].id; @@ -126,7 +126,7 @@ for (const item of contextMenuItems) { // Listen for keyboard shortcuts specified by user browser.commands.onCommand.addListener((command) => { if (command === 'fill-username-password') { - browser.tabs.query({ active: true, currentWindow: true }, (tabs) => { + browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => { if (tabs.length) { browser.tabs.sendMessage(tabs[0].id, { action: 'fill_user_pass' }); } @@ -134,7 +134,7 @@ browser.commands.onCommand.addListener((command) => { } if (command === 'fill-password') { - browser.tabs.query({ active: true, currentWindow: true }, (tabs) => { + browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => { if (tabs.length) { browser.tabs.sendMessage(tabs[0].id, { action: 'fill_pass_only' }); } diff --git a/keepassxc-browser/background/keepass.js b/keepassxc-browser/background/keepass.js index 506f15b..ebb6e39 100644 --- a/keepassxc-browser/background/keepass.js +++ b/keepassxc-browser/background/keepass.js @@ -68,8 +68,8 @@ browser.storage.local.get({ 'latestKeePassXC': {'version': 0, 'versionParsed': 0, 'lastChecked': null}, 'keyRing': {}}) .then((item) => { - keepass.latestKeePassHttp = item.latestKeePassHttp; - keepass.keyRing = item.keyRing; + keepass.latestKeePassXC = item.latestKeePassXC; + keepass.keyRing = JSON.parse(item.keyRing); }); keepass.addCredentials = function(callback, tab, username, password, url) { @@ -562,17 +562,17 @@ keepass.isAssociated = function() { keepass.migrateKeyRing = () => { return new Promise((resolve, reject) => { browser.storage.local.get('keyRing').then((item) => { - var keyring = item.keyRing; + let keyring = item.keyRing; if ('keyRing' in localStorage) { if (!keyring) { keyring = JSON.parse(localStorage['keyRing']); - browser.storage.local.set({'keyRing': keyring}); + browser.storage.local.set({'keyRing': JSON.stringify(keyring)}); } delete localStorage['keyRing']; } if (keepass.keyId in localStorage && keepass.keyBody in localStorage) { if (!keyring) { - var hash = keepass.getDatabaseHash(null); + const hash = keepass.getDatabaseHash(null); keepass.saveKey(hash, localStorage[keepass.keyId], localStorage[keepass.keyBody]); } delete localStorage[keepass.keyId]; @@ -598,19 +598,19 @@ keepass.saveKey = function(hash, id, key) { keepass.keyRing[hash].key = key; keepass.keyRing[hash].hash = hash; } - browser.storage.local.set({'keyRing': keepass.keyRing}); + browser.storage.local.set({'keyRing': JSON.stringify(keepass.keyRing)}); } keepass.updateLastUsed = function(hash) { if ((hash in keepass.keyRing)) { keepass.keyRing[hash].lastUsed = new Date(); - browser.storage.local.set({'keyRing': keepass.keyRing}); + browser.storage.local.set({'keyRing': JSON.stringify(keepass.keyRing)}); } } keepass.deleteKey = function(hash) { delete keepass.keyRing[hash]; - browser.storage.local.set({'keyRing': keepass.keyRing}); + browser.storage.local.set({'keyRing': JSON.stringify(keepass.keyRing)}); } keepass.setcurrentKeePassXCVersion = function(version) { diff --git a/keepassxc-browser/background/page.js b/keepassxc-browser/background/page.js index abdf32e..ee3a201 100644 --- a/keepassxc-browser/background/page.js +++ b/keepassxc-browser/background/page.js @@ -114,7 +114,7 @@ page.createTabEntry = function(tabId) { page.removePageInformationFromNotExistingTabs = function() { let rand = Math.floor(Math.random()*1001); if (rand === 28) { - browser.tabs.query({}, (tabs) => { + browser.tabs.query({}).then(function(tabs) { let $tabIds = {}; const $infoIds = Object.keys(page.tabs); diff --git a/keepassxc-browser/keepassxc-browser.js b/keepassxc-browser/keepassxc-browser.js index ccd1107..e00ca3e 100644 --- a/keepassxc-browser/keepassxc-browser.js +++ b/keepassxc-browser/keepassxc-browser.js @@ -1701,10 +1701,18 @@ cipEvents.triggerActivatedTab = function() { // Detect div's that include forms and are visible $(function() { const divDetect = setInterval(function() { + /*browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => { + const fields = cipFields.getAllFields(); + if (fields.length > 0) { + cip.initCredentialFields(true); + clearInterval(divDetect); + } + });*/ const fields = cipFields.getAllFields(); if (fields.length > 0) { cip.initCredentialFields(true); clearInterval(divDetect); } + console.log("Check.."); }, 1000); }); diff --git a/keepassxc-browser/options/options.js b/keepassxc-browser/options/options.js index 1414ff7..b5c678a 100644 --- a/keepassxc-browser/options/options.js +++ b/keepassxc-browser/options/options.js @@ -26,7 +26,7 @@ options.saveSettings = function() { }; options.saveKeyRing = function() { - browser.storage.local.set({'keyRing': options.keyRing}); + browser.storage.local.set({'keyRing': JSON.stringify(options.keyRing)}); browser.runtime.sendMessage({ action: 'load_keyring' });