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:
Diffstat (limited to 'keepassxc-browser')
-rwxr-xr-xkeepassxc-browser/background/event.js24
-rwxr-xr-xkeepassxc-browser/background/keepass.js6
-rw-r--r--keepassxc-browser/content/autocomplete.js2
-rwxr-xr-xkeepassxc-browser/content/keepassxc-browser.js69
-rwxr-xr-xkeepassxc-browser/manifest.json8
-rw-r--r--keepassxc-browser/options/options.js2
6 files changed, 58 insertions, 53 deletions
diff --git a/keepassxc-browser/background/event.js b/keepassxc-browser/background/event.js
index 708cb31..42b2727 100755
--- a/keepassxc-browser/background/event.js
+++ b/keepassxc-browser/background/event.js
@@ -113,9 +113,9 @@ kpxcEvent.onPopStack = function(tab) {
return Promise.resolve();
};
-kpxcEvent.onGetTabInformation = function(tab) {
+kpxcEvent.onGetTabInformation = async function(tab) {
const id = tab.id || page.currentTabId;
- return Promise.resolve(page.tabs[id]);
+ return page.tabs[id];
};
kpxcEvent.onGetConnectedDatabase = function() {
@@ -131,7 +131,7 @@ kpxcEvent.onGetKeePassXCVersions = async function(tab) {
return { 'current': keepass.currentKeePassXC, 'latest': keepass.latestKeePassXC.version };
}
- return Promise.resolve({ 'current': keepass.currentKeePassXC, 'latest': keepass.latestKeePassXC.version });
+ return { 'current': keepass.currentKeePassXC, 'latest': keepass.latestKeePassXC.version };
};
kpxcEvent.onCheckUpdateKeePassXC = async function() {
@@ -158,11 +158,7 @@ kpxcEvent.onLoginPopup = function(tab, logins) {
};
browserAction.stackUnshift(stackData, tab.id);
-
- if (logins.length > 0) {
- page.tabs[tab.id].loginList = logins[0];
- }
-
+ page.tabs[tab.id].loginList = logins;
browserAction.show(tab);
return Promise.resolve();
};
@@ -204,8 +200,8 @@ kpxcEvent.pageClearLogins = function(tab, alreadyCalled) {
return Promise.resolve();
};
-kpxcEvent.pageGetLoginId = function() {
- return Promise.resolve(page.loginId);
+kpxcEvent.pageGetLoginId = async function() {
+ return page.loginId;
};
kpxcEvent.pageSetLoginId = function(tab, loginId) {
@@ -218,8 +214,8 @@ kpxcEvent.pageClearSubmitted = function() {
return Promise.resolve();
}
-kpxcEvent.pageGetSubmitted = function() {
- return Promise.resolve(page.submittedCredentials);
+kpxcEvent.pageGetSubmitted = async function() {
+ return page.submittedCredentials;
};
kpxcEvent.pageSetSubmitted = function(tab, args = []) {
@@ -228,8 +224,8 @@ kpxcEvent.pageSetSubmitted = function(tab, args = []) {
return Promise.resolve();
};
-kpxcEvent.onUsernameFieldDetected = function(tab, args = []) {
- page.usernameFieldDetected = args[0];
+kpxcEvent.onUsernameFieldDetected = function(tab, detected) {
+ page.usernameFieldDetected = detected;
};
// All methods named in this object have to be declared BEFORE this!
diff --git a/keepassxc-browser/background/keepass.js b/keepassxc-browser/background/keepass.js
index 9e15da1..2d63558 100755
--- a/keepassxc-browser/background/keepass.js
+++ b/keepassxc-browser/background/keepass.js
@@ -851,7 +851,7 @@ keepass.updateLastUsed = function(hash) {
};
// Update the databaseHash from legacy hash
keepass.updateDatabaseHash = function(oldHash, newHash) {
- if (!oldHash || !newHash) {
+ if (!oldHash || !newHash || oldHash === newHash) {
return;
}
@@ -881,9 +881,11 @@ keepass.keePassXCUpdateAvailable = function() {
if (daysSinceLastCheck >= page.settings.checkUpdateKeePassXC) {
keepass.checkForNewKeePassXCVersion();
}
+
+ return keepass.compareVersion(keepass.currentKeePassXC, keepass.latestKeePassXC.version, false);
}
- return keepass.compareVersion(keepass.currentKeePassXC, keepass.latestKeePassXC.version, false);
+ return false;
};
keepass.checkForNewKeePassXCVersion = function() {
diff --git a/keepassxc-browser/content/autocomplete.js b/keepassxc-browser/content/autocomplete.js
index 86020ec..f7906fd 100644
--- a/keepassxc-browser/content/autocomplete.js
+++ b/keepassxc-browser/content/autocomplete.js
@@ -53,7 +53,7 @@ kpxcAutocomplete.showList = function(inputField) {
// Save index for combination.loginId
const index = Array.prototype.indexOf.call(e.currentTarget.parentElement.childNodes, e.currentTarget);
browser.runtime.sendMessage({
- action: 'page_set_login_id', args: [ index ]
+ action: 'page_set_login_id', args: index
});
inputField.value = this.getElementsByTagName('input')[0].value;
diff --git a/keepassxc-browser/content/keepassxc-browser.js b/keepassxc-browser/content/keepassxc-browser.js
index e45ec14..f2f71cd 100755
--- a/keepassxc-browser/content/keepassxc-browser.js
+++ b/keepassxc-browser/content/keepassxc-browser.js
@@ -306,7 +306,7 @@ kpxcFields.getAllFields = function() {
fields.length === 1 && fields[0].getLowerCaseAttribute('type') !== 'password') {
browser.runtime.sendMessage({
action: 'username_field_detected',
- args: [ true ]
+ args: true
});
}
@@ -877,6 +877,33 @@ kpxc.detectDatabaseChange = async function(response) {
}
};
+// Checks if the site has been ignored using Site Preferences
+kpxc.siteIgnored = function() {
+ kpxc.initializeSitePreferences();
+ if (kpxc.settings.sitePreferences) {
+ let currentLocation;
+ try {
+ currentLocation = window.top.location.href;
+ } catch (err) {
+ // Cross-domain security error inspecting window.top.location.href.
+ // This catches an error when an iframe is being accessed from another (sub)domain -> use the iframe URL instead.
+ currentLocation = window.self.location.href;
+ }
+
+ for (const site of kpxc.settings.sitePreferences) {
+ if (siteMatch(site.url, currentLocation) || site.url === currentLocation) {
+ if (site.ignore === IGNORE_FULL) {
+ return true;
+ }
+
+ _singleInputEnabledForPage = site.usernameOnly;
+ }
+ }
+ }
+
+ return false;
+};
+
kpxc.initCredentialFields = async function(forceCall) {
if (_called.initCredentialFields && !forceCall) {
return;
@@ -885,27 +912,13 @@ kpxc.initCredentialFields = async function(forceCall) {
await browser.runtime.sendMessage({
action: 'page_clear_logins',
- args: [ _called.clearLogins ]
+ args: _called.clearLogins
});
_called.clearLogins = true;
- // Check site preferences
- kpxc.initializeSitePreferences();
- if (kpxc.settings.sitePreferences) {
- for (const site of kpxc.settings.sitePreferences) {
- try {
- if (siteMatch(site.url, window.top.location.href) || site.url === window.top.location.href) {
- if (site.ignore === IGNORE_FULL) {
- return;
- }
-
- _singleInputEnabledForPage = site.usernameOnly;
- }
- } catch (err) {
- return;
- }
- }
+ if (kpxc.siteIgnored()) {
+ return;
}
const inputs = kpxcFields.getAllFields();
@@ -1025,7 +1038,7 @@ kpxc.prepareFieldsForCredentials = function(autoFillInForSingle) {
// Generate popup-list of usernames + descriptions
browser.runtime.sendMessage({
action: 'popup_login',
- args: [ [ `${kpxc.credentials[0].login} (${kpxc.credentials[0].name})` ] ]
+ args: [ `${kpxc.credentials[0].login} (${kpxc.credentials[0].name})` ]
});
} else if (kpxc.credentials.length > 1 || (kpxc.credentials.length > 0 && (!kpxc.settings.autoFillSingleEntry || !autoFillInForSingle))) {
kpxc.preparePageForMultipleCredentials(kpxc.credentials);
@@ -1063,7 +1076,7 @@ kpxc.preparePageForMultipleCredentials = function(credentials) {
// Generate popup-list of usernames + descriptions
browser.runtime.sendMessage({
action: 'popup_login',
- args: [ usernames ]
+ args: usernames
});
// Initialize autocomplete for username fields
@@ -1311,16 +1324,14 @@ kpxc.fillWithSpecificLogin = function(id) {
kpxc.setValueWithChange(kpxc.u, kpxc.credentials[id].login);
combination = kpxcFields.getCombination('username', kpxc.u);
browser.runtime.sendMessage({
- action: 'page_set_login_id',
- args: [ id ]
+ action: 'page_set_login_id', args: id
});
kpxc.u.focus();
}
if (kpxc.p) {
kpxc.setValueWithChange(kpxc.p, kpxc.credentials[id].password);
browser.runtime.sendMessage({
- action: 'page_set_login_id',
- args: [ id ]
+ action: 'page_set_login_id', args: id
});
combination = kpxcFields.getCombination('password', kpxc.p);
}
@@ -1356,7 +1367,7 @@ kpxc.fillIn = function(combination, onlyPassword, suppressWarnings) {
if (uField && (!onlyPassword || _singleInputEnabledForPage)) {
kpxc.setValueWithChange(uField, kpxc.credentials[0].login);
browser.runtime.sendMessage({
- action: 'page_set_login_id', args: [ 0 ]
+ action: 'page_set_login_id', args: 0
});
filledIn = true;
}
@@ -1365,7 +1376,7 @@ kpxc.fillIn = function(combination, onlyPassword, suppressWarnings) {
kpxc.setValueWithChange(pField, kpxc.credentials[0].password);
pField.setAttribute('unchanged', true);
browser.runtime.sendMessage({
- action: 'page_set_login_id', args: [ 0 ]
+ action: 'page_set_login_id', args: 0
});
filledIn = true;
}
@@ -1393,7 +1404,7 @@ kpxc.fillIn = function(combination, onlyPassword, suppressWarnings) {
if (uField && (!onlyPassword || _singleInputEnabledForPage)) {
kpxc.setValueWithChange(uField, kpxc.credentials[combination.loginId].login);
browser.runtime.sendMessage({
- action: 'page_set_login_id', args: [ combination.loginId ]
+ action: 'page_set_login_id', args: combination.loginId
});
filledIn = true;
}
@@ -1402,7 +1413,7 @@ kpxc.fillIn = function(combination, onlyPassword, suppressWarnings) {
kpxc.setValueWithChange(pField, kpxc.credentials[combination.loginId].password);
pField.setAttribute('unchanged', true);
browser.runtime.sendMessage({
- action: 'page_set_login_id', args: [ combination.loginId ]
+ action: 'page_set_login_id', args: combination.loginId
});
filledIn = true;
}
@@ -1724,7 +1735,7 @@ kpxc.addToSitePreferences = async function(sites) {
browser.runtime.sendMessage({
action: 'username_field_detected',
- args: [ false ]
+ args: false
});
};
diff --git a/keepassxc-browser/manifest.json b/keepassxc-browser/manifest.json
index cedf988..0225a14 100755
--- a/keepassxc-browser/manifest.json
+++ b/keepassxc-browser/manifest.json
@@ -1,8 +1,8 @@
{
"manifest_version": 2,
"name": "KeePassXC-Browser",
- "version": "1.5.2",
- "version_name": "1.5.2",
+ "version": "1.5.3",
+ "version_name": "1.5.3",
"description": "__MSG_extensionDescription__",
"author": "KeePassXC Team",
"icons": {
@@ -48,10 +48,6 @@
"matches": [
"<all_urls>"
],
- "exclude_matches": [
- "*://*/*.xml",
- "*://*/*.xsd"
- ],
"js": [
"browser-polyfill.min.js",
"global.js",
diff --git a/keepassxc-browser/options/options.js b/keepassxc-browser/options/options.js
index cd7f9f0..20aaf59 100644
--- a/keepassxc-browser/options/options.js
+++ b/keepassxc-browser/options/options.js
@@ -111,7 +111,7 @@ options.initGeneralSettings = function() {
$('#tab-general-settings input#defaultGroup').val(options.settings['defaultGroup']);
$('#tab-general-settings input[type=radio]').each(function() {
- if ($(this).val() === options.settings[$(this).attr('name')]) {
+ if ($(this).val() === String(options.settings[$(this).attr('name')])) {
$(this).attr('checked', options.settings[$(this).attr('name')]);
}
});