diff --git a/browser/base/content/appmenu-viewcache.inc.xhtml b/browser/base/content/appmenu-viewcache.inc.xhtml
index ec44a3b1a354..e469b754d93d 100644
--- a/browser/base/content/appmenu-viewcache.inc.xhtml
+++ b/browser/base/content/appmenu-viewcache.inc.xhtml
@@ -139,6 +139,9 @@
key="key_preferencesCmdMac"
#endif
/>
+
#endif
#endif
+
diff --git a/browser/base/content/browser-menubar.js b/browser/base/content/browser-menubar.js
index 61ae54a0884c..6d4c315427bc 100644
--- a/browser/base/content/browser-menubar.js
+++ b/browser/base/content/browser-menubar.js
@@ -16,6 +16,9 @@ document.addEventListener(
case "menu_preferences":
openPreferences(undefined);
break;
+ case "menu_icecat_preferences":
+ openPreferences("privacy-icecatPreferences");
+ break;
// == view-menu ==
case "menu_pageStyleNoStyle":
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
index 689205034d9d..a80bbcfe2926 100644
--- a/browser/components/customizableui/content/panelUI.js
+++ b/browser/components/customizableui/content/panelUI.js
@@ -379,6 +379,9 @@ const PanelUI = {
case "appMenu-settings-button":
openPreferences();
break;
+ case "appMenu-icecatsettings-button":
+ openPreferences("privacy-icecatPreferences");
+ break;
case "appMenu-more-button2":
this.showMoreToolsPanel(target);
break;
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index 28e325c938de..fb7e669e07f6 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -691,6 +691,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
this.readEnableOCSP());
setSyncToPrefListener("enableOCSP", () => this.writeEnableOCSP());
+ setSyncFromPrefListener("disableJavaScript", () => this.readDisableJavaScript());
+ setSyncToPrefListener("disableJavaScript", () => this.writeDisableJavaScript());
+
+ setSyncFromPrefListener("disableCustomFonts", () => this.readDisableCustomFonts());
+ setSyncToPrefListener("disableCustomFonts", () => this.writeDisableCustomFonts());
+
+ setSyncFromPrefListener("detectCaptivePortal", () => this.readDetectCaptive());
+ setSyncToPrefListener("detectCaptivePortal", () => this.writeDetectCaptive());
+
+ setSyncFromPrefListener("detectNetworkConnectivity", () => this.readDetectConnectivity());
+ setSyncToPrefListener("detectNetworkConnectivity", () => this.writeDetectConnectivity());
+
+ setSyncFromPrefListener("geolocation", () => this.readGeolocation());
+ setSyncToPrefListener("geolocation", () => this.writeGeolocation());
+
+ setSyncFromPrefListener("webgl", () => this.readWebGL());
+ setSyncToPrefListener("webgl", () => this.writeWebGL());
+
if (AlertsServiceDND) {
let notificationsDoNotDisturbBox = document.getElementById(
"notificationsDoNotDisturbBox"
@@ -1259,6 +1287,62 @@ var gPrivacyPane = {
SiteDataManager.updateSites();
},
+ // ICECAT PREFERENCES
+
+ readDisableJavaScript() {
+ let pref = Preferences.get("javascript.enabled");
+ return !pref.value;
+ },
+ writeDisableJavaScript() {
+ let checkbox = document.getElementById("disableJavaScript");
+ return !checkbox.checked;
+ },
+
+ readDisableCustomFonts() {
+ let pref = Preferences.get("browser.display.use_document_fonts");
+ return pref.value == 0;
+ },
+ writeDisableCustomFonts() {
+ let checkbox = document.getElementById("disableCustomFonts");
+ return checkbox.checked ? 0 : 1;
+ },
+
+ readDetectCaptive() {
+ let pref = Preferences.get("network.captive-portal-service.enabled");
+ return pref.value;
+ },
+ writeDetectCaptive() {
+ let checkbox = document.getElementById("detectCaptivePortal");
+ return checkbox.checked;
+ },
+
+ readDetectConnectivity() {
+ let pref = Preferences.get("network.connectivity-service.enabled");
+ return pref.value;
+ },
+ writeDetectConnectivity() {
+ let checkbox = document.getElementById("detectNetworkConnectivity");
+ return checkbox.checked;
+ },
+
+ readGeolocation() {
+ let pref = Preferences.get("browser.search.geoip.url");
+ return pref.value !== "";
+ },
+ writeGeolocation() {
+ let checkbox = document.getElementById("geolocation");
+ return checkbox.checked ? "https://location.services.mozilla.com/v1/country?key=%MOZILLA_API_KEY%" : "";
+ },
+
+ readWebGL() {
+ let pref = Preferences.get("webgl.disabled");
+ return !pref.value;
+ },
+ writeWebGL() {
+ let checkbox = document.getElementById("webgl");
+ return !checkbox.checked;
+ },
+
// CONTENT BLOCKING
/**