diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index 5c20e7a79f4e..7c0093b65da1 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -259,7 +259,11 @@ ; All the pref files must be part of base to prevent migration bugs @RESPATH@/browser/@PREF_DIR@/firefox.js @RESPATH@/browser/@PREF_DIR@/firefox-branding.js -@RESPATH@/browser/@PREF_DIR@/000-waterfox.js +@RESPATH@/browser/@PREF_DIR@/00-general.js +@RESPATH@/browser/@PREF_DIR@/01-theme.js +@RESPATH@/browser/@PREF_DIR@/02-privacy.js +@RESPATH@/browser/@PREF_DIR@/03-features.js +@RESPATH@/browser/@PREF_DIR@/04-sidebar.js @RESPATH@/greprefs.js @RESPATH@/defaults/autoconfig/prefcalls.js @RESPATH@/browser/defaults/permissions diff --git a/waterfox/browser/app/profile/00-general.js b/waterfox/browser/app/profile/00-general.js new file mode 100644 index 000000000000..2a83578d0d6f --- /dev/null +++ b/waterfox/browser/app/profile/00-general.js @@ -0,0 +1,128 @@ +#filter dumbComments emptyLines substitution + +// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- +// 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/. + +#ifdef XP_UNIX + #ifndef XP_MACOSX + #define UNIX_BUT_NOT_MAC + #endif +#endif + +// --- Waterfox Specific URLs and Services --- +// Defines URLs for Waterfox support pages and services. +pref("accessibility.support.url", "https://www.waterfox.net/support/accessibility-services"); +pref("app.support.baseURL", "https://www.waterfox.net/support/"); +// URL for updating system add-ons specific to Waterfox. +pref("extensions.systemAddon.update.url", "https://aus1.waterfox.net/update/SystemAddons/%DISPLAY_VERSION%/%OS%_%ARCH%/%CHANNEL%/%OS_VERSION%/%SYSTEM_CAPABILITIES%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml"); +// Waterfox-specific relay for Oblivious HTTP (OHTTP) used with DNS-over-HTTPS (DoH). +pref("network.trr.ohttp.relay_uri", "https://dooh.waterfox.net/"); + +// --- Application Updates --- +// Configuration for how Waterfox handles updates. +pref("app.update.badgeWaitTime", 0); // Time (ms) to wait before showing update badge. +pref("app.update.enabled", true); // Enable automatic application updates. +pref("app.update.notifyDuringDownload", true); // Notify user during update download. +pref("app.update.promptWaitTime", 3600); // Time (seconds) to wait before prompting for update. +pref("app.update.url.override", "", sticky); // Override URL for application updates (sticky: user set). + +// --- Startup, Session, and Basic UI Elements --- +// Defines browser behavior on startup and general UI settings. +pref("browser.startup.page", 3); // 0=blank, 1=home, 2=last visited page, 3=resume previous session. +pref("browser.privateTab.showNewTabButton", false); // Show new private tab button next to existing new tab buttons +pref("browser.tabs.pinnedIconOnly", true); // Pinned tabs show only an icon, no text. +pref("browser.tabs.warnOnClose", true); // Warn user when attempting to close multiple tabs. +// Stores the state of toolbar customizations (e.g., button placements). +// It's a JSON string, generally best modified through the UI. +pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"unified-extensions-area\":[],\"nav-bar\":[\"sidebar-button\",\"back-button\",\"forward-button\",\"vertical-spacer\",\"stop-reload-button\",\"urlbar-container\",\"save-to-pocket-button\",\"downloads-button\",\"fxa-toolbar-menu-button\",\"unified-extensions-button\",\"reset-pbm-toolbar-button\"],\"TabsToolbar\":[\"firefox-view-button\",\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"vertical-tabs\":[],\"PersonalToolbar\":[\"import-button\",\"personal-bookmarks\"],\"status-bar\":[\"screenshot-button\",\"fullscreen-button\",\"status-text\"]},\"seen\":[\"developer-button\",\"screenshot-button\"],\"dirtyAreaCache\":[\"nav-bar\",\"status-bar\",\"PersonalToolbar\",\"TabsToolbar\",\"vertical-tabs\"],\"currentVersion\":22,\"newElementCount\":4}"); +// Alternative smooth scroll physics. ("MSD" = Mass-Spring-Damper) +pref("general.smoothScroll.msdPhysics.enabled", true); + +// --- Top Sites and Partner Integrations --- +// Settings related to "Top Sites" on the New Tab Page and partner integrations. +pref("browser.partnerlink.attributionURL", "", locked); // URL for partner attribution (locked). +pref("browser.partnerlink.campaign.topsites", "", locked); // Campaign info for partner top sites (locked). +pref("browser.topsites.contile.enabled", false, locked); // Disable content tile suggestions (e.g., sponsored content) on Top Sites. +pref("browser.topsites.contile.endpoint", "", locked); // Endpoint for content tile suggestions. +pref("browser.topsites.useRemoteSetting", false, locked); // Do not use remote settings for Top Sites. + +// --- Network Configuration --- +// Controls various aspects of network requests and connections. + +// DNS Prefetching +// Disables prefetching of DNS records for links on a page. +pref("network.dns.disablePrefetch", true); +pref("network.dns.disablePrefetchFromHTTPS", true); // Also disable for links on HTTPS pages. + +// DNS-over-HTTPS (DoH) & Trusted Recursive Resolver (TRR) +// Configuration for encrypted DNS lookups. +pref("doh-rollout.enabled", false, locked); // Disable automatic rollout/enablement of DoH. +pref("doh-rollout.disable-heuristics", true, locked); // Disable heuristics that might enable DoH. +pref("network.trr.max-fails", 5); // Max number of TRR failures before fallback. +pref("network.trr.mode", 2); // DoH mode: 0=Off, 1=Race, 2=TRR first, 3=TRR only, 4=Shadow, 5=Off by user choice. +pref("network.trr.ohttp.config_uri", "https://dooh.cloudflare-dns.com/.well-known/doohconfig"); // Config URI for OHTTP. +pref("network.trr.ohttp.uri", "https://dooh.cloudflare-dns.com/dns-query"); // URI for OHTTP DoH queries. +pref("network.trr.request_timeout_mode_trronly_ms", 1500); // Timeout (ms) when TRR mode is TRR-only. +pref("network.trr.use_ohttp", true); // Enable Oblivious HTTP for DoH requests. +// Include an idempotency-key header for POST requests +pref("network.http.idempotencyKey.enabled", true); +// Disable requests to 0.0.0.0 +pref("network.socket.ip_addr_any.disabled", true); +pref("network.http.http3.ecn_mark", true); +pref("network.http.http3.retry_different_ip_family", true); +pref("network.http.retry_with_another_half_open", true); + +// --- Extension System and Web Compatibility --- +// Settings related to browser extensions and web compatibility measures. +pref("extensions.experiments.enabled", true); // Allow Mozilla to run studies/experiments using the extension system. +pref("extensions.install_origins.enabled", true); // Allow extensions to be installed from specified origins beyond default stores. +pref("extensions.webcompat.enable_shims", true); // Enable web compatibility shims that fix site-specific issues. +// Defines domains where WebExtension APIs might be restricted, typically for protecting Mozilla services. +pref("extensions.webextensions.restrictedDomains", "accounts-static.cdn.mozilla.net,accounts.firefox.com,addons.cdn.mozilla.net,api.accounts.firefox.com,content.cdn.mozilla.net,discovery.addons.mozilla.org,install.mozilla.org,oauth.accounts.firefox.com,profile.accounts.firefox.com,support.mozilla.org,sync.services.mozilla.com"); + +// --- Miscellaneous Features & Integrations --- +// Various feature toggles and integration settings. +pref("intl.multilingual.downloadEnabled", false, locked); // Disable automatic download of language packs for multilingual features. +pref("messaging-system.rsexperimentloader.enabled", false, locked); // Disable loading of experiments via the Normandy/Shield messaging system. +// Controls process separation for specific Mozilla domains. Empty means default behavior. +pref("browser.tabs.remote.separatedMozillaDomains", "", locked); + +// Sign-On Services and Firefox Relay integration +pref("signon.firefoxRelay.feature", "unavailable"); // Mark Firefox Relay feature as unavailable. +pref("signon.management.page.mobileAndroidURL", "", locked); // URL for managing passwords on Android (locked). +pref("signon.management.page.mobileAppleURL", "", locked); // URL for managing passwords on iOS (locked). +pref("identity.mobilepromo.android", "", locked); +pref("identity.mobilepromo.ios", "", locked); +pref("signon.recipes.remoteRecipes.enabled", false, locked); // Disable fetching of remote recipes for password generation. + +// SVG Rendering +pref("svg.context-properties.content.enabled", true); // Enable use of CSS context-properties within SVG content. + +// --- MathML Rendering --- +// Whether to disable legacy names "thickmathspace", "mediummathspace", +// "thickmathspace" etc for length attributes. +pref("mathml.mathspace_names.disabled", true); +// Whether to disable the MathML3 support for the mathvariant attribute. For +// MathML Core, support is restricted to the element and to value "normal". +// Corresponding automatic italicization on single-char element is also +// implemented via text-transform: auto when that flag is enabled. +pref("mathml.legacy_mathvariant_attribute.disabled", true); + +// --- Media Features --- +// Use MediaDataDecoder API for VP8/VP9 in WebRTC. This includes hardware +// acceleration for decoding. +pref("media.navigator.mediadatadecoder_vpx_enabled", true); +// HTMLMediaElement.allowedToPlay should be exposed to web content when +// block autoplay rides the trains to release. Until then, Nightly only. +pref("media.allowed-to-play.enabled", true); +pref("media.webrtc.enable_pq_dtls", true); +pref("media.webrtc.simulcast.vp9.enabled", true); + +// --- Security Settings (General) --- +// General security preferences not fitting into more specific categories. +// Disable priming for Man-in-the-Middle (MITM) detection for certificate errors (locked). +pref("security.certerrors.mitm.priming.enabled", false, locked); +// Configuration for Microsoft Family Safety integration on Windows. +pref("security.family_safety.mode", 0); // 0=off, 1=parental controls, 2=filter inappropriate content. diff --git a/waterfox/browser/app/profile/000-waterfox.js b/waterfox/browser/app/profile/000-waterfox.js deleted file mode 100644 index dc6917e0419c..000000000000 --- a/waterfox/browser/app/profile/000-waterfox.js +++ /dev/null @@ -1,259 +0,0 @@ -#filter dumbComments emptyLines substitution - -// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- -// 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/. - -#ifdef XP_UNIX - #ifndef XP_MACOSX - #define UNIX_BUT_NOT_MAC - #endif -#endif - -# Default Preferences -# Waterfox -# All customised preferences should live here - -pref("accessibility.support.url", "https://www.waterfox.net/support/accessibility-services"); -pref("app.support.baseURL", "https://www.waterfox.net/support/%OS%/"); -pref("app.update.badgeWaitTime", 0); -pref("app.update.enabled", true); -pref("app.update.notifyDuringDownload", true); -pref("app.update.promptWaitTime", 3600); -pref("app.update.url.override", "", sticky); -pref("browser.download.autohideButton", false); -pref("browser.download.panel.shown", true); -pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{}", locked); -pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", false, locked); -pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false, locked); -pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false, locked); -pref("browser.newtabpage.activity-stream.debug", false, locked); -pref("browser.newtabpage.activity-stream.default.sites", "", locked); -pref("browser.newtabpage.activity-stream.discoverystream.config", "{}"); -pref("browser.newtabpage.activity-stream.discoverystream.enabled", false, locked); -pref("browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout", false, locked); -pref("browser.newtabpage.activity-stream.discoverystream.personalization.modelKeys", "", locked); -pref("browser.newtabpage.activity-stream.discoverystream.recs.personalized", false, locked); -pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", "", locked); -pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", "", locked); -pref("browser.newtabpage.activity-stream.feeds.section.highlights", true); -pref("browser.newtabpage.activity-stream.feeds.snippets", false, locked); -pref("browser.newtabpage.activity-stream.feeds.section.topstories", false, locked); -pref("browser.newtabpage.activity-stream.feeds.section.topstories", false, locked); -pref("browser.newtabpage.activity-stream.feeds.section.topstories.options", "{}", locked); -pref("browser.newtabpage.activity-stream.feeds.system.topstories", false, locked); -pref("browser.newtabpage.activity-stream.feeds.telemetry", false, locked); -pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", false); -pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", false); -pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false, locked); -pref("browser.newtabpage.activity-stream.section.highlights.rows", 2); -pref("browser.newtabpage.activity-stream.showSponsored", false, locked); -pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false, locked); -pref("browser.newtabpage.activity-stream.telemetry", false, locked); -pref("browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint", "", locked); -pref("browser.newtabpage.activity-stream.telemetry.ut.events", false, locked); -pref("browser.partnerlink.attributionURL", "", locked); -pref("browser.partnerlink.campaign.topsites", "", locked); -pref("browser.ping-centre.telemetry", false, locked); -pref("browser.search.separatePrivateDefault", true); -pref("browser.search.separatePrivateDefault.ui.enabled", true); -pref("browser.send_pings", false, locked); -pref("browser.tabs.pinnedIconOnly", false); -pref("browser.tabs.remote.separatedMozillaDomains", "", locked); -pref("browser.topsites.contile.enabled", false, locked); -pref("browser.topsites.contile.endpoint", "", locked); -pref("browser.topsites.useRemoteSetting", false, locked); -pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"save-to-pocket-button\",\"downloads-button\",\"library-button\",\"fxa-toolbar-menu-button\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"import-button\",\"personal-bookmarks\"]},\"seen\":[\"profiler-button\",\"developer-button\"],\"dirtyAreaCache\":[\"nav-bar\",\"PersonalToolbar\"],\"currentVersion\":17,\"newElementCount\":3}"); -pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0, locked); -pref("browser.urlbar.eventTelemetry.enabled", false, locked); -pref("browser.urlbar.showSearchSuggestionsFirst", false); -pref("browser.urlbar.trimURLs", false); -pref("corroborator.enabled", false, locked); -pref("datareporting.healthreport.uploadEnabled", false, locked); -pref("datareporting.policy.dataSubmissionEnabled", false, locked); -pref("devtools.debugger.chrome-debugging-host", "127.0.0.1"); -pref("devtools.webide.autoinstallADBExtension", false); -pref("dom.security.unexpected_system_load_telemetry_enabled", false, locked); -pref("extensions.allowPrivateBrowsingByDefault", true); -pref("extensions.getAddons.cache.enabled", false, locked); // https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/ -pref("extensions.getAddons.showPane", false, locked); -pref("extensions.htmlaboutaddons.recommendations.enabled", false, locked); -pref("extensions.install_origins.enabled", true); -pref("extensions.pocket.api", ""); -pref("extensions.pocket.enabled", false); -pref("extensions.pocket.oAuthConsumerKey", ""); -pref("extensions.pocket.showHome", false); -pref("geo.provider.network.url", ""); -pref("image.avif.enabled", true); -pref("image.jxl.enabled", true); -pref("intl.multilingual.downloadEnabled", false, locked); -pref("layout.css.backdrop-filter.enabled", true); -pref("layout.css.color-mix.enabled", true); -pref("layout.css.prefers-color-scheme.content-override", 3); -pref("media.eme.enabled", false); -pref("media.gmp-manager.url", "data:application/json,", locked); -pref("messaging-system.rsexperimentloader.enabled", false, locked); -pref("network.captive-portal-service.enabled", false); -pref("network.connectivity-service.enabled", false); -pref("network.http.connection-retry-timeout", 0); -pref("network.http.max-persistent-connections-per-proxy", 256); -pref("network.manage-offline-status", false); -pref("network.trr.confirmation_telemetry_enabled", false, locked); -pref("network.trr.exclude-etc-hosts", false, locked); -pref("network.trr.resolvers", "", locked); -pref("plugin.state.flash", 0, locked); // Disable for defense-in-depth -pref("privacy.resistFingerprinting.block_mozAddonManager", true); // This is set so that UA overrides work on AMO. -pref("privacy.trackingprotection.origin_telemetry.enabled", false, locked); -pref("privacy.userContext.enabled", true); -pref("privacy.userContext.ui.enabled", true); -pref("security.app_menu.recordEventTelemetry", false, locked); -pref("security.certerrors.mitm.priming.enabled", false, locked); -pref("security.certerrors.recordEventTelemetry", false, locked); -pref("security.family_safety.mode", 0, locked); -pref("security.identitypopup.recordEventTelemetry", false, locked); -pref("security.pki.crlite_mode", 0, locked); -pref("security.protectionspopup.recordEventTelemetry", false, locked); -pref("security.ssl.enable_false_start", true); -pref("security.ssl.errorReporting.enabled", false, locked); -pref("services.settings.server", "data:application/json,", locked); // 24H -pref("services.sync.engine.prefs", false, locked); // Never sync prefs, addons, or tabs with other browsers -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.snippets", false, locked); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", false, locked); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", false, locked); -pref("services.sync.telemetry.maxPayloadCount", "0", locked); -pref("services.sync.telemetry.submissionInterval", "0", locked); -pref("signon.management.page.mobileAndroidURL", "", locked); -pref("signon.management.page.mobileAppleURL", "", locked); -pref("signon.recipes.remoteRecipesEnabled", false, locked); -pref("svg.context-properties.content.enabled", true); -pref("telemetry.origin_telemetry_test_mode.enabled", false, locked); -pref("toolkit.legacyUserProfileCustomizations.stylesheets", true, locked); -pref("toolkit.telemetry.archive.enabled", false, locked); -pref("toolkit.telemetry.bhrPing.enabled", false, locked); -pref("toolkit.telemetry.enabled", false, locked); -pref("toolkit.telemetry.firstShutdownPing.enabled", false, locked); -pref("toolkit.telemetry.geckoview.streaming", false, locked); -pref("toolkit.telemetry.newProfilePing.enabled", false, locked); -pref("toolkit.telemetry.pioneer-new-studies-available", false, locked); -pref("toolkit.telemetry.reportingpolicy.firstRun", false, locked); -pref("toolkit.telemetry.server", "", locked); -pref("toolkit.telemetry.shutdownPingSender.enabled", false, locked); -pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false, locked); -pref("toolkit.telemetry.testing.overrideProductsCheck", false, locked); -pref("toolkit.telemetry.unified", false, locked); -pref("toolkit.telemetry.updatePing.enabled", false, locked); // Make sure updater telemetry is disabled; see #25909. -pref("trailhead.firstrun.branches", "", locked); -pref("xpinstall.signatures.required", false); - -// ** Theme Related Options **************************************************** -// == Theme Distribution Settings ============================================== -pref("userChrome.tab.connect_to_window", true); // Original, Photon -pref("userChrome.tab.color_like_toolbar", true); // Original, Photon - -// pref("userChrome.tab.lepton_like_padding", true); // Original -pref("userChrome.tab.photon_like_padding", true); // Photon - -pref("userChrome.tab.static_separator", true); // Photon -// pref("userChrome.tab.static_separator.selected_accent", true); // Just option - -pref("userChrome.tab.newtab_button_smaller", true); // Photon - -pref("userChrome.icon.panel_photon", true); // Photon - -// Photon Only -pref("userChrome.tab.photon_like_contextline", true); -pref("userChrome.rounding.square_tab", true); - -// == Theme Default Settings =================================================== -// -- User Chrome -------------------------------------------------------------- -pref("userChrome.compatibility.accent_color", true); -pref("userChrome.compatibility.theme", true); -pref("userChrome.compatibility.os", true); - -pref("userChrome.theme.built_in_contrast", true); -pref("userChrome.theme.system_default", true); -pref("userChrome.theme.proton_color", true); -pref("userChrome.theme.proton_chrome", true); // Need proton_color -pref("userChrome.theme.fully_color", true); // Need proton_color -pref("userChrome.theme.fully_dark", true); // Need proton_color - -pref("userChrome.decoration.cursor", true); -pref("userChrome.decoration.field_border", true); -pref("userChrome.decoration.download_panel", true); -pref("userChrome.decoration.animate", true); - -pref("userChrome.padding.tabbar_width", true); -pref("userChrome.padding.tabbar_height", true); -pref("userChrome.padding.toolbar_button", true); -pref("userChrome.padding.navbar_width", true); -pref("userChrome.padding.urlbar", true); -pref("userChrome.padding.bookmarkbar", true); -pref("userChrome.padding.infobar", true); -pref("userChrome.padding.menu", true); -pref("userChrome.padding.bookmark_menu", true); -pref("userChrome.padding.global_menubar", true); -pref("userChrome.padding.panel", true); -pref("userChrome.padding.popup_panel", true); - -pref("userChrome.tab.multi_selected", true); -pref("userChrome.tab.unloaded", true); -pref("userChrome.tab.letters_cleary", true); -pref("userChrome.tab.close_button_at_hover", true); -pref("userChrome.tab.sound_hide_label", true); -pref("userChrome.tab.sound_with_favicons", true); -pref("userChrome.tab.pip", true); -pref("userChrome.tab.container", true); -pref("userChrome.tab.crashed", true); - -pref("userChrome.fullscreen.overlap", true); -pref("userChrome.fullscreen.show_bookmarkbar", true); - -pref("userChrome.icon.library", true); -pref("userChrome.icon.panel", true); -pref("userChrome.icon.menu", true); -pref("userChrome.icon.context_menu", true); -pref("userChrome.icon.global_menu", true); -pref("userChrome.icon.global_menubar", true); - -// -- User Content ------------------------------------------------------------- -pref("userContent.player.ui", true); -pref("userContent.player.icon", true); -pref("userContent.player.noaudio", true); -pref("userContent.player.size", true); -pref("userContent.player.click_to_play", true); -pref("userContent.player.animate", true); - -pref("userContent.newTab.field_border", true); -pref("userContent.newTab.full_icon", true); -pref("userContent.newTab.animate", true); -pref("userContent.newTab.pocket_to_last", true); -pref("userContent.newTab.searchbar", true); - -pref("userContent.page.illustration", true); -pref("userContent.page.proton_color", true); -pref("userContent.page.dark_mode", true); // Need proton_color -pref("userContent.page.proton", true); // Need proton_color - -// ** Useful Options *********************************************************** -// Integrated calculator at urlbar -pref("browser.urlbar.suggest.calculator", true); - -// Extensibles prefs -pref("browser.tabs.duplicateTab", true); -pref("browser.tabs.copyurl", true); -pref("browser.tabs.copyallurls", false); -pref("browser.tabs.copyurl.activetab", false); -pref("browser.tabs.unloadTab", false); -pref("browser.restart_menu.showpanelmenubtn", true); -pref("browser.restart_menu.purgecache", false); -pref("browser.restart_menu.requireconfirm", true); -pref("browser.statusbar.appendStatusText", true); -pref("browser.statusbar.enabled", false); -pref("browser.tabs.toolbarposition", "topabove"); -pref("browser.bookmarks.toolbarposition", "top"); diff --git a/waterfox/browser/app/profile/01-theme.js b/waterfox/browser/app/profile/01-theme.js new file mode 100644 index 000000000000..aadf0cef0042 --- /dev/null +++ b/waterfox/browser/app/profile/01-theme.js @@ -0,0 +1,41 @@ +#filter dumbComments emptyLines substitution + +// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- +// 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/. + +// --- General Browser Appearance & UI Density --- +// These preferences control the overall look and feel of the browser UI. +pref("browser.uidensity", 1); // 0=normal, 1=compact, 2=touch +pref("browser.theme.enableWaterfoxCustomizations", 1); // Enable Waterfox specific theme customizations + +// Toolbar and UI Element Positions +pref("browser.bookmarks.toolbarposition", "top"); // Position of the bookmarks toolbar: "top" or "bottom" +pref("browser.tabs.toolbarposition", "topabove"); // Position of the tab toolbar (e.g., "topabove", "top", "bottom") +pref("browser.statusbar.enabled", false); // Show or hide the main status bar +pref("browser.statusbar.appendStatusText", true); // Append status text instead of replacing it (if statusbar is enabled) + +// Tab Appearance (General Browser Settings) +pref("browser.tabs.closeButtons", false); // Controls display of close buttons on tabs. Behavior can be complex with userChrome.css. + +// --- Custom Stylesheet Support --- +// Enables loading of userChrome.css (for browser UI) and userContent.css (for web content) for custom styling. +pref("toolkit.legacyUserProfileCustomizations.stylesheets", true, locked); + +// --- OS-Specific Visual Integration --- +// These settings enhance visual integration with the underlying operating system. +#ifdef XP_MACOSX +// macOS specific visual settings for a more native look and feel. +pref("widget.macos.sidebar-blend-mode.behind-window", true); // Blends sidebar with window background. +pref("widget.macos.titlebar-blend-mode.behind-window", true); // Blends titlebar with window background. +#endif + +#ifdef XP_WIN +// Windows specific visual settings, e.g., for Mica effect (Windows 11). +pref("widget.windows.mica", true); // Enable Mica effect for the main window. +pref("widget.windows.mica.popups", 1); // Mica for popups: 0=none, 1=auto, 2=acrylic, 3=tabbed. +pref("widget.windows.mica.toplevel-backdrop", 3); // Mica for other top-level windows (e.g., Picture-in-Picture). +// Only load keyboard layout when first needed, which is more efficient for Windows. +pref("ui.key.layout.load_when_first_needed", true); +#endif diff --git a/waterfox/browser/app/profile/02-privacy.js b/waterfox/browser/app/profile/02-privacy.js new file mode 100644 index 000000000000..a80e63bb69e6 --- /dev/null +++ b/waterfox/browser/app/profile/02-privacy.js @@ -0,0 +1,212 @@ +#filter dumbComments emptyLines substitution + +// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- +// 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/. + +// --- Tracking Protection & Fingerprinting Resistance --- +// Lower the priority of network loads for resources on tracking protection lists. +pref("privacy.trackingprotection.lower_network_priority", true); +// Disable access to the Battery Status API to prevent fingerprinting. +pref("dom.battery.enabled", false); +// Disable UITour backend, which can be a fingerprinting vector or used for unwanted popups. +pref("browser.uitour.enabled", false); +pref("browser.uitour.url", ""); // Clear UITour URL +// Enable Global Privacy Control (GPC) to signal websites not to sell or share personal data. +pref("privacy.globalprivacycontrol.enabled", true); +pref("privacy.globalprivacycontrol.functionality.enabled", true); +// Block fingerprinting attempts via the mozAddonManager Web API. +pref("privacy.resistFingerprinting.block_mozAddonManager", true); + +// --- Cookies & Site Data --- +// Enforce that SameSite=None cookies must also be Secure. +pref("network.cookie.sameSite.noneRequiresSecure", true); +// Prevent media cache from writing to disk in Private Browsing mode, forcing it to memory. +pref("browser.privatebrowsing.forceMediaMemoryCache", true); +pref("dom.cookieStore.extra.enabled", true); +// Whether to support CHIPS(Cookies Having Independent Partitioned State). +pref("network.cookie.CHIPS.enabled", true); +pref("network.cookie.sameSite.schemeful", true); + +// --- Certificate & Connection Security --- +// OCSP (Online Certificate Status Protocol) +pref("security.OCSP.enabled", 0); // 0=disable, 1=validate good certs, 2=validate all certs (old default) + +// CRLite (Compressed Revocation List) +// Enables a more private way to check for revoked certificates. +pref("security.remote_settings.crlite_filters.enabled", true); +pref("security.pki.crlite_mode", 2); // 0=off, 1=check only, 2=check and enforce. + +// Intermediate Certificate Preloading +// Disable preloading of intermediate certificates to prevent remote downloads. +pref("security.remote_settings.intermediates.enabled", false); + +// SSL/TLS Settings +// Display a warning on the padlock icon for connections with unsafe TLS negotiation. +pref("security.ssl.treat_unsafe_negotiation_as_broken", true); +// Disable TLS 1.3 0-RTT (Zero Round Trip Time Resumption) to improve forward secrecy. +pref("security.tls.enable_0rtt_data", false); + +// Error Pages +// Display more detailed technical information on "Insecure Connection" warning pages. +pref("browser.xul.error_pages.expert_bad_cert", true); + +// --- History, Referrers, and URL Display --- +// Set History section in preferences to show all options, allowing for custom history settings. +pref("privacy.history.custom", true); + +// Referrer Policy +// Control how much referrer information is sent with requests. +// 2 = Send origin, path, and querystring for same-origin, but only origin for cross-origin. +pref("network.http.referer.XOriginTrimmingPolicy", 2); +// Default Referrer Policy for trackers (1 = strict-origin-when-cross-origin). +pref("network.http.referer.defaultPolicy.trackers", 1); +pref("network.http.referer.defaultPolicy.trackers.pbmode", 1); // Same for private browsing. + +// URL Bar +// Disable trimming of "http://", "https://", "www." etc. from URLs in the address bar. +pref("browser.urlbar.trimURLs", false); +// Enable UI option to add custom search engines. +pref("browser.urlbar.update2.engineAliasRefresh", true); +// Disable Firefox Suggest (sponsored and non-sponsored suggestions based on browsing). +pref("browser.urlbar.suggest.quicksuggest.sponsored", false); +pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); + +// --- HTTPS-Only Mode & Mixed Content --- +// Display "Not Secure" text on HTTP sites for better visual indication. +pref("security.insecure_connection_text.enabled", true); +pref("security.insecure_connection_text.pbmode.enabled", true); // Also in private browsing. + +// HTTPS-First Policy (attempts to upgrade HTTP to HTTPS automatically) +pref("dom.security.https_first", true); + +// HTTPS-Only Mode Settings +pref("dom.security.https_only_mode_error_page_user_suggestions", true); // Show suggestions on HTTPS-Only error pages. +pref("dom.security.https_only_mode.upgrade_local", false); // Do not attempt to upgrade local addresses (e.g., localhost). + +// Mixed Content Blocking +// Block active mixed content (e.g., scripts) and passive mixed content (e.g., images). +pref("security.mixed_content.block_display_content", true); // Blocks passive mixed content +pref("security.mixed_content.upgrade_display_content", true); // Attempts to upgrade passive mixed content to HTTPS + +// --- Passwords, Forms & Paste Handling --- +// Disable truncating user pastes into form fields (can interfere with long strings). +pref("editor.truncate_user_pastes", false); +// Enable the built-in reveal password button in password fields. +pref("layout.forms.reveal-password-button.enabled", true); +// Allow subresource HTTP authentication (1 = allow same-origin, 2 = allow cross-origin). +pref("network.auth.subresource-http-auth-allow", 1); + +// --- PDF Viewer Security --- +// Disable JavaScript execution within the built-in PDF viewer for security. +pref("pdfjs.enableScripting", false); + +// --- Extensions & Add-ons Security/Privacy --- +// Disable the prompt that appears after downloading a third-party extension (XPI file). +pref("extensions.postDownloadThirdPartyPrompt", false); +// Disable signing requirement for extensions (use with caution, for development or trusted sources only). +pref("xpinstall.signatures.required", false, locked); +// Disable the "Quarantined Domains" feature which restricts extension capabilities on certain domains. +pref("extensions.quarantinedDomains.enabled", false, locked); +// Disable personalized extension recommendations in about:addons and AMO. +pref("browser.discovery.enabled", false, locked); // Also affects other "discovery" features. +// Disable extension abuse reporting feature. +pref("extensions.abuseReport.enabled", false); +// Whether we block opening pickers from hidden extension pages in WebExtensions. +// This includes background pages and devtools pages, but not background tabs. +pref("browser.disable_pickers_in_hidden_extension_pages", true); + + +// --- Container Tabs --- +// Enable Container Tabs feature and its UI elements. +pref("privacy.userContext.ui.enabled", true); +pref("privacy.userContext.enabled", true); +// Control behavior of the "+ Tab" button regarding containers (false = default new tab). +pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false); + +// --- WebRTC Privacy --- +// Enable global mute toggles for microphone/camera in WebRTC. +pref("privacy.webrtc.globalMuteToggles", true); +// Force WebRTC connections to use a proxy if one is configured. +pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); +// Force WebRTC to use only the default network interface for ICE candidates (can prevent IP leaks). +pref("media.peerconnection.ice.default_address_only", true); + +// --- Geolocation Services --- +// Clear the URL for Mozilla's geolocation service, effectively disabling it if not manually re-enabled. +// (To use a specific provider, set this to its URL, or "" to rely on OS-level services if available) +pref("geo.provider.network.url", ""); + +// --- Safe Browsing --- +// Disable Safe Browsing features for downloads and remote checks. +pref("browser.safebrowsing.downloads.remote.enabled", false); +pref("browser.safebrowsing.downloads.remote.url", ""); // Clear remote check URL +pref("browser.safebrowsing.provider.google4.gethashURL", ""); // Clear Google Safe Browsing v4 gethash URL +pref("browser.safebrowsing.provider.google4.updateURL", ""); // Clear Google Safe Browsing v4 update URL +pref("browser.safebrowsing.provider.google.gethashURL", ""); // Clear Google Safe Browsing v2 gethash URL (legacy) +pref("browser.safebrowsing.provider.google.updateURL", ""); // Clear Google Safe Browsing v2 update URL (legacy) +pref("browser.safebrowsing.downloads.enabled", false); // Disable Safe Browsing checks for downloaded files. + +// --- Telemetry, Experiments & Data Reporting --- +// These settings aim to disable various forms of data collection and reporting to Mozilla or third parties. + +// Core Telemetry System +pref("toolkit.telemetry.unified", false, locked); // Master switch for new telemetry system. +pref("toolkit.telemetry.enabled", false, locked); // General telemetry enabled/disabled. +pref("toolkit.telemetry.server", "data:,", locked); // Send telemetry data to a null void. +pref("toolkit.telemetry.archive.enabled", false, locked); // Disable archiving of telemetry data. +pref("toolkit.telemetry.newProfilePing.enabled", false, locked); // Disable ping sent for new profiles. +pref("toolkit.telemetry.shutdownPingSender.enabled", false, locked); // Disable ping sent at shutdown. +pref("toolkit.telemetry.updatePing.enabled", false, locked); // Disable ping sent for updates. +pref("toolkit.telemetry.bhrPing.enabled", false, locked); // Disable Background Hang Reporter pings. +pref("toolkit.telemetry.firstShutdownPing.enabled", false, locked); // Disable first shutdown ping. +pref("toolkit.telemetry.dap_enabled", false, locked); // Disable Data Aggregation Platform related telemetry. + +// Telemetry Coverage (additional telemetry for measuring code coverage by telemetry) +pref("toolkit.telemetry.coverage.opt-out", true, locked); +pref("toolkit.coverage.opt-out", true, locked); +pref("toolkit.coverage.endpoint.base", "", locked); + +// Health Reports & Data Reporting Policy +pref("datareporting.healthreport.uploadEnabled", false, locked); // Disable Firefox Health Report (FHR). +pref("datareporting.policy.dataSubmissionEnabled", false, locked); // General policy switch for data submission. + +// Studies, Normandy & Shield (Mozilla's system for deploying studies, features, and fixes) +pref("app.shield.optoutstudies.enabled", false, locked); // Opt-out of Shield studies. +pref("app.normandy.enabled", false, locked); // Disable Normandy (Shield's successor). +pref("app.normandy.api_url", "", locked); // Clear Normandy API URL. + +// Crash Reporting +pref("breakpad.reportURL", "", locked); // Clear URL for sending crash reports. +pref("browser.tabs.crashReporting.sendReport", false, locked); // Don't send reports for tab crashes. +pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false, locked); // Don't auto-submit unsent crash reports. + +// Component-Specific Telemetry +pref("browser.newtabpage.activity-stream.feeds.telemetry", false, locked); // Disable telemetry for New Tab Page feeds. +pref("browser.newtabpage.activity-stream.telemetry", false, locked); // Disable general New Tab Page telemetry. +pref("dom.security.unexpected_system_load_telemetry_enabled", false, locked); // Telemetry for unexpected system load. +pref("network.trr.confirmation_telemetry_enabled", false, locked); // Telemetry for TRR/DoH confirmation. +pref("security.app_menu.recordEventTelemetry", false, locked); // Telemetry for app menu interactions. +pref("security.certerrors.recordEventTelemetry", false, locked); // Telemetry for certificate error page interactions. +pref("security.identitypopup.recordEventTelemetry", false, locked); // Telemetry for identity popup (site info) interactions. +pref("security.protectionspopup.recordEventTelemetry", false, locked); // Telemetry for protections popup interactions. + +// --- Miscellaneous Privacy & Security Settings --- +// Check bundled omni.ja JAR files for corruption (can be disabled for minor performance gain, security implications if disabled). +pref("corroborator.enabled", false); +// Allow the OS to check for captive portals +pref("network.captive-portal-service.enabled", false); +// Enforce Punycode display for Internationalized Domain Names (IDNs) to prevent homograph attacks. +pref("network.IDN_show_punycode", true); +// Clear the webchannel whitelist, restricting its use (WebChannel allows web pages to communicate with specific XPCOM components). +pref("webchannel.allowObject.urlWhitelist", ""); +// Enable the HTML Sanitizer API, which provides a standards-based way to sanitize HTML fragments. +pref("dom.security.sanitizer.enabled", true); +pref("dom.w3c_pointer_events.getcoalescedevents_only_in_securecontext", true); + +// --- Content Blocking Reports --- +// Disable various promotional features in the content blocking report. +pref("browser.contentblocking.report.lockwise.enabled", false, locked); +pref("browser.contentblocking.report.monitor.enabled", false, locked); +pref("browser.contentblocking.report.show_mobile_app", false, locked); diff --git a/waterfox/browser/app/profile/03-features.js b/waterfox/browser/app/profile/03-features.js new file mode 100644 index 000000000000..2dbd443f0a3a --- /dev/null +++ b/waterfox/browser/app/profile/03-features.js @@ -0,0 +1,278 @@ +// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- +// 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/. + +// --- Mozilla & Waterfox Services Integration --- +// Controls for features and promotions related to Mozilla or Waterfox services. + +// Mozilla VPN Promotion +pref("browser.privatebrowsing.vpnpromourl", ""); // Clear URL for VPN promo in private browsing context. +pref("browser.vpn_promo.enabled", false, locked); // Disable the VPN promotion. +pref("browser.promo.focus.enabled", false, locked); // Disable Focus mode promotion. +pref("browser.promo.pin.enabled", false, locked); // Disable Pin mode promotion (assuming "pomo" was a typo). +pref("browser.contentblocking.report.vpn-promo.url", "", locked); // Clear URL for VPN promo in content blocking report. + +// Firefox Accounts Toolbar Integration (Controls visibility of Monitor, Relay, VPN in FxA menu) +pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.monitorEnabled", false); +pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.relayEnabled", false); +pref("identity.fxaccounts.toolbar.pxiToolbarEnabled.vpnEnabled", false); + +// --- Add-ons & Extension Recommendations --- +// Settings related to the display and suggestion of extensions. + +// Disable "Recommendations" pane in about:addons (this pane sometimes uses Google Analytics). +pref("extensions.getAddons.showPane", false, locked); +// Disable recommendations in the "Extensions" and "Themes" panes of about:addons. +pref("extensions.htmlaboutaddons.recommendations.enabled", false, locked); +// Disable personalized extension recommendations in about:addons and on the AMO website. +pref("browser.discovery.enabled", false, locked); // This is a broader switch impacting "discovery" features. + +// Disable Contextual Feature Recommender (CFR) for add-ons and features. +// CFR suggests extensions or browser features based on user activity patterns. +// [1] https://support.mozilla.org/en-US/kb/extension-recommendations +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); + +// --- New Tab Page (Activity Stream) Configuration --- +// These settings control the various sections and content sources for the New Tab Page (about:newtab). + +// Activity Stream Router (ASRouter) Provider Settings +// These typically disable specific content providers that feed into the New Tab Page. +pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{}", locked); // Contextual Feature Recommender provider. +pref("browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa", "{}", locked); // CFR FxA integration provider. +pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{}", locked); // Message groups provider. +pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{}", locked); // Messaging experiments provider. +pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{}", locked); // Snippets provider (Mozilla news/tips) via ASRouter. +pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{}", locked); // Provider for the "What's New" panel content. +pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", false, locked); // Disable use of remote localization for ASRouter content. + +// General New Tab Page Content & Features +pref("browser.newtabpage.activity-stream.discoverystream.enabled", false, locked); // Disable Pocket/Discovery Stream integration on NTP. +pref("browser.newtabpage.activity-stream.discoverystream.config", "{}", locked); // Configuration for Discovery Stream (relevant if enabled elsewhere). +pref("browser.newtabpage.activity-stream.showSearch", false); // Hide the search bar on the New Tab Page. +pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", false); // Show search shortcuts (e.g., @bookmarks) on Top Sites. +pref("browser.newtabpage.activity-stream.feeds.topsites", true); // Show the Top Sites section. +pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false, locked); // Hide sponsored Top Sites. +pref("browser.newtabpage.activity-stream.system.showSponsored", false, locked); // Hide sponsored checkbox +pref("browser.newtabpage.activity-stream.system.showSponsoredCheckboxes", false, locked); // Hide sponsored checkbox +pref("browser.newtabpage.activity-stream.feeds.system.topstories", false, locked); // Disable system-provided top stories feed (Pocket integration). +pref("browser.newtabpage.activity-stream.feeds.section.topstories", false, locked); // Disable the "Recommended by Pocket" section. +pref("browser.newtabpage.activity-stream.showSponsored", false, locked); // Disable general sponsored content on the New Tab Page. + +// Weather Widget on New Tab Page +pref("browser.newtabpage.activity-stream.showWeather", false); // Hide the weather widget. +pref("browser.newtabpage.activity-stream.system.showWeather", true); // Show "Weather" as a configurable UI option in NTP settings. + +// Highlights Section (Recent Activity: Bookmarks, History, Downloads) +pref("browser.newtabpage.activity-stream.feeds.section.highlights", true); // Show the Highlights section. +pref("browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true); // Include bookmarks in Highlights. +pref("browser.newtabpage.activity-stream.section.highlights.includeDownloads", false); // Do not include downloads in Highlights. +pref("browser.newtabpage.activity-stream.section.highlights.includeVisited", true); // Include recently visited sites in Highlights. +pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false, locked); // Do not include Pocket saves in Highlights. +pref("browser.newtabpage.activity-stream.section.highlights.rows", 2); // Number of rows displayed for Highlights. + +// Other New Tab Page Settings +pref("browser.newtabpage.activity-stream.feeds.snippets", false); // Disable Mozilla/Firefox related news/tips snippets feed directly on NTP. +pref("browser.newtabpage.activity-stream.default.sites", "", locked); // Clear the list of default Top Sites (locked to prevent override). +pref("browser.newtabpage.activity-stream.logowordmark.alwaysVisible", false); // Control visibility of Waterfox logo/wordmark on NTP. + +// --- Browser UI & Interaction --- +// Miscellaneous settings affecting the browser's user interface and behavior. + +// "More from Mozilla" section in Preferences/Settings +pref("browser.preferences.moreFromMozilla", false); // Hide this promotional section. + +// Warnings & Notices +pref("browser.aboutConfig.showWarning", false); // Disable the warning dialog when accessing about:config.. + +// Profile Management +pref("browser.profiles.enabled", true); // Enable the new profile switcher UI. + +// --- Sidebar Revamp Features --- +// Controls for an alternative sidebar implementation or major update. +pref("sidebar.revamp", true); +// Should the sidebar launcher default to visible or not with horizontal tabs +pref("sidebar.revamp.defaultLauncherVisible", false); + +// Linux Specific UI +#ifdef XP_UNIX + #ifndef XP_MACOSX + // Use native-style title bar buttons on GTK environments for better desktop integration. + pref("widget.gtk.non-native-titlebar-buttons.enabled", true); + #endif +#endif + +// Cookie Banner Handling +// Controls the browser's automated interaction with cookie consent banners. +// 0 = disable all handling. +// 1 = reject banners if a one-click "reject all" option is available; otherwise, keep banners on screen. +// 2 = reject banners if a one-click "reject all" is available; otherwise, fall back to an "accept all" option. +pref("cookiebanners.service.mode", 1); +pref("cookiebanners.service.mode.privateBrowsing", 1); // Same setting for Private Browsing mode. + +// --- URL Bar (AwesomeBar) & Search Functionality ---\n// Settings for the address bar, search suggestions, and related features. + +// URL Bar Suggestions (what types of suggestions appear in the dropdown) +pref("browser.urlbar.suggest.history", true); // Suggest from browsing history. +pref("browser.urlbar.suggest.bookmark", true); // Suggest from bookmarks. +pref("browser.urlbar.suggest.clipboard", true); // Suggest content from the clipboard (if enabled by user). +pref("browser.urlbar.suggest.openpage", true); // Suggest currently open tabs. +pref("browser.urlbar.suggest.engines", true); // Suggest installed search engines. +pref("browser.urlbar.suggest.searches", true); // Suggest past search terms. +pref("browser.urlbar.suggest.topsites", true); // Disable suggesting top sites when the URL bar is empty and focused. + +// URL Bar Quick Actions & Utilities +pref("browser.urlbar.quickactions.enabled", false); // Disable quick actions (e.g., "view downloads", "manage extensions"). +pref("browser.urlbar.shortcuts.quickactions", false); // Disable shortcuts for quick actions (e.g., typing "downloads"). +pref("browser.urlbar.suggest.weather", false); // Disable weather forecast suggestions in the URL bar. +pref("browser.urlbar.weather.ignoreVPN", false); // If weather suggestions are enabled, setting to true ignores VPN status for location. +pref("browser.urlbar.suggest.calculator", true); // Enable the built-in calculator in the URL bar (e.g., "5*5"). +pref("browser.urlbar.unitConversion.enabled", true); // Enable unit conversion in the URL bar (e.g., "10ft to m"). + +// URL Bar Feature Gates (Disabling specific third-party or experimental integrations) +pref("browser.urlbar.trending.featureGate", false); // Disable trending search suggestions from search providers. +pref("browser.urlbar.addons.featureGate", false); // Disable suggestions for add-ons. +pref("browser.urlbar.fakespot.featureGate", false); // Disable Fakespot integration (product review analysis). +pref("browser.urlbar.mdn.featureGate", false); // Disable MDN (Mozilla Developer Network) suggestions for web development terms. +pref("browser.urlbar.weather.featureGate", false); // Master feature gate for weather suggestions. +pref("browser.urlbar.clipboard.featureGate", false); // Master feature gate for clipboard suggestions. +pref("browser.urlbar.yelp.featureGate", false); // Disable Yelp integration for local business suggestions. + +// Search Settings +pref("browser.search.separatePrivateDefault.ui.enabled", true); // Enable UI to set a different default search engine for Private Windows. + +// --- Web Content Handling & Features --- +// Settings related to how specific web content or browser features behave. + +// Text Fragments (Scroll-to-text links) +pref("dom.text_fragments.create_text_fragment.enabled", true); // Allow creating and navigating to links that scroll to specific text on a page. + +// PDF Handling +pref("browser.download.open_pdf_attachments_inline", true); // Open PDF attachments inline using the built-in PDF viewer by default. + +// Download Behaviors +pref("browser.download.manager.addToRecentDocs", false); // Do not add downloaded files to the system's "Recent Documents" list (Windows). +pref("browser.download.always_ask_before_handling_new_types", true); // Always ask the user how to handle new MIME types, rather than automatically saving. + +// JavaScript Pop-up Window Behavior +// Controls how new windows opened by JavaScript are handled. +// 0 = force all new windows into tabs. +// 1 = let all JavaScript windows open as new windows. +// 2 = default Firefox behavior (catches some popups, lets others open as new windows based on features). +// [1] https://kb.mozillazine.org/About:config_entries (browser.link.open_newwindow.restriction) +pref("browser.link.open_newwindow.restriction", 0); + +// --- Menus, Find Bar, and Text Selection --- +// UI elements related to navigation and content interaction. + +// Bookmarks Menu +pref("browser.bookmarks.openInTabClosesMenu", false); // Keep the Bookmarks Menu open when selecting an item to open in a new tab. + +// Context Menus +pref("browser.menu.showViewImageInfo", true); // Restore "View Image Info" to the image context menu. + +// Find Bar +pref("findbar.highlightAll", true); // Highlight all occurrences of the searched text in the Find Bar. + +// Text Selection Behavior +pref("layout.word_select.eat_space_to_next_word", false); // When double-clicking a word, do not automatically select the space that follows it. + +// --- Tab Features & Behavior --- +// Settings controlling tab previews, actions, and states. + +// Tab Previews (on hover) +pref("browser.tabs.hoverPreview.enabled", true); // Enable previews of tab content when hovering over a tab. +pref("browser.tabs.hoverPreview.showThumbnails", true); // Show thumbnails (screenshots) in tab hover previews. + +// Tab Actions (from context menu or elsewhere) +pref("browser.tabs.duplicateTab", true); // Enable the "Duplicate Tab" option in the tab context menu. +pref("browser.tabs.copyurl", true); // Enable "Copy URL" in the tab context menu. +pref("browser.tabs.copyallurls", false); // Enable "Copy All URLs" in the tab context menu (copies URLs of all open tabs). +pref("browser.tabs.copyurl.activetab", false); // If true, "Copy URL" might specifically target only the active tab (less common). +pref("browser.tabs.unloadTab", false); // May enable an option to unload a tab from its context menu (often extension-dependent or for future features). + +// --- Source Viewer & Developer Tools --- +// Settings for web development and inspection tools. + +// Enable `@-moz-document` rules, which can be used by user styles (e.g., via Stylus) to target specific sites. +// [1] https://reddit.com/r/FirefoxCSS/comments/8x2q97/reenabling_mozdocument_rules_in_firefox_61/ +pref("layout.css.moz-document.content.enabled", true); +// Wrap long lines in the View Source window. +pref("view_source.wrap_long_lines", true); +// Wrap long lines in the code editor within the DevTools debugger. +pref("devtools.debugger.ui.editor-wrapping", true); +pref("layout.dynamic-reflow-roots.enabled", true); // Enable dynamic reflow roots for improved rendering performance. + +// --- AI & Machine Learning Features --- +// Controls for features utilizing AI or Machine Learning. +pref("browser.ml.chat.enabled", false); // Disable built-in ML chat features. + +// --- Miscellaneous Feature Toggles --- +// Various standalone feature settings. + +// Image Format Support +pref("image.jxl.enabled", true); // Enable support for the JPEG XL image format. + +// Restart Menu (often provided by extensions or custom builds, not a standard Firefox feature) +pref("browser.restart_menu.showpanelmenubtn", true); // If a restart menu is present, show its button in a panel menu. +pref("browser.restart_menu.purgecache", false); // If true, purges caches upon restart initiated via this menu. +pref("browser.restart_menu.requireconfirm", true); // Require confirmation before restarting via this menu. + +// --- Experimental Web Platform Features --- +// These features are typically under development and might be unstable or change in future releases. +// Use with caution. + +// Enable CSS Masonry Layout (if available in the current browser version). +pref("layout.css.grid-template-masonry-value.enabled", true); +// Enable the Prioritized Task Scheduling API for web pages. +pref("dom.enable_web_task_scheduling", true); // Whether the scheduler interface will be exposed + +// --- DOM Experimental Features --- +// https://whatpr.org/html/10168/interaction.html#closewatcher +pref("dom.closewatcher.enabled", true); +// WebCodecs API - H265 +pref("dom.media.webcodecs.h265.enabled", true); +// Enable Screen Orientation lock +pref("dom.screenorientation.allow-lock", true); +// Whether allowing selection across the boundary +// between shadow DOM and light DOM. +// This is based on https://github.com/mfreed7/shadow-dom-selection +pref("dom.shadowdom.selection_across_boundary.enabled", true); +// When this pref is enabled: +// - Shadow DOM is not pierced by default anymore +// - The method accepts optional CaretPositionFromPointOptions to allow piercing +// certain ShadowRoots +// +// https://drafts.csswg.org/cssom-view/#dom-document-caretpositionfrompoint +pref("dom.shadowdom.new_caretPositionFromPoint_behavior.enabled", true); +pref("dom.webnotifications.actions.enabled", true); +pref("dom.webgpu.enabled", true); // Enable WebGPU API. +pref("dom.webgpu.workers.enabled", true); // Enable WebGPU in Web Workers. +pref("dom.webshare.enabled", true); // Enable Web Share API. + +// --- CSS Experimental Features --- +// Is support for shape() enabled? +pref("layout.css.basic-shape-shape.enabled", true); +// Whether to use tight bounds for floating ::first-letter (legacy Gecko behavior) +// or loose bounds based on overall font metrics (WebKit/Blink-like behavior)? +// Values mean: +// 1 legacy Gecko behavior (tight bounds) +// 0 loose typographic bounds (similar to webkit/blink) +// -1 auto behavior: use loose bounds if reduced line-height (<1em) or negative +// block-start margin is present; otherwise use tight bounds. +pref("layout.css.floating-first-letter.tight-glyph-bounds", -1); +// Is support for font-variant-emoji enabled? +pref("layout.css.font-variant-emoji.enabled", true); +// Whether @scope rule is enabled +pref("layout.css.at-scope.enabled", true); +// Whether the scroll-driven animations generated by CSS is enabled. This +// also include animation-timeline property. +pref("layout.css.scroll-driven-animations.enabled", true); + +// --- SVG Experimental Features --- +// Is support for the new getBBox method from SVG 2 enabled? +// See https://svgwg.org/svg2-draft/single-page.html#types-SVGBoundingBoxOptions +pref("svg.new-getBBox.enabled", true); +// Whether we use Moz2D Path::GetStrokedBounds to get the stroke bounds. +pref("svg.Moz2D.strokeBounds.enabled", true); diff --git a/waterfox/browser/app/profile/04-sidebar.js b/waterfox/browser/app/profile/04-sidebar.js new file mode 100644 index 000000000000..696a328fdbc7 --- /dev/null +++ b/waterfox/browser/app/profile/04-sidebar.js @@ -0,0 +1,28 @@ +#filter dumbComments emptyLines substitution + +// -*- indent-tabs-mode: nil; js-indent-level: 2 -*- +// 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/. + +pref("browser.sidebar.enabled", false); +pref("browser.sidebar.autoAttach", true); +pref("browser.sidebar.syncParentTabAndOpenerTab", true); +pref("browser.sidebar.faviconizePinnedTabs", true); +pref("browser.sidebar.stickyActiveTab", false); +pref("browser.sidebar.stickySoundPlayingTab", false); +pref("browser.sidebar.stickySharingTab", false); +pref("browser.sidebar.autoCollapseExpandSubtreeOnAttach", true); +pref("browser.sidebar.autoCollapseExpandSubtreeOnSelect", true); +pref("browser.sidebar.treeDoubleClickBehavior", "0"); +pref("browser.sidebar.successorTabControlLevel", "2"); +pref("browser.sidebar.dropLinksOnTabBehavior", "0"); +pref("browser.sidebar.autoAttachOnOpenedWithOwner", "5"); +pref("browser.sidebar.insertNewTabFromPinnedTabAt", "3"); +pref("browser.sidebar.autoAttachOnNewTabCommand", "-1"); +pref("browser.sidebar.autoAttachOnNewTabButtonMiddleClick", "3"); +pref("browser.sidebar.autoAttachOnDuplicated", "3"); +pref("browser.sidebar.autoAttachSameSiteOrphan", "3"); +pref("browser.sidebar.autoAttachOnOpenedFromExternal", "-1"); +pref("browser.sidebar.autoAttachOnAnyOtherTrigger", "-1"); +pref("browser.sidebar.insertNewTabFromFirefoxViewAt", "3"); diff --git a/waterfox/browser/moz.build b/waterfox/browser/moz.build index 15ea87272901..cec954d97ca8 100644 --- a/waterfox/browser/moz.build +++ b/waterfox/browser/moz.build @@ -15,5 +15,9 @@ DIST_SUBDIR = "browser" export("DIST_SUBDIR") JS_PREFERENCE_PP_FILES += [ - "app/profile/000-waterfox.js", + "app/profile/00-general.js", + "app/profile/01-theme.js", + "app/profile/02-privacy.js", + "app/profile/03-features.js", + "app/profile/04-sidebar.js", ]