mirror of
https://codeberg.org/librewolf/source.git
synced 2025-01-03 03:10:07 -05:00
801 lines
39 KiB
Diff
801 lines
39 KiB
Diff
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
|
--- a/browser/components/preferences/jar.mn
|
|
+++ b/browser/components/preferences/jar.mn
|
|
@@ -11,6 +11,7 @@ browser.jar:
|
|
content/browser/preferences/home.js
|
|
content/browser/preferences/search.js
|
|
content/browser/preferences/privacy.js
|
|
+ content/browser/preferences/librewolf.js
|
|
content/browser/preferences/containers.js
|
|
content/browser/preferences/sync.js
|
|
content/browser/preferences/experimental.js
|
|
diff --git a/browser/components/preferences/librewolf.inc.xhtml b/browser/components/preferences/librewolf.inc.xhtml
|
|
new file mode 100644
|
|
--- /dev/null
|
|
+++ b/browser/components/preferences/librewolf.inc.xhtml
|
|
@@ -0,0 +1,254 @@
|
|
+# This Source Code Form is subject to the terms of the Mozilla Public
|
|
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
+
|
|
+<script src="chrome://browser/content/preferences/librewolf.js"/>
|
|
+
|
|
+<html:template id="template-paneLibrewolf">
|
|
+
|
|
+<hbox class="subcategory" hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h1 data-l10n-id="librewolf-header"/>
|
|
+</hbox>
|
|
+
|
|
+<groupbox hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h2 data-l10n-id="librewolf-general-heading"/>
|
|
+
|
|
+ <!-- TEMPLATE FOR A NEW PREFERENCE
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-LABEL-checkbox" data-l10n-id="librewolf-LABEL-checkbox" preference="PREF" flex="1" />
|
|
+ <html:label for="librewolf-LABEL-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-LABEL-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-LABEL-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-LABEL-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="PREF" label="PREF" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+ -->
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-extension-update-checkbox" data-l10n-id="librewolf-extension-update-checkbox" preference="extensions.update.autoUpdateDefault" flex="1" />
|
|
+ <html:label for="librewolf-extension-update-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-extension-update-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-extension-update-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-extension-update-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="extensions.update.autoUpdateDefault" label="extensions.update.autoUpdateDefault" />
|
|
+ <checkbox preference="extensions.update.enabled" label="extensions.update.enabled" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-sync-checkbox" data-l10n-id="librewolf-sync-checkbox" preference="identity.fxaccounts.enabled" flex="1" />
|
|
+ <html:label for="librewolf-sync-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-sync-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-sync-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-sync-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="identity.fxaccounts.enabled" label="identity.fxaccounts.enabled" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-autocopy-checkbox" data-l10n-id="librewolf-autocopy-checkbox" preference="clipboard.autocopy" flex="1" />
|
|
+ <html:label for="librewolf-autocopy-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-autocopy-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-autocopy-description" />
|
|
+ <checkbox preference="clipboard.autocopy" label="clipboard.autocopy" />
|
|
+ <checkbox preference="middlemouse.paste" label="middlemouse.paste" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-styling-checkbox" data-l10n-id="librewolf-styling-checkbox" preference="toolkit.legacyUserProfileCustomizations.stylesheets" flex="1" />
|
|
+ <html:label for="librewolf-styling-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-styling-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-styling-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-styling-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="toolkit.legacyUserProfileCustomizations.stylesheets" label="toolkit.legacyUserProfileCustomizations.stylesheets" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+</groupbox>
|
|
+
|
|
+<groupbox hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h2 data-l10n-id="librewolf-network-heading" />
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-ipv6-checkbox" data-l10n-id="librewolf-ipv6-checkbox" preference="network.dns.disableIPv6" flex="1" />
|
|
+ <html:label for="librewolf-ipv6-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-ipv6-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-ipv6-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-ipv6-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="network.dns.disableIPv6" label="network.dns.disableIPv6" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+</groupbox>
|
|
+
|
|
+<groupbox hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h2 data-l10n-id="librewolf-privacy-heading" />
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-xorigin-ref-checkbox" data-l10n-id="librewolf-xorigin-ref-checkbox" preference="network.http.referer.XOriginPolicy" flex="1" />
|
|
+ <html:label for="librewolf-xorigin-ref-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-xorigin-ref-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-xorigin-ref-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-xorigin-ref-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox disabled="true" preference="network.http.referer.XOriginPolicy" label="network.http.referer.XOriginPolicy" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+</groupbox>
|
|
+
|
|
+<groupbox hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h2 data-l10n-id="librewolf-broken-heading" />
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-rfp-checkbox" data-l10n-id="librewolf-rfp-checkbox" preference="privacy.resistFingerprinting" flex="1" />
|
|
+ <html:label for="librewolf-rfp-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-rfp-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-rfp-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-rfp-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="privacy.resistFingerprinting" label="privacy.resistFingerprinting" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <vbox class="indent">
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-letterboxing-checkbox" data-l10n-id="librewolf-letterboxing-checkbox" preference="privacy.resistFingerprinting.letterboxing" flex="1" />
|
|
+ <html:label for="librewolf-letterboxing-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-letterboxing-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-letterboxing-description" />
|
|
+ <checkbox preference="privacy.resistFingerprinting.letterboxing" label="privacy.resistFingerprinting.letterboxing" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-auto-decline-canvas-checkbox" data-l10n-id="librewolf-auto-decline-canvas-checkbox" preference="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" flex="1" />
|
|
+ <html:label for="librewolf-auto-decline-canvas-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-auto-decline-canvas-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-auto-decline-canvas-description" />
|
|
+ <html:div> <label data-l10n-id="librewolf-auto-decline-canvas-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" label="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-webgl-checkbox" data-l10n-id="librewolf-webgl-checkbox" preference="webgl.disabled" flex="1" />
|
|
+ <html:label for="librewolf-webgl-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-webgl-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-webgl-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-webgl-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="webgl.disabled" label="webgl.disabled" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+
|
|
+</groupbox>
|
|
+
|
|
+<groupbox hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h2 data-l10n-id="librewolf-security-heading" />
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-ocsp-checkbox" data-l10n-id="librewolf-ocsp-checkbox" preference="security.OCSP.require" flex="1" />
|
|
+ <html:label for="librewolf-ocsp-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-ocsp-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-ocsp-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-ocsp-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="security.OCSP.require" label="security.OCSP.require" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-goog-safe-checkbox" data-l10n-id="librewolf-goog-safe-checkbox" preference="browser.safebrowsing.malware.enabled" flex="1" />
|
|
+ <html:label for="librewolf-goog-safe-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-goog-safe-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-goog-safe-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-goog-safe-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="browser.safebrowsing.malware.enabled" label="browser.safebrowsing.malware.enabled" />
|
|
+ <checkbox preference="browser.safebrowsing.phishing.enabled" label="browser.safebrowsing.phishing.enabled" />
|
|
+ <checkbox preference="browser.safebrowsing.blockedURIs.enabled" label="browser.safebrowsing.blockedURIs.enabled" />
|
|
+ <checkbox preference="browser.safebrowsing.provider.google4.gethashURL" label="browser.safebrowsing.provider.google4.gethashURL" id="librewolf-goog-safe-hash4"/>
|
|
+ <checkbox preference="browser.safebrowsing.provider.google4.updateURL" label="browser.safebrowsing.provider.google4.updateURL" id="librewolf-goog-safe-up4"/>
|
|
+ <checkbox preference="browser.safebrowsing.provider.google.gethashURL" label="browser.safebrowsing.provider.google.gethashURL" id="librewolf-goog-safe-hash"/>
|
|
+ <checkbox preference="browser.safebrowsing.provider.google.updateURL" label="browser.safebrowsing.provider.google.updateURL" id="librewolf-goog-safe-up"/>
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+ <vbox class="indent">
|
|
+ <hbox>
|
|
+ <checkbox id="librewolf-goog-safe-download-checkbox" data-l10n-id="librewolf-goog-safe-download-checkbox" preference="browser.safebrowsing.downloads.enabled" flex="1" />
|
|
+ <html:label for="librewolf-goog-safe-download-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
|
|
+ </hbox>
|
|
+ <vbox class="librewolf-collapse indent">
|
|
+ <html:input type="checkbox" id="librewolf-goog-safe-download-collapse" />
|
|
+ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
|
|
+ <label data-l10n-id="librewolf-goog-safe-download-description" />
|
|
+ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-goog-safe-download-warning1" class="librewolf-warning" /> </html:div>
|
|
+ <checkbox preference="browser.safebrowsing.downloads.enabled" label="browser.safebrowsing.downloads.enabled" />
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+ </vbox>
|
|
+
|
|
+</groupbox>
|
|
+
|
|
+<hbox class="subcategory" hidden="true" data-category="paneLibrewolf">
|
|
+ <html:h1 data-l10n-id="librewolf-footer"/>
|
|
+</hbox>
|
|
+
|
|
+<groupbox data-category="paneLibrewolf" hidden="true">
|
|
+ <vbox align="start">
|
|
+ <hbox>
|
|
+ <button id="librewolf-config-link" is="highlightable-button" flex="1">
|
|
+ <image class="librewolf-button-icon" src="chrome://browser/skin/ion.svg" /> <!-- TODO not the typical way a picture is defined I think, and also we should copy the svg file in case they change it -->
|
|
+ <label data-l10n-id="librewolf-config-link"></label>
|
|
+ </button>
|
|
+ <button id="librewolf-open-profile" is="highlightable-button" flex="1">
|
|
+ <image class="librewolf-button-icon" src="chrome://browser/skin/open.svg" />
|
|
+ <label data-l10n-id="librewolf-open-profile"></label>
|
|
+ </button>
|
|
+ </hbox>
|
|
+ </vbox>
|
|
+</groupbox>
|
|
+
|
|
+</html:template>
|
|
diff --git a/browser/components/preferences/librewolf.js b/browser/components/preferences/librewolf.js
|
|
new file mode 100644
|
|
--- /dev/null
|
|
+++ b/browser/components/preferences/librewolf.js
|
|
@@ -0,0 +1,288 @@
|
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
+
|
|
+/* import-globals-from extensionControlled.js */
|
|
+/* import-globals-from preferences.js */
|
|
+
|
|
+var { AppConstants } = ChromeUtils.import( "resource://gre/modules/AppConstants.jsm");
|
|
+XPCOMUtils.defineLazyGetter(this, "L10n", () => {
|
|
+ return new Localization([
|
|
+ "branding/brand.ftl",
|
|
+ "browser/preferences/preferences.ftl",
|
|
+ "librewolf/preferences.ftl",
|
|
+ ]);
|
|
+});
|
|
+
|
|
+Preferences.addAll([
|
|
+ // IPv6
|
|
+ { id: "network.dns.disableIPv6", type: "bool" },
|
|
+ // ocsp hard-fail
|
|
+ { id: "security.OCSP.require", type: "bool" },
|
|
+ // ocsp hard-fail
|
|
+ { id: "identity.fxaccounts.enabled", type: "bool" },
|
|
+ // WebGL
|
|
+ { id: "webgl.disabled", type: "bool" },
|
|
+ // RFP
|
|
+ { id: "privacy.resistFingerprinting", type: "bool" },
|
|
+ // Automatically Update Extensions
|
|
+ { id: "extensions.update.enabled", type: "bool" },
|
|
+ { id: "extensions.update.autoUpdateDefault", type: "bool" },
|
|
+ // Clipboard autocopy/paste
|
|
+ { id: "clipboard.autocopy", type: "bool" },
|
|
+ { id: "middlemouse.paste", type: "bool" },
|
|
+ // XOrigin referrers
|
|
+ { id: "network.http.referer.XOriginPolicy", type: "int" },
|
|
+ // Harden
|
|
+ { id: "privacy.resistFingerprinting.letterboxing", type: "bool" },
|
|
+ // Google Safe Browsing
|
|
+ //{ id: "browser.safebrowsing.malware.enabled", type: "bool" }, // Already loaded
|
|
+ //{ id: "browser.safebrowsing.phishing.enabled", type: "bool" },
|
|
+ { id: "browser.safebrowsing.blockedURIs.enabled", type: "bool" },
|
|
+ { id: "browser.safebrowsing.provider.google4.gethashURL", type: "string" },
|
|
+ { id: "browser.safebrowsing.provider.google4.updateURL", type: "string" },
|
|
+ { id: "browser.safebrowsing.provider.google.gethashURL", type: "string" },
|
|
+ { id: "browser.safebrowsing.provider.google.updateURL", type: "string" },
|
|
+ /**** Prefs that require changing a lockPref ****/
|
|
+ // Google safe browsing check downloads
|
|
+ //{ id: "browser.safebrowsing.downloads.enabled", type: "bool" }, //Also already added
|
|
+ { id: "toolkit.legacyUserProfileCustomizations.stylesheets", type: "bool" },
|
|
+ // Canvas UI when blocked
|
|
+ {
|
|
+ id: "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts",
|
|
+ type: "bool",
|
|
+ },
|
|
+]);
|
|
+
|
|
+var gLibrewolfPane = {
|
|
+ _pane: null,
|
|
+
|
|
+ // called when the document is first parsed
|
|
+ init() {
|
|
+ this._pane = document.getElementById("paneLibrewolf");
|
|
+
|
|
+ // Set all event listeners on checkboxes
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-extension-update-checkbox",
|
|
+ ["extensions.update.autoUpdateDefault", "extensions.update.enabled"],
|
|
+ [true, true ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-ipv6-checkbox",
|
|
+ ["network.dns.disableIPv6"],
|
|
+ [false, ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-ocsp-checkbox",
|
|
+ ["security.OCSP.require"],
|
|
+ [true, ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-sync-checkbox",
|
|
+ ["identity.fxaccounts.enabled"],
|
|
+ [true, ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-autocopy-checkbox",
|
|
+ ["clipboard.autocopy", "middlemouse.paste"],
|
|
+ [true, true ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-styling-checkbox",
|
|
+ ["toolkit.legacyUserProfileCustomizations.stylesheets"],
|
|
+ [true, ],
|
|
+ );
|
|
+
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-webgl-checkbox",
|
|
+ ["webgl.disabled"],
|
|
+ [false ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-rfp-checkbox",
|
|
+ ["privacy.resistFingerprinting"],
|
|
+ [true ],
|
|
+ );
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-auto-decline-canvas-checkbox",
|
|
+ ["privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts"],
|
|
+ [true ],
|
|
+ );
|
|
+
|
|
+ setBoolSyncListeners(
|
|
+ "librewolf-letterboxing-checkbox",
|
|
+ ["privacy.resistFingerprinting.letterboxing"],
|
|
+ [true ],
|
|
+ );
|
|
+
|
|
+ setSyncListeners(
|
|
+ "librewolf-goog-safe-checkbox",
|
|
+ [
|
|
+ "browser.safebrowsing.malware.enabled",
|
|
+ "browser.safebrowsing.phishing.enabled",
|
|
+ "browser.safebrowsing.blockedURIs.enabled",
|
|
+ "browser.safebrowsing.provider.google4.gethashURL",
|
|
+ "browser.safebrowsing.provider.google4.updateURL",
|
|
+ "browser.safebrowsing.provider.google.gethashURL",
|
|
+ "browser.safebrowsing.provider.google.updateURL",
|
|
+ ],
|
|
+ [
|
|
+ true,
|
|
+ true,
|
|
+ true,
|
|
+ "https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST",
|
|
+ "https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST",
|
|
+ "https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2",
|
|
+ "https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_SAFEBROWSING_API_KEY%",
|
|
+ ],
|
|
+ [
|
|
+ false,
|
|
+ false,
|
|
+ false,
|
|
+ "",
|
|
+ "",
|
|
+ "",
|
|
+ "",
|
|
+ ]
|
|
+ );
|
|
+
|
|
+ setXOriginPolicySyncListeners(
|
|
+ "librewolf-xorigin-ref-checkbox",
|
|
+ "network.http.referer.XOriginPolicy",
|
|
+ [1, 2],
|
|
+ [0]
|
|
+ );
|
|
+
|
|
+ // Set event listener on open profile directory button
|
|
+ setEventListener("librewolf-open-profile", "command", openProfileDirectory);
|
|
+ // Set event listener on open about:config button
|
|
+ setEventListener("librewolf-config-link", "click", openAboutConfig);
|
|
+
|
|
+ // Notify observers that the UI is now ready
|
|
+ Services.obs.notifyObservers(window, "librewolf-pane-loaded");
|
|
+ },
|
|
+};
|
|
+
|
|
+function setXOriginPolicySyncListeners(checkboxid, pref, onVals, offVals) {
|
|
+ setSyncFromPrefListener(checkboxid, () => onVals.includes(getPref(pref)));
|
|
+ setSyncToPrefListener(checkboxid, () =>
|
|
+ writeGenericPrefs([pref], [2], [0], document.getElementById(checkboxid).checked)
|
|
+ );
|
|
+ Preferences.get(pref).on("change", () =>
|
|
+ makeMasterCheckboxesReactive(checkboxid, () =>
|
|
+ onVals.includes(getPref(pref))
|
|
+ )
|
|
+ );
|
|
+}
|
|
+
|
|
+function openProfileDirectory() {
|
|
+ // Get the profile directory.
|
|
+ let currProfD = Services.dirsvc.get("ProfD", Ci.nsIFile);
|
|
+ let profileDir = currProfD.path;
|
|
+
|
|
+ // Show the profile directory.
|
|
+ let nsLocalFile = Components.Constructor(
|
|
+ "@mozilla.org/file/local;1",
|
|
+ "nsIFile",
|
|
+ "initWithPath"
|
|
+ );
|
|
+ new nsLocalFile(profileDir).reveal();
|
|
+}
|
|
+
|
|
+function openAboutConfig() {
|
|
+ window.open("about:config", "_blank");
|
|
+}
|
|
+
|
|
+function setBoolSyncListeners(checkboxid, opts, vals) {
|
|
+ setSyncFromPrefListener(checkboxid, () => readGenericBoolPrefs(opts, vals));
|
|
+ setSyncToPrefListener(checkboxid, () => writeGenericBoolPrefs(opts, vals, document.getElementById(checkboxid).checked));
|
|
+ for (let i = 1; i < opts.length; i++) {
|
|
+ Preferences.get(opts[i]).on("change", () => makeMasterCheckboxesReactive(checkboxid, () => readGenericBoolPrefs(opts, vals)));
|
|
+ }
|
|
+}
|
|
+function setSyncListeners(checkboxid, opts, onVals, offVals) {
|
|
+ setSyncFromPrefListener(checkboxid, () => readGenericPrefs(opts, onVals, offVals));
|
|
+ setSyncToPrefListener(checkboxid, () => writeGenericPrefs(opts, onVals, offVals, document.getElementById(checkboxid).checked));
|
|
+ for (let i = 1; i < opts.length; i++) {
|
|
+ Preferences.get(opts[i]).on("change", () => makeMasterCheckboxesReactive(checkboxid, () => readGenericPrefs(opts, onVals, offVals)));
|
|
+ }
|
|
+}
|
|
+
|
|
+function makeMasterCheckboxesReactive(checkboxid, func) {
|
|
+ const shouldBeChecked = func();
|
|
+ document.getElementById(checkboxid).checked = shouldBeChecked;
|
|
+}
|
|
+
|
|
+// Wrapper function in case something more is required (as I suspected in the first iteration of this)
|
|
+function getPref(pref) {
|
|
+ const retval = Preferences.get(pref);
|
|
+/* if (retval === undefined) {
|
|
+ return defaultValue;
|
|
+ } */
|
|
+ return retval._value;
|
|
+}
|
|
+// Returns true if all the preferences in prefs are equal to onVals, false otherwise TODO may need a third array for their default values because mozilla is dumb, after testing though pretty sure this was misinformation being spread by comments in default FF code that has long since been fixed
|
|
+function readGenericBoolPrefs(prefs, onVals) {
|
|
+ for (let i = 0; i < prefs.length; i++) {
|
|
+ if (getPref(prefs[i]) != onVals[i]) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+}
|
|
+function writeGenericBoolPrefs(opts, vals, changeToOn) {
|
|
+ valsCopy = [...vals];
|
|
+ if (!changeToOn) {
|
|
+ for (let i = 0; i < vals.length; i++) {
|
|
+ valsCopy[i] = !vals[i];
|
|
+ }
|
|
+ }
|
|
+ // Start at 1 because returning sets the last one
|
|
+ for (let i = 1; i < vals.length; i++) {
|
|
+ Services.prefs.setBoolPref(opts[i], valsCopy[i]);
|
|
+ }
|
|
+ return valsCopy[0];
|
|
+}
|
|
+
|
|
+// Returns true if all the preferences in prefs are equal to onVals, false otherwise... currently the same as for Bool as offVals is ignored
|
|
+function readGenericPrefs(prefs, onVals, offVals) {
|
|
+ for (let i = 0; i < prefs.length; i ++) {
|
|
+ let temp = getPref(prefs[i]);
|
|
+ if (getPref(prefs[i]) != onVals[i]) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+}
|
|
+function writeGenericPrefs(opts, onVals, offVals, changeToOn) {
|
|
+ let writeArr = (changeToOn) ? onVals : offVals;
|
|
+ for (let i = 1; i < opts.length; i++) {
|
|
+ let type = typeof(writeArr[i]);
|
|
+ if (type == "number") {
|
|
+ Services.prefs.setIntPref(opts[i], writeArr[i]);
|
|
+ } else if (type == "boolean") {
|
|
+ Services.prefs.setBoolPref(opts[i], writeArr[i]);
|
|
+ } else if (type == "string") {
|
|
+ Services.prefs.setCharPref(opts[i], writeArr[i]);
|
|
+ } else {
|
|
+ console.log("BADNESS 10000");
|
|
+ }
|
|
+ }
|
|
+ return writeArr[0];
|
|
+}
|
|
+
|
|
+Preferences.get("identity.fxaccounts.enabled").on("change", () => {
|
|
+ confirmRestartPrompt(
|
|
+ Services.prefs.getBoolPref("identity.fxaccounts.enabled"), // Restart is required to *enable* / *disable* the pref
|
|
+ 1, // Default Button Index
|
|
+ true, // Cancel instead of Revert Button
|
|
+ false // No Restart Later button
|
|
+ ).then(buttonIndex => {
|
|
+ if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) {
|
|
+ Services.startup.quit(
|
|
+ Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart
|
|
+ );
|
|
+ return;
|
|
+ }
|
|
+ });
|
|
+});
|
|
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
|
--- a/browser/components/preferences/preferences.js
|
|
+++ b/browser/components/preferences/preferences.js
|
|
@@ -8,6 +8,7 @@
|
|
/* import-globals-from search.js */
|
|
/* import-globals-from containers.js */
|
|
/* import-globals-from privacy.js */
|
|
+/* import-globals-from librewolf.js */
|
|
/* import-globals-from sync.js */
|
|
/* import-globals-from experimental.js */
|
|
/* import-globals-from moreFromMozilla.js */
|
|
@@ -198,6 +199,7 @@ function init_all() {
|
|
register_module("paneHome", gHomePane);
|
|
register_module("paneSearch", gSearchPane);
|
|
register_module("panePrivacy", gPrivacyPane);
|
|
+ register_module("paneLibrewolf", gLibrewolfPane);
|
|
register_module("paneContainers", gContainersPane);
|
|
if (Services.prefs.getBoolPref("browser.preferences.experimental")) {
|
|
// Set hidden based on previous load's hidden value.
|
|
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
|
--- a/browser/components/preferences/preferences.xhtml
|
|
+++ b/browser/components/preferences/preferences.xhtml
|
|
@@ -13,6 +13,7 @@
|
|
<?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?>
|
|
<?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?>
|
|
<?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
|
|
+<?xml-stylesheet href="chrome://browser/skin/preferences/librewolf.css"?>
|
|
|
|
<!DOCTYPE html>
|
|
|
|
@@ -33,6 +34,7 @@
|
|
<link rel="localization" href="browser/branding/sync-brand.ftl"/>
|
|
<link rel="localization" href="browser/browser.ftl"/>
|
|
<link rel="localization" href="browser/preferences/preferences.ftl"/>
|
|
+ <link rel="localization" href="librewolf/preferences.ftl"/>
|
|
<link rel="localization" href="browser/preferences/moreFromMozilla.ftl"/>
|
|
<!-- Used by fontbuilder.js -->
|
|
<link rel="localization" href="browser/preferences/fonts.ftl"/>
|
|
@@ -131,6 +133,17 @@
|
|
<label class="category-name" flex="1" data-l10n-id="pane-privacy-title"></label>
|
|
</richlistitem>
|
|
|
|
+ <richlistitem id="category-librewolf"
|
|
+ class="category"
|
|
+ value="paneLibrewolf"
|
|
+ helpTopic="prefs-librewolf"
|
|
+ data-l10n-id="category-librewolf"
|
|
+ data-l10n-attrs="tooltiptext"
|
|
+ align="center">
|
|
+ <image class="category-icon"/>
|
|
+ <label class="category-name" flex="1" data-l10n-id="pane-librewolf-title"></label>
|
|
+ </richlistitem>
|
|
+
|
|
<richlistitem id="category-sync"
|
|
class="category"
|
|
hidden="true"
|
|
@@ -209,6 +222,7 @@
|
|
#include home.inc.xhtml
|
|
#include search.inc.xhtml
|
|
#include privacy.inc.xhtml
|
|
+#include librewolf.inc.xhtml
|
|
#include containers.inc.xhtml
|
|
#include sync.inc.xhtml
|
|
#include experimental.inc.xhtml
|
|
diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser/locales/en-US/browser/preferences/preferences.ftl
|
|
--- a/browser/locales/en-US/browser/preferences/preferences.ftl
|
|
+++ b/browser/locales/en-US/browser/preferences/preferences.ftl
|
|
@@ -1431,3 +1431,8 @@ httpsonly-radio-disabled =
|
|
desktop-folder-name = Desktop
|
|
downloads-folder-name = Downloads
|
|
choose-download-folder-title = Choose Download Folder:
|
|
+
|
|
+# Variables:
|
|
+# $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc...
|
|
+save-files-to-cloud-storage =
|
|
+ .label = Save files to { $service-name }
|
|
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
|
|
--- a/browser/themes/shared/jar.inc.mn
|
|
+++ b/browser/themes/shared/jar.inc.mn
|
|
@@ -108,6 +108,7 @@
|
|
skin/classic/browser/preferences/android-menu.svg (../shared/preferences/android-menu.svg)
|
|
skin/classic/browser/preferences/category-general.svg (../shared/preferences/category-general.svg)
|
|
skin/classic/browser/preferences/category-privacy-security.svg (../shared/preferences/category-privacy-security.svg)
|
|
+ skin/classic/browser/preferences/category-librewolf.svg (../shared/preferences/category-librewolf.svg)
|
|
skin/classic/browser/preferences/category-search.svg (../shared/preferences/category-search.svg)
|
|
skin/classic/browser/preferences/category-sync.svg (../shared/preferences/category-sync.svg)
|
|
skin/classic/browser/preferences/containers.css (../shared/preferences/containers.css)
|
|
@@ -127,6 +128,7 @@
|
|
skin/classic/browser/preferences/vpn-logo.svg (../shared/preferences/vpn-logo.svg)
|
|
skin/classic/browser/preferences/search.css (../shared/preferences/search.css)
|
|
skin/classic/browser/preferences/siteDataSettings.css (../shared/preferences/siteDataSettings.css)
|
|
+ skin/classic/browser/preferences/librewolf.css (../shared/preferences/librewolf.css)
|
|
skin/classic/browser/spotlight.css (../shared/spotlight.css)
|
|
skin/classic/browser/fxa/fxa-spinner.svg (../shared/fxa/fxa-spinner.svg)
|
|
skin/classic/browser/fxa/sync-illustration.svg (../shared/fxa/sync-illustration.svg)
|
|
diff --git a/browser/themes/shared/preferences/category-librewolf.svg b/browser/themes/shared/preferences/category-librewolf.svg
|
|
new file mode 100644
|
|
--- /dev/null
|
|
+++ b/browser/themes/shared/preferences/category-librewolf.svg
|
|
@@ -0,0 +1,96 @@
|
|
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
|
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity">
|
|
+ <path d="M15.5 9 15 9l0-4A5 5 0 0 0 5 5l0 4-.5 0A2.5 2.5 0 0 0 2 11.5l0 6A2.5 2.5 0 0 0 4.5 20l11 0a2.5 2.5 0 0 0 2.5-2.5l0-6A2.5 2.5 0 0 0 15.5 9zm-9-4c0-1.93 1.57-3.5 3.5-3.5 1.93 0 3.5 1.57 3.5 3.5l0 4-7 0 0-4zm10 12.7-.8.8-11.4 0-.8-.8 0-6.4.8-.8 11.4 0 .8.8 0 6.4z"/>
|
|
+</svg>
|
|
+-->
|
|
+
|
|
+<svg
|
|
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
+ xmlns:cc="http://creativecommons.org/ns#"
|
|
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
+ xmlns:svg="http://www.w3.org/2000/svg"
|
|
+ xmlns="http://www.w3.org/2000/svg"
|
|
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
+ width="67.733337mm"
|
|
+ height="67.733337mm"
|
|
+ viewBox="0 0 67.733337 67.733337"
|
|
+ version="1.1"
|
|
+ id="svg8"
|
|
+ inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
|
+ sodipodi:docname="LibreWolf.svg">
|
|
+ <defs
|
|
+ id="defs2" />
|
|
+ <sodipodi:namedview
|
|
+ id="base"
|
|
+ pagecolor="#ffffff"
|
|
+ bordercolor="#666666"
|
|
+ borderopacity="1.0"
|
|
+ inkscape:pageopacity="0.0"
|
|
+ inkscape:pageshadow="2"
|
|
+ inkscape:zoom="0.9899495"
|
|
+ inkscape:cx="-15.106575"
|
|
+ inkscape:cy="110.91343"
|
|
+ inkscape:document-units="mm"
|
|
+ inkscape:current-layer="layer1"
|
|
+ showgrid="false"
|
|
+ inkscape:window-width="1366"
|
|
+ inkscape:window-height="711"
|
|
+ inkscape:window-x="0"
|
|
+ inkscape:window-y="30"
|
|
+ inkscape:window-maximized="1"
|
|
+ inkscape:showpageshadow="false"
|
|
+ units="px"
|
|
+ fit-margin-top="0"
|
|
+ fit-margin-left="0"
|
|
+ fit-margin-right="0"
|
|
+ fit-margin-bottom="0" />
|
|
+ <metadata
|
|
+ id="metadata5">
|
|
+ <rdf:RDF>
|
|
+ <cc:Work
|
|
+ rdf:about="">
|
|
+ <dc:format>image/svg+xml</dc:format>
|
|
+ <dc:type
|
|
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
+ <dc:title />
|
|
+ </cc:Work>
|
|
+ </rdf:RDF>
|
|
+ </metadata>
|
|
+ <g
|
|
+ inkscape:label="Layer 1"
|
|
+ inkscape:groupmode="layer"
|
|
+ id="layer1"
|
|
+ transform="translate(-42.106554,-153.8982)">
|
|
+ <circle
|
|
+ style="fill:#00acff;fill-opacity:1;stroke:none;stroke-width:0.53545821;stroke-miterlimit:4;stroke-dasharray:none"
|
|
+ id="path875"
|
|
+ cx="75.973221"
|
|
+ cy="187.76486"
|
|
+ r="33.866669" />
|
|
+ <path
|
|
+ style="fill:#ffffff;stroke-width:0.13229167"
|
|
+ d="m 72.543594,214.67719 c -4.744093,-0.60875 -9.281981,-2.49991 -13.241953,-5.51858 -1.29157,-0.98455 -3.714943,-3.42363 -4.772834,-4.80375 -2.96241,-3.86476 -4.804479,-8.2508 -5.41218,-12.88661 -0.260164,-1.98464 -0.258719,-5.63349 0.0029,-7.44738 1.308078,-9.0677 7.01463,-16.8454 15.20915,-20.72918 3.811512,-1.80647 7.300266,-2.57114 11.730683,-2.57114 7.165903,0 13.5265,2.56749 18.680882,7.54063 2.483054,2.39575 4.148141,4.66808 5.573968,7.60677 1.92868,3.9751 2.70979,7.43276 2.70979,11.99526 0,6.00619 -1.7345,11.24407 -5.336957,16.11672 -1.070527,1.44797 -3.161747,3.64749 -4.549468,4.78507 -3.806562,3.12041 -8.658642,5.23183 -13.473174,5.86296 -1.663528,0.21807 -5.593318,0.24524 -7.120854,0.0492 z m 10.041381,-4.86547 c 2.898391,-0.91366 5.260364,-2.14146 7.540624,-3.91979 1.212494,-0.9456 3.308223,-3.06144 4.186916,-4.22711 2.38328,-3.16162 4.004927,-7.12196 4.482067,-10.94597 0.229814,-1.84182 0.09634,-5.73827 -0.2545,-7.4296 -0.9294,-4.48046 -2.931647,-8.26499 -6.086007,-11.50342 -1.966575,-2.01898 -3.756882,-3.34972 -6.060203,-4.50458 -3.495001,-1.75236 -6.489835,-2.46043 -10.423481,-2.46442 -4.164073,-0.004 -7.815325,0.95024 -11.429055,2.98766 -3.289753,1.85476 -6.690628,5.25952 -8.553227,8.563 -1.371786,2.43299 -2.37583,5.32029 -2.767595,7.95869 -0.256867,1.72991 -0.261933,5.16508 -0.01006,6.82145 0.504067,3.31489 1.761474,6.59111 3.584314,9.33904 0.995409,1.50058 0.964154,1.48393 1.842248,0.98153 1.570774,-0.8987 1.980396,-1.33342 2.836087,-3.00984 1.000624,-1.96036 2.070459,-3.6735 3.037094,-4.86332 1.115822,-1.37347 1.269228,-1.61793 1.828988,-2.9147 0.281654,-0.65249 0.786977,-1.61074 1.122938,-2.12943 l 0.61084,-0.94309 -0.79023,-0.77671 c -1.049647,-1.03168 -1.922751,-2.2016 -2.087012,-2.79651 -0.167761,-0.60758 0.03021,-0.9466 0.818744,-1.40207 0.797354,-0.46057 1.367585,-0.5929 3.498657,-0.81193 1.037629,-0.10665 2.164153,-0.30199 2.518962,-0.43681 0.353024,-0.13414 1.407825,-0.70824 2.344001,-1.27579 2.702947,-1.63863 2.931619,-1.72344 4.552111,-1.68831 1.368686,0.0297 1.371262,0.0291 2.182813,-0.46143 1.700674,-1.02802 4.14305,-2.88289 7.357044,-5.58733 0.61632,-0.5186 1.21002,-0.92569 1.31934,-0.90464 0.45462,0.0876 1.289567,2.13636 1.416407,3.47562 0.07693,0.81225 -0.08023,1.6155 -0.562014,2.87261 -0.13146,0.34301 -0.19208,0.67043 -0.134706,0.7276 0.13774,0.13726 0.610706,-0.4535 0.610706,-0.76279 0,-0.39435 0.261127,-0.43936 0.616327,-0.10623 0.258235,0.24218 0.480842,0.31151 1.000202,0.31151 0.567073,0 0.707447,0.0526 0.928773,0.3479 0.375574,0.50112 0.463647,1.86688 0.176201,2.73231 -0.279641,0.84191 -1.124801,1.81287 -1.891829,2.17341 -0.686334,0.32262 -2.075841,1.67928 -2.726081,2.66164 -0.248906,0.37604 -0.715586,1.15995 -1.037066,1.74204 -0.321487,0.58208 -0.86074,1.46154 -1.19834,1.95436 -0.664294,0.96972 -1.233147,2.3224 -1.782214,4.23798 -0.322553,1.1253 -0.34962,1.41826 -0.362953,3.92797 -0.01613,3.0317 -0.172894,3.77561 -0.9925,4.7091 -0.931805,1.06126 -1.861937,3.39186 -1.940127,4.8613 -0.04935,0.92751 -0.192246,1.83164 -0.395304,2.50122 -0.08942,0.29484 0.07752,0.2914 1.072102,-0.0221 z"
|
|
+ id="path847"
|
|
+ inkscape:connector-curvature="0" />
|
|
+ <path
|
|
+ sodipodi:type="star"
|
|
+ style="fill:#00acff;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
|
|
+ id="path814"
|
|
+ sodipodi:sides="4"
|
|
+ sodipodi:cx="18.854025"
|
|
+ sodipodi:cy="172.98837"
|
|
+ sodipodi:r1="1.6036172"
|
|
+ sodipodi:r2="1.1339285"
|
|
+ sodipodi:arg1="1.5707963"
|
|
+ sodipodi:arg2="2.3561945"
|
|
+ inkscape:flatsided="true"
|
|
+ inkscape:rounded="0"
|
|
+ inkscape:randomized="0"
|
|
+ d="m 18.854025,174.59199 -1.603617,-1.60362 1.603617,-1.60361 1.603617,1.60361 z"
|
|
+ transform="matrix(0.23203125,0.40188991,-0.99392962,0.57384553,246.21921,73.888081)" />
|
|
+ </g>
|
|
+</svg>
|
|
+
|
|
diff --git a/browser/themes/shared/preferences/librewolf.css b/browser/themes/shared/preferences/librewolf.css
|
|
new file mode 100644
|
|
--- /dev/null
|
|
+++ b/browser/themes/shared/preferences/librewolf.css
|
|
@@ -0,0 +1,23 @@
|
|
+.librewolf-collapse > input {
|
|
+ display: none;
|
|
+}
|
|
+.librewolf-collapse > input ~ .librewolf-collapsed {
|
|
+ display: none;
|
|
+ /* max-height: 0; */
|
|
+ transition: max-height 0.25s ease-in-out;
|
|
+}
|
|
+.librewolf-collapse > input:checked ~ .librewolf-collapsed {
|
|
+ display: block;
|
|
+ /* max-height: 20rem; */
|
|
+}
|
|
+.librewolf-warning {
|
|
+ display: inline;
|
|
+ font-size: 0.8em;
|
|
+}
|
|
+.librewolf-button-icon {
|
|
+ width: 16px;
|
|
+ height: 16px;
|
|
+ margin-right: 8px;
|
|
+ -moz-context-properties: fill, fill-opacity;
|
|
+ fill: currentColor;
|
|
+}
|
|
diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css
|
|
--- a/browser/themes/shared/preferences/preferences.css
|
|
+++ b/browser/themes/shared/preferences/preferences.css
|
|
@@ -211,6 +211,10 @@ checkbox {
|
|
list-style-image: url("chrome://browser/skin/preferences/category-privacy-security.svg");
|
|
}
|
|
|
|
+#category-librewolf > .category-icon {
|
|
+ list-style-image: url("chrome://browser/skin/preferences/category-librewolf.svg");
|
|
+}
|
|
+
|
|
#category-sync > .category-icon {
|
|
list-style-image: url("chrome://browser/skin/preferences/category-sync.svg");
|
|
}
|