Replaced database unlock/lock polling

This commit is contained in:
varjolintu 2017-10-17 16:19:33 +03:00
parent 484863691c
commit 7d7926c9dc
4 changed files with 20 additions and 20 deletions

View file

@ -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

View file

@ -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;
};
};

View file

@ -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() {

View file

@ -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": {