diff --git a/.eslintrc b/.eslintrc
index ccad657..7c17ba3 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -175,6 +175,7 @@
"sendMessage": "readonly",
"showNotification": "readonly",
"siteMatch": "readonly",
+ "SitePreferences": "readonly",
"slashNeededForUrl": "readonly",
"SORT_BY_GROUP_AND_TITLE": "readonly",
"SORT_BY_GROUP_AND_USERNAME": "readonly",
diff --git a/keepassxc-browser/_locales/en/messages.json b/keepassxc-browser/_locales/en/messages.json
index af2b34b..7b55fe0 100644
--- a/keepassxc-browser/_locales/en/messages.json
+++ b/keepassxc-browser/_locales/en/messages.json
@@ -678,6 +678,10 @@
"message": "Site Preferences",
"description": "Site Preferences page header."
},
+ "optionsSitePreferencesSettings": {
+ "message": "Settings",
+ "description": "Site Preferences settings button text."
+ },
"optionsMenuAbout": {
"message": "About",
"description": "About page header."
diff --git a/keepassxc-browser/common/global.js b/keepassxc-browser/common/global.js
index 7b70890..86edb80 100755
--- a/keepassxc-browser/common/global.js
+++ b/keepassxc-browser/common/global.js
@@ -61,6 +61,17 @@ const ManualFill = {
BOTH: 2
};
+const SitePreferences = {
+ ALLOW_IFRAMES: 'allowIframes',
+ IMPROVED_FIELD_DETECTION: 'improvedFieldDetection',
+ USERNAME_ONLY: 'usernameOnly',
+};
+
+// Returns a string with 'px' for CSS styles
+const Pixels = function(value) {
+ return String(value) + 'px';
+};
+
const compareVersion = function(minimum, current, canBeEqual = true) {
if (!minimum || !current || minimum?.indexOf('.') === -1 || current?.indexOf('.') === -1) {
return false;
diff --git a/keepassxc-browser/content/keepassxc-browser.js b/keepassxc-browser/content/keepassxc-browser.js
index 6953c8e..3c528ec 100755
--- a/keepassxc-browser/content/keepassxc-browser.js
+++ b/keepassxc-browser/content/keepassxc-browser.js
@@ -62,10 +62,10 @@ kpxc.addToSitePreferences = async function(optionName, addWildcard = false) {
await sendMessage('save_settings', kpxc.settings);
- if (optionName === 'allowIframes') {
+ if (optionName === SitePreferences.ALLOW_IFRAMES) {
await sendMessage('page_set_allow_iframes', [ true, site ]);
await sendMessage('iframe_detected', false);
- } else if (optionName === 'usernameOnly') {
+ } else if (optionName === SitePreferences.USERNAME_ONLY) {
await sendMessage('username_field_detected', false);
}
};
@@ -952,9 +952,9 @@ browser.runtime.onMessage.addListener(async function(req, sender) {
if (req.action === 'activated_tab') {
kpxc.triggerActivatedTab();
} else if (req.action === 'add_allow_iframes_option') {
- kpxc.addToSitePreferences('allowIframes');
+ kpxc.addToSitePreferences(SitePreferences.ALLOW_IFRAMES);
} else if (req.action === 'add_username_only_option') {
- kpxc.addToSitePreferences('usernameOnly', true);
+ kpxc.addToSitePreferences(SitePreferences.USERNAME_ONLY, true);
} else if (req.action === 'check_database_hash' && 'hash' in req) {
kpxc.detectDatabaseChange(req);
} else if (req.action === 'choose_credential_fields') {
diff --git a/keepassxc-browser/content/ui.js b/keepassxc-browser/content/ui.js
index 165e78c..50d6962 100644
--- a/keepassxc-browser/content/ui.js
+++ b/keepassxc-browser/content/ui.js
@@ -32,11 +32,6 @@ const $ = function(elem) {
return document.querySelector(elem);
};
-// Returns a string with 'px' for CSS styles
-const Pixels = function(value) {
- return String(value) + 'px';
-};
-
// Basic icon class
class Icon {
constructor(field, databaseState = DatabaseState.DISCONNECTED, segmented = false) {
diff --git a/keepassxc-browser/css/colors.css b/keepassxc-browser/css/colors.css
index d045b22..1fb7a50 100644
--- a/keepassxc-browser/css/colors.css
+++ b/keepassxc-browser/css/colors.css
@@ -4,6 +4,7 @@
--kpxc-autocomplete-menu-border: 1px solid #ddd;
--kpxc-background-color: #fff;
--kpxc-box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
+ --kpxc-box-shadow-strong: 0 20px 25px -5px rgb(0 0 0 / 0.8), 0 8px 10px -6px rgb(0 0 0 / 0.8);
--kpxc-card-background-color: #fff;
--kpxc-card-border-color: rgba(0, 0, 0, .125);
--kpxc-card-header-color: #fafafa;
@@ -29,7 +30,6 @@
}
@media (prefers-color-scheme: dark) {
-
:root,
:host {
--kpxc-autocomplete-footer-color: #2b2a2a;
@@ -114,4 +114,3 @@
--kpxc-lighter-text-color: rgba(0, 0, 0, 0.8);
--kpxc-light-text-color: rgba(0, 0, 0, 0.5);
}
-}
diff --git a/keepassxc-browser/options/options.css b/keepassxc-browser/options/options.css
index 01dcf63..e7827d3 100644
--- a/keepassxc-browser/options/options.css
+++ b/keepassxc-browser/options/options.css
@@ -105,12 +105,6 @@ tbody {
color: var(--kpxc-text-color);
}
-.table-striped > tbody > tr:nth-of-type(odd) input[type="checkbox"] {
- background-color: var(--kpxc-card-background-color) !important;
- border-color: var(--kpxc-input-main-border-color) !important;
- color: var(--kpxc-text-color) !important;
-}
-
.table-striped > tbody > tr:nth-of-type(odd) .form-check-input:checked {
background-color: var(--kpxc-checkbox-background-color) !important;
}
@@ -136,14 +130,14 @@ table tbody tr.empty:not(:nth-last-child(2)) {
display: none;
}
-#tab-site-preferences td:nth-of-type(2),
-#tab-site-preferences td:nth-of-type(2) select {
+#tab-site-preferences td:nth-of-type(3),
+#tab-site-preferences td:nth-of-type(3) select {
width: 200px;
}
+#tab-site-preferences td:nth-of-type(2),
#tab-site-preferences td:nth-of-type(3),
#tab-site-preferences td:nth-of-type(4),
-#tab-site-preferences td:nth-of-type(5),
table td:last-of-type {
width: 1px;
}
@@ -233,6 +227,26 @@ table td:last-of-type {
color: var(--kpxc-text-color);
}
+.non-clickable {
+ pointer-events: none;
+}
+
+.settings-dropdown {
+ box-shadow: var(--kpxc-box-shadow-strong);
+ overflow: hidden;
+ position: absolute;
+}
+
+.settings-dropdown-body {
+ background-color: var(--bs-table-bg);
+}
+
+.dropdown-divider {
+ border-top: 1px solid var(--kpxc-table-odd-color);
+ height: 0.5rem;
+ margin-top: 0.3rem;
+}
+
.site-preferences-input {
border: 0;
border-bottom-right-radius: 4px !important;
diff --git a/keepassxc-browser/options/options.html b/keepassxc-browser/options/options.html
index eb2a3de..0ef3fc9 100644
--- a/keepassxc-browser/options/options.html
+++ b/keepassxc-browser/options/options.html
@@ -260,7 +260,7 @@
-
+
@@ -761,16 +761,14 @@
|
+ |
|
- |
- |
- |
|
- |
+ |
|
@@ -790,17 +788,19 @@
|
-
- |