mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
Merge branch 'develop'
This commit is contained in:
commit
a0ecbc0c53
8 changed files with 61 additions and 11 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
0.2.9 (2017-??-??)
|
0.2.9 (2017-08-27)
|
||||||
=========================
|
=========================
|
||||||
- Code cleaning, global functions
|
- Code cleaning, global functions moved to global.js
|
||||||
|
- New popup state and button when database is closed or locked
|
||||||
|
- Fixed HTTP auth login with Chrome/Chromium/Vivaldi
|
||||||
|
|
||||||
0.2.8 (2017-08-08)
|
0.2.8 (2017-08-08)
|
||||||
=========================
|
=========================
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ var browserAction = {};
|
||||||
const BLINK_TIMEOUT_DEFAULT = 7500;
|
const BLINK_TIMEOUT_DEFAULT = 7500;
|
||||||
const BLINK_TIMEOUT_REDIRECT_THRESHOLD_TIME_DEFAULT = -1;
|
const BLINK_TIMEOUT_REDIRECT_THRESHOLD_TIME_DEFAULT = -1;
|
||||||
const BLINK_TIMEOUT_REDIRECT_COUNT_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) {
|
browserAction.show = function(callback, tab) {
|
||||||
let data = {};
|
let data = {};
|
||||||
|
|
@ -34,6 +36,21 @@ browserAction.update = function(interval) {
|
||||||
|
|
||||||
let data = page.tabs[page.currentTabId].stack[page.tabs[page.currentTabId].stack.length - 1];
|
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 (typeof data.visibleForMilliSeconds !== 'undefined') {
|
||||||
if (data.visibleForMilliSeconds <= 0) {
|
if (data.visibleForMilliSeconds <= 0) {
|
||||||
browserAction.stackPop(page.currentTabId);
|
browserAction.stackPop(page.currentTabId);
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,12 @@ var httpAuth = httpAuth || {};
|
||||||
|
|
||||||
httpAuth.pendingCallbacks = [];
|
httpAuth.pendingCallbacks = [];
|
||||||
httpAuth.requestId = '';
|
httpAuth.requestId = '';
|
||||||
httpAuth.callback = null;
|
|
||||||
httpAuth.tabId = 0;
|
httpAuth.tabId = 0;
|
||||||
httpAuth.url = null;
|
httpAuth.url = null;
|
||||||
httpAuth.isProxy = false;
|
httpAuth.isProxy = false;
|
||||||
httpAuth.proxyUrl = null;
|
httpAuth.proxyUrl = null;
|
||||||
|
httpAuth.resolve = null;
|
||||||
|
httpAuth.reject = null;
|
||||||
|
|
||||||
httpAuth.handleRequest = function (details, callback) {
|
httpAuth.handleRequest = function (details, callback) {
|
||||||
if (httpAuth.requestId == details.requestId || !page.tabs[details.tabId]) {
|
if (httpAuth.requestId == details.requestId || !page.tabs[details.tabId]) {
|
||||||
|
|
@ -62,4 +62,4 @@ httpAuth.loginOrShowCredentials = function(logins) {
|
||||||
else {
|
else {
|
||||||
httpAuth.callback({});
|
httpAuth.callback({});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,13 +8,12 @@ keepass.changePublicKeys(null, (pkRes) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set initial tab-ID
|
// Set initial tab-ID
|
||||||
//browser.tabs.query({'active': true, 'windowId': browser.windows.WINDOW_ID_CURRENT}, (tabs) => {
|
|
||||||
browser.tabs.query({"active": true, "currentWindow": true}, (tabs) => {
|
browser.tabs.query({"active": true, "currentWindow": true}, (tabs) => {
|
||||||
//browser.tabs.query({"active": true, "currentWindow": true}).then((tabs) => {
|
|
||||||
if (tabs.length === 0)
|
if (tabs.length === 0)
|
||||||
return; // For example: only the background devtools or a popup are opened
|
return; // For example: only the background devtools or a popup are opened
|
||||||
page.currentTabId = tabs[0].id;
|
page.currentTabId = tabs[0].id;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Milliseconds for intervall (e.g. to update browserAction)
|
// Milliseconds for intervall (e.g. to update browserAction)
|
||||||
let _interval = 250;
|
let _interval = 250;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -336,6 +336,10 @@ keepass.associate = function(callback, tab) {
|
||||||
}
|
}
|
||||||
|
|
||||||
keepass.testAssociation = function (callback, tab, triggerUnlock) {
|
keepass.testAssociation = function (callback, tab, triggerUnlock) {
|
||||||
|
if (tab && page.tabs[tab.id]) {
|
||||||
|
page.tabs[tab.id].errorMessage = null;
|
||||||
|
}
|
||||||
|
|
||||||
keepass.getDatabaseHash((dbHash) => {
|
keepass.getDatabaseHash((dbHash) => {
|
||||||
if (!dbHash) {
|
if (!dbHash) {
|
||||||
callback(false);
|
callback(false);
|
||||||
|
|
@ -519,6 +523,7 @@ keepass.changePublicKeys = function(tab, callback) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
keepass.isKeePassXCAvailable = true;
|
||||||
console.log('Server public key: ' + keepass.b64e(keepass.serverPublicKey));
|
console.log('Server public key: ' + keepass.b64e(keepass.serverPublicKey));
|
||||||
}
|
}
|
||||||
callback(true);
|
callback(true);
|
||||||
|
|
@ -663,6 +668,8 @@ function onDisconnected() {
|
||||||
keepass.isConnected = false;
|
keepass.isConnected = false;
|
||||||
keepass.isDatabaseClosed = true;
|
keepass.isDatabaseClosed = true;
|
||||||
keepass.isKeePassXCAvailable = false;
|
keepass.isKeePassXCAvailable = false;
|
||||||
|
keepass.associated.value = false;
|
||||||
|
keepass.associated.hash = null;
|
||||||
console.log('Failed to connect: ' + (browser.runtime.lastError === null ? 'Unknown error' : browser.runtime.lastError.message));
|
console.log('Failed to connect: ' + (browser.runtime.lastError === null ? 'Unknown error' : browser.runtime.lastError.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,8 @@
|
||||||
"tabs",
|
"tabs",
|
||||||
"webRequest",
|
"webRequest",
|
||||||
"webRequestBlocking",
|
"webRequestBlocking",
|
||||||
|
"https://*/*",
|
||||||
|
"http://*/*",
|
||||||
"https://api.github.com/"
|
"https://api.github.com/"
|
||||||
],
|
],
|
||||||
"applications": {
|
"applications": {
|
||||||
|
|
|
||||||
|
|
@ -79,5 +79,17 @@
|
||||||
<button id="reload-status-button" class="btn btn-primary">Reload</button>
|
<button id="reload-status-button" class="btn btn-primary">Reload</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="database-not-opened" style="display: none">
|
||||||
|
<p>
|
||||||
|
keepassxc-browser has encountered an error:
|
||||||
|
</p>
|
||||||
|
<p style="margin-left: 1em">
|
||||||
|
<code id="database-error-message"></code>
|
||||||
|
</p>
|
||||||
|
<div style="text-align: right">
|
||||||
|
<button id="reopen-database-button" class="btn btn-primary">Reopen database</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -6,18 +6,22 @@ function status_response(r) {
|
||||||
$('#configured-and-associated').hide();
|
$('#configured-and-associated').hide();
|
||||||
$('#configured-not-associated').hide();
|
$('#configured-not-associated').hide();
|
||||||
|
|
||||||
if(!r.keePassXCAvailable || r.databaseClosed) {
|
if (!r.keePassXCAvailable) {
|
||||||
$('#error-message').html(r.error);
|
$('#error-message').html(r.error);
|
||||||
$('#error-encountered').show();
|
$('#error-encountered').show();
|
||||||
}
|
}
|
||||||
else if(!r.configured) {
|
else if (r.keePassXCAvailable && r.databaseClosed) {
|
||||||
|
$('#database-error-message').html(r.error);
|
||||||
|
$('#database-not-opened').show();
|
||||||
|
}
|
||||||
|
else if (!r.configured) {
|
||||||
$('#not-configured').show();
|
$('#not-configured').show();
|
||||||
}
|
}
|
||||||
else if(r.encryptionKeyUnrecognized) {
|
else if (r.encryptionKeyUnrecognized) {
|
||||||
$('#need-reconfigure').show();
|
$('#need-reconfigure').show();
|
||||||
$('#need-reconfigure-message').html(r.error);
|
$('#need-reconfigure-message').html(r.error);
|
||||||
}
|
}
|
||||||
else if(!r.associated) {
|
else if (!r.associated) {
|
||||||
$('#need-reconfigure').show();
|
$('#need-reconfigure').show();
|
||||||
$('#need-reconfigure-message').html(r.error);
|
$('#need-reconfigure-message').html(r.error);
|
||||||
}
|
}
|
||||||
|
|
@ -52,6 +56,13 @@ $(function() {
|
||||||
}, status_response);
|
}, status_response);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#reopen-database-button').click(function() {
|
||||||
|
browser.runtime.sendMessage({
|
||||||
|
action: 'get_status'
|
||||||
|
}, status_response);
|
||||||
|
close();
|
||||||
|
});
|
||||||
|
|
||||||
$('#redetect-fields-button').click(function() {
|
$('#redetect-fields-button').click(function() {
|
||||||
browser.tabs.query({"active": true, "currentWindow": true}, (tabs) => {
|
browser.tabs.query({"active": true, "currentWindow": true}, (tabs) => {
|
||||||
if (tabs.length === 0)
|
if (tabs.length === 0)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue