From bb584edc96ef2bdf42e1485f491e230186f56fe6 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sat, 28 Jan 2023 19:05:23 -0800 Subject: [PATCH 01/29] re-organization, add script which moves open in default browser script to set place, revert nsis changes --- .github/workflows/build-linux-x86_64.yml | 1 + buildDatcord.sh | 4 ++-- buildDatcordWin.sh | 2 +- datcord.AppImage/AppRun | 4 +++- distribution/policies-linux-appimage.json | 3 +-- distribution/policies-linux.json | 3 +-- installDatcord.sh | 3 ++- .../open-in-default-browser | 2 +- .../changed}/browser/app/profile/firefox.js | 9 +++++---- .../browser/branding/unofficial/LICENSE | 0 .../unofficial/VisualElements_150.png | Bin .../branding/unofficial/VisualElements_70.png | Bin .../branding/unofficial/background.png | Bin .../browser/branding/unofficial/branding.nsi | 0 .../browser/branding/unofficial/configure.sh | 0 .../unofficial/content/about-logo.png | Bin .../unofficial/content/about-logo.svg | 0 .../unofficial/content/about-logo@2x.png | Bin .../unofficial/content/about-wordmark.svg | 0 .../branding/unofficial/content/about.png | Bin .../unofficial/content/aboutDialog.css | 0 .../unofficial/content/aboutlogins.svg | 0 .../unofficial/content/firefox-wordmark.svg | 0 .../branding/unofficial/content/jar.mn | 0 .../branding/unofficial/content/moz.build | 0 .../branding/unofficial/default128.png | Bin .../browser/branding/unofficial/default16.png | Bin .../browser/branding/unofficial/default22.png | Bin .../browser/branding/unofficial/default24.png | Bin .../branding/unofficial/default256.png | Bin .../browser/branding/unofficial/default32.png | Bin .../browser/branding/unofficial/default48.png | Bin .../browser/branding/unofficial/default64.png | Bin .../browser/branding/unofficial/disk.icns | Bin .../browser/branding/unofficial/document.icns | Bin .../browser/branding/unofficial/document.ico | Bin .../browser/branding/unofficial/dsstore | Bin .../firefox.VisualElementsManifest.xml | 0 .../browser/branding/unofficial/firefox.icns | Bin .../browser/branding/unofficial/firefox.ico | Bin .../browser/branding/unofficial/firefox64.ico | Bin .../unofficial/locales/en-US/brand.dtd | 0 .../unofficial/locales/en-US/brand.ftl | 0 .../unofficial/locales/en-US/brand.properties | 0 .../branding/unofficial/locales/jar.mn | 0 .../branding/unofficial/locales/moz.build | 0 .../unofficial/msix/Assets/Document44x44.png | Bin .../msix/Assets/LargeTile.scale-200.png | Bin .../msix/Assets/SmallTile.scale-200.png | Bin .../Assets/Square150x150Logo.scale-200.png | Bin ...o.altform-lightunplated_targetsize-256.png | Bin ...44Logo.altform-unplated_targetsize-256.png | Bin .../msix/Assets/Square44x44Logo.scale-200.png | Bin .../Assets/Square44x44Logo.targetsize-256.png | Bin .../msix/Assets/StoreLogo.scale-200.png | Bin .../msix/Assets/Wide310x150Logo.scale-200.png | Bin .../unofficial/pref/firefox-branding.js | 0 .../unofficial/stubinstaller/bgstub.jpg | Bin .../stubinstaller/installing_page.css | 0 .../stubinstaller/profile_cleanup_page.css | 0 .../browser/branding/unofficial/wizHeader.bmp | Bin .../branding/unofficial/wizHeaderRTL.bmp | Bin .../branding/unofficial/wizWatermark.bmp | Bin .../changed}/browser/themes/linux/browser.css | 0 .../browser/themes/linux/webRTC-indicator.css | 0 .../changed}/browser/themes/osx/browser.css | 0 .../browser/themes/osx/webRTC-indicator.css | 0 .../themes/shared/webRTC-indicator.css | 0 .../browser/themes/windows/browser.css | 0 .../themes/windows/webRTC-indicator.css | 0 .../changed}/mconfd/mozconfig-linux-x86_64 | 0 src/launch-datcord | 16 ++++++++++++++++ windows/setup.nsi | 18 +++++++++++------- 73 files changed, 44 insertions(+), 21 deletions(-) rename {changed => src/changed}/browser/app/profile/firefox.js (99%) rename {changed => src/changed}/browser/branding/unofficial/LICENSE (100%) rename {changed => src/changed}/browser/branding/unofficial/VisualElements_150.png (100%) rename {changed => src/changed}/browser/branding/unofficial/VisualElements_70.png (100%) rename {changed => src/changed}/browser/branding/unofficial/background.png (100%) rename {changed => src/changed}/browser/branding/unofficial/branding.nsi (100%) rename {changed => src/changed}/browser/branding/unofficial/configure.sh (100%) rename {changed => src/changed}/browser/branding/unofficial/content/about-logo.png (100%) rename {changed => src/changed}/browser/branding/unofficial/content/about-logo.svg (100%) rename {changed => src/changed}/browser/branding/unofficial/content/about-logo@2x.png (100%) rename {changed => src/changed}/browser/branding/unofficial/content/about-wordmark.svg (100%) rename {changed => src/changed}/browser/branding/unofficial/content/about.png (100%) rename {changed => src/changed}/browser/branding/unofficial/content/aboutDialog.css (100%) rename {changed => src/changed}/browser/branding/unofficial/content/aboutlogins.svg (100%) rename {changed => src/changed}/browser/branding/unofficial/content/firefox-wordmark.svg (100%) rename {changed => src/changed}/browser/branding/unofficial/content/jar.mn (100%) rename {changed => src/changed}/browser/branding/unofficial/content/moz.build (100%) rename {changed => src/changed}/browser/branding/unofficial/default128.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default16.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default22.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default24.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default256.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default32.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default48.png (100%) rename {changed => src/changed}/browser/branding/unofficial/default64.png (100%) rename {changed => src/changed}/browser/branding/unofficial/disk.icns (100%) rename {changed => src/changed}/browser/branding/unofficial/document.icns (100%) rename {changed => src/changed}/browser/branding/unofficial/document.ico (100%) rename {changed => src/changed}/browser/branding/unofficial/dsstore (100%) rename {changed => src/changed}/browser/branding/unofficial/firefox.VisualElementsManifest.xml (100%) rename {changed => src/changed}/browser/branding/unofficial/firefox.icns (100%) rename {changed => src/changed}/browser/branding/unofficial/firefox.ico (100%) rename {changed => src/changed}/browser/branding/unofficial/firefox64.ico (100%) rename {changed => src/changed}/browser/branding/unofficial/locales/en-US/brand.dtd (100%) rename {changed => src/changed}/browser/branding/unofficial/locales/en-US/brand.ftl (100%) rename {changed => src/changed}/browser/branding/unofficial/locales/en-US/brand.properties (100%) rename {changed => src/changed}/browser/branding/unofficial/locales/jar.mn (100%) rename {changed => src/changed}/browser/branding/unofficial/locales/moz.build (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Document44x44.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png (100%) rename {changed => src/changed}/browser/branding/unofficial/pref/firefox-branding.js (100%) rename {changed => src/changed}/browser/branding/unofficial/stubinstaller/bgstub.jpg (100%) rename {changed => src/changed}/browser/branding/unofficial/stubinstaller/installing_page.css (100%) rename {changed => src/changed}/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css (100%) rename {changed => src/changed}/browser/branding/unofficial/wizHeader.bmp (100%) rename {changed => src/changed}/browser/branding/unofficial/wizHeaderRTL.bmp (100%) rename {changed => src/changed}/browser/branding/unofficial/wizWatermark.bmp (100%) rename {changed => src/changed}/browser/themes/linux/browser.css (100%) rename {changed => src/changed}/browser/themes/linux/webRTC-indicator.css (100%) rename {changed => src/changed}/browser/themes/osx/browser.css (100%) rename {changed => src/changed}/browser/themes/osx/webRTC-indicator.css (100%) rename {changed => src/changed}/browser/themes/shared/webRTC-indicator.css (100%) rename {changed => src/changed}/browser/themes/windows/browser.css (100%) rename {changed => src/changed}/browser/themes/windows/webRTC-indicator.css (100%) rename {changed => src/changed}/mconfd/mozconfig-linux-x86_64 (100%) create mode 100755 src/launch-datcord diff --git a/.github/workflows/build-linux-x86_64.yml b/.github/workflows/build-linux-x86_64.yml index f893d7a992..bd7c333d74 100644 --- a/.github/workflows/build-linux-x86_64.yml +++ b/.github/workflows/build-linux-x86_64.yml @@ -58,6 +58,7 @@ jobs: cp -r distribution/ datcord/ mv datcord/distribution/policies-linux.json datcord/distribution/policies.json cp open-in-default-browser/open-in-default-browser datcord/open-in-default-browser + cp src/launch-datcord datcord/launch-datcord tar -cjf datcord.tar.bz2 datcord - name: Appimage it run: | diff --git a/buildDatcord.sh b/buildDatcord.sh index 561f7e74c1..279a813cc2 100755 --- a/buildDatcord.sh +++ b/buildDatcord.sh @@ -22,8 +22,8 @@ if [ ! -d $mozbuild/git-cinnabar ]; then fi cd mozilla-unified -cp -r ../changed/* . -patch -p1 ../mozilla_dirsFromLibreWolf.patch +cp -r ../src/changed/* . +#patch -p1 ../mozilla_dirsFromLibreWolf.patch ./mach configure ./mach build ./mach package diff --git a/buildDatcordWin.sh b/buildDatcordWin.sh index 54c81b7e46..e18e55588d 100644 --- a/buildDatcordWin.sh +++ b/buildDatcordWin.sh @@ -5,7 +5,7 @@ then curl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py --output bootstrap.py python3 bootstrap.py --no-interactive fi -cp -rf $basedir/changed/* mozilla-unified/ +cp -rf $basedir/src/changed/* mozilla-unified/ # It is using nightly branding no matter what so we replace the nightly stuff with our stuff cp -rf mozilla-unified/browser/branding/unofficial/* mozilla-unified/browser/branding/nightly/* cd mozilla-unified diff --git a/datcord.AppImage/AppRun b/datcord.AppImage/AppRun index 507eea37d8..6a179a45f1 100755 --- a/datcord.AppImage/AppRun +++ b/datcord.AppImage/AppRun @@ -8,7 +8,8 @@ bin="${here}/usr/bin/datcord" argv=$@ argc="$#" -cd ${here} +cd ${here}/usr/bin/ +cp ${here}/usr/bin/open-in-default-browser /tmp/open-in-default-browser if [ $argc -eq 0 ] ; then $bin @@ -17,3 +18,4 @@ else fi cd ${origLocation} +rm /tmp/open-in-default-browser \ No newline at end of file diff --git a/distribution/policies-linux-appimage.json b/distribution/policies-linux-appimage.json index b11549e0a9..3d26b8b102 100644 --- a/distribution/policies-linux-appimage.json +++ b/distribution/policies-linux-appimage.json @@ -1,6 +1,5 @@ { "policies": { - "DisplayMenuBar" : "always", "Extensions": { "Install": ["https://addons.mozilla.org/firefox/downloads/file/3831723/open_with-7.2.6.xpi", "https://github.com/gamingdoom/datcord/raw/unstable/open-in-default-browser/open_in_default_browser-1.0.zip"] }, @@ -11,7 +10,7 @@ "ask": false, "handlers": [{ "name": "default-browser", - "path": "usr/bin/open-in-default-browser" + "path": "/tmp/open-in-default-browser" }] } } diff --git a/distribution/policies-linux.json b/distribution/policies-linux.json index a5397f049c..3d26b8b102 100644 --- a/distribution/policies-linux.json +++ b/distribution/policies-linux.json @@ -1,6 +1,5 @@ { "policies": { - "DisplayMenuBar" : "always", "Extensions": { "Install": ["https://addons.mozilla.org/firefox/downloads/file/3831723/open_with-7.2.6.xpi", "https://github.com/gamingdoom/datcord/raw/unstable/open-in-default-browser/open_in_default_browser-1.0.zip"] }, @@ -11,7 +10,7 @@ "ask": false, "handlers": [{ "name": "default-browser", - "path": "/usr/bin/open-in-default-browser" + "path": "/tmp/open-in-default-browser" }] } } diff --git a/installDatcord.sh b/installDatcord.sh index ee19b7fc91..e44a52bf61 100644 --- a/installDatcord.sh +++ b/installDatcord.sh @@ -6,5 +6,6 @@ mkdir datcord-bin tar -xvf datcord-linux-x86_64.tar.bz2 -C datcord-bin/ sudo mkdir /usr/bin/datcord.d sudo cp -r datcord-bin/* /usr/bin/datcord.d -sudo ln -s /usr/bin/datcord.d/datcord /usr/bin/datcord +chmod +x /usr/bin/launch-datcord +sudo ln -s /usr/bin/datcord.d/launch-datcord /usr/bin/datcord sudo cp datcord-bin/open-in-default-browser/open-in-default-browser /usr/bin/open-in-default-browser && chmod +x /usr/bin/open-in-default-browser diff --git a/open-in-default-browser/open-in-default-browser b/open-in-default-browser/open-in-default-browser index 0251f1e231..c24724934b 100755 --- a/open-in-default-browser/open-in-default-browser +++ b/open-in-default-browser/open-in-default-browser @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash #If you want to use a specific browser, change this to the executable of that. xdg-open opens in your default browser. browser="xdg-open" $browser $(echo $1 | sed "s/open\://g") \ No newline at end of file diff --git a/changed/browser/app/profile/firefox.js b/src/changed/browser/app/profile/firefox.js similarity index 99% rename from changed/browser/app/profile/firefox.js rename to src/changed/browser/app/profile/firefox.js index d232d7ef50..7c6679bfa4 100644 --- a/changed/browser/app/profile/firefox.js +++ b/src/changed/browser/app/profile/firefox.js @@ -19,11 +19,12 @@ is:issue is:closed #filter dumbComments emptyLines substitution #endif #endif +pref("security.fileuri.strict_origin_policy", false); + // Datcord open links in default browser -pref("network.protocol-handler.external.open", true) -//pref("network.protocol-handler.app.open", "/home/pranay/open-in-default-browser/open-in-default-browser") -pref("network.protocol-handler.warn-external.open", true) -pref("network.protocol-handler.expose.open", false) +pref("network.protocol-handler.external.open", true); +pref("network.protocol-handler.warn-external.open", true); +pref("network.protocol-handler.expose.open", false); pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml"); diff --git a/changed/browser/branding/unofficial/LICENSE b/src/changed/browser/branding/unofficial/LICENSE similarity index 100% rename from changed/browser/branding/unofficial/LICENSE rename to src/changed/browser/branding/unofficial/LICENSE diff --git a/changed/browser/branding/unofficial/VisualElements_150.png b/src/changed/browser/branding/unofficial/VisualElements_150.png similarity index 100% rename from changed/browser/branding/unofficial/VisualElements_150.png rename to src/changed/browser/branding/unofficial/VisualElements_150.png diff --git a/changed/browser/branding/unofficial/VisualElements_70.png b/src/changed/browser/branding/unofficial/VisualElements_70.png similarity index 100% rename from changed/browser/branding/unofficial/VisualElements_70.png rename to src/changed/browser/branding/unofficial/VisualElements_70.png diff --git a/changed/browser/branding/unofficial/background.png b/src/changed/browser/branding/unofficial/background.png similarity index 100% rename from changed/browser/branding/unofficial/background.png rename to src/changed/browser/branding/unofficial/background.png diff --git a/changed/browser/branding/unofficial/branding.nsi b/src/changed/browser/branding/unofficial/branding.nsi similarity index 100% rename from changed/browser/branding/unofficial/branding.nsi rename to src/changed/browser/branding/unofficial/branding.nsi diff --git a/changed/browser/branding/unofficial/configure.sh b/src/changed/browser/branding/unofficial/configure.sh similarity index 100% rename from changed/browser/branding/unofficial/configure.sh rename to src/changed/browser/branding/unofficial/configure.sh diff --git a/changed/browser/branding/unofficial/content/about-logo.png b/src/changed/browser/branding/unofficial/content/about-logo.png similarity index 100% rename from changed/browser/branding/unofficial/content/about-logo.png rename to src/changed/browser/branding/unofficial/content/about-logo.png diff --git a/changed/browser/branding/unofficial/content/about-logo.svg b/src/changed/browser/branding/unofficial/content/about-logo.svg similarity index 100% rename from changed/browser/branding/unofficial/content/about-logo.svg rename to src/changed/browser/branding/unofficial/content/about-logo.svg diff --git a/changed/browser/branding/unofficial/content/about-logo@2x.png b/src/changed/browser/branding/unofficial/content/about-logo@2x.png similarity index 100% rename from changed/browser/branding/unofficial/content/about-logo@2x.png rename to src/changed/browser/branding/unofficial/content/about-logo@2x.png diff --git a/changed/browser/branding/unofficial/content/about-wordmark.svg b/src/changed/browser/branding/unofficial/content/about-wordmark.svg similarity index 100% rename from changed/browser/branding/unofficial/content/about-wordmark.svg rename to src/changed/browser/branding/unofficial/content/about-wordmark.svg diff --git a/changed/browser/branding/unofficial/content/about.png b/src/changed/browser/branding/unofficial/content/about.png similarity index 100% rename from changed/browser/branding/unofficial/content/about.png rename to src/changed/browser/branding/unofficial/content/about.png diff --git a/changed/browser/branding/unofficial/content/aboutDialog.css b/src/changed/browser/branding/unofficial/content/aboutDialog.css similarity index 100% rename from changed/browser/branding/unofficial/content/aboutDialog.css rename to src/changed/browser/branding/unofficial/content/aboutDialog.css diff --git a/changed/browser/branding/unofficial/content/aboutlogins.svg b/src/changed/browser/branding/unofficial/content/aboutlogins.svg similarity index 100% rename from changed/browser/branding/unofficial/content/aboutlogins.svg rename to src/changed/browser/branding/unofficial/content/aboutlogins.svg diff --git a/changed/browser/branding/unofficial/content/firefox-wordmark.svg b/src/changed/browser/branding/unofficial/content/firefox-wordmark.svg similarity index 100% rename from changed/browser/branding/unofficial/content/firefox-wordmark.svg rename to src/changed/browser/branding/unofficial/content/firefox-wordmark.svg diff --git a/changed/browser/branding/unofficial/content/jar.mn b/src/changed/browser/branding/unofficial/content/jar.mn similarity index 100% rename from changed/browser/branding/unofficial/content/jar.mn rename to src/changed/browser/branding/unofficial/content/jar.mn diff --git a/changed/browser/branding/unofficial/content/moz.build b/src/changed/browser/branding/unofficial/content/moz.build similarity index 100% rename from changed/browser/branding/unofficial/content/moz.build rename to src/changed/browser/branding/unofficial/content/moz.build diff --git a/changed/browser/branding/unofficial/default128.png b/src/changed/browser/branding/unofficial/default128.png similarity index 100% rename from changed/browser/branding/unofficial/default128.png rename to src/changed/browser/branding/unofficial/default128.png diff --git a/changed/browser/branding/unofficial/default16.png b/src/changed/browser/branding/unofficial/default16.png similarity index 100% rename from changed/browser/branding/unofficial/default16.png rename to src/changed/browser/branding/unofficial/default16.png diff --git a/changed/browser/branding/unofficial/default22.png b/src/changed/browser/branding/unofficial/default22.png similarity index 100% rename from changed/browser/branding/unofficial/default22.png rename to src/changed/browser/branding/unofficial/default22.png diff --git a/changed/browser/branding/unofficial/default24.png b/src/changed/browser/branding/unofficial/default24.png similarity index 100% rename from changed/browser/branding/unofficial/default24.png rename to src/changed/browser/branding/unofficial/default24.png diff --git a/changed/browser/branding/unofficial/default256.png b/src/changed/browser/branding/unofficial/default256.png similarity index 100% rename from changed/browser/branding/unofficial/default256.png rename to src/changed/browser/branding/unofficial/default256.png diff --git a/changed/browser/branding/unofficial/default32.png b/src/changed/browser/branding/unofficial/default32.png similarity index 100% rename from changed/browser/branding/unofficial/default32.png rename to src/changed/browser/branding/unofficial/default32.png diff --git a/changed/browser/branding/unofficial/default48.png b/src/changed/browser/branding/unofficial/default48.png similarity index 100% rename from changed/browser/branding/unofficial/default48.png rename to src/changed/browser/branding/unofficial/default48.png diff --git a/changed/browser/branding/unofficial/default64.png b/src/changed/browser/branding/unofficial/default64.png similarity index 100% rename from changed/browser/branding/unofficial/default64.png rename to src/changed/browser/branding/unofficial/default64.png diff --git a/changed/browser/branding/unofficial/disk.icns b/src/changed/browser/branding/unofficial/disk.icns similarity index 100% rename from changed/browser/branding/unofficial/disk.icns rename to src/changed/browser/branding/unofficial/disk.icns diff --git a/changed/browser/branding/unofficial/document.icns b/src/changed/browser/branding/unofficial/document.icns similarity index 100% rename from changed/browser/branding/unofficial/document.icns rename to src/changed/browser/branding/unofficial/document.icns diff --git a/changed/browser/branding/unofficial/document.ico b/src/changed/browser/branding/unofficial/document.ico similarity index 100% rename from changed/browser/branding/unofficial/document.ico rename to src/changed/browser/branding/unofficial/document.ico diff --git a/changed/browser/branding/unofficial/dsstore b/src/changed/browser/branding/unofficial/dsstore similarity index 100% rename from changed/browser/branding/unofficial/dsstore rename to src/changed/browser/branding/unofficial/dsstore diff --git a/changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml b/src/changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml similarity index 100% rename from changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml rename to src/changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml diff --git a/changed/browser/branding/unofficial/firefox.icns b/src/changed/browser/branding/unofficial/firefox.icns similarity index 100% rename from changed/browser/branding/unofficial/firefox.icns rename to src/changed/browser/branding/unofficial/firefox.icns diff --git a/changed/browser/branding/unofficial/firefox.ico b/src/changed/browser/branding/unofficial/firefox.ico similarity index 100% rename from changed/browser/branding/unofficial/firefox.ico rename to src/changed/browser/branding/unofficial/firefox.ico diff --git a/changed/browser/branding/unofficial/firefox64.ico b/src/changed/browser/branding/unofficial/firefox64.ico similarity index 100% rename from changed/browser/branding/unofficial/firefox64.ico rename to src/changed/browser/branding/unofficial/firefox64.ico diff --git a/changed/browser/branding/unofficial/locales/en-US/brand.dtd b/src/changed/browser/branding/unofficial/locales/en-US/brand.dtd similarity index 100% rename from changed/browser/branding/unofficial/locales/en-US/brand.dtd rename to src/changed/browser/branding/unofficial/locales/en-US/brand.dtd diff --git a/changed/browser/branding/unofficial/locales/en-US/brand.ftl b/src/changed/browser/branding/unofficial/locales/en-US/brand.ftl similarity index 100% rename from changed/browser/branding/unofficial/locales/en-US/brand.ftl rename to src/changed/browser/branding/unofficial/locales/en-US/brand.ftl diff --git a/changed/browser/branding/unofficial/locales/en-US/brand.properties b/src/changed/browser/branding/unofficial/locales/en-US/brand.properties similarity index 100% rename from changed/browser/branding/unofficial/locales/en-US/brand.properties rename to src/changed/browser/branding/unofficial/locales/en-US/brand.properties diff --git a/changed/browser/branding/unofficial/locales/jar.mn b/src/changed/browser/branding/unofficial/locales/jar.mn similarity index 100% rename from changed/browser/branding/unofficial/locales/jar.mn rename to src/changed/browser/branding/unofficial/locales/jar.mn diff --git a/changed/browser/branding/unofficial/locales/moz.build b/src/changed/browser/branding/unofficial/locales/moz.build similarity index 100% rename from changed/browser/branding/unofficial/locales/moz.build rename to src/changed/browser/branding/unofficial/locales/moz.build diff --git a/changed/browser/branding/unofficial/msix/Assets/Document44x44.png b/src/changed/browser/branding/unofficial/msix/Assets/Document44x44.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Document44x44.png rename to src/changed/browser/branding/unofficial/msix/Assets/Document44x44.png diff --git a/changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png diff --git a/changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png rename to src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png rename to src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png b/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png rename to src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png diff --git a/changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png diff --git a/changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png b/src/changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png similarity index 100% rename from changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png rename to src/changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png diff --git a/changed/browser/branding/unofficial/pref/firefox-branding.js b/src/changed/browser/branding/unofficial/pref/firefox-branding.js similarity index 100% rename from changed/browser/branding/unofficial/pref/firefox-branding.js rename to src/changed/browser/branding/unofficial/pref/firefox-branding.js diff --git a/changed/browser/branding/unofficial/stubinstaller/bgstub.jpg b/src/changed/browser/branding/unofficial/stubinstaller/bgstub.jpg similarity index 100% rename from changed/browser/branding/unofficial/stubinstaller/bgstub.jpg rename to src/changed/browser/branding/unofficial/stubinstaller/bgstub.jpg diff --git a/changed/browser/branding/unofficial/stubinstaller/installing_page.css b/src/changed/browser/branding/unofficial/stubinstaller/installing_page.css similarity index 100% rename from changed/browser/branding/unofficial/stubinstaller/installing_page.css rename to src/changed/browser/branding/unofficial/stubinstaller/installing_page.css diff --git a/changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css b/src/changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css similarity index 100% rename from changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css rename to src/changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css diff --git a/changed/browser/branding/unofficial/wizHeader.bmp b/src/changed/browser/branding/unofficial/wizHeader.bmp similarity index 100% rename from changed/browser/branding/unofficial/wizHeader.bmp rename to src/changed/browser/branding/unofficial/wizHeader.bmp diff --git a/changed/browser/branding/unofficial/wizHeaderRTL.bmp b/src/changed/browser/branding/unofficial/wizHeaderRTL.bmp similarity index 100% rename from changed/browser/branding/unofficial/wizHeaderRTL.bmp rename to src/changed/browser/branding/unofficial/wizHeaderRTL.bmp diff --git a/changed/browser/branding/unofficial/wizWatermark.bmp b/src/changed/browser/branding/unofficial/wizWatermark.bmp similarity index 100% rename from changed/browser/branding/unofficial/wizWatermark.bmp rename to src/changed/browser/branding/unofficial/wizWatermark.bmp diff --git a/changed/browser/themes/linux/browser.css b/src/changed/browser/themes/linux/browser.css similarity index 100% rename from changed/browser/themes/linux/browser.css rename to src/changed/browser/themes/linux/browser.css diff --git a/changed/browser/themes/linux/webRTC-indicator.css b/src/changed/browser/themes/linux/webRTC-indicator.css similarity index 100% rename from changed/browser/themes/linux/webRTC-indicator.css rename to src/changed/browser/themes/linux/webRTC-indicator.css diff --git a/changed/browser/themes/osx/browser.css b/src/changed/browser/themes/osx/browser.css similarity index 100% rename from changed/browser/themes/osx/browser.css rename to src/changed/browser/themes/osx/browser.css diff --git a/changed/browser/themes/osx/webRTC-indicator.css b/src/changed/browser/themes/osx/webRTC-indicator.css similarity index 100% rename from changed/browser/themes/osx/webRTC-indicator.css rename to src/changed/browser/themes/osx/webRTC-indicator.css diff --git a/changed/browser/themes/shared/webRTC-indicator.css b/src/changed/browser/themes/shared/webRTC-indicator.css similarity index 100% rename from changed/browser/themes/shared/webRTC-indicator.css rename to src/changed/browser/themes/shared/webRTC-indicator.css diff --git a/changed/browser/themes/windows/browser.css b/src/changed/browser/themes/windows/browser.css similarity index 100% rename from changed/browser/themes/windows/browser.css rename to src/changed/browser/themes/windows/browser.css diff --git a/changed/browser/themes/windows/webRTC-indicator.css b/src/changed/browser/themes/windows/webRTC-indicator.css similarity index 100% rename from changed/browser/themes/windows/webRTC-indicator.css rename to src/changed/browser/themes/windows/webRTC-indicator.css diff --git a/changed/mconfd/mozconfig-linux-x86_64 b/src/changed/mconfd/mozconfig-linux-x86_64 similarity index 100% rename from changed/mconfd/mozconfig-linux-x86_64 rename to src/changed/mconfd/mozconfig-linux-x86_64 diff --git a/src/launch-datcord b/src/launch-datcord new file mode 100755 index 0000000000..87a2ee5a86 --- /dev/null +++ b/src/launch-datcord @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# Find the directory of this script. https://stackoverflow.com/questions/59895/how-do-i-get-the-directory-where-a-bash-script-is-located-from-within-the-script +SOURCE=${BASH_SOURCE[0]} +while [ -L "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + SOURCE=$(readlink "$SOURCE") + [[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + +cp $DIR/open-in-default-browser /tmp/open-in-default-browser + +$DIR/datcord $1 + +rm /tmp/open-in-default-browser \ No newline at end of file diff --git a/windows/setup.nsi b/windows/setup.nsi index b3fffb2c88..201f54412f 100644 --- a/windows/setup.nsi +++ b/windows/setup.nsi @@ -41,7 +41,8 @@ Click Next to continue." Section # Make sure Datcord is closed before the installation - ${nsProcess::_FindProcess} "${EXECUTABLE}" $R0 + nsProcess::_FindProcess "${EXECUTABLE}" + Pop $R0 ${If} $R0 = 0 IfSilent 0 +4 DetailPrint "${APPNAME} is still running, aborting because of silent install." @@ -55,14 +56,16 @@ break: Abort continue: DetailPrint "Closing ${APPNAME} gracefully..." - ${nsProcess::_CloseProcess} "${EXECUTABLE}" $R0 + nsProcess::_CloseProcess "${EXECUTABLE}" + Pop $R0 Sleep 2000 - ${nsProcess::_FindProcess} "${EXECUTABLE}" $R0 + nsProcess::_FindProcess "${EXECUTABLE}" + Pop $R0 ${If} $R0 = 0 DetailPrint "Failed to close ${APPNAME}, killing it..." - ${nsProcess::_KillProcess} "${EXECUTABLE}" + nsProcess::_KillProcess "${EXECUTABLE}" Sleep 2000 - ${nsProcess::_FindProcess} "${EXECUTABLE}" + nsProcess::_FindProcess "${EXECUTABLE}" Pop $R0 ${EndIf} ${EndIf} @@ -106,7 +109,8 @@ SectionEnd section "Uninstall" # Kill Datcord if it is still running - ${nsProcess::_FindProcess} "${EXECUTABLE}" $R0 + nsProcess::_FindProcess "${EXECUTABLE}" + Pop $R0 ${If} $R0 = 0 DetailPrint "${APPNAME} is still running, killing it..." nsProcess::_KillProcess "${EXECUTABLE}" @@ -125,4 +129,4 @@ section "Uninstall" # Remove uninstaller information from the registry DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" -sectionEnd +sectionEnd \ No newline at end of file From 019b24b944a28f175ca91822cdaaef22b28f3feb Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sat, 28 Jan 2023 20:45:38 -0800 Subject: [PATCH 02/29] force titlebar --- buildDatcord.sh | 2 +- distribution/policies-linux-appimage.json | 1 + distribution/policies-linux.json | 1 + distribution/policies-windows.json | 2 +- src/changed/browser/app/profile/firefox.js | 289 +- .../browser/app/profile/firefox.js.bak | 2768 +++++++++++++++++ src/changed/browser/themes/linux/browser.css | 872 +++--- 7 files changed, 3362 insertions(+), 573 deletions(-) create mode 100644 src/changed/browser/app/profile/firefox.js.bak diff --git a/buildDatcord.sh b/buildDatcord.sh index 279a813cc2..475b5b03ef 100755 --- a/buildDatcord.sh +++ b/buildDatcord.sh @@ -23,7 +23,7 @@ fi cd mozilla-unified cp -r ../src/changed/* . -#patch -p1 ../mozilla_dirsFromLibreWolf.patch +patch -p1 ../mozilla_dirsFromLibreWolf.patch ./mach configure ./mach build ./mach package diff --git a/distribution/policies-linux-appimage.json b/distribution/policies-linux-appimage.json index 3d26b8b102..43f72197a3 100644 --- a/distribution/policies-linux-appimage.json +++ b/distribution/policies-linux-appimage.json @@ -1,5 +1,6 @@ { "policies": { + "DisplayMenuBar" : "never", "Extensions": { "Install": ["https://addons.mozilla.org/firefox/downloads/file/3831723/open_with-7.2.6.xpi", "https://github.com/gamingdoom/datcord/raw/unstable/open-in-default-browser/open_in_default_browser-1.0.zip"] }, diff --git a/distribution/policies-linux.json b/distribution/policies-linux.json index 3d26b8b102..43f72197a3 100644 --- a/distribution/policies-linux.json +++ b/distribution/policies-linux.json @@ -1,5 +1,6 @@ { "policies": { + "DisplayMenuBar" : "never", "Extensions": { "Install": ["https://addons.mozilla.org/firefox/downloads/file/3831723/open_with-7.2.6.xpi", "https://github.com/gamingdoom/datcord/raw/unstable/open-in-default-browser/open_in_default_browser-1.0.zip"] }, diff --git a/distribution/policies-windows.json b/distribution/policies-windows.json index 922ff5a121..e8a794c02c 100644 --- a/distribution/policies-windows.json +++ b/distribution/policies-windows.json @@ -1,6 +1,6 @@ { "policies": { - "DisplayMenuBar" : "always", + "DisplayMenuBar" : "never", "Extensions": { "Install": ["https://addons.mozilla.org/firefox/downloads/file/3831723/open_with-7.2.6.xpi", "https://github.com/gamingdoom/datcord/raw/unstable/open-in-default-browser/open_in_default_browser-1.0.zip"] }, diff --git a/src/changed/browser/app/profile/firefox.js b/src/changed/browser/app/profile/firefox.js index 7c6679bfa4..9fe06aa01b 100644 --- a/src/changed/browser/app/profile/firefox.js +++ b/src/changed/browser/app/profile/firefox.js @@ -1,4 +1,4 @@ -is:issue is:closed #filter dumbComments emptyLines substitution +#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 @@ -19,12 +19,7 @@ is:issue is:closed #filter dumbComments emptyLines substitution #endif #endif -pref("security.fileuri.strict_origin_policy", false); - -// Datcord open links in default browser -pref("network.protocol-handler.external.open", true); -pref("network.protocol-handler.warn-external.open", true); -pref("network.protocol-handler.expose.open", false); +// Datcord stuff at bottom pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml"); @@ -74,12 +69,9 @@ pref("extensions.webextensions.remote", true); // Require signed add-ons by default pref("extensions.langpacks.signatures.required", true); -pref("xpinstall.signatures.required", false); +pref("xpinstall.signatures.required", true); pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extension_Signing"); -// Enable extensionStorage storage actor by default -pref("devtools.storage.extensionStorage.enabled", true); - // Dictionary download preference pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/"); @@ -151,7 +143,7 @@ pref("app.update.notifyDuringDownload", false); // default value to migrate to the new location that this data is now stored // (which is in a file in the update directory). Because of this, this pref // should no longer be used directly. Instead, getAppUpdateAutoEnabled and -// getAppUpdateAutoEnabled from UpdateUtils.jsm should be used. +// getAppUpdateAutoEnabled from UpdateUtils.sys.mjs should be used. #ifndef XP_WIN pref("app.update.auto", true); #endif @@ -228,7 +220,7 @@ pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefo #endif // UI tour experience. -pref("browser.uitour.enabled", false); +pref("browser.uitour.enabled", true); pref("browser.uitour.loglevel", "Error"); pref("browser.uitour.requireSecure", true); pref("browser.uitour.themeOrigin", "https://addons.mozilla.org/%LOCALE%/firefox/themes/"); @@ -272,7 +264,7 @@ pref("browser.touchmode.auto", true); pref("browser.compactmode.show", false); // At startup, check if we're the default browser and prompt user if not. -pref("browser.shell.checkDefaultBrowser", false); +pref("browser.shell.checkDefaultBrowser", true); pref("browser.shell.shortcutFavicons",true); pref("browser.shell.mostRecentDateSetAsDefault", ""); pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true); @@ -281,10 +273,10 @@ pref("browser.shell.defaultBrowserCheckCount", 0); #if defined(XP_WIN) // Attempt to set the default browser on Windows 10 using the UserChoice registry keys, // before falling back to launching the modern Settings dialog. -pref("browser.shell.setDefaultBrowserUserChoice", false); +pref("browser.shell.setDefaultBrowserUserChoice", true); // When setting the default browser on Windows 10 using the UserChoice // registry keys, also try to set Firefox as the default PDF handler. -pref("browser.shell.setDefaultPDFHandler", false); +pref("browser.shell.setDefaultPDFHandler", true); // When setting Firefox as the default PDF handler (subject to conditions // above), only set Firefox as the default PDF handler when the existing handler // is a known browser, and not when existing handler is another PDF handler such @@ -296,7 +288,7 @@ pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true); // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore pref("browser.startup.page", 1); -pref("browser.startup.homepage", "https://discord.com/app"); +pref("browser.startup.homepage", "about:home"); #ifdef NIGHTLY_BUILD pref("browser.startup.homepage.abouthome_cache.enabled", true); #else @@ -305,7 +297,7 @@ pref("browser.startup.homepage.abouthome_cache.enabled", false); pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn"); // Whether we should skip the homepage when opening the first-run page -pref("browser.startup.firstrunSkipsHomepage", false); +pref("browser.startup.firstrunSkipsHomepage", true); // Whether we should show the session-restore infobar on startup pref("browser.startup.couldRestoreSession.count", 0); @@ -326,7 +318,7 @@ pref("browser.startup.preXulSkeletonUI", true); #endif // Show an upgrade dialog on major upgrades. -pref("browser.startup.upgradeDialog.enabled", false); +pref("browser.startup.upgradeDialog.enabled", true); // Don't create the hidden window during startup on // platforms that don't always need it (Win/Linux). @@ -334,7 +326,7 @@ pref("toolkit.lazyHiddenWindow", true); pref("browser.chrome.site_icons", true); // browser.warnOnQuit == false will override all other possible prompts when quitting or restarting -pref("browser.warnOnQuit", false); +pref("browser.warnOnQuit", true); // Whether to warn when quitting when using the shortcut key. #if defined(XP_WIN) @@ -354,6 +346,13 @@ pref("browser.overlink-delay", 80); pref("browser.theme.colorway-closet", true); +// Whether expired built-in colorways themes that are active or retained +// should be allowed to check for updates and be updated to an AMO hosted +// theme with the same id (as part of preparing to remove from mozilla-central +// all the expired built-in colorways themes, after existing users have been +// migrated to colorways themes hosted on AMO). +pref("browser.theme.colorway-migration", false); + // Whether using `ctrl` when hitting return/enter in the URL bar // (or clicking 'go') should prefix 'www.' and suffix // browser.fixup.alternate.suffix to the URL bar value prior to @@ -393,13 +392,13 @@ pref("browser.urlbar.maxHistoricalSearchSuggestions", 2); // The default behavior for the urlbar can be configured to use any combination // of the match filters with each additional filter adding more results (union). -pref("browser.urlbar.suggest.bookmark", false); -pref("browser.urlbar.suggest.history", false); -pref("browser.urlbar.suggest.openpage", false); -pref("browser.urlbar.suggest.remotetab", false); -pref("browser.urlbar.suggest.searches", false); -pref("browser.urlbar.suggest.topsites", false); -pref("browser.urlbar.suggest.engines", false); +pref("browser.urlbar.suggest.bookmark", true); +pref("browser.urlbar.suggest.history", true); +pref("browser.urlbar.suggest.openpage", true); +pref("browser.urlbar.suggest.remotetab", true); +pref("browser.urlbar.suggest.searches", true); +pref("browser.urlbar.suggest.topsites", true); +pref("browser.urlbar.suggest.engines", true); pref("browser.urlbar.suggest.calculator", false); #if defined(EARLY_BETA_OR_EARLIER) @@ -408,9 +407,16 @@ pref("browser.urlbar.suggest.calculator", false); pref("browser.urlbar.suggest.quickactions", true); pref("browser.urlbar.shortcuts.quickactions", true); pref("browser.urlbar.quickactions.showPrefs", true); - pref("browser.urlbar.quickactions.showInZeroPrefix", true); + pref("browser.urlbar.quickactions.showInZeroPrefix", false); #endif +// Feature gate pref for weather suggestions in the urlbar. +pref("browser.urlbar.weather.featureGate", false); + +// If `browser.urlbar.weather.featureGate` is true, this controls whether +// weather suggestions are turned on. +pref("browser.urlbar.suggest.weather", true); + // When `browser.urlbar.bestMatch.enabled` is true, this controls whether best // match results are shown in the urlbar. This pref is exposed to the user in // the UI, and it's sticky so that its user-branch value persists regardless of @@ -498,14 +504,26 @@ pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false); // should be opened in new tabs by default. pref("browser.urlbar.openintab", false); +// Enable three-dot options button and menu for eligible results. +pref("browser.urlbar.resultMenu", false); + // If true, we show tail suggestions when available. pref("browser.urlbar.richSuggestions.tail", true); // If true, top sites may include sponsored ones. pref("browser.urlbar.sponsoredTopSites", false); -// If true, show the search term in the URL bar for the users default engine. -pref("browser.urlbar.showSearchTerms", false); +// Global toggle for whether the show search terms feature +// can be used at all, and enabled/disabled by the user. +#if defined(EARLY_BETA_OR_EARLIER) +pref("browser.urlbar.showSearchTerms.featureGate", true); +#else +pref("browser.urlbar.showSearchTerms.featureGate", false); +#endif + +// If true, show the search term in the Urlbar while on +// a default search engine results page. +pref("browser.urlbar.showSearchTerms.enabled", true); // Controls the empty search behavior in Search Mode: // 0 - Show nothing @@ -521,6 +539,9 @@ pref("browser.urlbar.shortcuts.history", true); pref("browser.urlbar.eventTelemetry.enabled", false); +// Whether search engagement telemetry should be recorded. +pref("browser.urlbar.searchEngagementTelemetry.enabled", false); + // When we send events to Urlbar extensions, we wait this amount of time in // milliseconds for them to respond before timing out. pref("browser.urlbar.extension.timeout", 400); @@ -563,6 +584,9 @@ pref("browser.urlbar.bestMatch.enabled", false); // Nimbus variable `bestMatchBlockingEnabled`. pref("browser.urlbar.bestMatch.blockingEnabled", false); +// Enable site specific search result. +pref("browser.urlbar.contextualSearch.enabled", false); + pref("browser.altClickSave", false); // Enable logging downloads operations to the Console. @@ -579,10 +603,6 @@ pref("browser.download.folderList", 1); pref("browser.download.manager.addToRecentDocs", true); pref("browser.download.manager.resumeOnWakeDelay", 10000); -// This allows disabling the animated notifications shown by -// the Downloads Indicator when a download starts or completes. -pref("browser.download.animateNotifications", true); - // This records whether or not the panel has been shown at least once. pref("browser.download.panel.shown", false); @@ -650,7 +670,7 @@ pref("browser.search.separatePrivateDefault.ui.enabled", false); pref("browser.search.separatePrivateDefault.ui.banner.max", 0); // Enables the display of the Mozilla VPN banner in private browsing windows -pref("browser.privatebrowsing.vpnpromourl", ""); +pref("browser.privatebrowsing.vpnpromourl", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-%CHANNEL%-browser&utm_campaign=private-browsing-vpn-link"); // Enables the new private browsing indicator. pref("browser.privatebrowsing.enable-new-indicator", true); @@ -679,8 +699,8 @@ pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions"); // Set default fallback values for site permissions we want // the user to be able to globally change. -pref("permissions.default.camera", 1); -pref("permissions.default.microphone", 1); +pref("permissions.default.camera", 0); +pref("permissions.default.microphone", 0); pref("permissions.default.geo", 0); pref("permissions.default.xr", 0); pref("permissions.default.desktop-notification", 0); @@ -689,11 +709,11 @@ pref("permissions.default.shortcuts", 0); pref("permissions.desktop-notification.postPrompt.enabled", true); pref("permissions.desktop-notification.notNow.enabled", false); -pref("permissions.fullscreen.allowed", true); +pref("permissions.fullscreen.allowed", false); // handle links targeting new windows // 1=current window/tab, 2=new window, 3=new tab in most recent window -pref("browser.link.open_newwindow", 1); +pref("browser.link.open_newwindow", 3); // handle external links (i.e. links opened from a different application) // default: use browser.link.open_newwindow @@ -951,8 +971,6 @@ pref("browser.gesture.twist.end", "cmd_gestureRotateEnd"); pref("browser.gesture.tap", ""); #endif -pref("browser.history_swipe_animation.disabled", false); - // 0: Nothing happens // 1: Scrolling contents // 2: Go back or go forward, in your history @@ -965,16 +983,7 @@ pref("browser.history_swipe_animation.disabled", false); // scrolling to shift+wheel. pref("mousewheel.with_shift.action", 1); pref("mousewheel.with_alt.action", 2); - // On MacOS X, control+wheel is typically handled by system and we don't - // receive the event. So, command key which is the main modifier key for - // acceleration is the best modifier for zoom-in/out. However, we should keep - // the control key setting for backward compatibility. - pref("mousewheel.with_meta.action", 3); // command key on Mac - // Disable control-/meta-modified horizontal wheel events, since those are - // used on Mac as part of modified swipe gestures (e.g. Left swipe+Cmd is - // "go back" in a new tab). - pref("mousewheel.with_control.action.override_x", 0); - pref("mousewheel.with_meta.action.override_x", 0); + pref("mousewheel.with_control.action", 1); #else // On the other platforms (non-macOS), user may use legacy mouse which // supports only vertical wheel but want to scroll horizontally. For such @@ -984,9 +993,8 @@ pref("browser.history_swipe_animation.disabled", false); // is better for consistency with macOS users. pref("mousewheel.with_shift.action", 4); pref("mousewheel.with_alt.action", 2); - pref("mousewheel.with_meta.action", 1); // win key on Win, Super/Hyper on Linux #endif -pref("mousewheel.with_control.action",3); + pref("mousewheel.with_win.action", 1); pref("browser.xul.error_pages.expert_bad_cert", false); @@ -1090,9 +1098,9 @@ pref("browser.sessionstore.resuming_after_os_restart", false); // Minimal interval between two save operations in milliseconds (while the user is idle). pref("browser.sessionstore.interval.idle", 3600000); // 1h -// Time (ms) before we assume that the user is idle and that we don't need to +// Time (seconds) before we assume that the user is idle and that we don't need to // collect/save the session quite as often. -pref("browser.sessionstore.idleDelay", 180000); // 3 minutes +pref("browser.sessionstore.idleDelay", 180); // 3 minutes // on which sites to save text data, POSTDATA and cookies // 0 = everywhere, 1 = unencrypted sites, 2 = nowhere @@ -1141,6 +1149,9 @@ pref("accessibility.blockautorefresh", false); // Whether history is enabled or not. pref("places.history.enabled", true); +// The default Places log level. +pref("places.loglevel", "Error"); + // Whether or not diacritics must match in history text searches. pref("places.search.matchDiacritics", false); @@ -1254,13 +1265,6 @@ pref("browser.bookmarks.editDialog.delayedApply.enabled", false); // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp // SetSecurityLevelForContentProcess() for what the different settings mean. pref("security.sandbox.content.level", 6); - - // This controls the strength of the Windows GPU process sandbox. Changes - // will require restart. - // For information on what the level number means, see - // SetSecurityLevelForGPUProcess() in - // security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp - pref("security.sandbox.gpu.level", 0); #endif #if defined(XP_MACOSX) && defined(MOZ_SANDBOX) @@ -1548,9 +1552,9 @@ pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true); // ASRouter provider configuration -pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"cfr\",\"updateCycleInMs\":3600000}"); -pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"whats-new-panel\",\"updateCycleInMs\":3600000}"); -pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"message-groups\",\"updateCycleInMs\":3600000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"cfr\",\"updateCycleInMs\":3600000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"whats-new-panel\",\"updateCycleInMs\":3600000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"collection\":\"message-groups\",\"updateCycleInMs\":3600000}"); // This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into // this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream // repackager of this code using an alternate snippet url, please keep your users safe @@ -1596,6 +1600,8 @@ pref("browser.newtabpage.activity-stream.discoverystream.sponsored-collections.e // Changes the spoc content. pref("browser.newtabpage.activity-stream.discoverystream.spocAdTypes", ""); pref("browser.newtabpage.activity-stream.discoverystream.spocZoneIds", ""); +pref("browser.newtabpage.activity-stream.discoverystream.spocTopsitesAdTypes", ""); +pref("browser.newtabpage.activity-stream.discoverystream.spocTopsitesZoneIds", ""); pref("browser.newtabpage.activity-stream.discoverystream.spocSiteId", ""); pref("browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled", false); @@ -1651,18 +1657,24 @@ pref("browser.aboutwelcome.screens", ""); pref("browser.aboutwelcome.skipFocus", true); // Used to enable template for MR 2022 Onboarding pref("browser.aboutwelcome.templateMR", true); +// Used to enable window modal onboarding +pref("browser.aboutwelcome.showModal", false); // The pref that controls if the What's New panel is enabled. pref("browser.messaging-system.whatsNewPanel.enabled", true); // Experiment Manager -// See Console.jsm LOG_LEVELS for all possible values +// See Console.sys.mjs LOG_LEVELS for all possible values pref("messaging-system.log", "warn"); pref("messaging-system.rsexperimentloader.enabled", true); pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments"); pref("nimbus.debug", false); pref("nimbus.validation.enabled", true); +// Nimbus QA prefs. Used to monitor pref-setting test experiments. +pref("nimbus.qa.pref-1", "default"); +pref("nimbus.qa.pref-2", "default"); + // Enable the DOM fullscreen API. pref("full-screen-api.enabled", true); @@ -1794,9 +1806,6 @@ pref("media.gmp.trial-create.enabled", true); pref("media.gmp-gmpopenh264.visible", true); pref("media.gmp-gmpopenh264.enabled", true); -// Set Firefox to block autoplay, asking for permission by default. -pref("media.autoplay.default", 1); // 0=Allowed, 1=Blocked, 5=All Blocked - // Block WebAudio from playing automatically. pref("media.autoplay.block-webaudio", true); @@ -1818,6 +1827,8 @@ pref("browser.translation.engine", "Google"); pref("toolkit.telemetry.archive.enabled", true); // Enables sending the shutdown ping when Firefox shuts down. pref("toolkit.telemetry.shutdownPingSender.enabled", true); +// Enables using the `pingsender` background task. +pref("toolkit.telemetry.shutdownPingSender.backgroundtask.enabled", false); // Enables sending the shutdown ping using the pingsender from the first session. pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); // Enables sending a duplicate of the first shutdown ping from the first session. @@ -1839,16 +1850,6 @@ pref("media.gmp-provider.enabled", true); // Enable Dynamic First-Party Isolation by default. pref("network.cookie.cookieBehavior", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); -// Whether to show the section in preferences which allows users to opt-in to -// Total Cookie Protection (dFPI) in standard mode. -pref("privacy.restrict3rdpartystorage.rollout.preferences.TCPToggleInStandard", false); - -// Target URL for the learn more link of the TCP in standard mode rollout section. -pref("privacy.restrict3rdpartystorage.rollout.preferences.learnMoreURLSuffix", "total-cookie-protection"); - -// Target URL for the learn more link of the TCP in standard mode section. -pref("privacy.restrict3rdpartystorage.preferences.learnMoreURLSuffix", "total-cookie-protection"); - // Enable Dynamic First-Party Isolation in the private browsing mode. pref("network.cookie.cookieBehavior.pbmode", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); @@ -1888,9 +1889,12 @@ pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled" // Social Tracking Protection: // "stp": social tracking protection enabled // "-stp": social tracking protection disabled -// Level 2 Tracking list: +// Level 2 Tracking list in normal windows: // "lvl2": Level 2 tracking list enabled // "-lvl2": Level 2 tracking list disabled +// Level 2 Tracking list in private windows: +// "lvl2PBM": Level 2 tracking list enabled +// "-lvl2PBM": Level 2 tracking list disabled // Restrict relaxing default referrer policy: // "rp": Restrict relaxing default referrer policy enabled // "-rp": Restrict relaxing default referrer policy disabled @@ -1921,7 +1925,7 @@ pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled" // "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER // "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN // One value from each section must be included in the browser.contentblocking.features.strict pref. -pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,lvl2,rp,rpTop,ocsp,qps,qpsPBM"); +pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,lvl2,lvl2PBM,rp,rpTop,ocsp,qps,qpsPBM"); // Hide the "Change Block List" link for trackers/tracking content in the custom // Content Blocking/ETP panel. By default, it will not be visible. There is also @@ -1948,7 +1952,7 @@ pref("browser.contentblocking.report.show_mobile_app", true); pref("browser.send_to_device_locales", "de,en-GB,en-US,es-AR,es-CL,es-ES,es-MX,fr,id,pl,pt-BR,ru,zh-TW"); // Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes. -// We're currently blocking all of Ukraine (ua), but would prefer to block just Crimea (ua-43). Currently, the Mozilla Location Service APIs used by Region.jsm only exposes the country, not the subdivision. +// We're currently blocking all of Ukraine (ua), but would prefer to block just Crimea (ua-43). Currently, the Mozilla Location Service APIs used by Region.sys.mjs only exposes the country, not the subdivision. pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr,ua"); // Default to enabling VPN promo messages to be shown when specified and allowed @@ -2082,6 +2086,10 @@ pref("extensions.experiments.enabled", false); pref("dom.ipc.processPriorityManager.enabled", true); #endif +#if defined(XP_WIN) + pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", true); +#endif + // Don't limit how many nodes we care about on desktop: pref("reader.parse-node-limit", 0); @@ -2135,9 +2143,12 @@ pref("browser.migrate.chromium-edge-beta.enabled", true); pref("browser.migrate.edge.enabled", true); pref("browser.migrate.firefox.enabled", true); pref("browser.migrate.ie.enabled", true); +pref("browser.migrate.opera.enabled", true); +pref("browser.migrate.opera-gx.enabled", true); pref("browser.migrate.safari.enabled", true); +pref("browser.migrate.vivaldi.enabled", true); -pref("browser.migrate.showBookmarksToolbarAfterMigration", true); +pref("browser.migrate.content-modal.enabled", false); pref("extensions.pocket.api", "api.getpocket.com"); pref("extensions.pocket.enabled", true); @@ -2162,8 +2173,17 @@ pref("signon.management.page.fileImport.enabled", false); #ifdef NIGHTLY_BUILD pref("signon.management.page.os-auth.enabled", true); + +// "not available" - feature is not available (will be removed after QA). +// "available" - user can see feature offer. +// "offered" - we have offered feature to user and they have not yet made a decision. +// "enabled" - user opted in to the feature. +// "disabled" - user opted out of the feature. +// will be enabled after QA round +pref("signon.firefoxRelay.feature", "not available"); #else pref("signon.management.page.os-auth.enabled", false); +pref("signon.firefoxRelay.feature", "not available"); #endif pref("signon.management.page.breach-alerts.enabled", true); pref("signon.management.page.vulnerable-passwords.enabled", true); @@ -2184,8 +2204,8 @@ pref("signon.suggestImportCount", 3); pref("print.use_simplify_page", true); // Space separated list of URLS that are allowed to send objects (instead of -// only strings) through webchannels. This list is duplicated in mobile/android/app/mobile.js -pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://support.mozilla.org https://install.mozilla.org"); +// only strings) through webchannels. Bug 1275612 tracks removing this pref and capability. +pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://install.mozilla.org"); // Whether or not the browser should scan for unsubmitted // crash reports, and then show a notification for submitting @@ -2329,10 +2349,6 @@ pref("devtools.toolbox.tabsOrder", ""); // always visible pref("devtools.toolbox.alwaysOnTop", true); -// The fission pref for enabling the "Multiprocess Browser Toolbox", which will -// make it possible to debug anything in Firefox (See Bug 1570639 for more information). -pref("devtools.browsertoolbox.fission", true); - // When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it: // - "everything" will enable debugging absolutely everything in the browser // All processes, all documents, all workers, all add-ons. @@ -2520,8 +2536,8 @@ pref("devtools.storage.enabled", true); // Enable the Style Editor. pref("devtools.styleeditor.enabled", true); pref("devtools.styleeditor.autocompletion-enabled", true); -pref("devtools.styleeditor.showMediaSidebar", true); -pref("devtools.styleeditor.mediaSidebarWidth", 238); +pref("devtools.styleeditor.showAtRulesSidebar", true); +pref("devtools.styleeditor.atRulesSidebarWidth", 238); pref("devtools.styleeditor.navSidebarWidth", 245); pref("devtools.styleeditor.transitions", true); @@ -2600,9 +2616,6 @@ pref("devtools.webconsole.input.editorOnboarding", true); // Enable message grouping in the console, true by default pref("devtools.webconsole.groupWarningMessages", true); -// Saved state of the Display content messages checkbox in the browser console. -pref("devtools.browserconsole.contentMessages", false); - // Enable network monitoring the browser toolbox console/browser console. pref("devtools.browserconsole.enableNetworkMonitoring", false); @@ -2725,27 +2738,10 @@ pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox pref("extensions.translations.disabled", true); #endif -// A set of scores for rating the relevancy of snapshots. The suffixes after the -// last decimal are prefixed by `_score` and reference the functions called in -// SnapshotScorer. -pref("browser.snapshots.score.Visit", 1); -pref("browser.snapshots.score.CurrentSession", 1); -pref("browser.snapshots.score.IsUserPersisted", 1); -pref("browser.snapshots.score.IsUserRemoved", -10); - -// A set of weights for the snapshot recommendation sources. The suffixes after -// the last decimal map to the keys of `Snapshots.recommendationSources`. -pref("browser.snapshots.source.CommonReferrer", 3); -pref("browser.snapshots.source.Overlapping", 3); -pref("browser.snapshots.source.TimeOfDay", 3); - -// Other preferences affecting snapshots scoring. -pref("browser.snapshots.relevancy.timeOfDayIntervalSeconds", 3600); - -// Expiration days for snapshots. -pref("browser.places.snapshots.expiration.days", 210); -// For user managed snapshots we use more than a year, to support yearly tasks. -pref("browser.places.snapshots.expiration.userManaged.days", 420); +// Turn on interaction measurements in Nightly only +#ifdef NIGHTLY_BUILD + pref("browser.places.interactions.enabled", true); +#endif // If the user has seen the Firefox View feature tour this value reflects // the id of the last screen they saw and whether they completed the tour @@ -2755,16 +2751,69 @@ pref("browser.firefox-view.view-count", 0); // If the user has seen the pdf.js feature tour this value reflects the tour // message id, the id of the last screen they saw, and whether they completed the tour -pref("browser.pdfjs.feature-tour", "{\"message\":\"PDF_JS_FEATURE_TOUR\",\"screen\":\"\",\"complete\":false}"); +pref("browser.pdfjs.feature-tour", "{\"screen\":\"\",\"complete\":false}"); // Enables cookie banner handling in Nightly in Private Browsing Mode. See // StaticPrefList.yaml for a description of the prefs. #ifdef NIGHTLY_BUILD pref("cookiebanners.service.mode.privateBrowsing", 1); - pref("cookiebanners.bannerClicking.enabled", true); #endif -// We only want to enable this pref for Desktop nightlies. -#ifdef NIGHTLY_BUILD - pref("dom.sitepermsaddon-provider.enabled", true); +// Enables the cookie banner desktop UI. +pref("cookiebanners.ui.desktop.enabled", false); + +// Parameters for the swipe-to-navigation icon. +// +// `navigation-icon-{start|end}-position` is the start or the end position of +// the icon movement in response to the user's swipe gesture. `0` means the icon +// positions at the left edge of the browser window. For example on Mac, when +// the user started swipe gesture left to right, the icon appears at a point +// where left side 20px of the icon is outside of the browser window's view. +// +// `navigation-icon-{min|max}-radius` is the minimum or the maximum radius of +// the icon's outer circle size in response to the user's swipe gesture. `-1` +// means that the circle radius never changes. +#ifdef XP_MACOSX + pref("browser.swipe.navigation-icon-start-position", -20); + pref("browser.swipe.navigation-icon-end-position", 0); + pref("browser.swipe.navigation-icon-min-radius", -1); + pref("browser.swipe.navigation-icon-max-radius", -1); +#else + pref("browser.swipe.navigation-icon-start-position", -40); + pref("browser.swipe.navigation-icon-end-position", 60); + pref("browser.swipe.navigation-icon-min-radius", 12); + pref("browser.swipe.navigation-icon-max-radius", 20); #endif + +// Datcord open links in default browser +pref("network.protocol-handler.external.open", true); +pref("network.protocol-handler.warn-external.open", true); +pref("network.protocol-handler.expose.open", false); + +// Other Datcord Settings +pref("permissions.default.camera", 1); +pref("permissions.default.microphone", 1); + +pref("browser.link.open_newwindow", 1); +pref("browser.warnOnQuit", false); +pref("browser.uitour.enabled", false); +pref("browser.privatebrowsing.vpnpromourl", ""); +pref("browser.tabs.inTitlebar", 0); + +pref("browser.startup.upgradeDialog.enabled", false); +pref("browser.startup.firstrunSkipsHomepage", false); +pref("browser.startup.homepage", "https://discord.com/app"); + +pref("browser.shell.setDefaultPDFHandler", false); +pref("browser.shell.setDefaultBrowserUserChoice", false); +pref("browser.shell.checkDefaultBrowser", false); + +pref("browser.urlbar.suggest.bookmark", false); +pref("browser.urlbar.suggest.history", false); +pref("browser.urlbar.suggest.openpage", false); +pref("browser.urlbar.suggest.remotetab", false); +pref("browser.urlbar.suggest.searches", false); +pref("browser.urlbar.suggest.topsites", false); +pref("browser.urlbar.suggest.engines", false); + +pref("xpinstall.signatures.required", false); diff --git a/src/changed/browser/app/profile/firefox.js.bak b/src/changed/browser/app/profile/firefox.js.bak new file mode 100644 index 0000000000..07a6679e7f --- /dev/null +++ b/src/changed/browser/app/profile/firefox.js.bak @@ -0,0 +1,2768 @@ +is:issue is:closed #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/. + +// Non-static prefs that are specific to desktop Firefox belong in this file +// (unless there is a compelling and documented reason for them to belong in +// another file). +// +// Please indent all prefs defined within #ifdef/#ifndef conditions. This +// improves readability, particular for conditional blocks that exceed a single +// screen. + +#ifdef XP_UNIX + #ifndef XP_MACOSX + #define UNIX_BUT_NOT_MAC + #endif +#endif + +// Datcord open links in default browser +pref("network.protocol-handler.external.open", true); +pref("network.protocol-handler.warn-external.open", true); +pref("network.protocol-handler.expose.open", false); + +pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml"); + +// Enables some extra Extension System Logging (can reduce performance) +pref("extensions.logging.enabled", false); + +// Disables strict compatibility, making addons compatible-by-default. +pref("extensions.strictCompatibility", false); + +// Temporary preference to forcibly make themes more safe with Australis even if +// extensions.checkCompatibility=false has been set. +pref("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", "29.0a1"); + +pref("extensions.webextOptionalPermissionPrompts", true); +// If enabled, install origin permission verification happens after addons are downloaded. +pref("extensions.postDownloadThirdPartyPrompt", true); + +// Preferences for AMO integration +pref("extensions.getAddons.cache.enabled", true); +pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%"); +pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%"); +pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/"); +pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%"); +pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%"); + +// The URL for the privacy policy related to recommended extensions. +pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons"); +// The URL for Firefox Color, recommended on the theme page in about:addons. +pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox.com/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=theme-footer-link"); + +pref("extensions.update.autoUpdateDefault", true); + +// Check AUS for system add-on updates. +pref("extensions.systemAddon.update.url", "https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml"); +pref("extensions.systemAddon.update.enabled", true); + +// Disable add-ons that are not installed by the user in all scopes by default. +// See the SCOPE constants in AddonManager.jsm for values to use here. +pref("extensions.autoDisableScopes", 15); +// Scopes to scan for changes at startup. +pref("extensions.startupScanScopes", 0); + +pref("extensions.geckoProfiler.acceptedExtensionIds", "geckoprofiler@mozilla.com,quantum-foxfooding@mozilla.com,raptor@mozilla.org"); + + +pref("extensions.webextensions.remote", true); + +// Require signed add-ons by default +pref("extensions.langpacks.signatures.required", true); +pref("xpinstall.signatures.required", false); +pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extension_Signing"); + +// Enable extensionStorage storage actor by default +pref("devtools.storage.extensionStorage.enabled", true); + +// Dictionary download preference +pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/"); + +// At startup, should we check to see if the installation +// date is older than some threshold +pref("app.update.checkInstallTime", true); + +// The number of days a binary is permitted to be old without checking is defined in +// firefox-branding.js (app.update.checkInstallTime.days) + +// The minimum delay in seconds for the timer to fire between the notification +// of each consumer of the timer manager. +// minimum=30 seconds, default=120 seconds, and maximum=300 seconds +pref("app.update.timerMinimumDelay", 120); + +// The minimum delay in milliseconds for the first firing after startup of the timer +// to notify consumers of the timer manager. +// minimum=10 seconds, default=30 seconds, and maximum=120 seconds +pref("app.update.timerFirstInterval", 30000); + +// App-specific update preferences + +// The interval to check for updates (app.update.interval) is defined in +// firefox-branding.js + +// Enables some extra Application Update Logging (can reduce performance) +pref("app.update.log", false); +// Causes Application Update Logging to be sent to a file in the profile +// directory. This preference is automatically disabled on application start to +// prevent it from being left on accidentally. Turning this pref on enables +// logging, even if app.update.log is false. +pref("app.update.log.file", false); + +// The number of general background check failures to allow before notifying the +// user of the failure. User initiated update checks always notify the user of +// the failure. +pref("app.update.backgroundMaxErrors", 10); + +// Ids of the links to the "What's new" update documentation +pref("app.update.link.updateAvailableWhatsNew", "update-available-whats-new"); +pref("app.update.link.updateManualWhatsNew", "update-manual-whats-new"); + +// How many times we should let downloads fail before prompting the user to +// download a fresh installer. +pref("app.update.download.promptMaxAttempts", 2); + +// How many times we should let an elevation prompt fail before prompting the user to +// download a fresh installer. +pref("app.update.elevation.promptMaxAttempts", 2); + +#ifdef NIGHTLY_BUILD + // Whether to delay popup notifications when an update is available and + // suppress them when an update is installed and waiting for user to restart. + // If set to true, these notifications will immediately be shown as banners in + // the app menu and as badges on the app menu button. Update available + // notifications will not create popup prompts until a week has passed without + // the user installing the update. Update restart notifications will not + // create popup prompts at all. This doesn't affect update notifications + // triggered by errors/failures or manual install prompts. + pref("app.update.suppressPrompts", false); +#endif + +// If set to true, a message will be displayed in the hamburger menu while +// an update is being downloaded. +pref("app.update.notifyDuringDownload", false); + +// If set to true, the Update Service will automatically download updates if the +// user can apply updates. This pref is no longer used on Windows, except as the +// default value to migrate to the new location that this data is now stored +// (which is in a file in the update directory). Because of this, this pref +// should no longer be used directly. Instead, getAppUpdateAutoEnabled and +// getAppUpdateAutoEnabled from UpdateUtils.jsm should be used. +#ifndef XP_WIN + pref("app.update.auto", true); +#endif + +// If set to true, the Update Service will apply updates in the background +// when it finishes downloading them. +pref("app.update.staging.enabled", true); + +// Update service URL: +// app.update.url was removed in Bug 1568994 +// app.update.url.manual is in branding section +// app.update.url.details is in branding section + +// app.update.badgeWaitTime is in branding section +// app.update.interval is in branding section +// app.update.promptWaitTime is in branding section + +// Whether or not to attempt using the service for updates. +#ifdef MOZ_MAINTENANCE_SERVICE + pref("app.update.service.enabled", true); +#endif + +#ifdef MOZ_BITS_DOWNLOAD + // If set to true, the Update Service will attempt to use Windows BITS to + // download updates and will fallback to downloading internally if that fails. + pref("app.update.BITS.enabled", true); +#endif + +pref("app.update.langpack.enabled", true); + +#if defined(MOZ_UPDATE_AGENT) + pref("app.update.background.loglevel", "error"); + pref("app.update.background.timeoutSec", 600); + // By default, check for updates when the browser is not running every 7 hours. + pref("app.update.background.interval", 25200); + // By default, snapshot Firefox Messaging System targeting for use by the + // background update task every 30 minutes. + pref("app.update.background.messaging.targeting.snapshot.intervalSec", 1800); +#endif + +#ifdef XP_MACOSX + // If set to true, Firefox will automatically restart if it is left running + // with no browser windows open. + pref("app.update.noWindowAutoRestart.enabled", true); + // How long to wait after all browser windows are closed before restarting, + // in milliseconds. 5 min = 300000 ms + pref("app.update.noWindowAutoRestart.delayMs", 300000); +#endif + +#if defined(MOZ_BACKGROUNDTASKS) + // The amount of time, in seconds, before background tasks time out and exit. + // Tasks can override this default (10 minutes). + pref("toolkit.backgroundtasks.defaultTimeoutSec", 600); +#endif + +// Symmetric (can be overridden by individual extensions) update preferences. +// e.g. +// extensions.{GUID}.update.enabled +// extensions.{GUID}.update.url +// .. etc .. +// +pref("extensions.update.enabled", true); +pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); +pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); +pref("extensions.update.interval", 86400); // Check for updates to Extensions and + // Themes every day + +pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); + +#if defined(MOZ_WIDEVINE_EME) + pref("browser.eme.ui.enabled", true); +#else + pref("browser.eme.ui.enabled", false); +#endif + +// UI tour experience. +pref("browser.uitour.enabled", false); +pref("browser.uitour.loglevel", "Error"); +pref("browser.uitour.requireSecure", true); +pref("browser.uitour.themeOrigin", "https://addons.mozilla.org/%LOCALE%/firefox/themes/"); +pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/"); +// How long to show a Hearbeat survey (two hours, in seconds) +pref("browser.uitour.surveyDuration", 7200); + +pref("keyword.enabled", true); + +// Fixup whitelists, the urlbar won't try to search for these words, but will +// instead consider them valid TLDs. Don't check these directly, use +// Services.uriFixup.isDomainKnown() instead. +pref("browser.fixup.domainwhitelist.localhost", true); +// https://tools.ietf.org/html/rfc2606 +pref("browser.fixup.domainsuffixwhitelist.test", true); +pref("browser.fixup.domainsuffixwhitelist.example", true); +pref("browser.fixup.domainsuffixwhitelist.invalid", true); +pref("browser.fixup.domainsuffixwhitelist.localhost", true); +// https://tools.ietf.org/html/draft-wkumari-dnsop-internal-00 +pref("browser.fixup.domainsuffixwhitelist.internal", true); +// https://tools.ietf.org/html/rfc6762 +pref("browser.fixup.domainsuffixwhitelist.local", true); + +// Whether to always go through the DNS server before sending a single word +// search string, that may contain a valid host, to a search engine. +pref("browser.fixup.dns_first_for_single_words", false); + +#ifdef UNIX_BUT_NOT_MAC + pref("general.autoScroll", false); +#else + pref("general.autoScroll", true); +#endif + +// UI density of the browser chrome. This mostly affects toolbarbutton +// and urlbar spacing. The possible values are 0=normal, 1=compact, 2=touch. +pref("browser.uidensity", 0); +// Whether Firefox will automatically override the uidensity to "touch" +// while the user is in a touch environment (such as Windows tablet mode). +pref("browser.touchmode.auto", true); +// Whether Firefox will show the Compact Mode UIDensity option. +pref("browser.compactmode.show", false); + +// At startup, check if we're the default browser and prompt user if not. +pref("browser.shell.checkDefaultBrowser", false); +pref("browser.shell.shortcutFavicons",true); +pref("browser.shell.mostRecentDateSetAsDefault", ""); +pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true); +pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false); +pref("browser.shell.defaultBrowserCheckCount", 0); +#if defined(XP_WIN) +// Attempt to set the default browser on Windows 10 using the UserChoice registry keys, +// before falling back to launching the modern Settings dialog. +pref("browser.shell.setDefaultBrowserUserChoice", false); +// When setting the default browser on Windows 10 using the UserChoice +// registry keys, also try to set Firefox as the default PDF handler. +pref("browser.shell.setDefaultPDFHandler", false); +// When setting Firefox as the default PDF handler (subject to conditions +// above), only set Firefox as the default PDF handler when the existing handler +// is a known browser, and not when existing handler is another PDF handler such +// as Acrobat Reader or Nitro PDF. +pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true); +#endif + + +// 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session +// The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore +pref("browser.startup.page", 1); +pref("browser.startup.homepage", "https://discord.com/app"); +#ifdef NIGHTLY_BUILD +pref("browser.startup.homepage.abouthome_cache.enabled", true); +#else +pref("browser.startup.homepage.abouthome_cache.enabled", false); +#endif +pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn"); + +// Whether we should skip the homepage when opening the first-run page +pref("browser.startup.firstrunSkipsHomepage", false); + +// Whether we should show the session-restore infobar on startup +pref("browser.startup.couldRestoreSession.count", 0); + +// Show an about:blank window as early as possible for quick startup feedback. +// Held to nightly on Linux due to bug 1450626. +// Disabled on Mac because the bouncing dock icon already provides feedback. +#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) && defined(NIGHTLY_BUILD) + pref("browser.startup.blankWindow", true); +#else + pref("browser.startup.blankWindow", false); +#endif + +// Show a skeleton UI window prior to loading libxul. Only visible for windows +// users as it is not implemented anywhere else. +#if defined(XP_WIN) +pref("browser.startup.preXulSkeletonUI", true); +#endif + +// Show an upgrade dialog on major upgrades. +pref("browser.startup.upgradeDialog.enabled", false); + +// Don't create the hidden window during startup on +// platforms that don't always need it (Win/Linux). +pref("toolkit.lazyHiddenWindow", true); + +pref("browser.chrome.site_icons", true); +// browser.warnOnQuit == false will override all other possible prompts when quitting or restarting +pref("browser.warnOnQuit", false); + +// Whether to warn when quitting when using the shortcut key. +#if defined(XP_WIN) + pref("browser.warnOnQuitShortcut", false); +#else + pref("browser.warnOnQuitShortcut", true); +#endif + +// TODO bug 1702563: Renable fullscreen autohide by default on macOS. +#ifdef XP_MACOSX + pref("browser.fullscreen.autohide", false); +#else + pref("browser.fullscreen.autohide", true); +#endif + +pref("browser.overlink-delay", 80); + +pref("browser.theme.colorway-closet", true); + +// Whether using `ctrl` when hitting return/enter in the URL bar +// (or clicking 'go') should prefix 'www.' and suffix +// browser.fixup.alternate.suffix to the URL bar value prior to +// navigating. +pref("browser.urlbar.ctrlCanonizesURLs", true); + +// Whether we announce to screen readers when tab-to-search results are +// inserted. +pref("browser.urlbar.accessibility.tabToSearch.announceResults", true); + +// Control autoFill behavior +pref("browser.urlbar.autoFill", true); + +// Whether enabling adaptive history autofill. +pref("browser.urlbar.autoFill.adaptiveHistory.enabled", false); + +// Minimum char length of the user's search string to enable adaptive history +// autofill. +pref("browser.urlbar.autoFill.adaptiveHistory.minCharsThreshold", 0); + +// Whether to warm up network connections for autofill or search results. +pref("browser.urlbar.speculativeConnect.enabled", true); + +// Whether bookmarklets should be filtered out of Address Bar matches. +// This is enabled for security reasons, when true it is still possible to +// search for bookmarklets typing "javascript: " followed by the actual query. +pref("browser.urlbar.filter.javascript", true); + +// Enable a certain level of urlbar logging to the Browser Console. See Log.jsm. +pref("browser.urlbar.loglevel", "Error"); + +// the maximum number of results to show in autocomplete when doing richResults +pref("browser.urlbar.maxRichResults", 10); + +// The maximum number of historical search results to show. +pref("browser.urlbar.maxHistoricalSearchSuggestions", 2); + +// The default behavior for the urlbar can be configured to use any combination +// of the match filters with each additional filter adding more results (union). +pref("browser.urlbar.suggest.bookmark", false); +pref("browser.urlbar.suggest.history", false); +pref("browser.urlbar.suggest.openpage", false); +pref("browser.urlbar.suggest.remotetab", false); +pref("browser.urlbar.suggest.searches", false); +pref("browser.urlbar.suggest.topsites", false); +pref("browser.urlbar.suggest.engines", false); +pref("browser.urlbar.suggest.calculator", false); + +#if defined(EARLY_BETA_OR_EARLIER) + // Enable QuickActions and its urlbar search mode button. + pref("browser.urlbar.quickactions.enabled", true); + pref("browser.urlbar.suggest.quickactions", true); + pref("browser.urlbar.shortcuts.quickactions", true); + pref("browser.urlbar.quickactions.showPrefs", true); + pref("browser.urlbar.quickactions.showInZeroPrefix", true); +#endif + +// When `browser.urlbar.bestMatch.enabled` is true, this controls whether best +// match results are shown in the urlbar. This pref is exposed to the user in +// the UI, and it's sticky so that its user-branch value persists regardless of +// whatever Firefox Suggest experiments or rollouts the user is enrolled in over +// time. +pref("browser.urlbar.suggest.bestmatch", true, sticky); + +// Whether non-sponsored quick suggest results are shown in the urlbar. This +// pref is exposed to the user in the UI, and it's sticky so that its +// user-branch value persists regardless of whatever Firefox Suggest scenarios, +// with their various default-branch values, the user is enrolled in over time. +pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky); + +// Whether sponsored quick suggest results are shown in the urlbar. This pref is +// exposed to the user in the UI, and it's sticky so that its user-branch value +// persists regardless of whatever Firefox Suggest scenarios, with their various +// default-branch values, the user is enrolled in over time. +pref("browser.urlbar.suggest.quicksuggest.sponsored", false, sticky); + +// Whether data collection is enabled for quick suggest results in the urlbar. +// This pref is exposed to the user in the UI, and it's sticky so that its +// user-branch value persists regardless of whatever Firefox Suggest scenarios, +// with their various default-branch values, the user is enrolled in over time. +pref("browser.urlbar.quicksuggest.dataCollection.enabled", false, sticky); + +// Whether the quick suggest feature in the urlbar is enabled. +pref("browser.urlbar.quicksuggest.enabled", false); + +// Whether to show the QuickSuggest onboarding dialog. +pref("browser.urlbar.quicksuggest.shouldShowOnboardingDialog", true); + +// Show QuickSuggest onboarding dialog on the nth browser restarts. +pref("browser.urlbar.quicksuggest.showOnboardingDialogAfterNRestarts", 0); + +// The indexes of the sponsored and non-sponsored quick suggest results within +// the general results group. +pref("browser.urlbar.quicksuggest.sponsoredIndex", -1); +pref("browser.urlbar.quicksuggest.nonSponsoredIndex", -1); + +// Whether Remote Settings is enabled as a quick suggest source. +pref("browser.urlbar.quicksuggest.remoteSettings.enabled", true); + +// Whether quick suggest results can be shown in position specified in the +// suggestions. +pref("browser.urlbar.quicksuggest.allowPositionInSuggestions", true); + +// Whether non-sponsored quick suggest results are subject to impression +// frequency caps. +pref("browser.urlbar.quicksuggest.impressionCaps.nonSponsoredEnabled", false); + +// Whether sponsored quick suggest results are subject to impression frequency +// caps. +pref("browser.urlbar.quicksuggest.impressionCaps.sponsoredEnabled", false); + +// Whether the usual non-best-match quick suggest results can be blocked. This +// pref is a fallback for the Nimbus variable `quickSuggestBlockingEnabled`. +pref("browser.urlbar.quicksuggest.blockingEnabled", false); + +// Whether unit conversion is enabled. +#ifdef NIGHTLY_BUILD +pref("browser.urlbar.unitConversion.enabled", true); +#else +pref("browser.urlbar.unitConversion.enabled", false); +#endif + +// Whether to show search suggestions before general results like history and +// bookmarks. +pref("browser.urlbar.showSearchSuggestionsFirst", true); + +// As a user privacy measure, don't fetch search suggestions if a pasted string +// is longer than this. +pref("browser.urlbar.maxCharsForSearchSuggestions", 100); + +pref("browser.urlbar.trimURLs", true); + +// If changed to true, copying the entire URL from the location bar will put the +// human readable (percent-decoded) URL on the clipboard. +pref("browser.urlbar.decodeURLsOnCopy", false); + +// Whether or not to move tabs into the active window when using the "Switch to +// Tab" feature of the awesomebar. +pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false); + +// Whether addresses and search results typed into the address bar +// should be opened in new tabs by default. +pref("browser.urlbar.openintab", false); + +// If true, we show tail suggestions when available. +pref("browser.urlbar.richSuggestions.tail", true); + +// If true, top sites may include sponsored ones. +pref("browser.urlbar.sponsoredTopSites", false); + +// If true, show the search term in the URL bar for the users default engine. +pref("browser.urlbar.showSearchTerms", false); + +// Controls the empty search behavior in Search Mode: +// 0 - Show nothing +// 1 - Show search history +// 2 - Show search and browsing history +pref("browser.urlbar.update2.emptySearchBehavior", 0); + +// Whether the urlbar displays one-offs to filter searches to history, +// bookmarks, or tabs. +pref("browser.urlbar.shortcuts.bookmarks", true); +pref("browser.urlbar.shortcuts.tabs", true); +pref("browser.urlbar.shortcuts.history", true); + +pref("browser.urlbar.eventTelemetry.enabled", false); + +// When we send events to Urlbar extensions, we wait this amount of time in +// milliseconds for them to respond before timing out. +pref("browser.urlbar.extension.timeout", 400); + +// Controls when to DNS resolve single word search strings, after they were +// searched for. If the string is resolved as a valid host, show a +// "Did you mean to go to 'host'" prompt. +// 0 - never resolve; 1 - use heuristics (default); 2 - always resolve +pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); + +// Whether the results panel should be kept open during IME composition. +// The default value is false because some IME open a picker panel, and we end +// up with two panels on top of each other. Since for now we can't detect that +// we leave this choice to the user, hopefully in the future this can be flipped +// for everyone. +pref("browser.urlbar.keepPanelOpenDuringImeComposition", false); + +// Whether Firefox Suggest group labels are shown in the urlbar view. +pref("browser.urlbar.groupLabels.enabled", true); + +// Whether Merino is enabled as a quick suggest source in the urlbar. +pref("browser.urlbar.merino.enabled", true); + +// The Merino endpoint URL, not including parameters. +pref("browser.urlbar.merino.endpointURL", "https://merino.services.mozilla.com/api/v1/suggest"); + +// Timeout for Merino fetches (ms). +pref("browser.urlbar.merino.timeoutMs", 200); + +// Comma-separated list of providers to request from Merino +pref("browser.urlbar.merino.providers", ""); + +// Comma-separated list of client variants to send to Merino +pref("browser.urlbar.merino.clientVariants", ""); + +// Whether the best match feature in the urlbar is enabled. +pref("browser.urlbar.bestMatch.enabled", false); + +// Whether best match results can be blocked. This pref is a fallback for the +// Nimbus variable `bestMatchBlockingEnabled`. +pref("browser.urlbar.bestMatch.blockingEnabled", false); + +pref("browser.altClickSave", false); + +// Enable logging downloads operations to the Console. +pref("browser.download.loglevel", "Error"); + +// Number of milliseconds to wait for the http headers (and thus +// the Content-Disposition filename) before giving up and falling back to +// picking a filename without that info in hand so that the user sees some +// feedback from their action. +pref("browser.download.saveLinkAsFilenameTimeout", 4000); + +pref("browser.download.useDownloadDir", true); +pref("browser.download.folderList", 1); +pref("browser.download.manager.addToRecentDocs", true); +pref("browser.download.manager.resumeOnWakeDelay", 10000); + +// This allows disabling the animated notifications shown by +// the Downloads Indicator when a download starts or completes. +pref("browser.download.animateNotifications", true); + +// This records whether or not the panel has been shown at least once. +pref("browser.download.panel.shown", false); + +// This records whether or not to show the 'Open in system viewer' context menu item when appropriate +pref("browser.download.openInSystemViewerContextMenuItem", true); + +// This records whether or not to show the 'Always open...' context menu item when appropriate +pref("browser.download.alwaysOpenInSystemViewerContextMenuItem", true); + +// Open downloaded file types internally for the given types. +// This is a comma-separated list, the empty string ("") means no types are +// viewable internally. +pref("browser.download.viewableInternally.enabledTypes", "xml,svg,webp,avif,jxl"); + + +// This controls whether the button is automatically shown/hidden depending +// on whether there are downloads to show. +pref("browser.download.autohideButton", true); + +// Controls whether to open the downloads panel every time a download begins. +// The first download ever run in a new profile will still open the panel. +pref("browser.download.alwaysOpenPanel", true); + +// Determines the behavior of the "Delete" item in the downloads context menu. +// Valid values are 0, 1, and 2. +// 0 - Don't remove the download from session list or history. +// 1 - Remove the download from session list, but not history. +// 2 - Remove the download from both session list and history. +pref("browser.download.clearHistoryOnDelete", 0); + +#ifndef XP_MACOSX + pref("browser.helperApps.deleteTempFileOnExit", true); +#endif + +// This controls the visibility of the radio button in the +// Unknown Content Type (Helper App) dialog that will open +// the content in the browser for PDF and for other +// Viewable Internally types +// (see browser.download.viewableInternally.enabledTypes) +pref("browser.helperApps.showOpenOptionForPdfJS", true); +pref("browser.helperApps.showOpenOptionForViewableInternally", true); + +// search engine removal URL +pref("browser.search.searchEngineRemoval", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/search-engine-removal"); + +// search engines URL +pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/"); + +// search bar results always open in a new tab +pref("browser.search.openintab", false); + +// context menu searches open in the foreground +pref("browser.search.context.loadInBackground", false); + +// comma separated list of of engines to hide in the search panel. +pref("browser.search.hiddenOneOffs", ""); + +// Mirrors whether the search-container widget is in the navigation toolbar. +pref("browser.search.widget.inNavBar", false); + +// Enables display of the options for the user using a separate default search +// engine in private browsing mode. +pref("browser.search.separatePrivateDefault.ui.enabled", false); +// The maximum amount of times the private default banner is shown. +pref("browser.search.separatePrivateDefault.ui.banner.max", 0); + +// Enables the display of the Mozilla VPN banner in private browsing windows +pref("browser.privatebrowsing.vpnpromourl", ""); + +// Enables the new private browsing indicator. +pref("browser.privatebrowsing.enable-new-indicator", true); + +// Enables the new about:privatebrowsing logo. +pref("browser.privatebrowsing.enable-new-logo", true); + +// Whether the user has opted-in to recommended settings for data features. +pref("browser.dataFeatureRecommendations.enabled", false); + +// Temporary pref to control whether or not Private Browsing windows show up +// as separate icons in the Windows taskbar. +pref("browser.privateWindowSeparation.enabled", true); + +// Use dark theme variant for PBM windows. This is only supported if the theme +// sets darkTheme data. +pref("browser.theme.dark-private-windows", true); + +// Controls visibility of the privacy segmentation preferences section. +pref("browser.privacySegmentation.preferences.show", false); + +pref("browser.sessionhistory.max_entries", 50); + +// Built-in default permissions. +pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions"); + +// Set default fallback values for site permissions we want +// the user to be able to globally change. +pref("permissions.default.camera", 1); +pref("permissions.default.microphone", 1); +pref("permissions.default.geo", 0); +pref("permissions.default.xr", 0); +pref("permissions.default.desktop-notification", 0); +pref("permissions.default.shortcuts", 0); + +pref("permissions.desktop-notification.postPrompt.enabled", true); +pref("permissions.desktop-notification.notNow.enabled", false); + +pref("permissions.fullscreen.allowed", true); + +// handle links targeting new windows +// 1=current window/tab, 2=new window, 3=new tab in most recent window +pref("browser.link.open_newwindow", 1); + +// handle external links (i.e. links opened from a different application) +// default: use browser.link.open_newwindow +// 1-3: see browser.link.open_newwindow for interpretation +pref("browser.link.open_newwindow.override.external", -1); + +// 0: no restrictions - divert everything +// 1: don't divert window.open at all +// 2: don't divert window.open with features +pref("browser.link.open_newwindow.restriction", 2); + +// If true, this pref causes windows opened by window.open to be forced into new +// tabs (rather than potentially opening separate windows, depending on +// window.open arguments) when the browser is in fullscreen mode. +// We set this differently on Mac because the fullscreen implementation there is +// different. +#ifdef XP_MACOSX + pref("browser.link.open_newwindow.disabled_in_fullscreen", true); +#else + pref("browser.link.open_newwindow.disabled_in_fullscreen", false); +#endif + +// Tabbed browser +pref("browser.tabs.closeTabByDblclick", false); +pref("browser.tabs.closeWindowWithLastTab", true); +pref("browser.tabs.allowTabDetach", true); +// Open related links to a tab, e.g., link in current tab, at next to the +// current tab if |insertRelatedAfterCurrent| is true. Otherwise, always +// append new tab to the end. +pref("browser.tabs.insertRelatedAfterCurrent", true); +// Open all links, e.g., bookmarks, history items at next to current tab +// if |insertAfterCurrent| is true. Otherwise, append new tab to the end +// for non-related links. Note that if this is set to true, it will trump +// the value of browser.tabs.insertRelatedAfterCurrent. +pref("browser.tabs.insertAfterCurrent", false); +pref("browser.tabs.warnOnClose", false); +pref("browser.tabs.warnOnCloseOtherTabs", true); +pref("browser.tabs.warnOnOpen", true); +pref("browser.tabs.maxOpenBeforeWarn", 15); +pref("browser.tabs.loadInBackground", true); +pref("browser.tabs.opentabfor.middleclick", true); +pref("browser.tabs.loadDivertedInBackground", false); +pref("browser.tabs.loadBookmarksInBackground", false); +pref("browser.tabs.loadBookmarksInTabs", false); +pref("browser.tabs.tabClipWidth", 140); +pref("browser.tabs.tabMinWidth", 76); +// Users running in any of the following language codes will have the +// secondary text on tabs hidden due to size constraints and readability +// of the text at small font sizes. +pref("browser.tabs.secondaryTextUnsupportedLocales", "ar,bn,bo,ckb,fa,gu,he,hi,ja,km,kn,ko,lo,mr,my,ne,pa,si,ta,te,th,ur,zh"); + +//Control the visibility of Tab Manager Menu. +pref("browser.tabs.tabmanager.enabled", true); + +// When tabs opened by links in other tabs via a combination of +// browser.link.open_newwindow being set to 3 and target="_blank" etc are +// closed: +// true return to the tab that opened this tab (its owner) +// false return to the adjacent tab (old default) +pref("browser.tabs.selectOwnerOnClose", true); + +// This should match Chromium's audio indicator delay. +pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000); + +// Pref to control whether we use a separate privileged content process +// for about: pages. This pref name did not age well: we will have multiple +// types of privileged content processes, each with different privileges. +// types of privleged content processes, each with different privleges. +pref("browser.tabs.remote.separatePrivilegedContentProcess", true); + +#if defined(NIGHTLY_BUILD) && !defined(MOZ_ASAN) + // This pref will cause assertions when a remoteType triggers a process switch + // to a new remoteType it should not be able to trigger. + pref("browser.tabs.remote.enforceRemoteTypeRestrictions", true); +#endif + +// Pref to control whether we use a separate privileged content process +// for certain mozilla webpages (which are listed in the pref +// browser.tabs.remote.separatedMozillaDomains). +pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", true); + +#ifdef NIGHTLY_BUILD +pref("browser.tabs.tooltipsShowPidAndActiveness", true); +#else +pref("browser.tabs.tooltipsShowPidAndActiveness", false); +#endif + +pref("browser.tabs.firefox-view", true); +pref("browser.tabs.firefox-view.logLevel", "Warn"); +pref("browser.tabs.firefox-view.notify-for-tabs", false); + +// allow_eval_* is enabled on Firefox Desktop only at this +// point in time +pref("security.allow_eval_with_system_principal", false); +pref("security.allow_eval_in_parent_process", false); + +pref("security.allow_parent_unrestricted_js_loads", false); + +// Unload tabs when available memory is running low +#if defined(XP_MACOSX) || defined(XP_WIN) + pref("browser.tabs.unloadOnLowMemory", true); +#else + pref("browser.tabs.unloadOnLowMemory", false); +#endif + +// Tab Unloader does not unload tabs whose last inactive period is longer than +// this value (in milliseconds). +pref("browser.tabs.min_inactive_duration_before_unload", 600000); + +#if defined(XP_MACOSX) + // During low memory periods, poll with this frequency (milliseconds) + // until memory is no longer low. Changes to the pref take effect immediately. + // Browser restart not required. Chosen to be consistent with the windows + // implementation, but otherwise the 10s value is arbitrary. + pref("browser.lowMemoryPollingIntervalMS", 10000); + + // Pref to control the reponse taken on macOS when the OS is under memory + // pressure. Changes to the pref take effect immediately. Browser restart not + // required. The pref value is a bitmask: + // 0x0: No response (other than recording for telemetry, crash reporting) + // 0x1: Use the tab unloading feature to reduce memory use. Requires that + // the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab + // unloading to occur. + // 0x2: Issue the internal "memory-pressure" notification to reduce memory use + // 0x3: Both 0x1 and 0x2. + #if defined(NIGHTLY_BUILD) + pref("browser.lowMemoryResponseMask", 3); + #else + pref("browser.lowMemoryResponseMask", 0); + #endif + + // Controls which macOS memory-pressure level triggers the browser low memory + // response. Changes to the pref take effect immediately. Browser restart not + // required. By default, use the "critical" level as that occurs after "warn" + // and we only want to trigger the low memory reponse when necessary. + // The macOS system memory-pressure level is either none, "warn", or + // "critical". The OS notifies the browser when the level changes. A false + // value for the pref indicates the low memory response should occur when + // reaching the "critical" level. A true value indicates the response should + // occur when reaching the "warn" level. + pref("browser.lowMemoryResponseOnWarn", false); +#endif + +pref("browser.ctrlTab.sortByRecentlyUsed", false); + +// By default, do not export HTML at shutdown. +// If true, at shutdown the bookmarks in your menu and toolbar will +// be exported as HTML to the bookmarks.html file. +pref("browser.bookmarks.autoExportHTML", false); + +// The maximum number of daily bookmark backups to +// keep in {PROFILEDIR}/bookmarkbackups. Special values: +// -1: unlimited +// 0: no backups created (and deletes all existing backups) +pref("browser.bookmarks.max_backups", 15); + +// Whether menu should close after Ctrl-click, middle-click, etc. +pref("browser.bookmarks.openInTabClosesMenu", true); + +// Where new bookmarks go by default. +// Use PlacesUIUtils.defaultParentGuid to read this; do NOT read the pref +// directly. +// The value is one of: +// - a bookmarks guid +// - "toolbar", "menu" or "unfiled" for those folders. +// If we use the pref but the value isn't any of these, we'll fall back to +// the bookmarks toolbar as a default. +pref("browser.bookmarks.defaultLocation", "toolbar"); + +// Scripts & Windows prefs +pref("dom.disable_open_during_load", true); + +// allow JS to move and resize existing windows +pref("dom.disable_window_move_resize", false); +// prevent JS from monkeying with window focus, etc +pref("dom.disable_window_flip", true); + +// popups.policy 1=allow,2=reject +pref("privacy.popups.policy", 1); +pref("privacy.popups.usecustom", true); +pref("privacy.popups.showBrowserMessage", true); + +pref("privacy.item.cookies", false); + +pref("privacy.clearOnShutdown.history", true); +pref("privacy.clearOnShutdown.formdata", true); +pref("privacy.clearOnShutdown.downloads", true); +pref("privacy.clearOnShutdown.cookies", true); +pref("privacy.clearOnShutdown.cache", true); +pref("privacy.clearOnShutdown.sessions", true); +pref("privacy.clearOnShutdown.offlineApps", false); +pref("privacy.clearOnShutdown.siteSettings", false); +pref("privacy.clearOnShutdown.openWindows", false); + +pref("privacy.cpd.history", true); +pref("privacy.cpd.formdata", true); +pref("privacy.cpd.passwords", false); +pref("privacy.cpd.downloads", true); +pref("privacy.cpd.cookies", true); +pref("privacy.cpd.cache", true); +pref("privacy.cpd.sessions", true); +pref("privacy.cpd.offlineApps", false); +pref("privacy.cpd.siteSettings", false); +pref("privacy.cpd.openWindows", false); + +pref("privacy.history.custom", false); + +// What default should we use for the time span in the sanitizer: +// 0 - Clear everything +// 1 - Last Hour +// 2 - Last 2 Hours +// 3 - Last 4 Hours +// 4 - Today +// 5 - Last 5 minutes +// 6 - Last 24 hours +pref("privacy.sanitize.timeSpan", 1); + +pref("privacy.sanitize.migrateFx3Prefs", false); + +pref("privacy.panicButton.enabled", true); + +// Time until temporary permissions expire, in ms +pref("privacy.temporary_permission_expire_time_ms", 3600000); + +pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols + +// simple gestures support +pref("browser.gesture.swipe.left", "Browser:BackOrBackDuplicate"); +pref("browser.gesture.swipe.right", "Browser:ForwardOrForwardDuplicate"); +pref("browser.gesture.swipe.up", "cmd_scrollTop"); +pref("browser.gesture.swipe.down", "cmd_scrollBottom"); +pref("browser.gesture.pinch.latched", false); +pref("browser.gesture.pinch.threshold", 25); +#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) + // Enabled for touch input display zoom. + pref("browser.gesture.pinch.out", "cmd_fullZoomEnlarge"); + pref("browser.gesture.pinch.in", "cmd_fullZoomReduce"); + pref("browser.gesture.pinch.out.shift", "cmd_fullZoomReset"); + pref("browser.gesture.pinch.in.shift", "cmd_fullZoomReset"); +#else + // Disabled by default due to issues with track pad input. + pref("browser.gesture.pinch.out", ""); + pref("browser.gesture.pinch.in", ""); + pref("browser.gesture.pinch.out.shift", ""); + pref("browser.gesture.pinch.in.shift", ""); +#endif +pref("browser.gesture.twist.latched", false); +pref("browser.gesture.twist.threshold", 0); +pref("browser.gesture.twist.right", "cmd_gestureRotateRight"); +pref("browser.gesture.twist.left", "cmd_gestureRotateLeft"); +pref("browser.gesture.twist.end", "cmd_gestureRotateEnd"); +#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) + pref("browser.gesture.tap", "cmd_fullZoomReset"); +#else + pref("browser.gesture.tap", ""); +#endif + +pref("browser.history_swipe_animation.disabled", false); + +// 0: Nothing happens +// 1: Scrolling contents +// 2: Go back or go forward, in your history +// 3: Zoom in or out (reflowing zoom). +// 4: Treat vertical wheel as horizontal scroll +// 5: Zoom in or out (pinch zoom). +#ifdef XP_MACOSX + // On macOS, if the wheel has one axis only, shift+wheel comes through as a + // horizontal scroll event. Thus, we can't assign anything other than normal + // scrolling to shift+wheel. + pref("mousewheel.with_shift.action", 1); + pref("mousewheel.with_alt.action", 2); + // On MacOS X, control+wheel is typically handled by system and we don't + // receive the event. So, command key which is the main modifier key for + // acceleration is the best modifier for zoom-in/out. However, we should keep + // the control key setting for backward compatibility. + pref("mousewheel.with_meta.action", 3); // command key on Mac + // Disable control-/meta-modified horizontal wheel events, since those are + // used on Mac as part of modified swipe gestures (e.g. Left swipe+Cmd is + // "go back" in a new tab). + pref("mousewheel.with_control.action.override_x", 0); + pref("mousewheel.with_meta.action.override_x", 0); +#else + // On the other platforms (non-macOS), user may use legacy mouse which + // supports only vertical wheel but want to scroll horizontally. For such + // users, we should provide horizontal scroll with shift+wheel (same as + // Chrome). However, shift+wheel was used for navigating history. For users + // who want to keep using this feature, let's enable it with alt+wheel. This + // is better for consistency with macOS users. + pref("mousewheel.with_shift.action", 4); + pref("mousewheel.with_alt.action", 2); + pref("mousewheel.with_meta.action", 1); // win key on Win, Super/Hyper on Linux +#endif +pref("mousewheel.with_control.action",3); +pref("mousewheel.with_win.action", 1); + +pref("browser.xul.error_pages.expert_bad_cert", false); +pref("browser.xul.error_pages.show_safe_browsing_details_on_load", false); + +// Enable captive portal detection. +pref("network.captive-portal-service.enabled", true); + +// If true, network link events will change the value of navigator.onLine +pref("network.manage-offline-status", true); + +// We want to make sure mail URLs are handled externally... +pref("network.protocol-handler.external.mailto", true); // for mail +pref("network.protocol-handler.external.news", true); // for news +pref("network.protocol-handler.external.snews", true); // for secure news +pref("network.protocol-handler.external.nntp", true); // also news +#ifdef XP_WIN + pref("network.protocol-handler.external.ms-windows-store", true); +#endif + +// ...without warning dialogs +pref("network.protocol-handler.warn-external.mailto", false); +pref("network.protocol-handler.warn-external.news", false); +pref("network.protocol-handler.warn-external.snews", false); +pref("network.protocol-handler.warn-external.nntp", false); +#ifdef XP_WIN + pref("network.protocol-handler.warn-external.ms-windows-store", false); +#endif + +// By default, all protocol handlers are exposed. This means that +// the browser will respond to openURL commands for all URL types. +// It will also try to open link clicks inside the browser before +// failing over to the system handlers. +pref("network.protocol-handler.expose-all", true); +pref("network.protocol-handler.expose.mailto", false); +pref("network.protocol-handler.expose.news", false); +pref("network.protocol-handler.expose.snews", false); +pref("network.protocol-handler.expose.nntp", false); + +pref("accessibility.typeaheadfind", false); +pref("accessibility.typeaheadfind.timeout", 5000); +pref("accessibility.typeaheadfind.linksonly", false); +pref("accessibility.typeaheadfind.flashBar", 1); + +pref("plugins.testmode", false); + +// Should plugins that are hidden show the infobar UI? +pref("plugins.show_infobar", false); + +#if defined(_ARM64_) && defined(XP_WIN) + pref("plugin.default.state", 0); +#else + pref("plugin.default.state", 1); +#endif + +// Prefer HTML5 video over Flash content, and don't +// load plugin instances with no src declared. +// These prefs are documented in details on all.js. +// With the "follow-ctp" setting, this will only +// apply to users that have plugin.state.flash = 1. +pref("plugins.favorfallback.mode", "follow-ctp"); +pref("plugins.favorfallback.rules", "nosrc,video"); + +// Toggling Search bar on and off in about:preferences +pref("browser.preferences.search", true); +#if defined(NIGHTLY_BUILD) +pref("browser.preferences.experimental", true); +#else +pref("browser.preferences.experimental", false); +#endif +pref("browser.preferences.moreFromMozilla", true); +pref("browser.preferences.experimental.hidden", false); +pref("browser.preferences.defaultPerformanceSettings.enabled", true); + +pref("browser.proton.toolbar.version", 0); + +// Backspace and Shift+Backspace behavior +// 0 goes Back/Forward +// 1 act like PgUp/PgDown +// 2 and other values, nothing +pref("browser.backspace_action", 2); + +pref("intl.regional_prefs.use_os_locales", false); + +// this will automatically enable inline spellchecking (if it is available) for +// editable elements in HTML +// 0 = spellcheck nothing +// 1 = check multi-line controls [default] +// 2 = check multi/single line controls +pref("layout.spellcheckDefault", 1); + +pref("browser.send_pings", false); + +pref("browser.geolocation.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/geolocation/"); +pref("browser.xr.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/xr/"); + +pref("browser.sessionstore.resume_from_crash", true); +pref("browser.sessionstore.resume_session_once", false); +pref("browser.sessionstore.resuming_after_os_restart", false); + +// Minimal interval between two save operations in milliseconds (while the user is idle). +pref("browser.sessionstore.interval.idle", 3600000); // 1h + +// Time (ms) before we assume that the user is idle and that we don't need to +// collect/save the session quite as often. +pref("browser.sessionstore.idleDelay", 180000); // 3 minutes + +// on which sites to save text data, POSTDATA and cookies +// 0 = everywhere, 1 = unencrypted sites, 2 = nowhere +pref("browser.sessionstore.privacy_level", 0); +// how many tabs can be reopened (per window) +pref("browser.sessionstore.max_tabs_undo", 25); +// how many windows can be reopened (per session) - on non-OS X platforms this +// pref may be ignored when dealing with pop-up windows to ensure proper startup +pref("browser.sessionstore.max_windows_undo", 3); +// number of crashes that can occur before the about:sessionrestore page is displayed +// (this pref has no effect if more than 6 hours have passed since the last crash) +pref("browser.sessionstore.max_resumed_crashes", 1); +// number of back button session history entries to restore (-1 = all of them) +pref("browser.sessionstore.max_serialize_back", 10); +// number of forward button session history entries to restore (-1 = all of them) +pref("browser.sessionstore.max_serialize_forward", -1); +// restore_on_demand overrides MAX_CONCURRENT_TAB_RESTORES (sessionstore constant) +// and restore_hidden_tabs. When true, tabs will not be restored until they are +// focused (also applies to tabs that aren't visible). When false, the values +// for MAX_CONCURRENT_TAB_RESTORES and restore_hidden_tabs are respected. +// Selected tabs are always restored regardless of this pref. +pref("browser.sessionstore.restore_on_demand", true); +// Whether to automatically restore hidden tabs (i.e., tabs in other tab groups) or not +pref("browser.sessionstore.restore_hidden_tabs", false); +// If restore_on_demand is set, pinned tabs are restored on startup by default. +// When set to true, this pref overrides that behavior, and pinned tabs will only +// be restored when they are focused. +pref("browser.sessionstore.restore_pinned_tabs_on_demand", false); +// The version at which we performed the latest upgrade backup +pref("browser.sessionstore.upgradeBackup.latestBuildID", ""); +// How many upgrade backups should be kept +pref("browser.sessionstore.upgradeBackup.maxUpgradeBackups", 3); +// End-users should not run sessionstore in debug mode +pref("browser.sessionstore.debug", false); +// Forget closed windows/tabs after two weeks +pref("browser.sessionstore.cleanup.forget_closed_after", 1209600000); +// Platform collects session storage data for session store +pref("browser.sessionstore.collect_session_storage", true); + +// Don't quit the browser when Ctrl + Q is pressed. +pref("browser.quitShortcut.disabled", false); + +// allow META refresh by default +pref("accessibility.blockautorefresh", false); + +// Whether history is enabled or not. +pref("places.history.enabled", true); + +// Whether or not diacritics must match in history text searches. +pref("places.search.matchDiacritics", false); + +// the (maximum) number of the recent visits to sample +// when calculating frecency +pref("places.frecency.numVisits", 10); + +// buckets (in days) for frecency calculation +pref("places.frecency.firstBucketCutoff", 4); +pref("places.frecency.secondBucketCutoff", 14); +pref("places.frecency.thirdBucketCutoff", 31); +pref("places.frecency.fourthBucketCutoff", 90); + +// weights for buckets for frecency calculations +pref("places.frecency.firstBucketWeight", 100); +pref("places.frecency.secondBucketWeight", 70); +pref("places.frecency.thirdBucketWeight", 50); +pref("places.frecency.fourthBucketWeight", 30); +pref("places.frecency.defaultBucketWeight", 10); + +// bonus (in percent) for visit transition types for frecency calculations +pref("places.frecency.embedVisitBonus", 0); +pref("places.frecency.framedLinkVisitBonus", 0); +pref("places.frecency.linkVisitBonus", 100); +pref("places.frecency.typedVisitBonus", 2000); +// The bookmarks bonus is always added on top of any other bonus, including +// the redirect source and the typed ones. +pref("places.frecency.bookmarkVisitBonus", 75); +// The redirect source bonus overwrites any transition bonus. +// 0 would hide these pages, instead we want them low ranked. Thus we use +// linkVisitBonus - bookmarkVisitBonus, so that a bookmarked source is in par +// with a common link. +pref("places.frecency.redirectSourceVisitBonus", 25); +pref("places.frecency.downloadVisitBonus", 0); +// The perm/temp redirects here relate to redirect targets, not sources. +pref("places.frecency.permRedirectVisitBonus", 50); +pref("places.frecency.tempRedirectVisitBonus", 40); +pref("places.frecency.reloadVisitBonus", 0); +pref("places.frecency.defaultVisitBonus", 0); + +// bonus (in percent) for place types for frecency calculations +pref("places.frecency.unvisitedBookmarkBonus", 140); +pref("places.frecency.unvisitedTypedBonus", 200); + +// Clear data by base domain (including partitioned storage) when the user +// selects "Forget About This Site". +pref("places.forgetThisSite.clearByBaseDomain", true); + +// Whether to warm up network connections for places: menus and places: toolbar. +pref("browser.places.speculativeConnect.enabled", true); + +// Controls behavior of the "Add Exception" dialog launched from SSL error pages +// 0 - don't pre-populate anything +// 1 - pre-populate site URL, but don't fetch certificate +// 2 - pre-populate site URL and pre-fetch certificate +pref("browser.ssl_override_behavior", 2); + +// if true, use full page zoom instead of text zoom +pref("browser.zoom.full", true); + +// Whether or not to save and restore zoom levels on a per-site basis. +pref("browser.zoom.siteSpecific", true); + +// Whether or not to update background tabs to the current zoom level. +pref("browser.zoom.updateBackgroundTabs", true); + +// The breakpad report server to link to in about:crashes +pref("breakpad.reportURL", "https://crash-stats.mozilla.org/report/index/"); + +// URL for "Learn More" for DataCollection +pref("toolkit.datacollection.infoURL", + "https://www.mozilla.org/legal/privacy/firefox.html"); + +// URL for "Learn More" for Crash Reporter +pref("toolkit.crashreporter.infoURL", + "https://www.mozilla.org/legal/privacy/firefox.html#crash-reporter"); + +// base URL for web-based support pages +pref("app.support.baseURL", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/"); + +// base url for web-based feedback pages +pref("app.feedback.baseURL", "https://ideas.mozilla.org/"); + +// Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror) +pref("security.alternate_certificate_error_page", "certerror"); + +pref("security.certerrors.recordEventTelemetry", true); +pref("security.certerrors.permanentOverride", true); +pref("security.certerrors.mitm.priming.enabled", true); +pref("security.certerrors.mitm.priming.endpoint", "https://mitmdetection.services.mozilla.com/"); +pref("security.certerrors.mitm.auto_enable_enterprise_roots", true); + +// Whether the bookmark panel should be shown when bookmarking a page. +pref("browser.bookmarks.editDialog.showForNewBookmarks", true); + +// Don't try to alter this pref, it'll be reset the next time you use the +// bookmarking dialog +pref("browser.bookmarks.editDialog.firstEditField", "namePicker"); + +// The number of recently selected folders in the edit bookmarks dialog. +pref("browser.bookmarks.editDialog.maxRecentFolders", 7); + +// By default the Edit Bookmark dialog is instant-apply. This feature pref will allow to +// just save on Accept, once the project is complete. +pref("browser.bookmarks.editDialog.delayedApply.enabled", false); + +#if defined(XP_WIN) && defined(MOZ_SANDBOX) + // This controls the strength of the Windows content process sandbox for + // testing purposes. This will require a restart. + // On windows these levels are: + // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp + // SetSecurityLevelForContentProcess() for what the different settings mean. + pref("security.sandbox.content.level", 6); + + // This controls the strength of the Windows GPU process sandbox. Changes + // will require restart. + // For information on what the level number means, see + // SetSecurityLevelForGPUProcess() in + // security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp + pref("security.sandbox.gpu.level", 0); +#endif + +#if defined(XP_MACOSX) && defined(MOZ_SANDBOX) + // This pref is discussed in bug 1083344, the naming is inspired from its + // Windows counterpart, but on Mac it's an integer which means: + // 0 -> "no sandbox" (nightly only) + // 1 -> "preliminary content sandboxing enabled: write access to + // home directory is prevented" + // 2 -> "preliminary content sandboxing enabled with profile protection: + // write access to home directory is prevented, read and write access + // to ~/Library and profile directories are prevented (excluding + // $PROFILE/{extensions,chrome})" + // 3 -> "no global read/write access, read access permitted to + // $PROFILE/{extensions,chrome}" + // This setting is read when the content process is started. On Mac the + // content process is killed when all windows are closed, so a change will + // take effect when the 1st window is opened. + pref("security.sandbox.content.level", 3); + + // Disconnect content processes from the window server. Depends on + // out-of-process WebGL and non-native theming. i.e., both in-process WebGL + // and native theming depend on content processes having a connection to the + // window server. Window server disconnection is automatically disabled (and + // this pref overridden) if OOP WebGL is disabled. OOP WebGL is disabled + // for some tests. + pref("security.sandbox.content.mac.disconnect-windowserver", true); +#endif + +#if defined(XP_LINUX) && defined(MOZ_SANDBOX) + // This pref is introduced as part of bug 742434, the naming is inspired from + // its Windows/Mac counterpart, but on Linux it's an integer which means: + // 0 -> "no sandbox" + // 1 -> "content sandbox using seccomp-bpf when available" + ipc restrictions + // 2 -> "seccomp-bpf + write file broker" + // 3 -> "seccomp-bpf + read/write file brokering" + // 4 -> all of the above + network/socket restrictions + chroot + // + // The purpose of this setting is to allow Linux users or distros to disable + // the sandbox while we fix their problems, or to allow running Firefox with + // exotic configurations we can't reasonably support out of the box. + // + pref("security.sandbox.content.level", 4); + // Introduced as part of bug 1608558. Linux is currently the only platform + // that uses a sandbox level for the socket process. There are currently + // only 2 levels: + // 0 -> "no sandbox" + // 1 -> "sandboxed, allows socket operations and reading necessary certs" + pref("security.sandbox.socket.process.level", 1); + pref("security.sandbox.content.write_path_whitelist", ""); + pref("security.sandbox.content.read_path_whitelist", ""); + pref("security.sandbox.content.syscall_whitelist", ""); +#endif + +#if defined(XP_OPENBSD) && defined(MOZ_SANDBOX) + pref("security.sandbox.content.level", 1); +#endif + +#if defined(MOZ_SANDBOX) + // ID (a UUID when set by gecko) that is used to form the name of a + // sandbox-writable temporary directory to be used by content processes + // when a temporary writable file is required in a level 1 sandbox. + pref("security.sandbox.content.tempDirSuffix", ""); + pref("security.sandbox.plugin.tempDirSuffix", ""); + + // This pref determines if messages relevant to sandbox violations are + // logged. + #if defined(XP_WIN) || defined(XP_MACOSX) + pref("security.sandbox.logging.enabled", false); + #endif +#endif + +// This pref governs whether we attempt to work around problems caused by +// plugins using OS calls to manipulate the cursor while running out-of- +// process. These workarounds all involve intercepting (hooking) certain +// OS calls in the plugin process, then arranging to make certain OS calls +// in the browser process. Eventually plugins will be required to use the +// NPAPI to manipulate the cursor, and these workarounds will be removed. +// See bug 621117. +#ifdef XP_MACOSX + pref("dom.ipc.plugins.nativeCursorSupport", true); +#endif + +#ifdef XP_WIN + pref("browser.taskbar.previews.enable", false); + pref("browser.taskbar.previews.max", 20); + pref("browser.taskbar.previews.cachetime", 5); + pref("browser.taskbar.lists.enabled", true); + pref("browser.taskbar.lists.frequent.enabled", true); + pref("browser.taskbar.lists.recent.enabled", false); + pref("browser.taskbar.lists.maxListItemCount", 7); + pref("browser.taskbar.lists.tasks.enabled", true); + pref("browser.taskbar.lists.refreshInSeconds", 120); +#endif + +// Preferences to be synced by default. +// Preferences with the prefix `services.sync.prefs.sync-seen.` should have +// a value of `false`, and means the value of the pref will be synced as soon +// as a value for the pref is "seen", even if it is the default, and should be +// used for prefs we sync but which have different values on different channels, +// platforms or distributions. +pref("services.sync.prefs.sync.accessibility.blockautorefresh", true); +pref("services.sync.prefs.sync.accessibility.browsewithcaret", true); +pref("services.sync.prefs.sync.accessibility.typeaheadfind", true); +pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true); +pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true); +pref("services.sync.prefs.sync.app.shield.optoutstudies.enabled", true); +// The addons prefs related to repository verification are intentionally +// not synced for security reasons. If a system is compromised, a user +// could weaken the pref locally, install an add-on from an untrusted +// source, and this would propagate automatically to other, +// uncompromised Sync-connected devices. +pref("services.sync.prefs.sync.browser.contentblocking.category", true); +pref("services.sync.prefs.sync.browser.contentblocking.features.strict", true); +pref("services.sync.prefs.sync.browser.crashReports.unsubmittedCheck.autoSubmit2", true); +pref("services.sync.prefs.sync.browser.ctrlTab.sortByRecentlyUsed", true); +pref("services.sync.prefs.sync.browser.discovery.enabled", true); +pref("services.sync.prefs.sync.browser.download.useDownloadDir", true); +pref("services.sync.prefs.sync.browser.firefox-view.feature-tour", true); +pref("services.sync.prefs.sync.browser.formfill.enable", true); +pref("services.sync.prefs.sync.browser.link.open_newwindow", true); +pref("services.sync.prefs.sync.browser.menu.showViewImageInfo", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSearch", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.topsites", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.topSitesRows", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.snippets", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.topstories.rows", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.highlights", true); +// Some linux distributions disable all highlights by default. +pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights", false); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeDownloads", true); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includePocket", true); +// Some linux distributions disable just pocket by default. +pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights.includePocket", false); +pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.rows", true); +pref("services.sync.prefs.sync.browser.newtabpage.enabled", true); +pref("services.sync.prefs.sync.browser.newtabpage.pinned", true); +pref("services.sync.prefs.sync.browser.offline-apps.notify", true); +pref("services.sync.prefs.sync.browser.pdfjs.feature-tour", true); +pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true); +pref("services.sync.prefs.sync.browser.safebrowsing.downloads.remote.block_potentially_unwanted", true); +pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true); +pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true); +pref("services.sync.prefs.sync.browser.search.update", true); +pref("services.sync.prefs.sync.browser.search.widget.inNavBar", true); +pref("services.sync.prefs.sync.browser.startup.homepage", true); +pref("services.sync.prefs.sync.browser.startup.page", true); +pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true); +pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true); +pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true); +pref("services.sync.prefs.sync.browser.taskbar.previews.enable", true); +pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true); +pref("services.sync.prefs.sync.browser.urlbar.showSearchSuggestionsFirst", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.history", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.searches", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.topsites", true); +pref("services.sync.prefs.sync.browser.urlbar.suggest.engines", true); +pref("services.sync.prefs.sync.dom.disable_open_during_load", true); +pref("services.sync.prefs.sync.dom.disable_window_flip", true); +pref("services.sync.prefs.sync.dom.disable_window_move_resize", true); +pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true); +pref("services.sync.prefs.sync.dom.security.https_only_mode", true); +pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled", true); +pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled_pbm", true); +pref("services.sync.prefs.sync.dom.security.https_only_mode_pbm", true); +pref("services.sync.prefs.sync.extensions.update.enabled", true); +pref("services.sync.prefs.sync.extensions.activeThemeID", true); +pref("services.sync.prefs.sync.general.autoScroll", true); +// general.autoScroll has a different default on Linux vs elsewhere. +pref("services.sync.prefs.sync-seen.general.autoScroll", false); +pref("services.sync.prefs.sync.general.smoothScroll", true); +pref("services.sync.prefs.sync.intl.accept_languages", true); +pref("services.sync.prefs.sync.intl.regional_prefs.use_os_locales", true); +pref("services.sync.prefs.sync.layout.spellcheckDefault", true); +pref("services.sync.prefs.sync.media.autoplay.default", true); +pref("services.sync.prefs.sync.media.eme.enabled", true); +// Some linux distributions disable eme by default. +pref("services.sync.prefs.sync-seen.media.eme.enabled", false); +pref("services.sync.prefs.sync.media.videocontrols.picture-in-picture.video-toggle.enabled", true); +pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true); +pref("services.sync.prefs.sync.network.cookie.thirdparty.sessionOnly", true); +pref("services.sync.prefs.sync.permissions.default.image", true); +pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true); +pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true); +pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true); +pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true); +pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true); +pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true); +pref("services.sync.prefs.sync.privacy.trackingprotection.cryptomining.enabled", true); +pref("services.sync.prefs.sync.privacy.trackingprotection.fingerprinting.enabled", true); +pref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", true); +// We do not sync `privacy.resistFingerprinting` by default as it's an undocumented, +// not-recommended footgun - see bug 1763278 for more. +pref("services.sync.prefs.sync.privacy.reduceTimerPrecision", true); +pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", true); +pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", true); +pref("services.sync.prefs.sync.privacy.userContext.enabled", true); +pref("services.sync.prefs.sync.privacy.userContext.newTabContainerOnLeftClick.enabled", true); +pref("services.sync.prefs.sync.security.default_personal_cert", true); +pref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", true); +pref("services.sync.prefs.sync.signon.autofillForms", true); +pref("services.sync.prefs.sync.signon.generation.enabled", true); +pref("services.sync.prefs.sync.signon.management.page.breach-alerts.enabled", true); +pref("services.sync.prefs.sync.signon.rememberSignons", true); +pref("services.sync.prefs.sync.spellchecker.dictionary", true); +pref("services.sync.prefs.sync.ui.osk.enabled", true); + +// A preference which, if false, means sync will only apply incoming preference +// changes if there's already a local services.sync.prefs.sync.* control pref. +// If true, all incoming preferences will be applied and the local "control +// pref" updated accordingly. +pref("services.sync.prefs.dangerously_allow_arbitrary", false); + +// A preference that controls whether we should show the icon for a remote tab. +// This pref has no UI but exists because some people may be concerned that +// fetching these icons to show remote tabs may leak information about that +// user's tabs and bookmarks. Note this pref is also synced. +pref("services.sync.syncedTabs.showRemoteIcons", true); + +// A preference (in milliseconds) controlling if we sync after a tab change and +// how long to delay before we schedule the sync +// Anything <= 0 means disabled +pref("services.sync.syncedTabs.syncDelayAfterTabChange", 5000); + +// Whether the character encoding menu is under the main Firefox button. This +// preference is a string so that localizers can alter it. +pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.properties"); + +// Whether prompts should be content modal (1) tab modal (2) or window modal(3) by default +// This is a fallback value for when prompt callers do not specify a modalType. +pref("prompts.defaultModalType", 3); + +pref("browser.topsites.useRemoteSetting", true); +// Fetch sponsored Top Sites from Mozilla Tiles Service (Contile) +pref("browser.topsites.contile.enabled", true); +pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles"); + +// The base URL for the Quick Suggest anonymizing proxy. To make a request to +// the proxy, include a campaign ID in the path. +pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/"); +pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1"); + +// Whether to show tab level system prompts opened via nsIPrompt(Service) as +// SubDialogs in the TabDialogBox (true) or as TabModalPrompt in the +// TabModalPromptBox (false). +pref("prompts.tabChromePromptSubDialog", true); + +// Whether to show the dialogs opened at the content level, such as +// alert() or prompt(), using a SubDialogManager in the TabDialogBox. +pref("prompts.contentPromptSubDialog", true); + +// Whether to show window-modal dialogs opened for browser windows +// in a SubDialog inside their parent, instead of an OS level window. +pref("prompts.windowPromptSubDialog", true); + +// Activates preloading of the new tab url. +pref("browser.newtab.preload", true); + +pref("browser.newtabpage.activity-stream.newNewtabExperience.colors", "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A"); + +// Activity Stream prefs that control to which page to redirect +#ifndef RELEASE_OR_BETA + pref("browser.newtabpage.activity-stream.debug", false); +#endif + +// The remote FxA root content URL for the Activity Stream firstrun page. +pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts.firefox.com/"); + +// The pref that controls if the search shortcuts experiment is on +pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true); + +// ASRouter provider configuration +pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"cfr\",\"updateCycleInMs\":3600000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"whats-new-panel\",\"updateCycleInMs\":3600000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"message-groups\",\"updateCycleInMs\":3600000}"); +// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into +// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream +// repackager of this code using an alternate snippet url, please keep your users safe +pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{\"id\":\"snippets\",\"enabled\":false,\"type\":\"remote\",\"url\":\"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/\",\"updateCycleInMs\":14400000}"); +pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{\"id\":\"messaging-experiments\",\"enabled\":true,\"type\":\"remote-experiments\",\"updateCycleInMs\":3600000}"); + +// ASRouter user prefs +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true); + +// The pref that controls if ASRouter uses the remote fluent files. +// It's enabled by default, but could be disabled to force ASRouter to use the local files. +pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", true); + +// These prefs control if Discovery Stream is enabled. +pref("browser.newtabpage.activity-stream.discoverystream.enabled", true); +pref("browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout", false); +pref("browser.newtabpage.activity-stream.discoverystream.hybridLayout.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.hideCardBackground.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.fourCardLayout.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.newFooterSection.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCard.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCardRegions", ""); +pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptions.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptionsRegions", ""); +pref("browser.newtabpage.activity-stream.discoverystream.compactGrid.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.compactImages.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.imageGradient.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.titleLines", 3); +pref("browser.newtabpage.activity-stream.discoverystream.descLines", 3); +pref("browser.newtabpage.activity-stream.discoverystream.readTime.enabled", true); +pref("browser.newtabpage.activity-stream.discoverystream.newSponsoredLabel.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.essentialReadsHeader.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.recentSaves.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.editorsPicksHeader.enabled", false); +pref("browser.newtabpage.activity-stream.discoverystream.spoc-positions", "1,5,7,11,18,20"); +pref("browser.newtabpage.activity-stream.discoverystream.widget-positions", ""); + +pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", ""); +pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", ""); +pref("browser.newtabpage.activity-stream.discoverystream.sponsored-collections.enabled", false); + +// Changes the spoc content. +pref("browser.newtabpage.activity-stream.discoverystream.spocAdTypes", ""); +pref("browser.newtabpage.activity-stream.discoverystream.spocZoneIds", ""); +pref("browser.newtabpage.activity-stream.discoverystream.spocSiteId", ""); + +pref("browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled", false); + +// List of regions that do not get stories, regardless of locale-list-config. +pref("browser.newtabpage.activity-stream.discoverystream.region-stories-block", "FR"); +// List of locales that get stories, regardless of region-stories-config. +#ifdef NIGHTLY_BUILD + pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "en-US,en-CA,en-GB"); +#else + pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", ""); +#endif +// List of regions that get stories by default. +pref("browser.newtabpage.activity-stream.discoverystream.region-stories-config", "US,DE,CA,GB,IE,CH,AT,BE,IN"); + +// List of regions that get spocs by default. +pref("browser.newtabpage.activity-stream.discoverystream.region-spocs-config", "US,CA,DE,GB"); +// List of regions that don't get the 7 row layout. +pref("browser.newtabpage.activity-stream.discoverystream.region-basic-config", ""); + +// Allows Pocket story collections to be dismissed. +pref("browser.newtabpage.activity-stream.discoverystream.isCollectionDismissible", true); +pref("browser.newtabpage.activity-stream.discoverystream.personalization.enabled", true); +// Configurable keys used by personalization. +pref("browser.newtabpage.activity-stream.discoverystream.personalization.modelKeys", "nb_model_arts_and_entertainment, nb_model_autos_and_vehicles, nb_model_beauty_and_fitness, nb_model_blogging_resources_and_services, nb_model_books_and_literature, nb_model_business_and_industrial, nb_model_computers_and_electronics, nb_model_finance, nb_model_food_and_drink, nb_model_games, nb_model_health, nb_model_hobbies_and_leisure, nb_model_home_and_garden, nb_model_internet_and_telecom, nb_model_jobs_and_education, nb_model_law_and_government, nb_model_online_communities, nb_model_people_and_society, nb_model_pets_and_animals, nb_model_real_estate, nb_model_reference, nb_model_science, nb_model_shopping, nb_model_sports, nb_model_travel"); +// System pref to allow Pocket stories personalization to be turned on/off. +pref("browser.newtabpage.activity-stream.discoverystream.recs.personalized", false); +// System pref to allow Pocket sponsored content personalization to be turned on/off. +pref("browser.newtabpage.activity-stream.discoverystream.spocs.personalized", true); + +// User pref to show stories on newtab (feeds.system.topstories has to be set to true as well) +pref("browser.newtabpage.activity-stream.feeds.section.topstories", true); + +// The pref controls if search hand-off is enabled for Activity Stream. +pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", true); + +pref("browser.newtabpage.activity-stream.logowordmark.alwaysVisible", true); + +// URLs from the user's history that contain this search param will be hidden +// from the top sites. The value is a string with one of the following forms: +// - "" (empty) - Disable this feature +// - "key" - Search param named "key" with any or no value +// - "key=" - Search param named "key" with no value +// - "key=value" - Search param named "key" with value "value" +pref("browser.newtabpage.activity-stream.hideTopSitesWithSearchParam", "mfadid=adm"); + +// Used to display triplet cards on newtab +pref("trailhead.firstrun.newtab.triplets", ""); +// Separate about welcome +pref("browser.aboutwelcome.enabled", true); +// Used to set multistage welcome UX +pref("browser.aboutwelcome.screens", ""); +pref("browser.aboutwelcome.skipFocus", true); +// Used to enable template for MR 2022 Onboarding +pref("browser.aboutwelcome.templateMR", true); + +// The pref that controls if the What's New panel is enabled. +pref("browser.messaging-system.whatsNewPanel.enabled", true); + +// Experiment Manager +// See Console.jsm LOG_LEVELS for all possible values +pref("messaging-system.log", "warn"); +pref("messaging-system.rsexperimentloader.enabled", true); +pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments"); +pref("nimbus.debug", false); +pref("nimbus.validation.enabled", true); + +// Enable the DOM fullscreen API. +pref("full-screen-api.enabled", true); + +// Startup Crash Tracking +// number of startup crashes that can occur before starting into safe mode automatically +// (this pref has no effect if more than 6 hours have passed since the last crash) +pref("toolkit.startup.max_resumed_crashes", 3); + +// Whether to use RegisterApplicationRestart to restart the browser and resume +// the session on next Windows startup +#if defined(XP_WIN) + pref("toolkit.winRegisterApplicationRestart", true); +#endif + +// Used by pdf.js to know the first time firefox is run with it installed so it +// can become the default pdf viewer. +pref("pdfjs.firstRun", true); +// The values of preferredAction and alwaysAskBeforeHandling before pdf.js +// became the default. +pref("pdfjs.previousHandler.preferredAction", 0); +pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false); + +// Try to convert PDFs sent as octet-stream +pref("pdfjs.handleOctetStream", true); + +// Is the sidebar positioned ahead of the content browser +pref("sidebar.position_start", true); + +pref("security.identitypopup.recordEventTelemetry", true); +pref("security.protectionspopup.recordEventTelemetry", true); +pref("security.app_menu.recordEventTelemetry", true); + +// Block insecure active content on https pages +pref("security.mixed_content.block_active_content", true); + +// Show degraded UI for http pages. +pref("security.insecure_connection_icon.enabled", true); +// Show degraded UI for http pages in private mode. +pref("security.insecure_connection_icon.pbmode.enabled", true); + +// Show "Not Secure" text for http pages; disabled for now +pref("security.insecure_connection_text.enabled", false); +pref("security.insecure_connection_text.pbmode.enabled", false); + +// 1 = allow MITM for certificate pinning checks. +pref("security.cert_pinning.enforcement_level", 1); + + +// If this turns true, Moz*Gesture events are not called stopPropagation() +// before content. +pref("dom.debug.propagate_gesture_events_through_content", false); + +// CustomizableUI debug logging. +pref("browser.uiCustomization.debug", false); + +// CustomizableUI state of the browser's user interface +pref("browser.uiCustomization.state", ""); + +// If set to false, FxAccounts and Sync will be unavailable. +// A restart is mandatory after flipping that preference. +pref("identity.fxaccounts.enabled", true); + +// The remote FxA root content URL. Must use HTTPS. +pref("identity.fxaccounts.remote.root", "https://accounts.firefox.com/"); + +// The value of the context query parameter passed in fxa requests. +pref("identity.fxaccounts.contextParam", "fx_desktop_v3"); + +// The remote URL of the FxA Profile Server +pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1"); + +// The remote URL of the FxA OAuth Server +pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1"); + +// Whether FxA pairing using QR codes is enabled. +pref("identity.fxaccounts.pairing.enabled", true); + +// The remote URI of the FxA pairing server +pref("identity.fxaccounts.remote.pairing.uri", "wss://channelserver.services.mozilla.com"); + +// Token server used by the FxA Sync identity. +pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5"); + +// Auto-config URL for FxA self-hosters, makes an HTTP request to +// [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration +// This is now the prefered way of pointing to a custom FxA server, instead +// of making changes to "identity.fxaccounts.*.uri". +pref("identity.fxaccounts.autoconfig.uri", ""); + +// URL for help link about Send Tab. +pref("identity.sendtabpromo.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/send-tab"); + +// URLs for promo links to mobile browsers. Note that consumers are expected to +// append a value for utm_campaign. +pref("identity.mobilepromo.android", "https://www.mozilla.org/firefox/android/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign="); +pref("identity.mobilepromo.ios", "https://www.mozilla.org/firefox/ios/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign="); + +// Migrate any existing Firefox Account data from the default profile to the +// Developer Edition profile. +#ifdef MOZ_DEV_EDITION + pref("identity.fxaccounts.migrateToDevEdition", true); +#else + pref("identity.fxaccounts.migrateToDevEdition", false); +#endif + +// If activated, send tab will use the new FxA commands backend. +pref("identity.fxaccounts.commands.enabled", true); +// How often should we try to fetch missed FxA commands on sync (in seconds). +// Default is 24 hours. +pref("identity.fxaccounts.commands.missed.fetch_interval", 86400); + +// Whether we should run a test-pattern through EME GMPs before assuming they'll +// decode H.264. +pref("media.gmp.trial-create.enabled", true); + +// Note: when media.gmp-*.visible is true, provided we're running on a +// supported platform/OS version, the corresponding CDM appears in the +// plugins list, Firefox will download the GMP/CDM if enabled, and our +// UI to re-enable EME prompts the user to re-enable EME if it's disabled +// and script requests EME. If *.visible is false, we won't show the UI +// to enable the CDM if its disabled; it's as if the keysystem is completely +// unsupported. + +#ifdef MOZ_WIDEVINE_EME + pref("media.gmp-widevinecdm.visible", true); + pref("media.gmp-widevinecdm.enabled", true); +#endif + +pref("media.gmp-gmpopenh264.visible", true); +pref("media.gmp-gmpopenh264.enabled", true); + +// Set Firefox to block autoplay, asking for permission by default. +pref("media.autoplay.default", 1); // 0=Allowed, 1=Blocked, 5=All Blocked + +// Block WebAudio from playing automatically. +pref("media.autoplay.block-webaudio", true); + +pref("media.videocontrols.picture-in-picture.enabled", true); +pref("media.videocontrols.picture-in-picture.audio-toggle.enabled", true); +pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true); +pref("media.videocontrols.picture-in-picture.video-toggle.visibility-threshold", "1.0"); +pref("media.videocontrols.picture-in-picture.keyboard-controls.enabled", true); + +pref("browser.translation.detectLanguage", false); +pref("browser.translation.neverForLanguages", ""); +// Show the translation UI bits, like the info bar, notification icon and preferences. +pref("browser.translation.ui.show", false); +// Allows to define the translation engine. Google is default, Bing or Yandex are other options. +pref("browser.translation.engine", "Google"); + +// Telemetry settings. +// Determines if Telemetry pings can be archived locally. +pref("toolkit.telemetry.archive.enabled", true); +// Enables sending the shutdown ping when Firefox shuts down. +pref("toolkit.telemetry.shutdownPingSender.enabled", true); +// Enables sending the shutdown ping using the pingsender from the first session. +pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); +// Enables sending a duplicate of the first shutdown ping from the first session. +pref("toolkit.telemetry.firstShutdownPing.enabled", true); +// Enables sending the 'new-profile' ping on new profiles. +pref("toolkit.telemetry.newProfilePing.enabled", true); +// Enables sending 'update' pings on Firefox updates. +pref("toolkit.telemetry.updatePing.enabled", true); +// Enables sending 'bhr' pings when the browser hangs. +pref("toolkit.telemetry.bhrPing.enabled", true); + +// Ping Centre Telemetry settings. +pref("browser.ping-centre.telemetry", true); +pref("browser.ping-centre.log", false); + +// Enable GMP support in the addon manager. +pref("media.gmp-provider.enabled", true); + +// Enable Dynamic First-Party Isolation by default. +pref("network.cookie.cookieBehavior", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); + +// Whether to show the section in preferences which allows users to opt-in to +// Total Cookie Protection (dFPI) in standard mode. +pref("privacy.restrict3rdpartystorage.rollout.preferences.TCPToggleInStandard", false); + +// Target URL for the learn more link of the TCP in standard mode rollout section. +pref("privacy.restrict3rdpartystorage.rollout.preferences.learnMoreURLSuffix", "total-cookie-protection"); + +// Target URL for the learn more link of the TCP in standard mode section. +pref("privacy.restrict3rdpartystorage.preferences.learnMoreURLSuffix", "total-cookie-protection"); + +// Enable Dynamic First-Party Isolation in the private browsing mode. +pref("network.cookie.cookieBehavior.pbmode", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); + +// Enable fingerprinting blocking by default for all channels, only on desktop. +pref("privacy.trackingprotection.fingerprinting.enabled", true); + +// Enable cryptomining blocking by default for all channels, only on desktop. +pref("privacy.trackingprotection.cryptomining.enabled", true); + +pref("browser.contentblocking.database.enabled", true); + +pref("dom.storage_access.enabled", true); + +// Enable URL query stripping in Nightly. +#ifdef NIGHTLY_BUILD +pref("privacy.query_stripping.enabled", true); +#endif + +pref("browser.contentblocking.cryptomining.preferences.ui.enabled", true); +pref("browser.contentblocking.fingerprinting.preferences.ui.enabled", true); +// Enable cookieBehavior = BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN as an option in the custom category ui +pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true); + +// Possible values for browser.contentblocking.features.strict pref: +// Tracking Protection: +// "tp": tracking protection enabled +// "-tp": tracking protection disabled +// Tracking Protection in private windows: +// "tpPrivate": tracking protection in private windows enabled +// "-tpPrivate": tracking protection in private windows disabled +// Fingerprinting: +// "fp": fingerprinting blocking enabled +// "-fp": fingerprinting blocking disabled +// Cryptomining: +// "cm": cryptomining blocking enabled +// "-cm": cryptomining blocking disabled +// Social Tracking Protection: +// "stp": social tracking protection enabled +// "-stp": social tracking protection disabled +// Level 2 Tracking list: +// "lvl2": Level 2 tracking list enabled +// "-lvl2": Level 2 tracking list disabled +// Restrict relaxing default referrer policy: +// "rp": Restrict relaxing default referrer policy enabled +// "-rp": Restrict relaxing default referrer policy disabled +// Restrict relaxing default referrer policy for top navigation: +// "rpTop": Restrict relaxing default referrer policy enabled +// "-rpTop": Restrict relaxing default referrer policy disabled +// OCSP cache partitioning: +// "ocsp": OCSP cache partitioning enabled +// "-ocsp": OCSP cache partitioning disabled +// Query parameter stripping: +// "qps": Query parameter stripping enabled +// "-qps": Query parameter stripping disabled +// Query parameter stripping for private windows: +// "qpsPBM": Query parameter stripping enabled in private windows +// "-qpsPBM": Query parameter stripping disabled in private windows +// Cookie behavior: +// "cookieBehavior0": cookie behaviour BEHAVIOR_ACCEPT +// "cookieBehavior1": cookie behaviour BEHAVIOR_REJECT_FOREIGN +// "cookieBehavior2": cookie behaviour BEHAVIOR_REJECT +// "cookieBehavior3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN +// "cookieBehavior4": cookie behaviour BEHAVIOR_REJECT_TRACKER +// "cookieBehavior5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN +// Cookie behavior for private windows: +// "cookieBehaviorPBM0": cookie behaviour BEHAVIOR_ACCEPT +// "cookieBehaviorPBM1": cookie behaviour BEHAVIOR_REJECT_FOREIGN +// "cookieBehaviorPBM2": cookie behaviour BEHAVIOR_REJECT +// "cookieBehaviorPBM3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN +// "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER +// "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN +// One value from each section must be included in the browser.contentblocking.features.strict pref. +pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,lvl2,rp,rpTop,ocsp,qps,qpsPBM"); + +// Hide the "Change Block List" link for trackers/tracking content in the custom +// Content Blocking/ETP panel. By default, it will not be visible. There is also +// an UI migration in place to set this pref to true if a user has a custom block +// lists enabled. +pref("browser.contentblocking.customBlockList.preferences.ui.enabled", false); + +pref("browser.contentblocking.reportBreakage.url", "https://tracking-protection-issues.herokuapp.com/new"); + +// Enable Protections report's Lockwise card by default. +pref("browser.contentblocking.report.lockwise.enabled", true); + +// Enable Protections report's Monitor card by default. +pref("browser.contentblocking.report.monitor.enabled", true); + +// Disable Protections report's Proxy card by default. +pref("browser.contentblocking.report.proxy.enabled", false); + +// Disable the mobile promotion by default. +pref("browser.contentblocking.report.show_mobile_app", true); + +// Locales in which Send to Device emails are supported +// The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963 +pref("browser.send_to_device_locales", "de,en-GB,en-US,es-AR,es-CL,es-ES,es-MX,fr,id,pl,pt-BR,ru,zh-TW"); + +// Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes. +// We're currently blocking all of Ukraine (ua), but would prefer to block just Crimea (ua-43). Currently, the Mozilla Location Service APIs used by Region.jsm only exposes the country, not the subdivision. +pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr,ua"); + +// Default to enabling VPN promo messages to be shown when specified and allowed +pref("browser.vpn_promo.enabled", true); +// Only show vpn card to certain regions. Comma separated string of two letter ISO 3166-1 country codes. +// The most recent list of supported countries can be found at https://support.mozilla.org/en-US/kb/mozilla-vpn-countries-available-subscribe +// The full list of supported country codes can also be found at https://github.com/mozilla/bedrock/search?q=VPN_COUNTRY_CODES +pref("browser.contentblocking.report.vpn_regions", "as,at,be,ca,ch,de,es,fi,fr,gb,gg,ie,im,io,it,je,mp,my,nl,nz,pr,se,sg,uk,um,us,vg,vi" +); + +// Avoid advertising Focus in certain regions. Comma separated string of two letter +// ISO 3166-1 country codes. +pref("browser.promo.focus.disallowed_regions", "cn"); + +// Default to enabling focus promos to be shown where allowed. +pref("browser.promo.focus.enabled", true); + +// Default to enabling pin promos to be shown where allowed. +pref("browser.promo.pin.enabled", true); + +// Comma separated string of mozilla vpn supported platforms. +pref("browser.contentblocking.report.vpn_platforms", "win,mac,linux"); +pref("browser.contentblocking.report.hide_vpn_banner", false); +pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA"); + +pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections"); +pref("browser.contentblocking.report.monitor.how_it_works.url", "https://monitor.firefox.com/about"); +pref("browser.contentblocking.report.monitor.sign_in_url", "https://monitor.firefox.com/oauth/init?entrypoint=protection_report_monitor&utm_source=about-protections&email="); +pref("browser.contentblocking.report.monitor.preferences_url", "https://monitor.firefox.com/user/preferences"); +pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.firefox.com/user/dashboard"); +pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients"); +pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true"); +pref("browser.contentblocking.report.proxy_extension.url", "https://fpn.firefox.com/browser?utm_source=firefox-desktop&utm_medium=referral&utm_campaign=about-protections&utm_content=about-protections"); +pref("browser.contentblocking.report.mobile-ios.url", "https://apps.apple.com/app/firefox-private-safe-browser/id989804926"); +pref("browser.contentblocking.report.mobile-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox&referrer=utm_source%3Dprotection_report%26utm_content%3Dmobile_promotion"); +pref("browser.contentblocking.report.vpn.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-card"); +pref("browser.contentblocking.report.vpn-promo.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-top-promo"); +pref("browser.contentblocking.report.vpn-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox.vpn&referrer=utm_source%3Dfirefox-browser%26utm_medium%3Dfirefox-browser%26utm_campaign%3Dabout-protections-mobile-vpn%26anid%3D--"); +pref("browser.contentblocking.report.vpn-ios.url", "https://apps.apple.com/us/app/firefox-private-network-vpn/id1489407738"); + +// Protection Report's SUMO urls +pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report"); +pref("browser.contentblocking.report.social.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/social-media-tracking-report"); +pref("browser.contentblocking.report.cookie.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cross-site-tracking-report"); +pref("browser.contentblocking.report.tracker.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/tracking-content-report"); +pref("browser.contentblocking.report.fingerprinter.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/fingerprinters-report"); +pref("browser.contentblocking.report.cryptominer.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cryptominers-report"); + +pref("browser.contentblocking.cfr-milestone.enabled", true); +pref("browser.contentblocking.cfr-milestone.milestone-achieved", 0); +// Milestones should always be in increasing order +pref("browser.contentblocking.cfr-milestone.milestones", "[1000, 5000, 10000, 25000, 50000, 100000, 250000, 314159, 500000, 750000, 1000000, 1250000, 1500000, 1750000, 2000000, 2250000, 2500000, 8675309]"); + +// Enables the new Protections Panel. +#ifdef NIGHTLY_BUILD + pref("browser.protections_panel.enabled", true); + pref("browser.protections_panel.infoMessage.seen", false); +#endif + +// Always enable newtab segregation using containers +pref("privacy.usercontext.about_newtab_segregation.enabled", true); +// Enable Contextual Identity Containers +#ifdef NIGHTLY_BUILD + pref("privacy.userContext.enabled", true); + pref("privacy.userContext.ui.enabled", true); +#else + pref("privacy.userContext.enabled", false); + pref("privacy.userContext.ui.enabled", false); +#endif +pref("privacy.userContext.extension", ""); +// allows user to open container menu on a left click instead of a new +// tab in the default container +pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false); + +#if defined(NIGHTLY_BUILD) || defined(XP_WIN) || defined(XP_MACOSX) +// Set to true to allow the user to silence all notifications when +// sharing the screen. Only shipping on Windows and macOS out to +// release. Enabled for all desktop platforms on Nightly. +pref("privacy.webrtc.allowSilencingNotifications", true); +// Set to true to use the legacy WebRTC global indicator +pref("privacy.webrtc.legacyGlobalIndicator", false); +pref("privacy.webrtc.hideGlobalIndicator", false); +#else +pref("privacy.webrtc.allowSilencingNotifications", false); +pref("privacy.webrtc.legacyGlobalIndicator", true); +#endif + +// Set to true to add toggles to the WebRTC indicator for globally +// muting the camera and microphone. +pref("privacy.webrtc.globalMuteToggles", false); + +// Set to true to enable a warning displayed when attempting +// to switch tabs in a window that's being shared over WebRTC. +pref("privacy.webrtc.sharedTabWarning", false); + +// Defines a grace period after camera or microphone use ends, where permission +// is granted (even past navigation) to this tab + origin + device. This avoids +// re-prompting without the user having to persist permission to the site, in a +// common case of a web conference asking them for the camera in a lobby page, +// before navigating to the actual meeting room page. Doesn't survive tab close. +pref("privacy.webrtc.deviceGracePeriodTimeoutMs", 3600000); + +// Start the browser in e10s mode +pref("browser.tabs.remote.autostart", true); +pref("browser.tabs.remote.desktopbehavior", true); + +// Run media transport in a separate process? +pref("media.peerconnection.mtransport_process", true); + +// For speculatively warming up tabs to improve perceived +// performance while using the async tab switcher. +pref("browser.tabs.remote.warmup.enabled", true); + +// Caches tab layers to improve perceived performance +// of tab switches. +pref("browser.tabs.remote.tabCacheSize", 0); + +pref("browser.tabs.remote.warmup.maxTabs", 3); +pref("browser.tabs.remote.warmup.unloadDelayMs", 2000); + +// For the about:tabcrashed page +pref("browser.tabs.crashReporting.sendReport", true); +pref("browser.tabs.crashReporting.includeURL", false); + +// If true, unprivileged extensions may use experimental APIs on +// nightly and developer edition. +pref("extensions.experiments.enabled", false); + +#if defined(XP_LINUX) || defined(XP_WIN) + // Allows us to adjust the priority of child processes at the OS level + pref("dom.ipc.processPriorityManager.enabled", true); +#endif + +// Don't limit how many nodes we care about on desktop: +pref("reader.parse-node-limit", 0); + +// On desktop, we want the URLs to be included here for ease of debugging, +// and because (normally) these errors are not persisted anywhere. +pref("reader.errors.includeURLs", true); + +// What version of Pocket CTA to show in Reader Mode (Empty string is no CTA) +pref("reader.pocket.ctaVersion", ""); + +pref("view_source.tab", true); + +pref("dom.serviceWorkers.enabled", true); + +// Enable Push API. +pref("dom.push.enabled", true); + +// These are the thumbnail width/height set in about:newtab. +// If you change this, ENSURE IT IS THE SAME SIZE SET +// by about:newtab. These values are in CSS pixels. +pref("toolkit.pageThumbs.minWidth", 280); +pref("toolkit.pageThumbs.minHeight", 190); + +// Enable speech synthesis +pref("media.webspeech.synth.enabled", true); + +pref("browser.esedbreader.loglevel", "Error"); + +pref("browser.laterrun.enabled", false); + +#ifdef FUZZING_SNAPSHOT +pref("dom.ipc.processPrelaunch.enabled", false); +#else +pref("dom.ipc.processPrelaunch.enabled", true); +#endif + +pref("browser.migrate.brave.enabled", true); +pref("browser.migrate.canary.enabled", true); + +pref("browser.migrate.chrome.enabled", true); +// See comments in bug 1340115 on how we got to these numbers. +pref("browser.migrate.chrome.history.limit", 2000); +pref("browser.migrate.chrome.history.maxAgeInDays", 180); + +pref("browser.migrate.chrome-beta.enabled", true); +pref("browser.migrate.chrome-dev.enabled", true); +pref("browser.migrate.chromium.enabled", true); +pref("browser.migrate.chromium-360se.enabled", true); +pref("browser.migrate.chromium-edge.enabled", true); +pref("browser.migrate.chromium-edge-beta.enabled", true); +pref("browser.migrate.edge.enabled", true); +pref("browser.migrate.firefox.enabled", true); +pref("browser.migrate.ie.enabled", true); +pref("browser.migrate.safari.enabled", true); + +pref("browser.migrate.showBookmarksToolbarAfterMigration", true); + +pref("extensions.pocket.api", "api.getpocket.com"); +pref("extensions.pocket.enabled", true); +pref("extensions.pocket.oAuthConsumerKey", "40249-e88c401e1b1f2242d9e441c4"); +pref("extensions.pocket.site", "getpocket.com"); +pref("extensions.pocket.onSaveRecs", true); +pref("extensions.pocket.onSaveRecs.locales", "en-US,en-GB,en-CA"); + +// Enable Pocket button home panel for non link pages. +pref("extensions.pocket.showHome", true); + +// Control what version of the logged out doorhanger is displayed +// Possibilities are: `control`, `control-one-button`, `variant_a`, `variant_b`, `variant_c` +pref("extensions.pocket.loggedOutVariant", "control"); + +// Just for the new Pocket panels, enables the email signup button. +pref("extensions.pocket.refresh.emailButton.enabled", false); +// Hides the recently saved section in the home panel. +pref("extensions.pocket.refresh.hideRecentSaves.enabled", false); + +pref("signon.management.page.fileImport.enabled", false); + +#ifdef NIGHTLY_BUILD +pref("signon.management.page.os-auth.enabled", true); +#else +pref("signon.management.page.os-auth.enabled", false); +#endif +pref("signon.management.page.breach-alerts.enabled", true); +pref("signon.management.page.vulnerable-passwords.enabled", true); +pref("signon.management.page.sort", "name"); +// The utm_creative value is appended within the code (specific to the location on +// where it is clicked). Be sure that if these two prefs are updated, that +// the utm_creative param be last. +pref("signon.management.page.breachAlertUrl", + "https://monitor.firefox.com/breach-details/"); +pref("signon.passwordEditCapture.enabled", true); +pref("signon.relatedRealms.enabled", false); +pref("signon.showAutoCompleteFooter", true); +pref("signon.showAutoCompleteImport", "import"); +pref("signon.suggestImportCount", 3); + +// Enable the "Simplify Page" feature in Print Preview. This feature +// is disabled by default in toolkit. +pref("print.use_simplify_page", true); + +// Space separated list of URLS that are allowed to send objects (instead of +// only strings) through webchannels. This list is duplicated in mobile/android/app/mobile.js +pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://support.mozilla.org https://install.mozilla.org"); + +// Whether or not the browser should scan for unsubmitted +// crash reports, and then show a notification for submitting +// those reports. +#ifdef NIGHTLY_BUILD + pref("browser.crashReports.unsubmittedCheck.enabled", true); +#else + pref("browser.crashReports.unsubmittedCheck.enabled", false); +#endif + +// chancesUntilSuppress is how many times we'll show the unsubmitted +// crash report notification across different days and shutdown +// without a user choice before we suppress the notification for +// some number of days. +pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4); +pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); + +// Preferences for the form autofill toolkit component. +// Checkbox in sync options for credit card data sync service +pref("services.sync.engine.creditcards.available", true); +// Whether the user enabled the OS re-auth dialog. +pref("extensions.formautofill.reauth.enabled", false); + +// Whether or not to restore a session with lazy-browser tabs. +pref("browser.sessionstore.restore_tabs_lazily", true); + +pref("browser.suppress_first_window_animation", true); + +// Preference that allows individual users to disable Screenshots. +pref("extensions.screenshots.disabled", false); + +// Preference that determines whether Screenshots is opened as a dedicated browser component +pref("screenshots.browser.component.enabled", false); + +// DoH Rollout: whether to clear the mode value at shutdown. +pref("doh-rollout.clearModeOnShutdown", false); + +// URL for Learn More link for browser error logging in preferences +pref("browser.chrome.errorReporter.infoURL", + "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/nightly-error-collection"); + +// Normandy client preferences +pref("app.normandy.api_url", "https://normandy.cdn.mozilla.net/api/v1"); +pref("app.normandy.dev_mode", false); +pref("app.normandy.enabled", true); +pref("app.normandy.first_run", true); +pref("app.normandy.logging.level", 50); // Warn +pref("app.normandy.run_interval_seconds", 21600); // 6 hours +pref("app.normandy.shieldLearnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/shield"); +pref("app.normandy.last_seen_buildid", ""); +pref("app.normandy.onsync_skew_sec", 600); +#ifdef MOZ_DATA_REPORTING + pref("app.shield.optoutstudies.enabled", true); +#else + pref("app.shield.optoutstudies.enabled", false); +#endif + +// Multi-lingual preferences: +// *.enabled - Are langpacks available for the build of Firefox? +// *.downloadEnabled - Langpacks are allowed to be downloaded from AMO. AMO only serves +// langpacks for release and beta. Unsupported releases (like Nightly) can be +// manually tested with the following preference: +// extensions.getAddons.langpacks.url: https://mock-amo-language-tools.glitch.me/?app=firefox&type=language&appversion=%VERSION% +// *.liveReload - Switching a langpack will change the language without a restart. +// *.liveReloadBidirectional - Allows switching when moving between LTR and RTL +// languages without a full restart. +// *.aboutWelcome.languageMismatchEnabled - Enables an onboarding menu in about:welcome +// to allow a user to change their language when there is a language mismatch between +// the app and browser. +#if defined(RELEASE_OR_BETA) && !defined(MOZ_DEV_EDITION) + pref("intl.multilingual.enabled", true); + pref("intl.multilingual.downloadEnabled", true); + pref("intl.multilingual.liveReload", true); + pref("intl.multilingual.liveReloadBidirectional", false); + pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", true); +#else + pref("intl.multilingual.enabled", false); + pref("intl.multilingual.downloadEnabled", false); + pref("intl.multilingual.liveReload", false); + pref("intl.multilingual.liveReloadBidirectional", false); + pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", false); +#endif + +// Coverage ping is disabled by default. +pref("toolkit.coverage.enabled", false); +pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org"); + +// Discovery prefs +pref("browser.discovery.enabled", true); +pref("browser.discovery.containers.enabled", true); +pref("browser.discovery.sites", "addons.mozilla.org"); + +pref("browser.engagement.recent_visited_origins.expiry", 86400); // 24 * 60 * 60 (24 hours in seconds) +pref("browser.engagement.downloads-button.has-used", false); +pref("browser.engagement.fxa-toolbar-menu-button.has-used", false); +pref("browser.engagement.home-button.has-used", false); +pref("browser.engagement.sidebar-button.has-used", false); +pref("browser.engagement.library-button.has-used", false); +pref("browser.engagement.ctrlTab.has-used", false); + +pref("browser.aboutConfig.showWarning", true); + +pref("browser.toolbars.keyboard_navigation", true); + +// The visibility of the bookmarks toolbar. +// "newtab": Show on the New Tab Page +// "always": Always show +// "never": Never show +pref("browser.toolbars.bookmarks.visibility", "newtab"); + +// Visibility of the "Show Other Bookmarks" menuitem in the +// bookmarks toolbar contextmenu. +pref("browser.toolbars.bookmarks.showOtherBookmarks", true); + +// Prefs to control the Firefox Account toolbar menu. +// This pref will surface existing Firefox Account information +// as a button next to the hamburger menu. It allows +// quick access to sign-in and manage your Firefox Account. +pref("identity.fxaccounts.toolbar.enabled", true); +pref("identity.fxaccounts.toolbar.accessed", false); + +// Prefs for different services supported by Firefox Account +pref("identity.fxaccounts.service.monitorLoginUrl", "https://monitor.firefox.com/"); + +// Check bundled omni JARs for corruption. +pref("corroborator.enabled", true); + +// Toolbox preferences +pref("devtools.toolbox.footer.height", 250); +pref("devtools.toolbox.sidebar.width", 500); +pref("devtools.toolbox.host", "bottom"); +pref("devtools.toolbox.previousHost", "right"); +pref("devtools.toolbox.selectedTool", "inspector"); +pref("devtools.toolbox.zoomValue", "1"); +pref("devtools.toolbox.splitconsoleEnabled", false); +pref("devtools.toolbox.splitconsoleHeight", 100); +pref("devtools.toolbox.tabsOrder", ""); +// This is only used for local Web Extension debugging, +// and allows to keep the window on top of all others, +// so that you can debug the Firefox window, while keeping the devtools +// always visible +pref("devtools.toolbox.alwaysOnTop", true); + +// The fission pref for enabling the "Multiprocess Browser Toolbox", which will +// make it possible to debug anything in Firefox (See Bug 1570639 for more information). +pref("devtools.browsertoolbox.fission", true); + +// When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it: +// - "everything" will enable debugging absolutely everything in the browser +// All processes, all documents, all workers, all add-ons. +// - "parent-process" will restrict debugging to the parent process +// All privileged javascript, documents and workers running in the parent process. +pref("devtools.browsertoolbox.scope", "parent-process"); + +// This preference will enable watching top-level targets from the server side. +pref("devtools.target-switching.server.enabled", true); + +// In DevTools, create a target for each frame (i.e. not only for top-level document and +// remote frames). +pref("devtools.every-frame-target.enabled", true); + +// Controls the hability to debug popups from the same DevTools +// of the original tab the popups are coming from +pref("devtools.popups.debug", false); + +// Toolbox Button preferences +pref("devtools.command-button-pick.enabled", true); +pref("devtools.command-button-frames.enabled", true); +pref("devtools.command-button-splitconsole.enabled", true); +pref("devtools.command-button-responsive.enabled", true); +pref("devtools.command-button-screenshot.enabled", false); +pref("devtools.command-button-rulers.enabled", false); +pref("devtools.command-button-measure.enabled", false); +pref("devtools.command-button-noautohide.enabled", false); +pref("devtools.command-button-errorcount.enabled", true); +#ifndef MOZILLA_OFFICIAL + pref("devtools.command-button-experimental-prefs.enabled", true); +#endif + +// Inspector preferences +// Enable the Inspector +pref("devtools.inspector.enabled", true); +// What was the last active sidebar in the inspector +pref("devtools.inspector.selectedSidebar", "layoutview"); +pref("devtools.inspector.activeSidebar", "layoutview"); +pref("devtools.inspector.remote", false); + +// Enable the 3 pane mode in the inspector +pref("devtools.inspector.three-pane-enabled", true); +// Enable the 3 pane mode in the chrome inspector +pref("devtools.inspector.chrome.three-pane-enabled", false); +// Collapse pseudo-elements by default in the rule-view +pref("devtools.inspector.show_pseudo_elements", false); +// The default size for image preview tooltips in the rule-view/computed-view/markup-view +pref("devtools.inspector.imagePreviewTooltipSize", 300); +// Enable user agent style inspection in rule-view +pref("devtools.inspector.showUserAgentStyles", false); +// Show native anonymous content and user agent shadow roots +pref("devtools.inspector.showAllAnonymousContent", false); +// Enable the inline CSS compatiblity warning in inspector rule view +pref("devtools.inspector.ruleview.inline-compatibility-warning.enabled", false); +// Enable the compatibility tool in the inspector. +pref("devtools.inspector.compatibility.enabled", true); +// Enable overflow debugging in the inspector. +pref("devtools.overflow.debugging.enabled", true); +// Enable drag to edit properties in the inspector rule view. +pref("devtools.inspector.draggable_properties", true); + +// Grid highlighter preferences +pref("devtools.gridinspector.gridOutlineMaxColumns", 50); +pref("devtools.gridinspector.gridOutlineMaxRows", 50); +pref("devtools.gridinspector.showGridAreas", false); +pref("devtools.gridinspector.showGridLineNumbers", false); +pref("devtools.gridinspector.showInfiniteLines", false); +// Max number of grid highlighters that can be displayed +pref("devtools.gridinspector.maxHighlighters", 3); + +// Whether or not the box model panel is opened in the layout view +pref("devtools.layout.boxmodel.opened", true); +// Whether or not the flexbox panel is opened in the layout view +pref("devtools.layout.flexbox.opened", true); +// Whether or not the flexbox container panel is opened in the layout view +pref("devtools.layout.flex-container.opened", true); +// Whether or not the flexbox item panel is opened in the layout view +pref("devtools.layout.flex-item.opened", true); +// Whether or not the grid inspector panel is opened in the layout view +pref("devtools.layout.grid.opened", true); + +// Enable hovering Box Model values and jumping to their source CSS rule in the +// rule-view. +#if defined(NIGHTLY_BUILD) + pref("devtools.layout.boxmodel.highlightProperty", true); +#else + pref("devtools.layout.boxmodel.highlightProperty", false); +#endif + +// By how many times eyedropper will magnify pixels +pref("devtools.eyedropper.zoom", 6); + +// Enable to collapse attributes that are too long. +pref("devtools.markup.collapseAttributes", true); +// Length to collapse attributes +pref("devtools.markup.collapseAttributeLength", 120); +// Whether to auto-beautify the HTML on copy. +pref("devtools.markup.beautifyOnCopy", false); +// Whether or not the DOM mutation breakpoints context menu are enabled in the +// markup view. +pref("devtools.markup.mutationBreakpoints.enabled", true); + +// DevTools default color unit +pref("devtools.defaultColorUnit", "authored"); + +// Enable the Memory tools +pref("devtools.memory.enabled", true); + +pref("devtools.memory.custom-census-displays", "{}"); +pref("devtools.memory.custom-label-displays", "{}"); +pref("devtools.memory.custom-tree-map-displays", "{}"); + +pref("devtools.memory.max-individuals", 1000); +pref("devtools.memory.max-retaining-paths", 10); + +// Enable the Performance tools +pref("devtools.performance.enabled", true); + +// The default cache UI setting +pref("devtools.cache.disabled", false); + +// The default service workers UI setting +pref("devtools.serviceWorkers.testing.enabled", false); + +// Enable the Network Monitor +pref("devtools.netmonitor.enabled", true); + +pref("devtools.netmonitor.features.search", true); +pref("devtools.netmonitor.features.requestBlocking", true); + +// Enable the Application panel +pref("devtools.application.enabled", true); + +// Enable the custom formatters feature +// TODO remove once the custom formatters feature is stable (see bug 1734614) +pref("devtools.custom-formatters", false); +// This preference represents the user's choice to enable the custom formatters feature. +// While the preference above will be removed once the feature is stable, this one is menat to stay. +pref("devtools.custom-formatters.enabled", false); + +// The default Network Monitor UI settings +pref("devtools.netmonitor.panes-network-details-width", 550); +pref("devtools.netmonitor.panes-network-details-height", 450); +pref("devtools.netmonitor.panes-search-width", 550); +pref("devtools.netmonitor.panes-search-height", 450); +pref("devtools.netmonitor.filters", "[\"all\"]"); +pref("devtools.netmonitor.visibleColumns", + "[\"status\",\"method\",\"domain\",\"file\",\"initiator\",\"type\",\"transferred\",\"contentSize\",\"waterfall\"]" +); +pref("devtools.netmonitor.columnsData", + '[{"name":"status","minWidth":30,"width":5}, {"name":"method","minWidth":30,"width":5}, {"name":"domain","minWidth":30,"width":10}, {"name":"file","minWidth":30,"width":25}, {"name":"url","minWidth":30,"width":25},{"name":"initiator","minWidth":30,"width":10},{"name":"type","minWidth":30,"width":5},{"name":"transferred","minWidth":30,"width":10},{"name":"contentSize","minWidth":30,"width":5},{"name":"waterfall","minWidth":150,"width":15}]'); +pref("devtools.netmonitor.msg.payload-preview-height", 128); +pref("devtools.netmonitor.msg.visibleColumns", + '["data", "time"]' +); +pref("devtools.netmonitor.msg.displayed-messages.limit", 500); + +pref("devtools.netmonitor.response.ui.limit", 10240); + +// Save request/response bodies yes/no. +pref("devtools.netmonitor.saveRequestAndResponseBodies", true); + +// The default Network monitor HAR export setting +pref("devtools.netmonitor.har.defaultLogDir", ""); +pref("devtools.netmonitor.har.defaultFileName", "%hostname_Archive [%date]"); +pref("devtools.netmonitor.har.jsonp", false); +pref("devtools.netmonitor.har.jsonpCallback", ""); +pref("devtools.netmonitor.har.includeResponseBodies", true); +pref("devtools.netmonitor.har.compress", false); +pref("devtools.netmonitor.har.forceExport", false); +pref("devtools.netmonitor.har.pageLoadedTimeout", 1500); +pref("devtools.netmonitor.har.enableAutoExportToFile", false); + +// netmonitor audit +pref("devtools.netmonitor.audits.slow", 500); + +// Enable the new Edit and Resend panel + pref("devtools.netmonitor.features.newEditAndResend", true); + +pref("devtools.netmonitor.customRequest", '{}'); + +// Enable the Storage Inspector +pref("devtools.storage.enabled", true); + +// Enable the Style Editor. +pref("devtools.styleeditor.enabled", true); +pref("devtools.styleeditor.autocompletion-enabled", true); +pref("devtools.styleeditor.showMediaSidebar", true); +pref("devtools.styleeditor.mediaSidebarWidth", 238); +pref("devtools.styleeditor.navSidebarWidth", 245); +pref("devtools.styleeditor.transitions", true); + +// Screenshot Option Settings. +pref("devtools.screenshot.clipboard.enabled", false); +pref("devtools.screenshot.audio.enabled", true); + +// Make sure the DOM panel is hidden by default +pref("devtools.dom.enabled", false); + +// Enable the Accessibility panel. +pref("devtools.accessibility.enabled", true); + +// Web console filters +pref("devtools.webconsole.filter.error", true); +pref("devtools.webconsole.filter.warn", true); +pref("devtools.webconsole.filter.info", true); +pref("devtools.webconsole.filter.log", true); +pref("devtools.webconsole.filter.debug", true); +pref("devtools.webconsole.filter.css", false); +pref("devtools.webconsole.filter.net", false); +pref("devtools.webconsole.filter.netxhr", false); + +// Webconsole autocomplete preference +pref("devtools.webconsole.input.autocomplete",true); + +// Show context selector in console input +pref("devtools.webconsole.input.context", true); + +// Set to true to eagerly show the results of webconsole terminal evaluations +// when they don't have side effects. +pref("devtools.webconsole.input.eagerEvaluation", true); + +// Browser console filters +pref("devtools.browserconsole.filter.error", true); +pref("devtools.browserconsole.filter.warn", true); +pref("devtools.browserconsole.filter.info", true); +pref("devtools.browserconsole.filter.log", true); +pref("devtools.browserconsole.filter.debug", true); +pref("devtools.browserconsole.filter.css", false); +pref("devtools.browserconsole.filter.net", false); +pref("devtools.browserconsole.filter.netxhr", false); + +// Max number of inputs to store in web console history. +pref("devtools.webconsole.inputHistoryCount", 300); + +// Persistent logging: |true| if you want the relevant tool to keep all of the +// logged messages after reloading the page, |false| if you want the output to +// be cleared each time page navigation happens. +pref("devtools.webconsole.persistlog", false); +pref("devtools.netmonitor.persistlog", false); + +// Web Console timestamp: |true| if you want the logs and instructions +// in the Web Console to display a timestamp, or |false| to not display +// any timestamps. +pref("devtools.webconsole.timestampMessages", false); + +// Enable the webconsole sidebar toggle in Nightly builds. +#if defined(NIGHTLY_BUILD) + pref("devtools.webconsole.sidebarToggle", true); +#else + pref("devtools.webconsole.sidebarToggle", false); +#endif + +// Saved editor mode state in the console. +pref("devtools.webconsole.input.editor", false); +pref("devtools.browserconsole.input.editor", false); + +// Editor width for webconsole and browserconsole. +pref("devtools.webconsole.input.editorWidth", 0); +pref("devtools.browserconsole.input.editorWidth", 0); + +// Display an onboarding UI for the Editor mode. +pref("devtools.webconsole.input.editorOnboarding", true); + +// Enable message grouping in the console, true by default +pref("devtools.webconsole.groupWarningMessages", true); + +// Saved state of the Display content messages checkbox in the browser console. +pref("devtools.browserconsole.contentMessages", false); + +// Enable network monitoring the browser toolbox console/browser console. +pref("devtools.browserconsole.enableNetworkMonitoring", false); + +// Enable client-side mapping service for source maps +pref("devtools.source-map.client-service.enabled", true); + +// The number of lines that are displayed in the web console. +pref("devtools.hud.loglimit", 10000); + +// The developer tools editor configuration: +// - tabsize: how many spaces to use when a Tab character is displayed. +// - expandtab: expand Tab characters to spaces. +// - keymap: which keymap to use (can be 'default', 'emacs' or 'vim') +// - autoclosebrackets: whether to permit automatic bracket/quote closing. +// - detectindentation: whether to detect the indentation from the file +// - enableCodeFolding: Whether to enable code folding or not. +pref("devtools.editor.tabsize", 2); +pref("devtools.editor.expandtab", true); +pref("devtools.editor.keymap", "default"); +pref("devtools.editor.autoclosebrackets", true); +pref("devtools.editor.detectindentation", true); +pref("devtools.editor.enableCodeFolding", true); +pref("devtools.editor.autocomplete", true); + +// The angle of the viewport. +pref("devtools.responsive.viewport.angle", 0); +// The width of the viewport. +pref("devtools.responsive.viewport.width", 320); +// The height of the viewport. +pref("devtools.responsive.viewport.height", 480); +// The pixel ratio of the viewport. +pref("devtools.responsive.viewport.pixelRatio", 0); +// Whether or not the viewports are left aligned. +pref("devtools.responsive.leftAlignViewport.enabled", false); +// Whether to reload when touch simulation is toggled +pref("devtools.responsive.reloadConditions.touchSimulation", false); +// Whether to reload when user agent is changed +pref("devtools.responsive.reloadConditions.userAgent", false); +// Whether to show the notification about reloading to apply emulation +pref("devtools.responsive.reloadNotification.enabled", true); +// Whether or not touch simulation is enabled. +pref("devtools.responsive.touchSimulation.enabled", false); +// The user agent of the viewport. +pref("devtools.responsive.userAgent", ""); +// Show the custom user agent input by default +pref("devtools.responsive.showUserAgentInput", true); + +// Show tab debug targets for This Firefox (on by default for local builds). +#ifdef MOZILLA_OFFICIAL + pref("devtools.aboutdebugging.local-tab-debugging", false); +#else + pref("devtools.aboutdebugging.local-tab-debugging", true); +#endif + +// Show process debug targets. +pref("devtools.aboutdebugging.process-debugging", true); +// Stringified array of network locations that users can connect to. +pref("devtools.aboutdebugging.network-locations", "[]"); +// Debug target pane collapse/expand settings. +pref("devtools.aboutdebugging.collapsibilities.installedExtension", false); +pref("devtools.aboutdebugging.collapsibilities.otherWorker", false); +pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false); +pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false); +pref("devtools.aboutdebugging.collapsibilities.tab", false); +pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false); + +// about:debugging: only show system and hidden extensions in local builds by +// default. +#ifdef MOZILLA_OFFICIAL + pref("devtools.aboutdebugging.showHiddenAddons", false); +#else + pref("devtools.aboutdebugging.showHiddenAddons", true); +#endif + +// Map top-level await expressions in the console +pref("devtools.debugger.features.map-await-expression", true); + +// This relies on javascript.options.asyncstack as well or it has no effect. +pref("devtools.debugger.features.async-captured-stacks", true); +pref("devtools.debugger.features.async-live-stacks", false); + +// Disable autohide for DevTools popups and tooltips. +// This is currently not exposed by any UI to avoid making +// about:devtools-toolbox tabs unusable by mistake. +pref("devtools.popup.disable_autohide", false); + +// FirstStartup service time-out in ms +pref("first-startup.timeout", 30000); + +// Enable the default browser agent. +// The agent still runs as scheduled if this pref is disabled, +// but it exits immediately before taking any action. +#ifdef XP_WIN + pref("default-browser-agent.enabled", true); +#endif + +// Test Prefs that do nothing for testing +#if defined(EARLY_BETA_OR_EARLIER) + pref("app.normandy.test-prefs.bool", false); + pref("app.normandy.test-prefs.integer", 0); + pref("app.normandy.test-prefs.string", ""); +#endif + +// Shows 'View Image Info' item in the image context menu +#ifdef MOZ_DEV_EDITION + pref("browser.menu.showViewImageInfo", true); +#else + pref("browser.menu.showViewImageInfo", false); +#endif + +// Mozilla-controlled domains that are allowed to use non-standard +// context properties for SVG images for use in the browser UI. Please +// keep this list short. This preference (and SVG `context-` keyword support) +// are expected to go away once a standardized alternative becomes +// available. +pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox.com,profile.stage.mozaws.net"); + +// Preference that allows individual users to disable Firefox Translations. +#ifdef NIGHTLY_BUILD + pref("extensions.translations.disabled", true); +#endif + +// A set of scores for rating the relevancy of snapshots. The suffixes after the +// last decimal are prefixed by `_score` and reference the functions called in +// SnapshotScorer. +pref("browser.snapshots.score.Visit", 1); +pref("browser.snapshots.score.CurrentSession", 1); +pref("browser.snapshots.score.IsUserPersisted", 1); +pref("browser.snapshots.score.IsUserRemoved", -10); + +// A set of weights for the snapshot recommendation sources. The suffixes after +// the last decimal map to the keys of `Snapshots.recommendationSources`. +pref("browser.snapshots.source.CommonReferrer", 3); +pref("browser.snapshots.source.Overlapping", 3); +pref("browser.snapshots.source.TimeOfDay", 3); + +// Other preferences affecting snapshots scoring. +pref("browser.snapshots.relevancy.timeOfDayIntervalSeconds", 3600); + +// Expiration days for snapshots. +pref("browser.places.snapshots.expiration.days", 210); +// For user managed snapshots we use more than a year, to support yearly tasks. +pref("browser.places.snapshots.expiration.userManaged.days", 420); + +// If the user has seen the Firefox View feature tour this value reflects +// the id of the last screen they saw and whether they completed the tour +pref("browser.firefox-view.feature-tour", "{\"screen\":\"FIREFOX_VIEW_SPOTLIGHT\",\"complete\":false}"); +// Number of times the user visited about:firefoxview +pref("browser.firefox-view.view-count", 0); + +// If the user has seen the pdf.js feature tour this value reflects the tour +// message id, the id of the last screen they saw, and whether they completed the tour +pref("browser.pdfjs.feature-tour", "{\"message\":\"PDF_JS_FEATURE_TOUR\",\"screen\":\"\",\"complete\":false}"); + +// Enables cookie banner handling in Nightly in Private Browsing Mode. See +// StaticPrefList.yaml for a description of the prefs. +#ifdef NIGHTLY_BUILD + pref("cookiebanners.service.mode.privateBrowsing", 1); + pref("cookiebanners.bannerClicking.enabled", true); +#endif + +// We only want to enable this pref for Desktop nightlies. +#ifdef NIGHTLY_BUILD + pref("dom.sitepermsaddon-provider.enabled", true); +#endif diff --git a/src/changed/browser/themes/linux/browser.css b/src/changed/browser/themes/linux/browser.css index 3bb27065cc..c8868cc113 100644 --- a/src/changed/browser/themes/linux/browser.css +++ b/src/changed/browser/themes/linux/browser.css @@ -2,454 +2,424 @@ * 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 url("chrome://browser/skin/browser-shared.css"); -@import url("chrome://browser/skin/contextmenu.css"); - -@namespace html url("http://www.w3.org/1999/xhtml"); - -/** - * We intentionally do not include browser-custom-colors.css, - * instead choosing to fall back to system colours and transparencies - * in order to accomodate the wider variety of system themes on that - * platform. - */ - - /* datcord stuff. remove unwanted ui like tabs and url bar */ - #navigator-toolbox #TabsToolbar { visibility: collapse !important; } - #navigator-toolbox .browser-toolbar { height: 0px !important; min-height: 0px !important; } - - -:root { - --toolbar-non-lwt-bgcolor: -moz-dialog; - --toolbar-non-lwt-textcolor: -moz-dialogtext; - --toolbar-non-lwt-bgimage: linear-gradient(rgba(255,255,255,.075), rgba(255,255,255,.075)); - --tab-selected-non-lwt-bgimage: linear-gradient(rgba(255,255,255,.15), rgba(255,255,255,.15)); - - --panel-separator-color: ThreeDShadow; - - --chrome-content-separator-color: ThreeDShadow; -} - -#TabsToolbar:not(:-moz-lwtheme), -#TabsToolbar[brighttext]:not(:-moz-lwtheme) { - --tab-attention-icon-color: AccentColor; -} - -:root:-moz-lwtheme { - --chrome-content-separator-color: rgba(0,0,0,.3); - - --panel-separator-color: hsla(210,4%,10%,.14); -} - -:root[lwt-popup-brighttext] { - --panel-separator-color: rgba(249,249,250,.1); -} - -#menubar-items { - -moz-box-orient: vertical; /* for flex hack */ -} - -#navigator-toolbox { - appearance: none; - background-color: transparent; - border-top: none; -} - -.browser-toolbar { - padding: 0; -} - -.browser-toolbar:not(.titlebar-color) { - background-color: var(--toolbar-bgcolor); - background-image: var(--toolbar-bgimage); - color: var(--toolbar-color); - appearance: none; - border-style: none; -} - -#nav-bar:not([tabs-hidden="true"]) { - box-shadow: 0 calc(-1 * var(--tabs-navbar-shadow-size)) 0 var(--lwt-tabs-border-color, rgba(0,0,0,.3)); - /* This is needed for some toolbar button animations. Gross :( */ - position: relative; -} - -/* Bookmark menus */ -menu.bookmark-item, -menuitem.bookmark-item { - min-width: 0; - max-width: 32em; -} - -.bookmark-item:not(.subviewbutton) > .menu-iconic-left { - margin-block: 0; -} - -/* Bookmark drag and drop styles */ -.bookmark-item[dragover-into="true"] { - background: SelectedItem !important; - color: SelectedItemText !important; -} - -.bookmark-item[cutting] > .toolbarbutton-icon, -.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-icon { - opacity: 0.5; -} - -.bookmark-item[cutting] > .toolbarbutton-text, -.bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-text { - opacity: 0.7; -} - -/* Address bar */ -#urlbar, -#searchbar { - font-size: 1.05em; -} - -@supports -moz-bool-pref("browser.urlbar.experimental.expandTextOnFocus") { - #urlbar[breakout-extend] { - font-size: 1.14em; - } -} - -:root { - --toolbar-field-border-color: ThreeDShadow; -} - -/* Address bar results view */ - -:root:not(:-moz-lwtheme) { - --urlbar-popup-action-color: -moz-nativehyperlinktext; - --autocomplete-popup-highlight-background: SelectedItem; - --autocomplete-popup-highlight-color: SelectedItemText; -} - -/* AutoComplete */ - -#PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] { - border-top: 1px solid ThreeDShadow; -} - -/* Content area */ - - -#browser { - --sidebar-border-color: ThreeDShadow; -} - -.sidebar-splitter { - appearance: none; - width: 6px; - background-color: -moz-dialog; - border: 1px ThreeDShadow; - border-style: none solid; -} - -/* Tabstrip */ - -#tabbrowser-tabs { - /* override the global style to allow the selected tab to be above the nav-bar */ - z-index: auto; -} - -#TabsToolbar { - min-height: 0; -} - -#TabsToolbar:not(:-moz-lwtheme) { - appearance: auto; - -moz-default-appearance: menubar; - color: -moz-menubartext; -} - -#context_reloadTab { - list-style-image: url("moz-icon://stock/gtk-refresh?size=menu"); -} - -#context_closeOtherTabs { - list-style-image: url("moz-icon://stock/gtk-clear?size=menu"); -} - -#context_closeOtherTabs[disabled] { - list-style-image: url("moz-icon://stock/gtk-clear?size=menu&state=disabled"); -} - -#context_undoCloseTab { - list-style-image: url("moz-icon://stock/gtk-undelete?size=menu"); -} - -#context_closeTab { - list-style-image: url("moz-icon://stock/gtk-close?size=menu"); -} - -/* All tabs menupopup */ - -.alltabs-item[selected="true"] { - font-weight: bold; -} - -/* Status panel */ - -#statuspanel-label { - margin: 0; - padding: 2px 4px; - background-color: -moz-dialog; - border: 1px none ThreeDShadow; - border-top-style: solid; - color: -moz-dialogText; - text-shadow: none; - color-scheme: light; -} - -@media (-moz-content-prefers-color-scheme: dark) { - #statuspanel-label { - color-scheme: dark; - } -} - -#statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(ltr), -#statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(rtl) { - border-right-style: solid; - border-top-right-radius: .3em; - margin-right: 1em; -} - -#statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(rtl), -#statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(ltr) { - border-left-style: solid; - border-top-left-radius: .3em; - margin-left: 1em; -} - - -#UITourHighlight { - /* Below are some fixes for people without an X compositor on Linux. - This is why we can't have nice things: */ - /* Animations don't repaint properly without an X compositor. */ - animation-name: none !important; - /* Opacity rounds to 0 or 1 on Linux without an X compositor, making the - background color not visible. Anti-aliasing is not available either. Make a - thicker outline and cancel border-radius for that case. */ - outline: 4px solid rgb(0,200,215); - border-radius: 0 !important; -} - -#UITourTooltipDescription { - font-size: 1.05rem; -} - -#UITourTooltipClose { - margin-inline-end: -4px; -} - -/** - * Override the --arrowpanel-padding so the background extends - * to the sides and bottom of the panel. - */ -#UITourTooltipButtons { - margin-inline-start: -10px; - margin-bottom: -10px; -} - -#context-navigation > .menuitem-iconic > .menu-iconic-left { - /* override toolkit/themes/linux/global/menu.css */ - padding-inline-end: 0 !important; - margin-inline-end: 0 !important; -} - -/** - * Titlebar drawing: - * - * We draw to titlebar when Gkt+ CSD is available. This is mostly - * straight-forward, but getting the window corners to look perfect is a bit - * tricky, as there are different variables to take into account. - * - * GTK windows have both a window radius (exposed via the - * `-moz-gtk-csd-titlebar-radius`) environment variable, and a window shadow - * (which we can't read back from GTK). Note that the native drawing does draw - * the shadow already. - * - * So there are multiple configurations to consider: - * - * * Whether we're using Wayland vs. X11 - * * Whether we're using a lightweight theme or not. - * - * Consider the simple case (default system theme). We render the titlebar - * using `-moz-default-appearance: -moz-window-titlebar;`, then don't draw - * anything else. Success! - * - * Now consider lightweight themes: We need to render the native titlebar - * behind the "theme" titlebar in order to render the native shadow on X11. But - * we can't just use the #navigator-toolbox as that's where the lightweight - * theme background goes, so we need to use the #navigator-toolbox-background. - * We still have to apply the corner radii to #navigator-toolbox of course, so - * the lightweight theme background doesn't overflow the titlebar radius. - * - * In a Wayland-only world, the setup could be much simpler: We could apply the - * titlebar appearance to #navigator-toolbox, and just apply the border radius - * on the
or #navigator-toolbox-background to clip the extra shadow when - * using the system theme. For the lightweight theme, we could use - * appearance: none and the titlebar radius on the toolbox. In X11 however, we - * do need the native titlebar behind at all times. - */ -@media (-moz-gtk-csd-available) { - :root[tabsintitlebar][sizemode="normal"] { - background-color: transparent; - } - - :root[tabsintitlebar] #titlebar { - color: CaptionText; - } - - :root[tabsintitlebar] #titlebar:-moz-window-inactive { - color: InactiveCaptionText; - } - - :root[tabsintitlebar] #titlebar:-moz-lwtheme { - color: inherit; - } - - :root[tabsintitlebar] #navigator-toolbox-background { - appearance: auto; - -moz-default-appearance: -moz-window-titlebar-maximized; - } - - :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #navigator-toolbox-background { - -moz-default-appearance: -moz-window-titlebar; - } - - :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #navigator-toolbox:-moz-lwtheme, - :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) dialog::backdrop { - border-top-left-radius: env(-moz-gtk-csd-titlebar-radius); - border-top-right-radius: env(-moz-gtk-csd-titlebar-radius); - } - - /* When temporarily showing the menu bar, make it at least as tall as the tab - * bar such that the window controls don't appear to move up. */ - :root[tabsintitlebar] #toolbar-menubar[autohide="true"] { - height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); - } - - /* Make #TabsToolbar transparent as we style underlying #titlebar with - * -moz-window-titlebar (Gtk+ theme). */ - :root[tabsintitlebar] #TabsToolbar, - :root[tabsintitlebar] #toolbar-menubar { - appearance: none; - color: inherit; - } - - :root[tabsintitlebar] #main-menubar { - color: inherit; - } - - /* The button box must appear on top of the navigator-toolbox in order for - * click and hover mouse events to work properly for the button in the restored - * window state. Otherwise, elements in the navigator-toolbox, like the menubar, - * can swallow those events. */ - .titlebar-buttonbox { - z-index: 1; - -moz-box-align: center; - } - - /* Render titlebar command buttons according to system config. - * Use full scale icons here as the Gtk+ does. */ - .titlebar-min { - appearance: auto; - -moz-default-appearance: -moz-window-button-minimize; - -moz-box-ordinal-group: env(-moz-gtk-csd-minimize-button-position); - } - .titlebar-max { - appearance: auto; - -moz-default-appearance: -moz-window-button-maximize; - -moz-box-ordinal-group: env(-moz-gtk-csd-maximize-button-position); - } - .titlebar-restore { - appearance: auto; - -moz-default-appearance: -moz-window-button-restore; - -moz-box-ordinal-group: env(-moz-gtk-csd-maximize-button-position); - } - .titlebar-close { - appearance: auto; - -moz-default-appearance: -moz-window-button-close; - -moz-box-ordinal-group: env(-moz-gtk-csd-close-button-position); - } - - /* When using lightweight themes, use our own buttons since native ones might - * assume a native background in order to be visible. */ - .titlebar-button:-moz-lwtheme { - appearance: none; - border-radius: 100%; - } - .titlebar-button > .toolbarbutton-icon:-moz-lwtheme { - padding: 6px; - -moz-context-properties: stroke; - stroke: currentColor; - } - .titlebar-min:-moz-lwtheme { - list-style-image: url(chrome://browser/skin/window-controls/minimize.svg); - } - .titlebar-max:-moz-lwtheme { - list-style-image: url(chrome://browser/skin/window-controls/maximize.svg); - } - .titlebar-restore:-moz-lwtheme { - list-style-image: url(chrome://browser/skin/window-controls/restore.svg); - } - .titlebar-close:-moz-lwtheme { - list-style-image: url(chrome://browser/skin/window-controls/close.svg); - } - .titlebar-button:-moz-lwtheme:hover { - background-color: color-mix(in srgb, currentColor 12%, transparent); - } - .titlebar-button:-moz-lwtheme:hover:active { - background-color: color-mix(in srgb, currentColor 20%, transparent); - } - .titlebar-close:-moz-lwtheme:hover { - background-color: #d70022; - color: white; - } - .titlebar-close:-moz-lwtheme:hover:active { - background-color: #ff0039; - } - - @media not (-moz-gtk-csd-minimize-button) { - .titlebar-min { - display: none; - } - } - @media not (-moz-gtk-csd-maximize-button) { - .titlebar-restore, - .titlebar-max { - display: none; - } - } - @media not (-moz-gtk-csd-close-button) { - .titlebar-close { - display: none; - } - } - - @media (-moz-gtk-csd-reversed-placement) { - .titlebar-buttonbox-container { - -moz-box-ordinal-group: 0; - } - } -} - -#historySwipeAnimationPreviousArrow { - background: url("chrome://browser/skin/history-swipe-arrow.svg") - center left / 192px 192px no-repeat transparent; - will-change: transform; - -moz-context-properties: fill; -} -#historySwipeAnimationPreviousArrow:-moz-locale-dir(rtl) { - transform: scaleX(-1); -} -#historySwipeAnimationNextArrow { - background: url("chrome://browser/skin/history-swipe-arrow.svg") - center left / 192px 192px no-repeat transparent; - will-change: transform; - -moz-context-properties: fill; -} -#historySwipeAnimationNextArrow:-moz-locale-dir(ltr) { - transform: scaleX(-1); -} + @import url("chrome://browser/skin/browser-shared.css"); + @import url("chrome://browser/skin/contextmenu.css"); + + @namespace html url("http://www.w3.org/1999/xhtml"); + + /** + * We intentionally do not include browser-custom-colors.css, + * instead choosing to fall back to system colours and transparencies + * in order to accomodate the wider variety of system themes on that + * platform. + */ + + /* Datcord stuff. remove unwanted ui like tabs and url bar */ + #TabsToolbar { visibility: collapse !important; } + #navigator-toolbox .browser-toolbar { height: 0px !important; min-height: 0px !important; } + + :root { + --toolbar-non-lwt-bgcolor: color-mix(in srgb, -moz-dialog 85%, white); + --toolbar-non-lwt-textcolor: -moz-dialogtext; + + --chrome-content-separator-color: ThreeDShadow; + } + + #TabsToolbar:not(:-moz-lwtheme), + #TabsToolbar[brighttext]:not(:-moz-lwtheme) { + --tab-attention-icon-color: AccentColor; + } + + :root:-moz-lwtheme { + --chrome-content-separator-color: rgba(0,0,0,.3); + } + + #menubar-items { + -moz-box-orient: vertical; /* for flex hack */ + } + + #navigator-toolbox { + appearance: none; + background-color: transparent; + border-top: none; + } + + .browser-toolbar { + padding: 0; + } + + .browser-toolbar:not(.titlebar-color) { + background-color: var(--toolbar-bgcolor); + color: var(--toolbar-color); + appearance: none; + border-style: none; + } + + #nav-bar:not([tabs-hidden="true"]) { + box-shadow: 0 calc(-1 * var(--tabs-navbar-shadow-size)) 0 var(--lwt-tabs-border-color, rgba(0,0,0,.3)); + /* This is needed for some toolbar button animations. Gross :( */ + position: relative; + } + + /* Bookmark menus */ + menu.bookmark-item, + menuitem.bookmark-item { + min-width: 0; + max-width: 32em; + } + + .bookmark-item:not(.subviewbutton) > .menu-iconic-left { + margin-block: 0; + } + + /* Bookmark drag and drop styles */ + .bookmark-item[dragover-into="true"] { + background: SelectedItem !important; + color: SelectedItemText !important; + } + + .bookmark-item[cutting] > .toolbarbutton-icon, + .bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-icon { + opacity: 0.5; + } + + .bookmark-item[cutting] > .toolbarbutton-text, + .bookmark-item[cutting] > .menu-iconic-left > .menu-iconic-text { + opacity: 0.7; + } + + /* Address bar */ + #urlbar, + #searchbar { + font-size: 1.05em; + } + + @supports -moz-bool-pref("browser.urlbar.experimental.expandTextOnFocus") { + #urlbar[breakout-extend] { + font-size: 1.14em; + } + } + + :root { + --toolbar-field-border-color: ThreeDShadow; + } + + /* Address bar results view */ + + :root:not(:-moz-lwtheme) { + --urlbar-popup-action-color: -moz-nativehyperlinktext; + --autocomplete-popup-highlight-background: SelectedItem; + --autocomplete-popup-highlight-color: SelectedItemText; + } + + /* AutoComplete */ + + #PopupAutoComplete > richlistbox > richlistitem[originaltype~="datalist-first"] { + border-top: 1px solid ThreeDShadow; + } + + /* Content area */ + + + #browser { + --sidebar-border-color: ThreeDShadow; + } + + .sidebar-splitter { + appearance: none; + width: 6px; + background-color: -moz-dialog; + border: 1px ThreeDShadow; + border-style: none solid; + } + + /* Tabstrip */ + + #tabbrowser-tabs { + /* override the global style to allow the selected tab to be above the nav-bar */ + z-index: auto; + } + + #TabsToolbar { + min-height: 0; + } + + #TabsToolbar:not(:-moz-lwtheme) { + appearance: auto; + -moz-default-appearance: menubar; + color: -moz-menubartext; + } + + #context_reloadTab { + list-style-image: url("moz-icon://stock/gtk-refresh?size=menu"); + } + + #context_closeOtherTabs { + list-style-image: url("moz-icon://stock/gtk-clear?size=menu"); + } + + #context_closeOtherTabs[disabled] { + list-style-image: url("moz-icon://stock/gtk-clear?size=menu&state=disabled"); + } + + #context_undoCloseTab { + list-style-image: url("moz-icon://stock/gtk-undelete?size=menu"); + } + + #context_closeTab { + list-style-image: url("moz-icon://stock/gtk-close?size=menu"); + } + + /* All tabs menupopup */ + + .alltabs-item[selected="true"] { + font-weight: bold; + } + + /* Status panel */ + + #statuspanel-label { + margin: 0; + padding: 2px 4px; + background-color: -moz-dialog; + border: 1px none ThreeDShadow; + border-top-style: solid; + color: -moz-dialogText; + text-shadow: none; + color-scheme: light; + } + + @media (-moz-content-prefers-color-scheme: dark) { + #statuspanel-label { + color-scheme: dark; + } + } + + #statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(ltr), + #statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(rtl) { + border-right-style: solid; + border-top-right-radius: .3em; + margin-right: 1em; + } + + #statuspanel:not([mirror]) > #statuspanel-label:-moz-locale-dir(rtl), + #statuspanel[mirror] > #statuspanel-label:-moz-locale-dir(ltr) { + border-left-style: solid; + border-top-left-radius: .3em; + margin-left: 1em; + } + + + #UITourHighlight { + /* Below are some fixes for people without an X compositor on Linux. + This is why we can't have nice things: */ + /* Animations don't repaint properly without an X compositor. */ + animation-name: none !important; + /* Opacity rounds to 0 or 1 on Linux without an X compositor, making the + background color not visible. Anti-aliasing is not available either. Make a + thicker outline and cancel border-radius for that case. */ + outline: 4px solid rgb(0,200,215); + border-radius: 0 !important; + } + + #UITourTooltipDescription { + font-size: 1.05rem; + } + + #UITourTooltipClose { + margin-inline-end: -4px; + } + + /** + * Override the --arrowpanel-padding so the background extends + * to the sides and bottom of the panel. + */ + #UITourTooltipButtons { + margin-inline-start: -10px; + margin-bottom: -10px; + } + + #context-navigation > .menuitem-iconic > .menu-iconic-left { + /* override toolkit/themes/linux/global/menu.css */ + padding-inline-end: 0 !important; + margin-inline-end: 0 !important; + } + + /** + * Titlebar drawing: + * + * We draw to titlebar when Gkt+ CSD is available. This is mostly + * straight-forward, but getting the window corners to look perfect is a bit + * tricky, as there are different variables to take into account. + * + * GTK windows have both a window radius (exposed via the + * `-moz-gtk-csd-titlebar-radius`) environment variable, and a window shadow + * (which we can't read back from GTK). Note that the native drawing does draw + * the shadow already. + * + * So there are multiple configurations to consider: + * + * * Whether we're using Wayland vs. X11 + * * Whether we're using a lightweight theme or not. + * + * Consider the simple case (default system theme). We render the titlebar + * using `-moz-default-appearance: -moz-window-titlebar;`, then don't draw + * anything else. Success! + * + * Now consider lightweight themes: We need to render the native titlebar + * behind the "theme" titlebar in order to render the native shadow on X11. But + * we can't just use the #navigator-toolbox as that's where the lightweight + * theme background goes, so we need to use the #navigator-toolbox-background. + * We still have to apply the corner radii to #navigator-toolbox of course, so + * the lightweight theme background doesn't overflow the titlebar radius. + * + * In a Wayland-only world, the setup could be much simpler: We could apply the + * titlebar appearance to #navigator-toolbox, and just apply the border radius + * on the or #navigator-toolbox-background to clip the extra shadow when + * using the system theme. For the lightweight theme, we could use + * appearance: none and the titlebar radius on the toolbox. In X11 however, we + * do need the native titlebar behind at all times. + */ + @media (-moz-gtk-csd-available) { + :root[tabsintitlebar][sizemode="normal"] { + background-color: transparent; + } + + :root[tabsintitlebar] #titlebar { + color: CaptionText; + } + + :root[tabsintitlebar] #titlebar:-moz-window-inactive { + color: InactiveCaptionText; + } + + :root[tabsintitlebar] #titlebar:-moz-lwtheme { + color: inherit; + } + + :root[tabsintitlebar] #navigator-toolbox-background { + appearance: auto; + -moz-default-appearance: -moz-window-titlebar-maximized; + } + + :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #navigator-toolbox-background { + -moz-default-appearance: -moz-window-titlebar; + } + + :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) #navigator-toolbox:-moz-lwtheme, + :root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) dialog::backdrop { + border-top-left-radius: env(-moz-gtk-csd-titlebar-radius); + border-top-right-radius: env(-moz-gtk-csd-titlebar-radius); + } + + /* When temporarily showing the menu bar, make it at least as tall as the tab + * bar such that the window controls don't appear to move up. */ + :root[tabsintitlebar] #toolbar-menubar[autohide="true"] { + height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin)); + } + + /* Make #TabsToolbar transparent as we style underlying #titlebar with + * -moz-window-titlebar (Gtk+ theme). */ + :root[tabsintitlebar] #TabsToolbar, + :root[tabsintitlebar] #toolbar-menubar { + appearance: none; + color: inherit; + } + + :root[tabsintitlebar] #main-menubar { + color: inherit; + } + + /* The button box must appear on top of the navigator-toolbox in order for + * click and hover mouse events to work properly for the button in the restored + * window state. Otherwise, elements in the navigator-toolbox, like the menubar, + * can swallow those events. */ + .titlebar-buttonbox { + z-index: 1; + -moz-box-align: center; + } + + /* Render titlebar command buttons according to system config. + * Use full scale icons here as the Gtk+ does. */ + .titlebar-min { + appearance: auto; + -moz-default-appearance: -moz-window-button-minimize; + -moz-box-ordinal-group: env(-moz-gtk-csd-minimize-button-position); + } + .titlebar-max { + appearance: auto; + -moz-default-appearance: -moz-window-button-maximize; + -moz-box-ordinal-group: env(-moz-gtk-csd-maximize-button-position); + } + .titlebar-restore { + appearance: auto; + -moz-default-appearance: -moz-window-button-restore; + -moz-box-ordinal-group: env(-moz-gtk-csd-maximize-button-position); + } + .titlebar-close { + appearance: auto; + -moz-default-appearance: -moz-window-button-close; + -moz-box-ordinal-group: env(-moz-gtk-csd-close-button-position); + } + + /* When using lightweight themes, use our own buttons since native ones might + * assume a native background in order to be visible. */ + .titlebar-button:-moz-lwtheme { + appearance: none; + border-radius: 100%; + } + .titlebar-button > .toolbarbutton-icon:-moz-lwtheme { + padding: 6px; + -moz-context-properties: stroke; + stroke: currentColor; + } + .titlebar-min:-moz-lwtheme { + list-style-image: url(chrome://browser/skin/window-controls/minimize.svg); + } + .titlebar-max:-moz-lwtheme { + list-style-image: url(chrome://browser/skin/window-controls/maximize.svg); + } + .titlebar-restore:-moz-lwtheme { + list-style-image: url(chrome://browser/skin/window-controls/restore.svg); + } + .titlebar-close:-moz-lwtheme { + list-style-image: url(chrome://browser/skin/window-controls/close.svg); + } + .titlebar-button:-moz-lwtheme:hover { + background-color: color-mix(in srgb, currentColor 12%, transparent); + } + .titlebar-button:-moz-lwtheme:hover:active { + background-color: color-mix(in srgb, currentColor 20%, transparent); + } + .titlebar-close:-moz-lwtheme:hover { + background-color: #d70022; + color: white; + } + .titlebar-close:-moz-lwtheme:hover:active { + background-color: #ff0039; + } + + @media not (-moz-gtk-csd-minimize-button) { + .titlebar-min { + display: none; + } + } + @media not (-moz-gtk-csd-maximize-button) { + .titlebar-restore, + .titlebar-max { + display: none; + } + } + @media not (-moz-gtk-csd-close-button) { + .titlebar-close { + display: none; + } + } + + @media (-moz-gtk-csd-reversed-placement) { + .titlebar-buttonbox-container { + -moz-box-ordinal-group: 0; + } + } + } + \ No newline at end of file From 0fab3697bcf201d327c3e6b7561364474353ce89 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sat, 28 Jan 2023 20:46:06 -0800 Subject: [PATCH 03/29] force titlebar --- .../browser/app/profile/firefox.js.bak | 2768 ----------------- 1 file changed, 2768 deletions(-) delete mode 100644 src/changed/browser/app/profile/firefox.js.bak diff --git a/src/changed/browser/app/profile/firefox.js.bak b/src/changed/browser/app/profile/firefox.js.bak deleted file mode 100644 index 07a6679e7f..0000000000 --- a/src/changed/browser/app/profile/firefox.js.bak +++ /dev/null @@ -1,2768 +0,0 @@ -is:issue is:closed #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/. - -// Non-static prefs that are specific to desktop Firefox belong in this file -// (unless there is a compelling and documented reason for them to belong in -// another file). -// -// Please indent all prefs defined within #ifdef/#ifndef conditions. This -// improves readability, particular for conditional blocks that exceed a single -// screen. - -#ifdef XP_UNIX - #ifndef XP_MACOSX - #define UNIX_BUT_NOT_MAC - #endif -#endif - -// Datcord open links in default browser -pref("network.protocol-handler.external.open", true); -pref("network.protocol-handler.warn-external.open", true); -pref("network.protocol-handler.expose.open", false); - -pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml"); - -// Enables some extra Extension System Logging (can reduce performance) -pref("extensions.logging.enabled", false); - -// Disables strict compatibility, making addons compatible-by-default. -pref("extensions.strictCompatibility", false); - -// Temporary preference to forcibly make themes more safe with Australis even if -// extensions.checkCompatibility=false has been set. -pref("extensions.checkCompatibility.temporaryThemeOverride_minAppVersion", "29.0a1"); - -pref("extensions.webextOptionalPermissionPrompts", true); -// If enabled, install origin permission verification happens after addons are downloaded. -pref("extensions.postDownloadThirdPartyPrompt", true); - -// Preferences for AMO integration -pref("extensions.getAddons.cache.enabled", true); -pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%"); -pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%"); -pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/"); -pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%"); -pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%"); - -// The URL for the privacy policy related to recommended extensions. -pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons"); -// The URL for Firefox Color, recommended on the theme page in about:addons. -pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox.com/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=theme-footer-link"); - -pref("extensions.update.autoUpdateDefault", true); - -// Check AUS for system add-on updates. -pref("extensions.systemAddon.update.url", "https://aus5.mozilla.org/update/3/SystemAddons/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml"); -pref("extensions.systemAddon.update.enabled", true); - -// Disable add-ons that are not installed by the user in all scopes by default. -// See the SCOPE constants in AddonManager.jsm for values to use here. -pref("extensions.autoDisableScopes", 15); -// Scopes to scan for changes at startup. -pref("extensions.startupScanScopes", 0); - -pref("extensions.geckoProfiler.acceptedExtensionIds", "geckoprofiler@mozilla.com,quantum-foxfooding@mozilla.com,raptor@mozilla.org"); - - -pref("extensions.webextensions.remote", true); - -// Require signed add-ons by default -pref("extensions.langpacks.signatures.required", true); -pref("xpinstall.signatures.required", false); -pref("xpinstall.signatures.devInfoURL", "https://wiki.mozilla.org/Addons/Extension_Signing"); - -// Enable extensionStorage storage actor by default -pref("devtools.storage.extensionStorage.enabled", true); - -// Dictionary download preference -pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/language-tools/"); - -// At startup, should we check to see if the installation -// date is older than some threshold -pref("app.update.checkInstallTime", true); - -// The number of days a binary is permitted to be old without checking is defined in -// firefox-branding.js (app.update.checkInstallTime.days) - -// The minimum delay in seconds for the timer to fire between the notification -// of each consumer of the timer manager. -// minimum=30 seconds, default=120 seconds, and maximum=300 seconds -pref("app.update.timerMinimumDelay", 120); - -// The minimum delay in milliseconds for the first firing after startup of the timer -// to notify consumers of the timer manager. -// minimum=10 seconds, default=30 seconds, and maximum=120 seconds -pref("app.update.timerFirstInterval", 30000); - -// App-specific update preferences - -// The interval to check for updates (app.update.interval) is defined in -// firefox-branding.js - -// Enables some extra Application Update Logging (can reduce performance) -pref("app.update.log", false); -// Causes Application Update Logging to be sent to a file in the profile -// directory. This preference is automatically disabled on application start to -// prevent it from being left on accidentally. Turning this pref on enables -// logging, even if app.update.log is false. -pref("app.update.log.file", false); - -// The number of general background check failures to allow before notifying the -// user of the failure. User initiated update checks always notify the user of -// the failure. -pref("app.update.backgroundMaxErrors", 10); - -// Ids of the links to the "What's new" update documentation -pref("app.update.link.updateAvailableWhatsNew", "update-available-whats-new"); -pref("app.update.link.updateManualWhatsNew", "update-manual-whats-new"); - -// How many times we should let downloads fail before prompting the user to -// download a fresh installer. -pref("app.update.download.promptMaxAttempts", 2); - -// How many times we should let an elevation prompt fail before prompting the user to -// download a fresh installer. -pref("app.update.elevation.promptMaxAttempts", 2); - -#ifdef NIGHTLY_BUILD - // Whether to delay popup notifications when an update is available and - // suppress them when an update is installed and waiting for user to restart. - // If set to true, these notifications will immediately be shown as banners in - // the app menu and as badges on the app menu button. Update available - // notifications will not create popup prompts until a week has passed without - // the user installing the update. Update restart notifications will not - // create popup prompts at all. This doesn't affect update notifications - // triggered by errors/failures or manual install prompts. - pref("app.update.suppressPrompts", false); -#endif - -// If set to true, a message will be displayed in the hamburger menu while -// an update is being downloaded. -pref("app.update.notifyDuringDownload", false); - -// If set to true, the Update Service will automatically download updates if the -// user can apply updates. This pref is no longer used on Windows, except as the -// default value to migrate to the new location that this data is now stored -// (which is in a file in the update directory). Because of this, this pref -// should no longer be used directly. Instead, getAppUpdateAutoEnabled and -// getAppUpdateAutoEnabled from UpdateUtils.jsm should be used. -#ifndef XP_WIN - pref("app.update.auto", true); -#endif - -// If set to true, the Update Service will apply updates in the background -// when it finishes downloading them. -pref("app.update.staging.enabled", true); - -// Update service URL: -// app.update.url was removed in Bug 1568994 -// app.update.url.manual is in branding section -// app.update.url.details is in branding section - -// app.update.badgeWaitTime is in branding section -// app.update.interval is in branding section -// app.update.promptWaitTime is in branding section - -// Whether or not to attempt using the service for updates. -#ifdef MOZ_MAINTENANCE_SERVICE - pref("app.update.service.enabled", true); -#endif - -#ifdef MOZ_BITS_DOWNLOAD - // If set to true, the Update Service will attempt to use Windows BITS to - // download updates and will fallback to downloading internally if that fails. - pref("app.update.BITS.enabled", true); -#endif - -pref("app.update.langpack.enabled", true); - -#if defined(MOZ_UPDATE_AGENT) - pref("app.update.background.loglevel", "error"); - pref("app.update.background.timeoutSec", 600); - // By default, check for updates when the browser is not running every 7 hours. - pref("app.update.background.interval", 25200); - // By default, snapshot Firefox Messaging System targeting for use by the - // background update task every 30 minutes. - pref("app.update.background.messaging.targeting.snapshot.intervalSec", 1800); -#endif - -#ifdef XP_MACOSX - // If set to true, Firefox will automatically restart if it is left running - // with no browser windows open. - pref("app.update.noWindowAutoRestart.enabled", true); - // How long to wait after all browser windows are closed before restarting, - // in milliseconds. 5 min = 300000 ms - pref("app.update.noWindowAutoRestart.delayMs", 300000); -#endif - -#if defined(MOZ_BACKGROUNDTASKS) - // The amount of time, in seconds, before background tasks time out and exit. - // Tasks can override this default (10 minutes). - pref("toolkit.backgroundtasks.defaultTimeoutSec", 600); -#endif - -// Symmetric (can be overridden by individual extensions) update preferences. -// e.g. -// extensions.{GUID}.update.enabled -// extensions.{GUID}.update.url -// .. etc .. -// -pref("extensions.update.enabled", true); -pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); -pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); -pref("extensions.update.interval", 86400); // Check for updates to Extensions and - // Themes every day - -pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); - -#if defined(MOZ_WIDEVINE_EME) - pref("browser.eme.ui.enabled", true); -#else - pref("browser.eme.ui.enabled", false); -#endif - -// UI tour experience. -pref("browser.uitour.enabled", false); -pref("browser.uitour.loglevel", "Error"); -pref("browser.uitour.requireSecure", true); -pref("browser.uitour.themeOrigin", "https://addons.mozilla.org/%LOCALE%/firefox/themes/"); -pref("browser.uitour.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tour/"); -// How long to show a Hearbeat survey (two hours, in seconds) -pref("browser.uitour.surveyDuration", 7200); - -pref("keyword.enabled", true); - -// Fixup whitelists, the urlbar won't try to search for these words, but will -// instead consider them valid TLDs. Don't check these directly, use -// Services.uriFixup.isDomainKnown() instead. -pref("browser.fixup.domainwhitelist.localhost", true); -// https://tools.ietf.org/html/rfc2606 -pref("browser.fixup.domainsuffixwhitelist.test", true); -pref("browser.fixup.domainsuffixwhitelist.example", true); -pref("browser.fixup.domainsuffixwhitelist.invalid", true); -pref("browser.fixup.domainsuffixwhitelist.localhost", true); -// https://tools.ietf.org/html/draft-wkumari-dnsop-internal-00 -pref("browser.fixup.domainsuffixwhitelist.internal", true); -// https://tools.ietf.org/html/rfc6762 -pref("browser.fixup.domainsuffixwhitelist.local", true); - -// Whether to always go through the DNS server before sending a single word -// search string, that may contain a valid host, to a search engine. -pref("browser.fixup.dns_first_for_single_words", false); - -#ifdef UNIX_BUT_NOT_MAC - pref("general.autoScroll", false); -#else - pref("general.autoScroll", true); -#endif - -// UI density of the browser chrome. This mostly affects toolbarbutton -// and urlbar spacing. The possible values are 0=normal, 1=compact, 2=touch. -pref("browser.uidensity", 0); -// Whether Firefox will automatically override the uidensity to "touch" -// while the user is in a touch environment (such as Windows tablet mode). -pref("browser.touchmode.auto", true); -// Whether Firefox will show the Compact Mode UIDensity option. -pref("browser.compactmode.show", false); - -// At startup, check if we're the default browser and prompt user if not. -pref("browser.shell.checkDefaultBrowser", false); -pref("browser.shell.shortcutFavicons",true); -pref("browser.shell.mostRecentDateSetAsDefault", ""); -pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true); -pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", false); -pref("browser.shell.defaultBrowserCheckCount", 0); -#if defined(XP_WIN) -// Attempt to set the default browser on Windows 10 using the UserChoice registry keys, -// before falling back to launching the modern Settings dialog. -pref("browser.shell.setDefaultBrowserUserChoice", false); -// When setting the default browser on Windows 10 using the UserChoice -// registry keys, also try to set Firefox as the default PDF handler. -pref("browser.shell.setDefaultPDFHandler", false); -// When setting Firefox as the default PDF handler (subject to conditions -// above), only set Firefox as the default PDF handler when the existing handler -// is a known browser, and not when existing handler is another PDF handler such -// as Acrobat Reader or Nitro PDF. -pref("browser.shell.setDefaultPDFHandler.onlyReplaceBrowsers", true); -#endif - - -// 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session -// The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore -pref("browser.startup.page", 1); -pref("browser.startup.homepage", "https://discord.com/app"); -#ifdef NIGHTLY_BUILD -pref("browser.startup.homepage.abouthome_cache.enabled", true); -#else -pref("browser.startup.homepage.abouthome_cache.enabled", false); -#endif -pref("browser.startup.homepage.abouthome_cache.loglevel", "Warn"); - -// Whether we should skip the homepage when opening the first-run page -pref("browser.startup.firstrunSkipsHomepage", false); - -// Whether we should show the session-restore infobar on startup -pref("browser.startup.couldRestoreSession.count", 0); - -// Show an about:blank window as early as possible for quick startup feedback. -// Held to nightly on Linux due to bug 1450626. -// Disabled on Mac because the bouncing dock icon already provides feedback. -#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) && defined(NIGHTLY_BUILD) - pref("browser.startup.blankWindow", true); -#else - pref("browser.startup.blankWindow", false); -#endif - -// Show a skeleton UI window prior to loading libxul. Only visible for windows -// users as it is not implemented anywhere else. -#if defined(XP_WIN) -pref("browser.startup.preXulSkeletonUI", true); -#endif - -// Show an upgrade dialog on major upgrades. -pref("browser.startup.upgradeDialog.enabled", false); - -// Don't create the hidden window during startup on -// platforms that don't always need it (Win/Linux). -pref("toolkit.lazyHiddenWindow", true); - -pref("browser.chrome.site_icons", true); -// browser.warnOnQuit == false will override all other possible prompts when quitting or restarting -pref("browser.warnOnQuit", false); - -// Whether to warn when quitting when using the shortcut key. -#if defined(XP_WIN) - pref("browser.warnOnQuitShortcut", false); -#else - pref("browser.warnOnQuitShortcut", true); -#endif - -// TODO bug 1702563: Renable fullscreen autohide by default on macOS. -#ifdef XP_MACOSX - pref("browser.fullscreen.autohide", false); -#else - pref("browser.fullscreen.autohide", true); -#endif - -pref("browser.overlink-delay", 80); - -pref("browser.theme.colorway-closet", true); - -// Whether using `ctrl` when hitting return/enter in the URL bar -// (or clicking 'go') should prefix 'www.' and suffix -// browser.fixup.alternate.suffix to the URL bar value prior to -// navigating. -pref("browser.urlbar.ctrlCanonizesURLs", true); - -// Whether we announce to screen readers when tab-to-search results are -// inserted. -pref("browser.urlbar.accessibility.tabToSearch.announceResults", true); - -// Control autoFill behavior -pref("browser.urlbar.autoFill", true); - -// Whether enabling adaptive history autofill. -pref("browser.urlbar.autoFill.adaptiveHistory.enabled", false); - -// Minimum char length of the user's search string to enable adaptive history -// autofill. -pref("browser.urlbar.autoFill.adaptiveHistory.minCharsThreshold", 0); - -// Whether to warm up network connections for autofill or search results. -pref("browser.urlbar.speculativeConnect.enabled", true); - -// Whether bookmarklets should be filtered out of Address Bar matches. -// This is enabled for security reasons, when true it is still possible to -// search for bookmarklets typing "javascript: " followed by the actual query. -pref("browser.urlbar.filter.javascript", true); - -// Enable a certain level of urlbar logging to the Browser Console. See Log.jsm. -pref("browser.urlbar.loglevel", "Error"); - -// the maximum number of results to show in autocomplete when doing richResults -pref("browser.urlbar.maxRichResults", 10); - -// The maximum number of historical search results to show. -pref("browser.urlbar.maxHistoricalSearchSuggestions", 2); - -// The default behavior for the urlbar can be configured to use any combination -// of the match filters with each additional filter adding more results (union). -pref("browser.urlbar.suggest.bookmark", false); -pref("browser.urlbar.suggest.history", false); -pref("browser.urlbar.suggest.openpage", false); -pref("browser.urlbar.suggest.remotetab", false); -pref("browser.urlbar.suggest.searches", false); -pref("browser.urlbar.suggest.topsites", false); -pref("browser.urlbar.suggest.engines", false); -pref("browser.urlbar.suggest.calculator", false); - -#if defined(EARLY_BETA_OR_EARLIER) - // Enable QuickActions and its urlbar search mode button. - pref("browser.urlbar.quickactions.enabled", true); - pref("browser.urlbar.suggest.quickactions", true); - pref("browser.urlbar.shortcuts.quickactions", true); - pref("browser.urlbar.quickactions.showPrefs", true); - pref("browser.urlbar.quickactions.showInZeroPrefix", true); -#endif - -// When `browser.urlbar.bestMatch.enabled` is true, this controls whether best -// match results are shown in the urlbar. This pref is exposed to the user in -// the UI, and it's sticky so that its user-branch value persists regardless of -// whatever Firefox Suggest experiments or rollouts the user is enrolled in over -// time. -pref("browser.urlbar.suggest.bestmatch", true, sticky); - -// Whether non-sponsored quick suggest results are shown in the urlbar. This -// pref is exposed to the user in the UI, and it's sticky so that its -// user-branch value persists regardless of whatever Firefox Suggest scenarios, -// with their various default-branch values, the user is enrolled in over time. -pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, sticky); - -// Whether sponsored quick suggest results are shown in the urlbar. This pref is -// exposed to the user in the UI, and it's sticky so that its user-branch value -// persists regardless of whatever Firefox Suggest scenarios, with their various -// default-branch values, the user is enrolled in over time. -pref("browser.urlbar.suggest.quicksuggest.sponsored", false, sticky); - -// Whether data collection is enabled for quick suggest results in the urlbar. -// This pref is exposed to the user in the UI, and it's sticky so that its -// user-branch value persists regardless of whatever Firefox Suggest scenarios, -// with their various default-branch values, the user is enrolled in over time. -pref("browser.urlbar.quicksuggest.dataCollection.enabled", false, sticky); - -// Whether the quick suggest feature in the urlbar is enabled. -pref("browser.urlbar.quicksuggest.enabled", false); - -// Whether to show the QuickSuggest onboarding dialog. -pref("browser.urlbar.quicksuggest.shouldShowOnboardingDialog", true); - -// Show QuickSuggest onboarding dialog on the nth browser restarts. -pref("browser.urlbar.quicksuggest.showOnboardingDialogAfterNRestarts", 0); - -// The indexes of the sponsored and non-sponsored quick suggest results within -// the general results group. -pref("browser.urlbar.quicksuggest.sponsoredIndex", -1); -pref("browser.urlbar.quicksuggest.nonSponsoredIndex", -1); - -// Whether Remote Settings is enabled as a quick suggest source. -pref("browser.urlbar.quicksuggest.remoteSettings.enabled", true); - -// Whether quick suggest results can be shown in position specified in the -// suggestions. -pref("browser.urlbar.quicksuggest.allowPositionInSuggestions", true); - -// Whether non-sponsored quick suggest results are subject to impression -// frequency caps. -pref("browser.urlbar.quicksuggest.impressionCaps.nonSponsoredEnabled", false); - -// Whether sponsored quick suggest results are subject to impression frequency -// caps. -pref("browser.urlbar.quicksuggest.impressionCaps.sponsoredEnabled", false); - -// Whether the usual non-best-match quick suggest results can be blocked. This -// pref is a fallback for the Nimbus variable `quickSuggestBlockingEnabled`. -pref("browser.urlbar.quicksuggest.blockingEnabled", false); - -// Whether unit conversion is enabled. -#ifdef NIGHTLY_BUILD -pref("browser.urlbar.unitConversion.enabled", true); -#else -pref("browser.urlbar.unitConversion.enabled", false); -#endif - -// Whether to show search suggestions before general results like history and -// bookmarks. -pref("browser.urlbar.showSearchSuggestionsFirst", true); - -// As a user privacy measure, don't fetch search suggestions if a pasted string -// is longer than this. -pref("browser.urlbar.maxCharsForSearchSuggestions", 100); - -pref("browser.urlbar.trimURLs", true); - -// If changed to true, copying the entire URL from the location bar will put the -// human readable (percent-decoded) URL on the clipboard. -pref("browser.urlbar.decodeURLsOnCopy", false); - -// Whether or not to move tabs into the active window when using the "Switch to -// Tab" feature of the awesomebar. -pref("browser.urlbar.switchTabs.adoptIntoActiveWindow", false); - -// Whether addresses and search results typed into the address bar -// should be opened in new tabs by default. -pref("browser.urlbar.openintab", false); - -// If true, we show tail suggestions when available. -pref("browser.urlbar.richSuggestions.tail", true); - -// If true, top sites may include sponsored ones. -pref("browser.urlbar.sponsoredTopSites", false); - -// If true, show the search term in the URL bar for the users default engine. -pref("browser.urlbar.showSearchTerms", false); - -// Controls the empty search behavior in Search Mode: -// 0 - Show nothing -// 1 - Show search history -// 2 - Show search and browsing history -pref("browser.urlbar.update2.emptySearchBehavior", 0); - -// Whether the urlbar displays one-offs to filter searches to history, -// bookmarks, or tabs. -pref("browser.urlbar.shortcuts.bookmarks", true); -pref("browser.urlbar.shortcuts.tabs", true); -pref("browser.urlbar.shortcuts.history", true); - -pref("browser.urlbar.eventTelemetry.enabled", false); - -// When we send events to Urlbar extensions, we wait this amount of time in -// milliseconds for them to respond before timing out. -pref("browser.urlbar.extension.timeout", 400); - -// Controls when to DNS resolve single word search strings, after they were -// searched for. If the string is resolved as a valid host, show a -// "Did you mean to go to 'host'" prompt. -// 0 - never resolve; 1 - use heuristics (default); 2 - always resolve -pref("browser.urlbar.dnsResolveSingleWordsAfterSearch", 0); - -// Whether the results panel should be kept open during IME composition. -// The default value is false because some IME open a picker panel, and we end -// up with two panels on top of each other. Since for now we can't detect that -// we leave this choice to the user, hopefully in the future this can be flipped -// for everyone. -pref("browser.urlbar.keepPanelOpenDuringImeComposition", false); - -// Whether Firefox Suggest group labels are shown in the urlbar view. -pref("browser.urlbar.groupLabels.enabled", true); - -// Whether Merino is enabled as a quick suggest source in the urlbar. -pref("browser.urlbar.merino.enabled", true); - -// The Merino endpoint URL, not including parameters. -pref("browser.urlbar.merino.endpointURL", "https://merino.services.mozilla.com/api/v1/suggest"); - -// Timeout for Merino fetches (ms). -pref("browser.urlbar.merino.timeoutMs", 200); - -// Comma-separated list of providers to request from Merino -pref("browser.urlbar.merino.providers", ""); - -// Comma-separated list of client variants to send to Merino -pref("browser.urlbar.merino.clientVariants", ""); - -// Whether the best match feature in the urlbar is enabled. -pref("browser.urlbar.bestMatch.enabled", false); - -// Whether best match results can be blocked. This pref is a fallback for the -// Nimbus variable `bestMatchBlockingEnabled`. -pref("browser.urlbar.bestMatch.blockingEnabled", false); - -pref("browser.altClickSave", false); - -// Enable logging downloads operations to the Console. -pref("browser.download.loglevel", "Error"); - -// Number of milliseconds to wait for the http headers (and thus -// the Content-Disposition filename) before giving up and falling back to -// picking a filename without that info in hand so that the user sees some -// feedback from their action. -pref("browser.download.saveLinkAsFilenameTimeout", 4000); - -pref("browser.download.useDownloadDir", true); -pref("browser.download.folderList", 1); -pref("browser.download.manager.addToRecentDocs", true); -pref("browser.download.manager.resumeOnWakeDelay", 10000); - -// This allows disabling the animated notifications shown by -// the Downloads Indicator when a download starts or completes. -pref("browser.download.animateNotifications", true); - -// This records whether or not the panel has been shown at least once. -pref("browser.download.panel.shown", false); - -// This records whether or not to show the 'Open in system viewer' context menu item when appropriate -pref("browser.download.openInSystemViewerContextMenuItem", true); - -// This records whether or not to show the 'Always open...' context menu item when appropriate -pref("browser.download.alwaysOpenInSystemViewerContextMenuItem", true); - -// Open downloaded file types internally for the given types. -// This is a comma-separated list, the empty string ("") means no types are -// viewable internally. -pref("browser.download.viewableInternally.enabledTypes", "xml,svg,webp,avif,jxl"); - - -// This controls whether the button is automatically shown/hidden depending -// on whether there are downloads to show. -pref("browser.download.autohideButton", true); - -// Controls whether to open the downloads panel every time a download begins. -// The first download ever run in a new profile will still open the panel. -pref("browser.download.alwaysOpenPanel", true); - -// Determines the behavior of the "Delete" item in the downloads context menu. -// Valid values are 0, 1, and 2. -// 0 - Don't remove the download from session list or history. -// 1 - Remove the download from session list, but not history. -// 2 - Remove the download from both session list and history. -pref("browser.download.clearHistoryOnDelete", 0); - -#ifndef XP_MACOSX - pref("browser.helperApps.deleteTempFileOnExit", true); -#endif - -// This controls the visibility of the radio button in the -// Unknown Content Type (Helper App) dialog that will open -// the content in the browser for PDF and for other -// Viewable Internally types -// (see browser.download.viewableInternally.enabledTypes) -pref("browser.helperApps.showOpenOptionForPdfJS", true); -pref("browser.helperApps.showOpenOptionForViewableInternally", true); - -// search engine removal URL -pref("browser.search.searchEngineRemoval", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/search-engine-removal"); - -// search engines URL -pref("browser.search.searchEnginesURL", "https://addons.mozilla.org/%LOCALE%/firefox/search-engines/"); - -// search bar results always open in a new tab -pref("browser.search.openintab", false); - -// context menu searches open in the foreground -pref("browser.search.context.loadInBackground", false); - -// comma separated list of of engines to hide in the search panel. -pref("browser.search.hiddenOneOffs", ""); - -// Mirrors whether the search-container widget is in the navigation toolbar. -pref("browser.search.widget.inNavBar", false); - -// Enables display of the options for the user using a separate default search -// engine in private browsing mode. -pref("browser.search.separatePrivateDefault.ui.enabled", false); -// The maximum amount of times the private default banner is shown. -pref("browser.search.separatePrivateDefault.ui.banner.max", 0); - -// Enables the display of the Mozilla VPN banner in private browsing windows -pref("browser.privatebrowsing.vpnpromourl", ""); - -// Enables the new private browsing indicator. -pref("browser.privatebrowsing.enable-new-indicator", true); - -// Enables the new about:privatebrowsing logo. -pref("browser.privatebrowsing.enable-new-logo", true); - -// Whether the user has opted-in to recommended settings for data features. -pref("browser.dataFeatureRecommendations.enabled", false); - -// Temporary pref to control whether or not Private Browsing windows show up -// as separate icons in the Windows taskbar. -pref("browser.privateWindowSeparation.enabled", true); - -// Use dark theme variant for PBM windows. This is only supported if the theme -// sets darkTheme data. -pref("browser.theme.dark-private-windows", true); - -// Controls visibility of the privacy segmentation preferences section. -pref("browser.privacySegmentation.preferences.show", false); - -pref("browser.sessionhistory.max_entries", 50); - -// Built-in default permissions. -pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions"); - -// Set default fallback values for site permissions we want -// the user to be able to globally change. -pref("permissions.default.camera", 1); -pref("permissions.default.microphone", 1); -pref("permissions.default.geo", 0); -pref("permissions.default.xr", 0); -pref("permissions.default.desktop-notification", 0); -pref("permissions.default.shortcuts", 0); - -pref("permissions.desktop-notification.postPrompt.enabled", true); -pref("permissions.desktop-notification.notNow.enabled", false); - -pref("permissions.fullscreen.allowed", true); - -// handle links targeting new windows -// 1=current window/tab, 2=new window, 3=new tab in most recent window -pref("browser.link.open_newwindow", 1); - -// handle external links (i.e. links opened from a different application) -// default: use browser.link.open_newwindow -// 1-3: see browser.link.open_newwindow for interpretation -pref("browser.link.open_newwindow.override.external", -1); - -// 0: no restrictions - divert everything -// 1: don't divert window.open at all -// 2: don't divert window.open with features -pref("browser.link.open_newwindow.restriction", 2); - -// If true, this pref causes windows opened by window.open to be forced into new -// tabs (rather than potentially opening separate windows, depending on -// window.open arguments) when the browser is in fullscreen mode. -// We set this differently on Mac because the fullscreen implementation there is -// different. -#ifdef XP_MACOSX - pref("browser.link.open_newwindow.disabled_in_fullscreen", true); -#else - pref("browser.link.open_newwindow.disabled_in_fullscreen", false); -#endif - -// Tabbed browser -pref("browser.tabs.closeTabByDblclick", false); -pref("browser.tabs.closeWindowWithLastTab", true); -pref("browser.tabs.allowTabDetach", true); -// Open related links to a tab, e.g., link in current tab, at next to the -// current tab if |insertRelatedAfterCurrent| is true. Otherwise, always -// append new tab to the end. -pref("browser.tabs.insertRelatedAfterCurrent", true); -// Open all links, e.g., bookmarks, history items at next to current tab -// if |insertAfterCurrent| is true. Otherwise, append new tab to the end -// for non-related links. Note that if this is set to true, it will trump -// the value of browser.tabs.insertRelatedAfterCurrent. -pref("browser.tabs.insertAfterCurrent", false); -pref("browser.tabs.warnOnClose", false); -pref("browser.tabs.warnOnCloseOtherTabs", true); -pref("browser.tabs.warnOnOpen", true); -pref("browser.tabs.maxOpenBeforeWarn", 15); -pref("browser.tabs.loadInBackground", true); -pref("browser.tabs.opentabfor.middleclick", true); -pref("browser.tabs.loadDivertedInBackground", false); -pref("browser.tabs.loadBookmarksInBackground", false); -pref("browser.tabs.loadBookmarksInTabs", false); -pref("browser.tabs.tabClipWidth", 140); -pref("browser.tabs.tabMinWidth", 76); -// Users running in any of the following language codes will have the -// secondary text on tabs hidden due to size constraints and readability -// of the text at small font sizes. -pref("browser.tabs.secondaryTextUnsupportedLocales", "ar,bn,bo,ckb,fa,gu,he,hi,ja,km,kn,ko,lo,mr,my,ne,pa,si,ta,te,th,ur,zh"); - -//Control the visibility of Tab Manager Menu. -pref("browser.tabs.tabmanager.enabled", true); - -// When tabs opened by links in other tabs via a combination of -// browser.link.open_newwindow being set to 3 and target="_blank" etc are -// closed: -// true return to the tab that opened this tab (its owner) -// false return to the adjacent tab (old default) -pref("browser.tabs.selectOwnerOnClose", true); - -// This should match Chromium's audio indicator delay. -pref("browser.tabs.delayHidingAudioPlayingIconMS", 3000); - -// Pref to control whether we use a separate privileged content process -// for about: pages. This pref name did not age well: we will have multiple -// types of privileged content processes, each with different privileges. -// types of privleged content processes, each with different privleges. -pref("browser.tabs.remote.separatePrivilegedContentProcess", true); - -#if defined(NIGHTLY_BUILD) && !defined(MOZ_ASAN) - // This pref will cause assertions when a remoteType triggers a process switch - // to a new remoteType it should not be able to trigger. - pref("browser.tabs.remote.enforceRemoteTypeRestrictions", true); -#endif - -// Pref to control whether we use a separate privileged content process -// for certain mozilla webpages (which are listed in the pref -// browser.tabs.remote.separatedMozillaDomains). -pref("browser.tabs.remote.separatePrivilegedMozillaWebContentProcess", true); - -#ifdef NIGHTLY_BUILD -pref("browser.tabs.tooltipsShowPidAndActiveness", true); -#else -pref("browser.tabs.tooltipsShowPidAndActiveness", false); -#endif - -pref("browser.tabs.firefox-view", true); -pref("browser.tabs.firefox-view.logLevel", "Warn"); -pref("browser.tabs.firefox-view.notify-for-tabs", false); - -// allow_eval_* is enabled on Firefox Desktop only at this -// point in time -pref("security.allow_eval_with_system_principal", false); -pref("security.allow_eval_in_parent_process", false); - -pref("security.allow_parent_unrestricted_js_loads", false); - -// Unload tabs when available memory is running low -#if defined(XP_MACOSX) || defined(XP_WIN) - pref("browser.tabs.unloadOnLowMemory", true); -#else - pref("browser.tabs.unloadOnLowMemory", false); -#endif - -// Tab Unloader does not unload tabs whose last inactive period is longer than -// this value (in milliseconds). -pref("browser.tabs.min_inactive_duration_before_unload", 600000); - -#if defined(XP_MACOSX) - // During low memory periods, poll with this frequency (milliseconds) - // until memory is no longer low. Changes to the pref take effect immediately. - // Browser restart not required. Chosen to be consistent with the windows - // implementation, but otherwise the 10s value is arbitrary. - pref("browser.lowMemoryPollingIntervalMS", 10000); - - // Pref to control the reponse taken on macOS when the OS is under memory - // pressure. Changes to the pref take effect immediately. Browser restart not - // required. The pref value is a bitmask: - // 0x0: No response (other than recording for telemetry, crash reporting) - // 0x1: Use the tab unloading feature to reduce memory use. Requires that - // the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab - // unloading to occur. - // 0x2: Issue the internal "memory-pressure" notification to reduce memory use - // 0x3: Both 0x1 and 0x2. - #if defined(NIGHTLY_BUILD) - pref("browser.lowMemoryResponseMask", 3); - #else - pref("browser.lowMemoryResponseMask", 0); - #endif - - // Controls which macOS memory-pressure level triggers the browser low memory - // response. Changes to the pref take effect immediately. Browser restart not - // required. By default, use the "critical" level as that occurs after "warn" - // and we only want to trigger the low memory reponse when necessary. - // The macOS system memory-pressure level is either none, "warn", or - // "critical". The OS notifies the browser when the level changes. A false - // value for the pref indicates the low memory response should occur when - // reaching the "critical" level. A true value indicates the response should - // occur when reaching the "warn" level. - pref("browser.lowMemoryResponseOnWarn", false); -#endif - -pref("browser.ctrlTab.sortByRecentlyUsed", false); - -// By default, do not export HTML at shutdown. -// If true, at shutdown the bookmarks in your menu and toolbar will -// be exported as HTML to the bookmarks.html file. -pref("browser.bookmarks.autoExportHTML", false); - -// The maximum number of daily bookmark backups to -// keep in {PROFILEDIR}/bookmarkbackups. Special values: -// -1: unlimited -// 0: no backups created (and deletes all existing backups) -pref("browser.bookmarks.max_backups", 15); - -// Whether menu should close after Ctrl-click, middle-click, etc. -pref("browser.bookmarks.openInTabClosesMenu", true); - -// Where new bookmarks go by default. -// Use PlacesUIUtils.defaultParentGuid to read this; do NOT read the pref -// directly. -// The value is one of: -// - a bookmarks guid -// - "toolbar", "menu" or "unfiled" for those folders. -// If we use the pref but the value isn't any of these, we'll fall back to -// the bookmarks toolbar as a default. -pref("browser.bookmarks.defaultLocation", "toolbar"); - -// Scripts & Windows prefs -pref("dom.disable_open_during_load", true); - -// allow JS to move and resize existing windows -pref("dom.disable_window_move_resize", false); -// prevent JS from monkeying with window focus, etc -pref("dom.disable_window_flip", true); - -// popups.policy 1=allow,2=reject -pref("privacy.popups.policy", 1); -pref("privacy.popups.usecustom", true); -pref("privacy.popups.showBrowserMessage", true); - -pref("privacy.item.cookies", false); - -pref("privacy.clearOnShutdown.history", true); -pref("privacy.clearOnShutdown.formdata", true); -pref("privacy.clearOnShutdown.downloads", true); -pref("privacy.clearOnShutdown.cookies", true); -pref("privacy.clearOnShutdown.cache", true); -pref("privacy.clearOnShutdown.sessions", true); -pref("privacy.clearOnShutdown.offlineApps", false); -pref("privacy.clearOnShutdown.siteSettings", false); -pref("privacy.clearOnShutdown.openWindows", false); - -pref("privacy.cpd.history", true); -pref("privacy.cpd.formdata", true); -pref("privacy.cpd.passwords", false); -pref("privacy.cpd.downloads", true); -pref("privacy.cpd.cookies", true); -pref("privacy.cpd.cache", true); -pref("privacy.cpd.sessions", true); -pref("privacy.cpd.offlineApps", false); -pref("privacy.cpd.siteSettings", false); -pref("privacy.cpd.openWindows", false); - -pref("privacy.history.custom", false); - -// What default should we use for the time span in the sanitizer: -// 0 - Clear everything -// 1 - Last Hour -// 2 - Last 2 Hours -// 3 - Last 4 Hours -// 4 - Today -// 5 - Last 5 minutes -// 6 - Last 24 hours -pref("privacy.sanitize.timeSpan", 1); - -pref("privacy.sanitize.migrateFx3Prefs", false); - -pref("privacy.panicButton.enabled", true); - -// Time until temporary permissions expire, in ms -pref("privacy.temporary_permission_expire_time_ms", 3600000); - -pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols - -// simple gestures support -pref("browser.gesture.swipe.left", "Browser:BackOrBackDuplicate"); -pref("browser.gesture.swipe.right", "Browser:ForwardOrForwardDuplicate"); -pref("browser.gesture.swipe.up", "cmd_scrollTop"); -pref("browser.gesture.swipe.down", "cmd_scrollBottom"); -pref("browser.gesture.pinch.latched", false); -pref("browser.gesture.pinch.threshold", 25); -#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) - // Enabled for touch input display zoom. - pref("browser.gesture.pinch.out", "cmd_fullZoomEnlarge"); - pref("browser.gesture.pinch.in", "cmd_fullZoomReduce"); - pref("browser.gesture.pinch.out.shift", "cmd_fullZoomReset"); - pref("browser.gesture.pinch.in.shift", "cmd_fullZoomReset"); -#else - // Disabled by default due to issues with track pad input. - pref("browser.gesture.pinch.out", ""); - pref("browser.gesture.pinch.in", ""); - pref("browser.gesture.pinch.out.shift", ""); - pref("browser.gesture.pinch.in.shift", ""); -#endif -pref("browser.gesture.twist.latched", false); -pref("browser.gesture.twist.threshold", 0); -pref("browser.gesture.twist.right", "cmd_gestureRotateRight"); -pref("browser.gesture.twist.left", "cmd_gestureRotateLeft"); -pref("browser.gesture.twist.end", "cmd_gestureRotateEnd"); -#if defined(XP_WIN) || defined(MOZ_WIDGET_GTK) - pref("browser.gesture.tap", "cmd_fullZoomReset"); -#else - pref("browser.gesture.tap", ""); -#endif - -pref("browser.history_swipe_animation.disabled", false); - -// 0: Nothing happens -// 1: Scrolling contents -// 2: Go back or go forward, in your history -// 3: Zoom in or out (reflowing zoom). -// 4: Treat vertical wheel as horizontal scroll -// 5: Zoom in or out (pinch zoom). -#ifdef XP_MACOSX - // On macOS, if the wheel has one axis only, shift+wheel comes through as a - // horizontal scroll event. Thus, we can't assign anything other than normal - // scrolling to shift+wheel. - pref("mousewheel.with_shift.action", 1); - pref("mousewheel.with_alt.action", 2); - // On MacOS X, control+wheel is typically handled by system and we don't - // receive the event. So, command key which is the main modifier key for - // acceleration is the best modifier for zoom-in/out. However, we should keep - // the control key setting for backward compatibility. - pref("mousewheel.with_meta.action", 3); // command key on Mac - // Disable control-/meta-modified horizontal wheel events, since those are - // used on Mac as part of modified swipe gestures (e.g. Left swipe+Cmd is - // "go back" in a new tab). - pref("mousewheel.with_control.action.override_x", 0); - pref("mousewheel.with_meta.action.override_x", 0); -#else - // On the other platforms (non-macOS), user may use legacy mouse which - // supports only vertical wheel but want to scroll horizontally. For such - // users, we should provide horizontal scroll with shift+wheel (same as - // Chrome). However, shift+wheel was used for navigating history. For users - // who want to keep using this feature, let's enable it with alt+wheel. This - // is better for consistency with macOS users. - pref("mousewheel.with_shift.action", 4); - pref("mousewheel.with_alt.action", 2); - pref("mousewheel.with_meta.action", 1); // win key on Win, Super/Hyper on Linux -#endif -pref("mousewheel.with_control.action",3); -pref("mousewheel.with_win.action", 1); - -pref("browser.xul.error_pages.expert_bad_cert", false); -pref("browser.xul.error_pages.show_safe_browsing_details_on_load", false); - -// Enable captive portal detection. -pref("network.captive-portal-service.enabled", true); - -// If true, network link events will change the value of navigator.onLine -pref("network.manage-offline-status", true); - -// We want to make sure mail URLs are handled externally... -pref("network.protocol-handler.external.mailto", true); // for mail -pref("network.protocol-handler.external.news", true); // for news -pref("network.protocol-handler.external.snews", true); // for secure news -pref("network.protocol-handler.external.nntp", true); // also news -#ifdef XP_WIN - pref("network.protocol-handler.external.ms-windows-store", true); -#endif - -// ...without warning dialogs -pref("network.protocol-handler.warn-external.mailto", false); -pref("network.protocol-handler.warn-external.news", false); -pref("network.protocol-handler.warn-external.snews", false); -pref("network.protocol-handler.warn-external.nntp", false); -#ifdef XP_WIN - pref("network.protocol-handler.warn-external.ms-windows-store", false); -#endif - -// By default, all protocol handlers are exposed. This means that -// the browser will respond to openURL commands for all URL types. -// It will also try to open link clicks inside the browser before -// failing over to the system handlers. -pref("network.protocol-handler.expose-all", true); -pref("network.protocol-handler.expose.mailto", false); -pref("network.protocol-handler.expose.news", false); -pref("network.protocol-handler.expose.snews", false); -pref("network.protocol-handler.expose.nntp", false); - -pref("accessibility.typeaheadfind", false); -pref("accessibility.typeaheadfind.timeout", 5000); -pref("accessibility.typeaheadfind.linksonly", false); -pref("accessibility.typeaheadfind.flashBar", 1); - -pref("plugins.testmode", false); - -// Should plugins that are hidden show the infobar UI? -pref("plugins.show_infobar", false); - -#if defined(_ARM64_) && defined(XP_WIN) - pref("plugin.default.state", 0); -#else - pref("plugin.default.state", 1); -#endif - -// Prefer HTML5 video over Flash content, and don't -// load plugin instances with no src declared. -// These prefs are documented in details on all.js. -// With the "follow-ctp" setting, this will only -// apply to users that have plugin.state.flash = 1. -pref("plugins.favorfallback.mode", "follow-ctp"); -pref("plugins.favorfallback.rules", "nosrc,video"); - -// Toggling Search bar on and off in about:preferences -pref("browser.preferences.search", true); -#if defined(NIGHTLY_BUILD) -pref("browser.preferences.experimental", true); -#else -pref("browser.preferences.experimental", false); -#endif -pref("browser.preferences.moreFromMozilla", true); -pref("browser.preferences.experimental.hidden", false); -pref("browser.preferences.defaultPerformanceSettings.enabled", true); - -pref("browser.proton.toolbar.version", 0); - -// Backspace and Shift+Backspace behavior -// 0 goes Back/Forward -// 1 act like PgUp/PgDown -// 2 and other values, nothing -pref("browser.backspace_action", 2); - -pref("intl.regional_prefs.use_os_locales", false); - -// this will automatically enable inline spellchecking (if it is available) for -// editable elements in HTML -// 0 = spellcheck nothing -// 1 = check multi-line controls [default] -// 2 = check multi/single line controls -pref("layout.spellcheckDefault", 1); - -pref("browser.send_pings", false); - -pref("browser.geolocation.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/geolocation/"); -pref("browser.xr.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/xr/"); - -pref("browser.sessionstore.resume_from_crash", true); -pref("browser.sessionstore.resume_session_once", false); -pref("browser.sessionstore.resuming_after_os_restart", false); - -// Minimal interval between two save operations in milliseconds (while the user is idle). -pref("browser.sessionstore.interval.idle", 3600000); // 1h - -// Time (ms) before we assume that the user is idle and that we don't need to -// collect/save the session quite as often. -pref("browser.sessionstore.idleDelay", 180000); // 3 minutes - -// on which sites to save text data, POSTDATA and cookies -// 0 = everywhere, 1 = unencrypted sites, 2 = nowhere -pref("browser.sessionstore.privacy_level", 0); -// how many tabs can be reopened (per window) -pref("browser.sessionstore.max_tabs_undo", 25); -// how many windows can be reopened (per session) - on non-OS X platforms this -// pref may be ignored when dealing with pop-up windows to ensure proper startup -pref("browser.sessionstore.max_windows_undo", 3); -// number of crashes that can occur before the about:sessionrestore page is displayed -// (this pref has no effect if more than 6 hours have passed since the last crash) -pref("browser.sessionstore.max_resumed_crashes", 1); -// number of back button session history entries to restore (-1 = all of them) -pref("browser.sessionstore.max_serialize_back", 10); -// number of forward button session history entries to restore (-1 = all of them) -pref("browser.sessionstore.max_serialize_forward", -1); -// restore_on_demand overrides MAX_CONCURRENT_TAB_RESTORES (sessionstore constant) -// and restore_hidden_tabs. When true, tabs will not be restored until they are -// focused (also applies to tabs that aren't visible). When false, the values -// for MAX_CONCURRENT_TAB_RESTORES and restore_hidden_tabs are respected. -// Selected tabs are always restored regardless of this pref. -pref("browser.sessionstore.restore_on_demand", true); -// Whether to automatically restore hidden tabs (i.e., tabs in other tab groups) or not -pref("browser.sessionstore.restore_hidden_tabs", false); -// If restore_on_demand is set, pinned tabs are restored on startup by default. -// When set to true, this pref overrides that behavior, and pinned tabs will only -// be restored when they are focused. -pref("browser.sessionstore.restore_pinned_tabs_on_demand", false); -// The version at which we performed the latest upgrade backup -pref("browser.sessionstore.upgradeBackup.latestBuildID", ""); -// How many upgrade backups should be kept -pref("browser.sessionstore.upgradeBackup.maxUpgradeBackups", 3); -// End-users should not run sessionstore in debug mode -pref("browser.sessionstore.debug", false); -// Forget closed windows/tabs after two weeks -pref("browser.sessionstore.cleanup.forget_closed_after", 1209600000); -// Platform collects session storage data for session store -pref("browser.sessionstore.collect_session_storage", true); - -// Don't quit the browser when Ctrl + Q is pressed. -pref("browser.quitShortcut.disabled", false); - -// allow META refresh by default -pref("accessibility.blockautorefresh", false); - -// Whether history is enabled or not. -pref("places.history.enabled", true); - -// Whether or not diacritics must match in history text searches. -pref("places.search.matchDiacritics", false); - -// the (maximum) number of the recent visits to sample -// when calculating frecency -pref("places.frecency.numVisits", 10); - -// buckets (in days) for frecency calculation -pref("places.frecency.firstBucketCutoff", 4); -pref("places.frecency.secondBucketCutoff", 14); -pref("places.frecency.thirdBucketCutoff", 31); -pref("places.frecency.fourthBucketCutoff", 90); - -// weights for buckets for frecency calculations -pref("places.frecency.firstBucketWeight", 100); -pref("places.frecency.secondBucketWeight", 70); -pref("places.frecency.thirdBucketWeight", 50); -pref("places.frecency.fourthBucketWeight", 30); -pref("places.frecency.defaultBucketWeight", 10); - -// bonus (in percent) for visit transition types for frecency calculations -pref("places.frecency.embedVisitBonus", 0); -pref("places.frecency.framedLinkVisitBonus", 0); -pref("places.frecency.linkVisitBonus", 100); -pref("places.frecency.typedVisitBonus", 2000); -// The bookmarks bonus is always added on top of any other bonus, including -// the redirect source and the typed ones. -pref("places.frecency.bookmarkVisitBonus", 75); -// The redirect source bonus overwrites any transition bonus. -// 0 would hide these pages, instead we want them low ranked. Thus we use -// linkVisitBonus - bookmarkVisitBonus, so that a bookmarked source is in par -// with a common link. -pref("places.frecency.redirectSourceVisitBonus", 25); -pref("places.frecency.downloadVisitBonus", 0); -// The perm/temp redirects here relate to redirect targets, not sources. -pref("places.frecency.permRedirectVisitBonus", 50); -pref("places.frecency.tempRedirectVisitBonus", 40); -pref("places.frecency.reloadVisitBonus", 0); -pref("places.frecency.defaultVisitBonus", 0); - -// bonus (in percent) for place types for frecency calculations -pref("places.frecency.unvisitedBookmarkBonus", 140); -pref("places.frecency.unvisitedTypedBonus", 200); - -// Clear data by base domain (including partitioned storage) when the user -// selects "Forget About This Site". -pref("places.forgetThisSite.clearByBaseDomain", true); - -// Whether to warm up network connections for places: menus and places: toolbar. -pref("browser.places.speculativeConnect.enabled", true); - -// Controls behavior of the "Add Exception" dialog launched from SSL error pages -// 0 - don't pre-populate anything -// 1 - pre-populate site URL, but don't fetch certificate -// 2 - pre-populate site URL and pre-fetch certificate -pref("browser.ssl_override_behavior", 2); - -// if true, use full page zoom instead of text zoom -pref("browser.zoom.full", true); - -// Whether or not to save and restore zoom levels on a per-site basis. -pref("browser.zoom.siteSpecific", true); - -// Whether or not to update background tabs to the current zoom level. -pref("browser.zoom.updateBackgroundTabs", true); - -// The breakpad report server to link to in about:crashes -pref("breakpad.reportURL", "https://crash-stats.mozilla.org/report/index/"); - -// URL for "Learn More" for DataCollection -pref("toolkit.datacollection.infoURL", - "https://www.mozilla.org/legal/privacy/firefox.html"); - -// URL for "Learn More" for Crash Reporter -pref("toolkit.crashreporter.infoURL", - "https://www.mozilla.org/legal/privacy/firefox.html#crash-reporter"); - -// base URL for web-based support pages -pref("app.support.baseURL", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/"); - -// base url for web-based feedback pages -pref("app.feedback.baseURL", "https://ideas.mozilla.org/"); - -// Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror) -pref("security.alternate_certificate_error_page", "certerror"); - -pref("security.certerrors.recordEventTelemetry", true); -pref("security.certerrors.permanentOverride", true); -pref("security.certerrors.mitm.priming.enabled", true); -pref("security.certerrors.mitm.priming.endpoint", "https://mitmdetection.services.mozilla.com/"); -pref("security.certerrors.mitm.auto_enable_enterprise_roots", true); - -// Whether the bookmark panel should be shown when bookmarking a page. -pref("browser.bookmarks.editDialog.showForNewBookmarks", true); - -// Don't try to alter this pref, it'll be reset the next time you use the -// bookmarking dialog -pref("browser.bookmarks.editDialog.firstEditField", "namePicker"); - -// The number of recently selected folders in the edit bookmarks dialog. -pref("browser.bookmarks.editDialog.maxRecentFolders", 7); - -// By default the Edit Bookmark dialog is instant-apply. This feature pref will allow to -// just save on Accept, once the project is complete. -pref("browser.bookmarks.editDialog.delayedApply.enabled", false); - -#if defined(XP_WIN) && defined(MOZ_SANDBOX) - // This controls the strength of the Windows content process sandbox for - // testing purposes. This will require a restart. - // On windows these levels are: - // See - security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp - // SetSecurityLevelForContentProcess() for what the different settings mean. - pref("security.sandbox.content.level", 6); - - // This controls the strength of the Windows GPU process sandbox. Changes - // will require restart. - // For information on what the level number means, see - // SetSecurityLevelForGPUProcess() in - // security/sandbox/win/src/sandboxbroker/sandboxBroker.cpp - pref("security.sandbox.gpu.level", 0); -#endif - -#if defined(XP_MACOSX) && defined(MOZ_SANDBOX) - // This pref is discussed in bug 1083344, the naming is inspired from its - // Windows counterpart, but on Mac it's an integer which means: - // 0 -> "no sandbox" (nightly only) - // 1 -> "preliminary content sandboxing enabled: write access to - // home directory is prevented" - // 2 -> "preliminary content sandboxing enabled with profile protection: - // write access to home directory is prevented, read and write access - // to ~/Library and profile directories are prevented (excluding - // $PROFILE/{extensions,chrome})" - // 3 -> "no global read/write access, read access permitted to - // $PROFILE/{extensions,chrome}" - // This setting is read when the content process is started. On Mac the - // content process is killed when all windows are closed, so a change will - // take effect when the 1st window is opened. - pref("security.sandbox.content.level", 3); - - // Disconnect content processes from the window server. Depends on - // out-of-process WebGL and non-native theming. i.e., both in-process WebGL - // and native theming depend on content processes having a connection to the - // window server. Window server disconnection is automatically disabled (and - // this pref overridden) if OOP WebGL is disabled. OOP WebGL is disabled - // for some tests. - pref("security.sandbox.content.mac.disconnect-windowserver", true); -#endif - -#if defined(XP_LINUX) && defined(MOZ_SANDBOX) - // This pref is introduced as part of bug 742434, the naming is inspired from - // its Windows/Mac counterpart, but on Linux it's an integer which means: - // 0 -> "no sandbox" - // 1 -> "content sandbox using seccomp-bpf when available" + ipc restrictions - // 2 -> "seccomp-bpf + write file broker" - // 3 -> "seccomp-bpf + read/write file brokering" - // 4 -> all of the above + network/socket restrictions + chroot - // - // The purpose of this setting is to allow Linux users or distros to disable - // the sandbox while we fix their problems, or to allow running Firefox with - // exotic configurations we can't reasonably support out of the box. - // - pref("security.sandbox.content.level", 4); - // Introduced as part of bug 1608558. Linux is currently the only platform - // that uses a sandbox level for the socket process. There are currently - // only 2 levels: - // 0 -> "no sandbox" - // 1 -> "sandboxed, allows socket operations and reading necessary certs" - pref("security.sandbox.socket.process.level", 1); - pref("security.sandbox.content.write_path_whitelist", ""); - pref("security.sandbox.content.read_path_whitelist", ""); - pref("security.sandbox.content.syscall_whitelist", ""); -#endif - -#if defined(XP_OPENBSD) && defined(MOZ_SANDBOX) - pref("security.sandbox.content.level", 1); -#endif - -#if defined(MOZ_SANDBOX) - // ID (a UUID when set by gecko) that is used to form the name of a - // sandbox-writable temporary directory to be used by content processes - // when a temporary writable file is required in a level 1 sandbox. - pref("security.sandbox.content.tempDirSuffix", ""); - pref("security.sandbox.plugin.tempDirSuffix", ""); - - // This pref determines if messages relevant to sandbox violations are - // logged. - #if defined(XP_WIN) || defined(XP_MACOSX) - pref("security.sandbox.logging.enabled", false); - #endif -#endif - -// This pref governs whether we attempt to work around problems caused by -// plugins using OS calls to manipulate the cursor while running out-of- -// process. These workarounds all involve intercepting (hooking) certain -// OS calls in the plugin process, then arranging to make certain OS calls -// in the browser process. Eventually plugins will be required to use the -// NPAPI to manipulate the cursor, and these workarounds will be removed. -// See bug 621117. -#ifdef XP_MACOSX - pref("dom.ipc.plugins.nativeCursorSupport", true); -#endif - -#ifdef XP_WIN - pref("browser.taskbar.previews.enable", false); - pref("browser.taskbar.previews.max", 20); - pref("browser.taskbar.previews.cachetime", 5); - pref("browser.taskbar.lists.enabled", true); - pref("browser.taskbar.lists.frequent.enabled", true); - pref("browser.taskbar.lists.recent.enabled", false); - pref("browser.taskbar.lists.maxListItemCount", 7); - pref("browser.taskbar.lists.tasks.enabled", true); - pref("browser.taskbar.lists.refreshInSeconds", 120); -#endif - -// Preferences to be synced by default. -// Preferences with the prefix `services.sync.prefs.sync-seen.` should have -// a value of `false`, and means the value of the pref will be synced as soon -// as a value for the pref is "seen", even if it is the default, and should be -// used for prefs we sync but which have different values on different channels, -// platforms or distributions. -pref("services.sync.prefs.sync.accessibility.blockautorefresh", true); -pref("services.sync.prefs.sync.accessibility.browsewithcaret", true); -pref("services.sync.prefs.sync.accessibility.typeaheadfind", true); -pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true); -pref("services.sync.prefs.sync.addons.ignoreUserEnabledChanges", true); -pref("services.sync.prefs.sync.app.shield.optoutstudies.enabled", true); -// The addons prefs related to repository verification are intentionally -// not synced for security reasons. If a system is compromised, a user -// could weaken the pref locally, install an add-on from an untrusted -// source, and this would propagate automatically to other, -// uncompromised Sync-connected devices. -pref("services.sync.prefs.sync.browser.contentblocking.category", true); -pref("services.sync.prefs.sync.browser.contentblocking.features.strict", true); -pref("services.sync.prefs.sync.browser.crashReports.unsubmittedCheck.autoSubmit2", true); -pref("services.sync.prefs.sync.browser.ctrlTab.sortByRecentlyUsed", true); -pref("services.sync.prefs.sync.browser.discovery.enabled", true); -pref("services.sync.prefs.sync.browser.download.useDownloadDir", true); -pref("services.sync.prefs.sync.browser.firefox-view.feature-tour", true); -pref("services.sync.prefs.sync.browser.formfill.enable", true); -pref("services.sync.prefs.sync.browser.link.open_newwindow", true); -pref("services.sync.prefs.sync.browser.menu.showViewImageInfo", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSearch", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.topsites", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.topSitesRows", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.snippets", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.topstories", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.topstories.rows", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.feeds.section.highlights", true); -// Some linux distributions disable all highlights by default. -pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights", false); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeVisited", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeBookmarks", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includeDownloads", true); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.includePocket", true); -// Some linux distributions disable just pocket by default. -pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.section.highlights.includePocket", false); -pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.section.highlights.rows", true); -pref("services.sync.prefs.sync.browser.newtabpage.enabled", true); -pref("services.sync.prefs.sync.browser.newtabpage.pinned", true); -pref("services.sync.prefs.sync.browser.offline-apps.notify", true); -pref("services.sync.prefs.sync.browser.pdfjs.feature-tour", true); -pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true); -pref("services.sync.prefs.sync.browser.safebrowsing.downloads.remote.block_potentially_unwanted", true); -pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true); -pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true); -pref("services.sync.prefs.sync.browser.search.update", true); -pref("services.sync.prefs.sync.browser.search.widget.inNavBar", true); -pref("services.sync.prefs.sync.browser.startup.homepage", true); -pref("services.sync.prefs.sync.browser.startup.page", true); -pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true); -pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true); -pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true); -pref("services.sync.prefs.sync.browser.taskbar.previews.enable", true); -pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true); -pref("services.sync.prefs.sync.browser.urlbar.showSearchSuggestionsFirst", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.bookmark", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.history", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.openpage", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.searches", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.topsites", true); -pref("services.sync.prefs.sync.browser.urlbar.suggest.engines", true); -pref("services.sync.prefs.sync.dom.disable_open_during_load", true); -pref("services.sync.prefs.sync.dom.disable_window_flip", true); -pref("services.sync.prefs.sync.dom.disable_window_move_resize", true); -pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true); -pref("services.sync.prefs.sync.dom.security.https_only_mode", true); -pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled", true); -pref("services.sync.prefs.sync.dom.security.https_only_mode_ever_enabled_pbm", true); -pref("services.sync.prefs.sync.dom.security.https_only_mode_pbm", true); -pref("services.sync.prefs.sync.extensions.update.enabled", true); -pref("services.sync.prefs.sync.extensions.activeThemeID", true); -pref("services.sync.prefs.sync.general.autoScroll", true); -// general.autoScroll has a different default on Linux vs elsewhere. -pref("services.sync.prefs.sync-seen.general.autoScroll", false); -pref("services.sync.prefs.sync.general.smoothScroll", true); -pref("services.sync.prefs.sync.intl.accept_languages", true); -pref("services.sync.prefs.sync.intl.regional_prefs.use_os_locales", true); -pref("services.sync.prefs.sync.layout.spellcheckDefault", true); -pref("services.sync.prefs.sync.media.autoplay.default", true); -pref("services.sync.prefs.sync.media.eme.enabled", true); -// Some linux distributions disable eme by default. -pref("services.sync.prefs.sync-seen.media.eme.enabled", false); -pref("services.sync.prefs.sync.media.videocontrols.picture-in-picture.video-toggle.enabled", true); -pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true); -pref("services.sync.prefs.sync.network.cookie.thirdparty.sessionOnly", true); -pref("services.sync.prefs.sync.permissions.default.image", true); -pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true); -pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true); -pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true); -pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true); -pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true); -pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true); -pref("services.sync.prefs.sync.privacy.trackingprotection.cryptomining.enabled", true); -pref("services.sync.prefs.sync.privacy.trackingprotection.fingerprinting.enabled", true); -pref("services.sync.prefs.sync.privacy.trackingprotection.pbmode.enabled", true); -// We do not sync `privacy.resistFingerprinting` by default as it's an undocumented, -// not-recommended footgun - see bug 1763278 for more. -pref("services.sync.prefs.sync.privacy.reduceTimerPrecision", true); -pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.microseconds", true); -pref("services.sync.prefs.sync.privacy.resistFingerprinting.reduceTimerPrecision.jitter", true); -pref("services.sync.prefs.sync.privacy.userContext.enabled", true); -pref("services.sync.prefs.sync.privacy.userContext.newTabContainerOnLeftClick.enabled", true); -pref("services.sync.prefs.sync.security.default_personal_cert", true); -pref("services.sync.prefs.sync.services.sync.syncedTabs.showRemoteIcons", true); -pref("services.sync.prefs.sync.signon.autofillForms", true); -pref("services.sync.prefs.sync.signon.generation.enabled", true); -pref("services.sync.prefs.sync.signon.management.page.breach-alerts.enabled", true); -pref("services.sync.prefs.sync.signon.rememberSignons", true); -pref("services.sync.prefs.sync.spellchecker.dictionary", true); -pref("services.sync.prefs.sync.ui.osk.enabled", true); - -// A preference which, if false, means sync will only apply incoming preference -// changes if there's already a local services.sync.prefs.sync.* control pref. -// If true, all incoming preferences will be applied and the local "control -// pref" updated accordingly. -pref("services.sync.prefs.dangerously_allow_arbitrary", false); - -// A preference that controls whether we should show the icon for a remote tab. -// This pref has no UI but exists because some people may be concerned that -// fetching these icons to show remote tabs may leak information about that -// user's tabs and bookmarks. Note this pref is also synced. -pref("services.sync.syncedTabs.showRemoteIcons", true); - -// A preference (in milliseconds) controlling if we sync after a tab change and -// how long to delay before we schedule the sync -// Anything <= 0 means disabled -pref("services.sync.syncedTabs.syncDelayAfterTabChange", 5000); - -// Whether the character encoding menu is under the main Firefox button. This -// preference is a string so that localizers can alter it. -pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.properties"); - -// Whether prompts should be content modal (1) tab modal (2) or window modal(3) by default -// This is a fallback value for when prompt callers do not specify a modalType. -pref("prompts.defaultModalType", 3); - -pref("browser.topsites.useRemoteSetting", true); -// Fetch sponsored Top Sites from Mozilla Tiles Service (Contile) -pref("browser.topsites.contile.enabled", true); -pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles"); - -// The base URL for the Quick Suggest anonymizing proxy. To make a request to -// the proxy, include a campaign ID in the path. -pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/"); -pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1"); - -// Whether to show tab level system prompts opened via nsIPrompt(Service) as -// SubDialogs in the TabDialogBox (true) or as TabModalPrompt in the -// TabModalPromptBox (false). -pref("prompts.tabChromePromptSubDialog", true); - -// Whether to show the dialogs opened at the content level, such as -// alert() or prompt(), using a SubDialogManager in the TabDialogBox. -pref("prompts.contentPromptSubDialog", true); - -// Whether to show window-modal dialogs opened for browser windows -// in a SubDialog inside their parent, instead of an OS level window. -pref("prompts.windowPromptSubDialog", true); - -// Activates preloading of the new tab url. -pref("browser.newtab.preload", true); - -pref("browser.newtabpage.activity-stream.newNewtabExperience.colors", "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A"); - -// Activity Stream prefs that control to which page to redirect -#ifndef RELEASE_OR_BETA - pref("browser.newtabpage.activity-stream.debug", false); -#endif - -// The remote FxA root content URL for the Activity Stream firstrun page. -pref("browser.newtabpage.activity-stream.fxaccounts.endpoint", "https://accounts.firefox.com/"); - -// The pref that controls if the search shortcuts experiment is on -pref("browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts", true); - -// ASRouter provider configuration -pref("browser.newtabpage.activity-stream.asrouter.providers.cfr", "{\"id\":\"cfr\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"cfr\",\"updateCycleInMs\":3600000}"); -pref("browser.newtabpage.activity-stream.asrouter.providers.whats-new-panel", "{\"id\":\"whats-new-panel\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"whats-new-panel\",\"updateCycleInMs\":3600000}"); -pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"message-groups\",\"updateCycleInMs\":3600000}"); -// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into -// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream -// repackager of this code using an alternate snippet url, please keep your users safe -pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", "{\"id\":\"snippets\",\"enabled\":false,\"type\":\"remote\",\"url\":\"https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/\",\"updateCycleInMs\":14400000}"); -pref("browser.newtabpage.activity-stream.asrouter.providers.messaging-experiments", "{\"id\":\"messaging-experiments\",\"enabled\":true,\"type\":\"remote-experiments\",\"updateCycleInMs\":3600000}"); - -// ASRouter user prefs -pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", true); -pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", true); - -// The pref that controls if ASRouter uses the remote fluent files. -// It's enabled by default, but could be disabled to force ASRouter to use the local files. -pref("browser.newtabpage.activity-stream.asrouter.useRemoteL10n", true); - -// These prefs control if Discovery Stream is enabled. -pref("browser.newtabpage.activity-stream.discoverystream.enabled", true); -pref("browser.newtabpage.activity-stream.discoverystream.hardcoded-basic-layout", false); -pref("browser.newtabpage.activity-stream.discoverystream.hybridLayout.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.hideCardBackground.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.fourCardLayout.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.newFooterSection.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCard.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.saveToPocketCardRegions", ""); -pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptions.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.hideDescriptionsRegions", ""); -pref("browser.newtabpage.activity-stream.discoverystream.compactGrid.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.compactImages.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.imageGradient.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.titleLines", 3); -pref("browser.newtabpage.activity-stream.discoverystream.descLines", 3); -pref("browser.newtabpage.activity-stream.discoverystream.readTime.enabled", true); -pref("browser.newtabpage.activity-stream.discoverystream.newSponsoredLabel.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.essentialReadsHeader.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.recentSaves.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.editorsPicksHeader.enabled", false); -pref("browser.newtabpage.activity-stream.discoverystream.spoc-positions", "1,5,7,11,18,20"); -pref("browser.newtabpage.activity-stream.discoverystream.widget-positions", ""); - -pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint", ""); -pref("browser.newtabpage.activity-stream.discoverystream.spocs-endpoint-query", ""); -pref("browser.newtabpage.activity-stream.discoverystream.sponsored-collections.enabled", false); - -// Changes the spoc content. -pref("browser.newtabpage.activity-stream.discoverystream.spocAdTypes", ""); -pref("browser.newtabpage.activity-stream.discoverystream.spocZoneIds", ""); -pref("browser.newtabpage.activity-stream.discoverystream.spocSiteId", ""); - -pref("browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled", false); - -// List of regions that do not get stories, regardless of locale-list-config. -pref("browser.newtabpage.activity-stream.discoverystream.region-stories-block", "FR"); -// List of locales that get stories, regardless of region-stories-config. -#ifdef NIGHTLY_BUILD - pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", "en-US,en-CA,en-GB"); -#else - pref("browser.newtabpage.activity-stream.discoverystream.locale-list-config", ""); -#endif -// List of regions that get stories by default. -pref("browser.newtabpage.activity-stream.discoverystream.region-stories-config", "US,DE,CA,GB,IE,CH,AT,BE,IN"); - -// List of regions that get spocs by default. -pref("browser.newtabpage.activity-stream.discoverystream.region-spocs-config", "US,CA,DE,GB"); -// List of regions that don't get the 7 row layout. -pref("browser.newtabpage.activity-stream.discoverystream.region-basic-config", ""); - -// Allows Pocket story collections to be dismissed. -pref("browser.newtabpage.activity-stream.discoverystream.isCollectionDismissible", true); -pref("browser.newtabpage.activity-stream.discoverystream.personalization.enabled", true); -// Configurable keys used by personalization. -pref("browser.newtabpage.activity-stream.discoverystream.personalization.modelKeys", "nb_model_arts_and_entertainment, nb_model_autos_and_vehicles, nb_model_beauty_and_fitness, nb_model_blogging_resources_and_services, nb_model_books_and_literature, nb_model_business_and_industrial, nb_model_computers_and_electronics, nb_model_finance, nb_model_food_and_drink, nb_model_games, nb_model_health, nb_model_hobbies_and_leisure, nb_model_home_and_garden, nb_model_internet_and_telecom, nb_model_jobs_and_education, nb_model_law_and_government, nb_model_online_communities, nb_model_people_and_society, nb_model_pets_and_animals, nb_model_real_estate, nb_model_reference, nb_model_science, nb_model_shopping, nb_model_sports, nb_model_travel"); -// System pref to allow Pocket stories personalization to be turned on/off. -pref("browser.newtabpage.activity-stream.discoverystream.recs.personalized", false); -// System pref to allow Pocket sponsored content personalization to be turned on/off. -pref("browser.newtabpage.activity-stream.discoverystream.spocs.personalized", true); - -// User pref to show stories on newtab (feeds.system.topstories has to be set to true as well) -pref("browser.newtabpage.activity-stream.feeds.section.topstories", true); - -// The pref controls if search hand-off is enabled for Activity Stream. -pref("browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar", true); - -pref("browser.newtabpage.activity-stream.logowordmark.alwaysVisible", true); - -// URLs from the user's history that contain this search param will be hidden -// from the top sites. The value is a string with one of the following forms: -// - "" (empty) - Disable this feature -// - "key" - Search param named "key" with any or no value -// - "key=" - Search param named "key" with no value -// - "key=value" - Search param named "key" with value "value" -pref("browser.newtabpage.activity-stream.hideTopSitesWithSearchParam", "mfadid=adm"); - -// Used to display triplet cards on newtab -pref("trailhead.firstrun.newtab.triplets", ""); -// Separate about welcome -pref("browser.aboutwelcome.enabled", true); -// Used to set multistage welcome UX -pref("browser.aboutwelcome.screens", ""); -pref("browser.aboutwelcome.skipFocus", true); -// Used to enable template for MR 2022 Onboarding -pref("browser.aboutwelcome.templateMR", true); - -// The pref that controls if the What's New panel is enabled. -pref("browser.messaging-system.whatsNewPanel.enabled", true); - -// Experiment Manager -// See Console.jsm LOG_LEVELS for all possible values -pref("messaging-system.log", "warn"); -pref("messaging-system.rsexperimentloader.enabled", true); -pref("messaging-system.rsexperimentloader.collection_id", "nimbus-desktop-experiments"); -pref("nimbus.debug", false); -pref("nimbus.validation.enabled", true); - -// Enable the DOM fullscreen API. -pref("full-screen-api.enabled", true); - -// Startup Crash Tracking -// number of startup crashes that can occur before starting into safe mode automatically -// (this pref has no effect if more than 6 hours have passed since the last crash) -pref("toolkit.startup.max_resumed_crashes", 3); - -// Whether to use RegisterApplicationRestart to restart the browser and resume -// the session on next Windows startup -#if defined(XP_WIN) - pref("toolkit.winRegisterApplicationRestart", true); -#endif - -// Used by pdf.js to know the first time firefox is run with it installed so it -// can become the default pdf viewer. -pref("pdfjs.firstRun", true); -// The values of preferredAction and alwaysAskBeforeHandling before pdf.js -// became the default. -pref("pdfjs.previousHandler.preferredAction", 0); -pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false); - -// Try to convert PDFs sent as octet-stream -pref("pdfjs.handleOctetStream", true); - -// Is the sidebar positioned ahead of the content browser -pref("sidebar.position_start", true); - -pref("security.identitypopup.recordEventTelemetry", true); -pref("security.protectionspopup.recordEventTelemetry", true); -pref("security.app_menu.recordEventTelemetry", true); - -// Block insecure active content on https pages -pref("security.mixed_content.block_active_content", true); - -// Show degraded UI for http pages. -pref("security.insecure_connection_icon.enabled", true); -// Show degraded UI for http pages in private mode. -pref("security.insecure_connection_icon.pbmode.enabled", true); - -// Show "Not Secure" text for http pages; disabled for now -pref("security.insecure_connection_text.enabled", false); -pref("security.insecure_connection_text.pbmode.enabled", false); - -// 1 = allow MITM for certificate pinning checks. -pref("security.cert_pinning.enforcement_level", 1); - - -// If this turns true, Moz*Gesture events are not called stopPropagation() -// before content. -pref("dom.debug.propagate_gesture_events_through_content", false); - -// CustomizableUI debug logging. -pref("browser.uiCustomization.debug", false); - -// CustomizableUI state of the browser's user interface -pref("browser.uiCustomization.state", ""); - -// If set to false, FxAccounts and Sync will be unavailable. -// A restart is mandatory after flipping that preference. -pref("identity.fxaccounts.enabled", true); - -// The remote FxA root content URL. Must use HTTPS. -pref("identity.fxaccounts.remote.root", "https://accounts.firefox.com/"); - -// The value of the context query parameter passed in fxa requests. -pref("identity.fxaccounts.contextParam", "fx_desktop_v3"); - -// The remote URL of the FxA Profile Server -pref("identity.fxaccounts.remote.profile.uri", "https://profile.accounts.firefox.com/v1"); - -// The remote URL of the FxA OAuth Server -pref("identity.fxaccounts.remote.oauth.uri", "https://oauth.accounts.firefox.com/v1"); - -// Whether FxA pairing using QR codes is enabled. -pref("identity.fxaccounts.pairing.enabled", true); - -// The remote URI of the FxA pairing server -pref("identity.fxaccounts.remote.pairing.uri", "wss://channelserver.services.mozilla.com"); - -// Token server used by the FxA Sync identity. -pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sync/1.5"); - -// Auto-config URL for FxA self-hosters, makes an HTTP request to -// [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration -// This is now the prefered way of pointing to a custom FxA server, instead -// of making changes to "identity.fxaccounts.*.uri". -pref("identity.fxaccounts.autoconfig.uri", ""); - -// URL for help link about Send Tab. -pref("identity.sendtabpromo.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/send-tab"); - -// URLs for promo links to mobile browsers. Note that consumers are expected to -// append a value for utm_campaign. -pref("identity.mobilepromo.android", "https://www.mozilla.org/firefox/android/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign="); -pref("identity.mobilepromo.ios", "https://www.mozilla.org/firefox/ios/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign="); - -// Migrate any existing Firefox Account data from the default profile to the -// Developer Edition profile. -#ifdef MOZ_DEV_EDITION - pref("identity.fxaccounts.migrateToDevEdition", true); -#else - pref("identity.fxaccounts.migrateToDevEdition", false); -#endif - -// If activated, send tab will use the new FxA commands backend. -pref("identity.fxaccounts.commands.enabled", true); -// How often should we try to fetch missed FxA commands on sync (in seconds). -// Default is 24 hours. -pref("identity.fxaccounts.commands.missed.fetch_interval", 86400); - -// Whether we should run a test-pattern through EME GMPs before assuming they'll -// decode H.264. -pref("media.gmp.trial-create.enabled", true); - -// Note: when media.gmp-*.visible is true, provided we're running on a -// supported platform/OS version, the corresponding CDM appears in the -// plugins list, Firefox will download the GMP/CDM if enabled, and our -// UI to re-enable EME prompts the user to re-enable EME if it's disabled -// and script requests EME. If *.visible is false, we won't show the UI -// to enable the CDM if its disabled; it's as if the keysystem is completely -// unsupported. - -#ifdef MOZ_WIDEVINE_EME - pref("media.gmp-widevinecdm.visible", true); - pref("media.gmp-widevinecdm.enabled", true); -#endif - -pref("media.gmp-gmpopenh264.visible", true); -pref("media.gmp-gmpopenh264.enabled", true); - -// Set Firefox to block autoplay, asking for permission by default. -pref("media.autoplay.default", 1); // 0=Allowed, 1=Blocked, 5=All Blocked - -// Block WebAudio from playing automatically. -pref("media.autoplay.block-webaudio", true); - -pref("media.videocontrols.picture-in-picture.enabled", true); -pref("media.videocontrols.picture-in-picture.audio-toggle.enabled", true); -pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true); -pref("media.videocontrols.picture-in-picture.video-toggle.visibility-threshold", "1.0"); -pref("media.videocontrols.picture-in-picture.keyboard-controls.enabled", true); - -pref("browser.translation.detectLanguage", false); -pref("browser.translation.neverForLanguages", ""); -// Show the translation UI bits, like the info bar, notification icon and preferences. -pref("browser.translation.ui.show", false); -// Allows to define the translation engine. Google is default, Bing or Yandex are other options. -pref("browser.translation.engine", "Google"); - -// Telemetry settings. -// Determines if Telemetry pings can be archived locally. -pref("toolkit.telemetry.archive.enabled", true); -// Enables sending the shutdown ping when Firefox shuts down. -pref("toolkit.telemetry.shutdownPingSender.enabled", true); -// Enables sending the shutdown ping using the pingsender from the first session. -pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); -// Enables sending a duplicate of the first shutdown ping from the first session. -pref("toolkit.telemetry.firstShutdownPing.enabled", true); -// Enables sending the 'new-profile' ping on new profiles. -pref("toolkit.telemetry.newProfilePing.enabled", true); -// Enables sending 'update' pings on Firefox updates. -pref("toolkit.telemetry.updatePing.enabled", true); -// Enables sending 'bhr' pings when the browser hangs. -pref("toolkit.telemetry.bhrPing.enabled", true); - -// Ping Centre Telemetry settings. -pref("browser.ping-centre.telemetry", true); -pref("browser.ping-centre.log", false); - -// Enable GMP support in the addon manager. -pref("media.gmp-provider.enabled", true); - -// Enable Dynamic First-Party Isolation by default. -pref("network.cookie.cookieBehavior", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); - -// Whether to show the section in preferences which allows users to opt-in to -// Total Cookie Protection (dFPI) in standard mode. -pref("privacy.restrict3rdpartystorage.rollout.preferences.TCPToggleInStandard", false); - -// Target URL for the learn more link of the TCP in standard mode rollout section. -pref("privacy.restrict3rdpartystorage.rollout.preferences.learnMoreURLSuffix", "total-cookie-protection"); - -// Target URL for the learn more link of the TCP in standard mode section. -pref("privacy.restrict3rdpartystorage.preferences.learnMoreURLSuffix", "total-cookie-protection"); - -// Enable Dynamic First-Party Isolation in the private browsing mode. -pref("network.cookie.cookieBehavior.pbmode", 5 /* BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN */); - -// Enable fingerprinting blocking by default for all channels, only on desktop. -pref("privacy.trackingprotection.fingerprinting.enabled", true); - -// Enable cryptomining blocking by default for all channels, only on desktop. -pref("privacy.trackingprotection.cryptomining.enabled", true); - -pref("browser.contentblocking.database.enabled", true); - -pref("dom.storage_access.enabled", true); - -// Enable URL query stripping in Nightly. -#ifdef NIGHTLY_BUILD -pref("privacy.query_stripping.enabled", true); -#endif - -pref("browser.contentblocking.cryptomining.preferences.ui.enabled", true); -pref("browser.contentblocking.fingerprinting.preferences.ui.enabled", true); -// Enable cookieBehavior = BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN as an option in the custom category ui -pref("browser.contentblocking.reject-and-isolate-cookies.preferences.ui.enabled", true); - -// Possible values for browser.contentblocking.features.strict pref: -// Tracking Protection: -// "tp": tracking protection enabled -// "-tp": tracking protection disabled -// Tracking Protection in private windows: -// "tpPrivate": tracking protection in private windows enabled -// "-tpPrivate": tracking protection in private windows disabled -// Fingerprinting: -// "fp": fingerprinting blocking enabled -// "-fp": fingerprinting blocking disabled -// Cryptomining: -// "cm": cryptomining blocking enabled -// "-cm": cryptomining blocking disabled -// Social Tracking Protection: -// "stp": social tracking protection enabled -// "-stp": social tracking protection disabled -// Level 2 Tracking list: -// "lvl2": Level 2 tracking list enabled -// "-lvl2": Level 2 tracking list disabled -// Restrict relaxing default referrer policy: -// "rp": Restrict relaxing default referrer policy enabled -// "-rp": Restrict relaxing default referrer policy disabled -// Restrict relaxing default referrer policy for top navigation: -// "rpTop": Restrict relaxing default referrer policy enabled -// "-rpTop": Restrict relaxing default referrer policy disabled -// OCSP cache partitioning: -// "ocsp": OCSP cache partitioning enabled -// "-ocsp": OCSP cache partitioning disabled -// Query parameter stripping: -// "qps": Query parameter stripping enabled -// "-qps": Query parameter stripping disabled -// Query parameter stripping for private windows: -// "qpsPBM": Query parameter stripping enabled in private windows -// "-qpsPBM": Query parameter stripping disabled in private windows -// Cookie behavior: -// "cookieBehavior0": cookie behaviour BEHAVIOR_ACCEPT -// "cookieBehavior1": cookie behaviour BEHAVIOR_REJECT_FOREIGN -// "cookieBehavior2": cookie behaviour BEHAVIOR_REJECT -// "cookieBehavior3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN -// "cookieBehavior4": cookie behaviour BEHAVIOR_REJECT_TRACKER -// "cookieBehavior5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN -// Cookie behavior for private windows: -// "cookieBehaviorPBM0": cookie behaviour BEHAVIOR_ACCEPT -// "cookieBehaviorPBM1": cookie behaviour BEHAVIOR_REJECT_FOREIGN -// "cookieBehaviorPBM2": cookie behaviour BEHAVIOR_REJECT -// "cookieBehaviorPBM3": cookie behaviour BEHAVIOR_LIMIT_FOREIGN -// "cookieBehaviorPBM4": cookie behaviour BEHAVIOR_REJECT_TRACKER -// "cookieBehaviorPBM5": cookie behaviour BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN -// One value from each section must be included in the browser.contentblocking.features.strict pref. -pref("browser.contentblocking.features.strict", "tp,tpPrivate,cookieBehavior5,cookieBehaviorPBM5,cm,fp,stp,lvl2,rp,rpTop,ocsp,qps,qpsPBM"); - -// Hide the "Change Block List" link for trackers/tracking content in the custom -// Content Blocking/ETP panel. By default, it will not be visible. There is also -// an UI migration in place to set this pref to true if a user has a custom block -// lists enabled. -pref("browser.contentblocking.customBlockList.preferences.ui.enabled", false); - -pref("browser.contentblocking.reportBreakage.url", "https://tracking-protection-issues.herokuapp.com/new"); - -// Enable Protections report's Lockwise card by default. -pref("browser.contentblocking.report.lockwise.enabled", true); - -// Enable Protections report's Monitor card by default. -pref("browser.contentblocking.report.monitor.enabled", true); - -// Disable Protections report's Proxy card by default. -pref("browser.contentblocking.report.proxy.enabled", false); - -// Disable the mobile promotion by default. -pref("browser.contentblocking.report.show_mobile_app", true); - -// Locales in which Send to Device emails are supported -// The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963 -pref("browser.send_to_device_locales", "de,en-GB,en-US,es-AR,es-CL,es-ES,es-MX,fr,id,pl,pt-BR,ru,zh-TW"); - -// Avoid advertising in certain regions. Comma separated string of two letter ISO 3166-1 country codes. -// We're currently blocking all of Ukraine (ua), but would prefer to block just Crimea (ua-43). Currently, the Mozilla Location Service APIs used by Region.jsm only exposes the country, not the subdivision. -pref("browser.vpn_promo.disallowed_regions", "ae,by,cn,cu,iq,ir,kp,om,ru,sd,sy,tm,tr,ua"); - -// Default to enabling VPN promo messages to be shown when specified and allowed -pref("browser.vpn_promo.enabled", true); -// Only show vpn card to certain regions. Comma separated string of two letter ISO 3166-1 country codes. -// The most recent list of supported countries can be found at https://support.mozilla.org/en-US/kb/mozilla-vpn-countries-available-subscribe -// The full list of supported country codes can also be found at https://github.com/mozilla/bedrock/search?q=VPN_COUNTRY_CODES -pref("browser.contentblocking.report.vpn_regions", "as,at,be,ca,ch,de,es,fi,fr,gb,gg,ie,im,io,it,je,mp,my,nl,nz,pr,se,sg,uk,um,us,vg,vi" -); - -// Avoid advertising Focus in certain regions. Comma separated string of two letter -// ISO 3166-1 country codes. -pref("browser.promo.focus.disallowed_regions", "cn"); - -// Default to enabling focus promos to be shown where allowed. -pref("browser.promo.focus.enabled", true); - -// Default to enabling pin promos to be shown where allowed. -pref("browser.promo.pin.enabled", true); - -// Comma separated string of mozilla vpn supported platforms. -pref("browser.contentblocking.report.vpn_platforms", "win,mac,linux"); -pref("browser.contentblocking.report.hide_vpn_banner", false); -pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA"); - -pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections"); -pref("browser.contentblocking.report.monitor.how_it_works.url", "https://monitor.firefox.com/about"); -pref("browser.contentblocking.report.monitor.sign_in_url", "https://monitor.firefox.com/oauth/init?entrypoint=protection_report_monitor&utm_source=about-protections&email="); -pref("browser.contentblocking.report.monitor.preferences_url", "https://monitor.firefox.com/user/preferences"); -pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.firefox.com/user/dashboard"); -pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients"); -pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true"); -pref("browser.contentblocking.report.proxy_extension.url", "https://fpn.firefox.com/browser?utm_source=firefox-desktop&utm_medium=referral&utm_campaign=about-protections&utm_content=about-protections"); -pref("browser.contentblocking.report.mobile-ios.url", "https://apps.apple.com/app/firefox-private-safe-browser/id989804926"); -pref("browser.contentblocking.report.mobile-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox&referrer=utm_source%3Dprotection_report%26utm_content%3Dmobile_promotion"); -pref("browser.contentblocking.report.vpn.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-card"); -pref("browser.contentblocking.report.vpn-promo.url", "https://vpn.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=about-protections-top-promo"); -pref("browser.contentblocking.report.vpn-android.url", "https://play.google.com/store/apps/details?id=org.mozilla.firefox.vpn&referrer=utm_source%3Dfirefox-browser%26utm_medium%3Dfirefox-browser%26utm_campaign%3Dabout-protections-mobile-vpn%26anid%3D--"); -pref("browser.contentblocking.report.vpn-ios.url", "https://apps.apple.com/us/app/firefox-private-network-vpn/id1489407738"); - -// Protection Report's SUMO urls -pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report"); -pref("browser.contentblocking.report.social.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/social-media-tracking-report"); -pref("browser.contentblocking.report.cookie.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cross-site-tracking-report"); -pref("browser.contentblocking.report.tracker.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/tracking-content-report"); -pref("browser.contentblocking.report.fingerprinter.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/fingerprinters-report"); -pref("browser.contentblocking.report.cryptominer.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/cryptominers-report"); - -pref("browser.contentblocking.cfr-milestone.enabled", true); -pref("browser.contentblocking.cfr-milestone.milestone-achieved", 0); -// Milestones should always be in increasing order -pref("browser.contentblocking.cfr-milestone.milestones", "[1000, 5000, 10000, 25000, 50000, 100000, 250000, 314159, 500000, 750000, 1000000, 1250000, 1500000, 1750000, 2000000, 2250000, 2500000, 8675309]"); - -// Enables the new Protections Panel. -#ifdef NIGHTLY_BUILD - pref("browser.protections_panel.enabled", true); - pref("browser.protections_panel.infoMessage.seen", false); -#endif - -// Always enable newtab segregation using containers -pref("privacy.usercontext.about_newtab_segregation.enabled", true); -// Enable Contextual Identity Containers -#ifdef NIGHTLY_BUILD - pref("privacy.userContext.enabled", true); - pref("privacy.userContext.ui.enabled", true); -#else - pref("privacy.userContext.enabled", false); - pref("privacy.userContext.ui.enabled", false); -#endif -pref("privacy.userContext.extension", ""); -// allows user to open container menu on a left click instead of a new -// tab in the default container -pref("privacy.userContext.newTabContainerOnLeftClick.enabled", false); - -#if defined(NIGHTLY_BUILD) || defined(XP_WIN) || defined(XP_MACOSX) -// Set to true to allow the user to silence all notifications when -// sharing the screen. Only shipping on Windows and macOS out to -// release. Enabled for all desktop platforms on Nightly. -pref("privacy.webrtc.allowSilencingNotifications", true); -// Set to true to use the legacy WebRTC global indicator -pref("privacy.webrtc.legacyGlobalIndicator", false); -pref("privacy.webrtc.hideGlobalIndicator", false); -#else -pref("privacy.webrtc.allowSilencingNotifications", false); -pref("privacy.webrtc.legacyGlobalIndicator", true); -#endif - -// Set to true to add toggles to the WebRTC indicator for globally -// muting the camera and microphone. -pref("privacy.webrtc.globalMuteToggles", false); - -// Set to true to enable a warning displayed when attempting -// to switch tabs in a window that's being shared over WebRTC. -pref("privacy.webrtc.sharedTabWarning", false); - -// Defines a grace period after camera or microphone use ends, where permission -// is granted (even past navigation) to this tab + origin + device. This avoids -// re-prompting without the user having to persist permission to the site, in a -// common case of a web conference asking them for the camera in a lobby page, -// before navigating to the actual meeting room page. Doesn't survive tab close. -pref("privacy.webrtc.deviceGracePeriodTimeoutMs", 3600000); - -// Start the browser in e10s mode -pref("browser.tabs.remote.autostart", true); -pref("browser.tabs.remote.desktopbehavior", true); - -// Run media transport in a separate process? -pref("media.peerconnection.mtransport_process", true); - -// For speculatively warming up tabs to improve perceived -// performance while using the async tab switcher. -pref("browser.tabs.remote.warmup.enabled", true); - -// Caches tab layers to improve perceived performance -// of tab switches. -pref("browser.tabs.remote.tabCacheSize", 0); - -pref("browser.tabs.remote.warmup.maxTabs", 3); -pref("browser.tabs.remote.warmup.unloadDelayMs", 2000); - -// For the about:tabcrashed page -pref("browser.tabs.crashReporting.sendReport", true); -pref("browser.tabs.crashReporting.includeURL", false); - -// If true, unprivileged extensions may use experimental APIs on -// nightly and developer edition. -pref("extensions.experiments.enabled", false); - -#if defined(XP_LINUX) || defined(XP_WIN) - // Allows us to adjust the priority of child processes at the OS level - pref("dom.ipc.processPriorityManager.enabled", true); -#endif - -// Don't limit how many nodes we care about on desktop: -pref("reader.parse-node-limit", 0); - -// On desktop, we want the URLs to be included here for ease of debugging, -// and because (normally) these errors are not persisted anywhere. -pref("reader.errors.includeURLs", true); - -// What version of Pocket CTA to show in Reader Mode (Empty string is no CTA) -pref("reader.pocket.ctaVersion", ""); - -pref("view_source.tab", true); - -pref("dom.serviceWorkers.enabled", true); - -// Enable Push API. -pref("dom.push.enabled", true); - -// These are the thumbnail width/height set in about:newtab. -// If you change this, ENSURE IT IS THE SAME SIZE SET -// by about:newtab. These values are in CSS pixels. -pref("toolkit.pageThumbs.minWidth", 280); -pref("toolkit.pageThumbs.minHeight", 190); - -// Enable speech synthesis -pref("media.webspeech.synth.enabled", true); - -pref("browser.esedbreader.loglevel", "Error"); - -pref("browser.laterrun.enabled", false); - -#ifdef FUZZING_SNAPSHOT -pref("dom.ipc.processPrelaunch.enabled", false); -#else -pref("dom.ipc.processPrelaunch.enabled", true); -#endif - -pref("browser.migrate.brave.enabled", true); -pref("browser.migrate.canary.enabled", true); - -pref("browser.migrate.chrome.enabled", true); -// See comments in bug 1340115 on how we got to these numbers. -pref("browser.migrate.chrome.history.limit", 2000); -pref("browser.migrate.chrome.history.maxAgeInDays", 180); - -pref("browser.migrate.chrome-beta.enabled", true); -pref("browser.migrate.chrome-dev.enabled", true); -pref("browser.migrate.chromium.enabled", true); -pref("browser.migrate.chromium-360se.enabled", true); -pref("browser.migrate.chromium-edge.enabled", true); -pref("browser.migrate.chromium-edge-beta.enabled", true); -pref("browser.migrate.edge.enabled", true); -pref("browser.migrate.firefox.enabled", true); -pref("browser.migrate.ie.enabled", true); -pref("browser.migrate.safari.enabled", true); - -pref("browser.migrate.showBookmarksToolbarAfterMigration", true); - -pref("extensions.pocket.api", "api.getpocket.com"); -pref("extensions.pocket.enabled", true); -pref("extensions.pocket.oAuthConsumerKey", "40249-e88c401e1b1f2242d9e441c4"); -pref("extensions.pocket.site", "getpocket.com"); -pref("extensions.pocket.onSaveRecs", true); -pref("extensions.pocket.onSaveRecs.locales", "en-US,en-GB,en-CA"); - -// Enable Pocket button home panel for non link pages. -pref("extensions.pocket.showHome", true); - -// Control what version of the logged out doorhanger is displayed -// Possibilities are: `control`, `control-one-button`, `variant_a`, `variant_b`, `variant_c` -pref("extensions.pocket.loggedOutVariant", "control"); - -// Just for the new Pocket panels, enables the email signup button. -pref("extensions.pocket.refresh.emailButton.enabled", false); -// Hides the recently saved section in the home panel. -pref("extensions.pocket.refresh.hideRecentSaves.enabled", false); - -pref("signon.management.page.fileImport.enabled", false); - -#ifdef NIGHTLY_BUILD -pref("signon.management.page.os-auth.enabled", true); -#else -pref("signon.management.page.os-auth.enabled", false); -#endif -pref("signon.management.page.breach-alerts.enabled", true); -pref("signon.management.page.vulnerable-passwords.enabled", true); -pref("signon.management.page.sort", "name"); -// The utm_creative value is appended within the code (specific to the location on -// where it is clicked). Be sure that if these two prefs are updated, that -// the utm_creative param be last. -pref("signon.management.page.breachAlertUrl", - "https://monitor.firefox.com/breach-details/"); -pref("signon.passwordEditCapture.enabled", true); -pref("signon.relatedRealms.enabled", false); -pref("signon.showAutoCompleteFooter", true); -pref("signon.showAutoCompleteImport", "import"); -pref("signon.suggestImportCount", 3); - -// Enable the "Simplify Page" feature in Print Preview. This feature -// is disabled by default in toolkit. -pref("print.use_simplify_page", true); - -// Space separated list of URLS that are allowed to send objects (instead of -// only strings) through webchannels. This list is duplicated in mobile/android/app/mobile.js -pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://support.mozilla.org https://install.mozilla.org"); - -// Whether or not the browser should scan for unsubmitted -// crash reports, and then show a notification for submitting -// those reports. -#ifdef NIGHTLY_BUILD - pref("browser.crashReports.unsubmittedCheck.enabled", true); -#else - pref("browser.crashReports.unsubmittedCheck.enabled", false); -#endif - -// chancesUntilSuppress is how many times we'll show the unsubmitted -// crash report notification across different days and shutdown -// without a user choice before we suppress the notification for -// some number of days. -pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4); -pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); - -// Preferences for the form autofill toolkit component. -// Checkbox in sync options for credit card data sync service -pref("services.sync.engine.creditcards.available", true); -// Whether the user enabled the OS re-auth dialog. -pref("extensions.formautofill.reauth.enabled", false); - -// Whether or not to restore a session with lazy-browser tabs. -pref("browser.sessionstore.restore_tabs_lazily", true); - -pref("browser.suppress_first_window_animation", true); - -// Preference that allows individual users to disable Screenshots. -pref("extensions.screenshots.disabled", false); - -// Preference that determines whether Screenshots is opened as a dedicated browser component -pref("screenshots.browser.component.enabled", false); - -// DoH Rollout: whether to clear the mode value at shutdown. -pref("doh-rollout.clearModeOnShutdown", false); - -// URL for Learn More link for browser error logging in preferences -pref("browser.chrome.errorReporter.infoURL", - "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/nightly-error-collection"); - -// Normandy client preferences -pref("app.normandy.api_url", "https://normandy.cdn.mozilla.net/api/v1"); -pref("app.normandy.dev_mode", false); -pref("app.normandy.enabled", true); -pref("app.normandy.first_run", true); -pref("app.normandy.logging.level", 50); // Warn -pref("app.normandy.run_interval_seconds", 21600); // 6 hours -pref("app.normandy.shieldLearnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/shield"); -pref("app.normandy.last_seen_buildid", ""); -pref("app.normandy.onsync_skew_sec", 600); -#ifdef MOZ_DATA_REPORTING - pref("app.shield.optoutstudies.enabled", true); -#else - pref("app.shield.optoutstudies.enabled", false); -#endif - -// Multi-lingual preferences: -// *.enabled - Are langpacks available for the build of Firefox? -// *.downloadEnabled - Langpacks are allowed to be downloaded from AMO. AMO only serves -// langpacks for release and beta. Unsupported releases (like Nightly) can be -// manually tested with the following preference: -// extensions.getAddons.langpacks.url: https://mock-amo-language-tools.glitch.me/?app=firefox&type=language&appversion=%VERSION% -// *.liveReload - Switching a langpack will change the language without a restart. -// *.liveReloadBidirectional - Allows switching when moving between LTR and RTL -// languages without a full restart. -// *.aboutWelcome.languageMismatchEnabled - Enables an onboarding menu in about:welcome -// to allow a user to change their language when there is a language mismatch between -// the app and browser. -#if defined(RELEASE_OR_BETA) && !defined(MOZ_DEV_EDITION) - pref("intl.multilingual.enabled", true); - pref("intl.multilingual.downloadEnabled", true); - pref("intl.multilingual.liveReload", true); - pref("intl.multilingual.liveReloadBidirectional", false); - pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", true); -#else - pref("intl.multilingual.enabled", false); - pref("intl.multilingual.downloadEnabled", false); - pref("intl.multilingual.liveReload", false); - pref("intl.multilingual.liveReloadBidirectional", false); - pref("intl.multilingual.aboutWelcome.languageMismatchEnabled", false); -#endif - -// Coverage ping is disabled by default. -pref("toolkit.coverage.enabled", false); -pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org"); - -// Discovery prefs -pref("browser.discovery.enabled", true); -pref("browser.discovery.containers.enabled", true); -pref("browser.discovery.sites", "addons.mozilla.org"); - -pref("browser.engagement.recent_visited_origins.expiry", 86400); // 24 * 60 * 60 (24 hours in seconds) -pref("browser.engagement.downloads-button.has-used", false); -pref("browser.engagement.fxa-toolbar-menu-button.has-used", false); -pref("browser.engagement.home-button.has-used", false); -pref("browser.engagement.sidebar-button.has-used", false); -pref("browser.engagement.library-button.has-used", false); -pref("browser.engagement.ctrlTab.has-used", false); - -pref("browser.aboutConfig.showWarning", true); - -pref("browser.toolbars.keyboard_navigation", true); - -// The visibility of the bookmarks toolbar. -// "newtab": Show on the New Tab Page -// "always": Always show -// "never": Never show -pref("browser.toolbars.bookmarks.visibility", "newtab"); - -// Visibility of the "Show Other Bookmarks" menuitem in the -// bookmarks toolbar contextmenu. -pref("browser.toolbars.bookmarks.showOtherBookmarks", true); - -// Prefs to control the Firefox Account toolbar menu. -// This pref will surface existing Firefox Account information -// as a button next to the hamburger menu. It allows -// quick access to sign-in and manage your Firefox Account. -pref("identity.fxaccounts.toolbar.enabled", true); -pref("identity.fxaccounts.toolbar.accessed", false); - -// Prefs for different services supported by Firefox Account -pref("identity.fxaccounts.service.monitorLoginUrl", "https://monitor.firefox.com/"); - -// Check bundled omni JARs for corruption. -pref("corroborator.enabled", true); - -// Toolbox preferences -pref("devtools.toolbox.footer.height", 250); -pref("devtools.toolbox.sidebar.width", 500); -pref("devtools.toolbox.host", "bottom"); -pref("devtools.toolbox.previousHost", "right"); -pref("devtools.toolbox.selectedTool", "inspector"); -pref("devtools.toolbox.zoomValue", "1"); -pref("devtools.toolbox.splitconsoleEnabled", false); -pref("devtools.toolbox.splitconsoleHeight", 100); -pref("devtools.toolbox.tabsOrder", ""); -// This is only used for local Web Extension debugging, -// and allows to keep the window on top of all others, -// so that you can debug the Firefox window, while keeping the devtools -// always visible -pref("devtools.toolbox.alwaysOnTop", true); - -// The fission pref for enabling the "Multiprocess Browser Toolbox", which will -// make it possible to debug anything in Firefox (See Bug 1570639 for more information). -pref("devtools.browsertoolbox.fission", true); - -// When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it: -// - "everything" will enable debugging absolutely everything in the browser -// All processes, all documents, all workers, all add-ons. -// - "parent-process" will restrict debugging to the parent process -// All privileged javascript, documents and workers running in the parent process. -pref("devtools.browsertoolbox.scope", "parent-process"); - -// This preference will enable watching top-level targets from the server side. -pref("devtools.target-switching.server.enabled", true); - -// In DevTools, create a target for each frame (i.e. not only for top-level document and -// remote frames). -pref("devtools.every-frame-target.enabled", true); - -// Controls the hability to debug popups from the same DevTools -// of the original tab the popups are coming from -pref("devtools.popups.debug", false); - -// Toolbox Button preferences -pref("devtools.command-button-pick.enabled", true); -pref("devtools.command-button-frames.enabled", true); -pref("devtools.command-button-splitconsole.enabled", true); -pref("devtools.command-button-responsive.enabled", true); -pref("devtools.command-button-screenshot.enabled", false); -pref("devtools.command-button-rulers.enabled", false); -pref("devtools.command-button-measure.enabled", false); -pref("devtools.command-button-noautohide.enabled", false); -pref("devtools.command-button-errorcount.enabled", true); -#ifndef MOZILLA_OFFICIAL - pref("devtools.command-button-experimental-prefs.enabled", true); -#endif - -// Inspector preferences -// Enable the Inspector -pref("devtools.inspector.enabled", true); -// What was the last active sidebar in the inspector -pref("devtools.inspector.selectedSidebar", "layoutview"); -pref("devtools.inspector.activeSidebar", "layoutview"); -pref("devtools.inspector.remote", false); - -// Enable the 3 pane mode in the inspector -pref("devtools.inspector.three-pane-enabled", true); -// Enable the 3 pane mode in the chrome inspector -pref("devtools.inspector.chrome.three-pane-enabled", false); -// Collapse pseudo-elements by default in the rule-view -pref("devtools.inspector.show_pseudo_elements", false); -// The default size for image preview tooltips in the rule-view/computed-view/markup-view -pref("devtools.inspector.imagePreviewTooltipSize", 300); -// Enable user agent style inspection in rule-view -pref("devtools.inspector.showUserAgentStyles", false); -// Show native anonymous content and user agent shadow roots -pref("devtools.inspector.showAllAnonymousContent", false); -// Enable the inline CSS compatiblity warning in inspector rule view -pref("devtools.inspector.ruleview.inline-compatibility-warning.enabled", false); -// Enable the compatibility tool in the inspector. -pref("devtools.inspector.compatibility.enabled", true); -// Enable overflow debugging in the inspector. -pref("devtools.overflow.debugging.enabled", true); -// Enable drag to edit properties in the inspector rule view. -pref("devtools.inspector.draggable_properties", true); - -// Grid highlighter preferences -pref("devtools.gridinspector.gridOutlineMaxColumns", 50); -pref("devtools.gridinspector.gridOutlineMaxRows", 50); -pref("devtools.gridinspector.showGridAreas", false); -pref("devtools.gridinspector.showGridLineNumbers", false); -pref("devtools.gridinspector.showInfiniteLines", false); -// Max number of grid highlighters that can be displayed -pref("devtools.gridinspector.maxHighlighters", 3); - -// Whether or not the box model panel is opened in the layout view -pref("devtools.layout.boxmodel.opened", true); -// Whether or not the flexbox panel is opened in the layout view -pref("devtools.layout.flexbox.opened", true); -// Whether or not the flexbox container panel is opened in the layout view -pref("devtools.layout.flex-container.opened", true); -// Whether or not the flexbox item panel is opened in the layout view -pref("devtools.layout.flex-item.opened", true); -// Whether or not the grid inspector panel is opened in the layout view -pref("devtools.layout.grid.opened", true); - -// Enable hovering Box Model values and jumping to their source CSS rule in the -// rule-view. -#if defined(NIGHTLY_BUILD) - pref("devtools.layout.boxmodel.highlightProperty", true); -#else - pref("devtools.layout.boxmodel.highlightProperty", false); -#endif - -// By how many times eyedropper will magnify pixels -pref("devtools.eyedropper.zoom", 6); - -// Enable to collapse attributes that are too long. -pref("devtools.markup.collapseAttributes", true); -// Length to collapse attributes -pref("devtools.markup.collapseAttributeLength", 120); -// Whether to auto-beautify the HTML on copy. -pref("devtools.markup.beautifyOnCopy", false); -// Whether or not the DOM mutation breakpoints context menu are enabled in the -// markup view. -pref("devtools.markup.mutationBreakpoints.enabled", true); - -// DevTools default color unit -pref("devtools.defaultColorUnit", "authored"); - -// Enable the Memory tools -pref("devtools.memory.enabled", true); - -pref("devtools.memory.custom-census-displays", "{}"); -pref("devtools.memory.custom-label-displays", "{}"); -pref("devtools.memory.custom-tree-map-displays", "{}"); - -pref("devtools.memory.max-individuals", 1000); -pref("devtools.memory.max-retaining-paths", 10); - -// Enable the Performance tools -pref("devtools.performance.enabled", true); - -// The default cache UI setting -pref("devtools.cache.disabled", false); - -// The default service workers UI setting -pref("devtools.serviceWorkers.testing.enabled", false); - -// Enable the Network Monitor -pref("devtools.netmonitor.enabled", true); - -pref("devtools.netmonitor.features.search", true); -pref("devtools.netmonitor.features.requestBlocking", true); - -// Enable the Application panel -pref("devtools.application.enabled", true); - -// Enable the custom formatters feature -// TODO remove once the custom formatters feature is stable (see bug 1734614) -pref("devtools.custom-formatters", false); -// This preference represents the user's choice to enable the custom formatters feature. -// While the preference above will be removed once the feature is stable, this one is menat to stay. -pref("devtools.custom-formatters.enabled", false); - -// The default Network Monitor UI settings -pref("devtools.netmonitor.panes-network-details-width", 550); -pref("devtools.netmonitor.panes-network-details-height", 450); -pref("devtools.netmonitor.panes-search-width", 550); -pref("devtools.netmonitor.panes-search-height", 450); -pref("devtools.netmonitor.filters", "[\"all\"]"); -pref("devtools.netmonitor.visibleColumns", - "[\"status\",\"method\",\"domain\",\"file\",\"initiator\",\"type\",\"transferred\",\"contentSize\",\"waterfall\"]" -); -pref("devtools.netmonitor.columnsData", - '[{"name":"status","minWidth":30,"width":5}, {"name":"method","minWidth":30,"width":5}, {"name":"domain","minWidth":30,"width":10}, {"name":"file","minWidth":30,"width":25}, {"name":"url","minWidth":30,"width":25},{"name":"initiator","minWidth":30,"width":10},{"name":"type","minWidth":30,"width":5},{"name":"transferred","minWidth":30,"width":10},{"name":"contentSize","minWidth":30,"width":5},{"name":"waterfall","minWidth":150,"width":15}]'); -pref("devtools.netmonitor.msg.payload-preview-height", 128); -pref("devtools.netmonitor.msg.visibleColumns", - '["data", "time"]' -); -pref("devtools.netmonitor.msg.displayed-messages.limit", 500); - -pref("devtools.netmonitor.response.ui.limit", 10240); - -// Save request/response bodies yes/no. -pref("devtools.netmonitor.saveRequestAndResponseBodies", true); - -// The default Network monitor HAR export setting -pref("devtools.netmonitor.har.defaultLogDir", ""); -pref("devtools.netmonitor.har.defaultFileName", "%hostname_Archive [%date]"); -pref("devtools.netmonitor.har.jsonp", false); -pref("devtools.netmonitor.har.jsonpCallback", ""); -pref("devtools.netmonitor.har.includeResponseBodies", true); -pref("devtools.netmonitor.har.compress", false); -pref("devtools.netmonitor.har.forceExport", false); -pref("devtools.netmonitor.har.pageLoadedTimeout", 1500); -pref("devtools.netmonitor.har.enableAutoExportToFile", false); - -// netmonitor audit -pref("devtools.netmonitor.audits.slow", 500); - -// Enable the new Edit and Resend panel - pref("devtools.netmonitor.features.newEditAndResend", true); - -pref("devtools.netmonitor.customRequest", '{}'); - -// Enable the Storage Inspector -pref("devtools.storage.enabled", true); - -// Enable the Style Editor. -pref("devtools.styleeditor.enabled", true); -pref("devtools.styleeditor.autocompletion-enabled", true); -pref("devtools.styleeditor.showMediaSidebar", true); -pref("devtools.styleeditor.mediaSidebarWidth", 238); -pref("devtools.styleeditor.navSidebarWidth", 245); -pref("devtools.styleeditor.transitions", true); - -// Screenshot Option Settings. -pref("devtools.screenshot.clipboard.enabled", false); -pref("devtools.screenshot.audio.enabled", true); - -// Make sure the DOM panel is hidden by default -pref("devtools.dom.enabled", false); - -// Enable the Accessibility panel. -pref("devtools.accessibility.enabled", true); - -// Web console filters -pref("devtools.webconsole.filter.error", true); -pref("devtools.webconsole.filter.warn", true); -pref("devtools.webconsole.filter.info", true); -pref("devtools.webconsole.filter.log", true); -pref("devtools.webconsole.filter.debug", true); -pref("devtools.webconsole.filter.css", false); -pref("devtools.webconsole.filter.net", false); -pref("devtools.webconsole.filter.netxhr", false); - -// Webconsole autocomplete preference -pref("devtools.webconsole.input.autocomplete",true); - -// Show context selector in console input -pref("devtools.webconsole.input.context", true); - -// Set to true to eagerly show the results of webconsole terminal evaluations -// when they don't have side effects. -pref("devtools.webconsole.input.eagerEvaluation", true); - -// Browser console filters -pref("devtools.browserconsole.filter.error", true); -pref("devtools.browserconsole.filter.warn", true); -pref("devtools.browserconsole.filter.info", true); -pref("devtools.browserconsole.filter.log", true); -pref("devtools.browserconsole.filter.debug", true); -pref("devtools.browserconsole.filter.css", false); -pref("devtools.browserconsole.filter.net", false); -pref("devtools.browserconsole.filter.netxhr", false); - -// Max number of inputs to store in web console history. -pref("devtools.webconsole.inputHistoryCount", 300); - -// Persistent logging: |true| if you want the relevant tool to keep all of the -// logged messages after reloading the page, |false| if you want the output to -// be cleared each time page navigation happens. -pref("devtools.webconsole.persistlog", false); -pref("devtools.netmonitor.persistlog", false); - -// Web Console timestamp: |true| if you want the logs and instructions -// in the Web Console to display a timestamp, or |false| to not display -// any timestamps. -pref("devtools.webconsole.timestampMessages", false); - -// Enable the webconsole sidebar toggle in Nightly builds. -#if defined(NIGHTLY_BUILD) - pref("devtools.webconsole.sidebarToggle", true); -#else - pref("devtools.webconsole.sidebarToggle", false); -#endif - -// Saved editor mode state in the console. -pref("devtools.webconsole.input.editor", false); -pref("devtools.browserconsole.input.editor", false); - -// Editor width for webconsole and browserconsole. -pref("devtools.webconsole.input.editorWidth", 0); -pref("devtools.browserconsole.input.editorWidth", 0); - -// Display an onboarding UI for the Editor mode. -pref("devtools.webconsole.input.editorOnboarding", true); - -// Enable message grouping in the console, true by default -pref("devtools.webconsole.groupWarningMessages", true); - -// Saved state of the Display content messages checkbox in the browser console. -pref("devtools.browserconsole.contentMessages", false); - -// Enable network monitoring the browser toolbox console/browser console. -pref("devtools.browserconsole.enableNetworkMonitoring", false); - -// Enable client-side mapping service for source maps -pref("devtools.source-map.client-service.enabled", true); - -// The number of lines that are displayed in the web console. -pref("devtools.hud.loglimit", 10000); - -// The developer tools editor configuration: -// - tabsize: how many spaces to use when a Tab character is displayed. -// - expandtab: expand Tab characters to spaces. -// - keymap: which keymap to use (can be 'default', 'emacs' or 'vim') -// - autoclosebrackets: whether to permit automatic bracket/quote closing. -// - detectindentation: whether to detect the indentation from the file -// - enableCodeFolding: Whether to enable code folding or not. -pref("devtools.editor.tabsize", 2); -pref("devtools.editor.expandtab", true); -pref("devtools.editor.keymap", "default"); -pref("devtools.editor.autoclosebrackets", true); -pref("devtools.editor.detectindentation", true); -pref("devtools.editor.enableCodeFolding", true); -pref("devtools.editor.autocomplete", true); - -// The angle of the viewport. -pref("devtools.responsive.viewport.angle", 0); -// The width of the viewport. -pref("devtools.responsive.viewport.width", 320); -// The height of the viewport. -pref("devtools.responsive.viewport.height", 480); -// The pixel ratio of the viewport. -pref("devtools.responsive.viewport.pixelRatio", 0); -// Whether or not the viewports are left aligned. -pref("devtools.responsive.leftAlignViewport.enabled", false); -// Whether to reload when touch simulation is toggled -pref("devtools.responsive.reloadConditions.touchSimulation", false); -// Whether to reload when user agent is changed -pref("devtools.responsive.reloadConditions.userAgent", false); -// Whether to show the notification about reloading to apply emulation -pref("devtools.responsive.reloadNotification.enabled", true); -// Whether or not touch simulation is enabled. -pref("devtools.responsive.touchSimulation.enabled", false); -// The user agent of the viewport. -pref("devtools.responsive.userAgent", ""); -// Show the custom user agent input by default -pref("devtools.responsive.showUserAgentInput", true); - -// Show tab debug targets for This Firefox (on by default for local builds). -#ifdef MOZILLA_OFFICIAL - pref("devtools.aboutdebugging.local-tab-debugging", false); -#else - pref("devtools.aboutdebugging.local-tab-debugging", true); -#endif - -// Show process debug targets. -pref("devtools.aboutdebugging.process-debugging", true); -// Stringified array of network locations that users can connect to. -pref("devtools.aboutdebugging.network-locations", "[]"); -// Debug target pane collapse/expand settings. -pref("devtools.aboutdebugging.collapsibilities.installedExtension", false); -pref("devtools.aboutdebugging.collapsibilities.otherWorker", false); -pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false); -pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false); -pref("devtools.aboutdebugging.collapsibilities.tab", false); -pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false); - -// about:debugging: only show system and hidden extensions in local builds by -// default. -#ifdef MOZILLA_OFFICIAL - pref("devtools.aboutdebugging.showHiddenAddons", false); -#else - pref("devtools.aboutdebugging.showHiddenAddons", true); -#endif - -// Map top-level await expressions in the console -pref("devtools.debugger.features.map-await-expression", true); - -// This relies on javascript.options.asyncstack as well or it has no effect. -pref("devtools.debugger.features.async-captured-stacks", true); -pref("devtools.debugger.features.async-live-stacks", false); - -// Disable autohide for DevTools popups and tooltips. -// This is currently not exposed by any UI to avoid making -// about:devtools-toolbox tabs unusable by mistake. -pref("devtools.popup.disable_autohide", false); - -// FirstStartup service time-out in ms -pref("first-startup.timeout", 30000); - -// Enable the default browser agent. -// The agent still runs as scheduled if this pref is disabled, -// but it exits immediately before taking any action. -#ifdef XP_WIN - pref("default-browser-agent.enabled", true); -#endif - -// Test Prefs that do nothing for testing -#if defined(EARLY_BETA_OR_EARLIER) - pref("app.normandy.test-prefs.bool", false); - pref("app.normandy.test-prefs.integer", 0); - pref("app.normandy.test-prefs.string", ""); -#endif - -// Shows 'View Image Info' item in the image context menu -#ifdef MOZ_DEV_EDITION - pref("browser.menu.showViewImageInfo", true); -#else - pref("browser.menu.showViewImageInfo", false); -#endif - -// Mozilla-controlled domains that are allowed to use non-standard -// context properties for SVG images for use in the browser UI. Please -// keep this list short. This preference (and SVG `context-` keyword support) -// are expected to go away once a standardized alternative becomes -// available. -pref("svg.context-properties.content.allowed-domains", "profile.accounts.firefox.com,profile.stage.mozaws.net"); - -// Preference that allows individual users to disable Firefox Translations. -#ifdef NIGHTLY_BUILD - pref("extensions.translations.disabled", true); -#endif - -// A set of scores for rating the relevancy of snapshots. The suffixes after the -// last decimal are prefixed by `_score` and reference the functions called in -// SnapshotScorer. -pref("browser.snapshots.score.Visit", 1); -pref("browser.snapshots.score.CurrentSession", 1); -pref("browser.snapshots.score.IsUserPersisted", 1); -pref("browser.snapshots.score.IsUserRemoved", -10); - -// A set of weights for the snapshot recommendation sources. The suffixes after -// the last decimal map to the keys of `Snapshots.recommendationSources`. -pref("browser.snapshots.source.CommonReferrer", 3); -pref("browser.snapshots.source.Overlapping", 3); -pref("browser.snapshots.source.TimeOfDay", 3); - -// Other preferences affecting snapshots scoring. -pref("browser.snapshots.relevancy.timeOfDayIntervalSeconds", 3600); - -// Expiration days for snapshots. -pref("browser.places.snapshots.expiration.days", 210); -// For user managed snapshots we use more than a year, to support yearly tasks. -pref("browser.places.snapshots.expiration.userManaged.days", 420); - -// If the user has seen the Firefox View feature tour this value reflects -// the id of the last screen they saw and whether they completed the tour -pref("browser.firefox-view.feature-tour", "{\"screen\":\"FIREFOX_VIEW_SPOTLIGHT\",\"complete\":false}"); -// Number of times the user visited about:firefoxview -pref("browser.firefox-view.view-count", 0); - -// If the user has seen the pdf.js feature tour this value reflects the tour -// message id, the id of the last screen they saw, and whether they completed the tour -pref("browser.pdfjs.feature-tour", "{\"message\":\"PDF_JS_FEATURE_TOUR\",\"screen\":\"\",\"complete\":false}"); - -// Enables cookie banner handling in Nightly in Private Browsing Mode. See -// StaticPrefList.yaml for a description of the prefs. -#ifdef NIGHTLY_BUILD - pref("cookiebanners.service.mode.privateBrowsing", 1); - pref("cookiebanners.bannerClicking.enabled", true); -#endif - -// We only want to enable this pref for Desktop nightlies. -#ifdef NIGHTLY_BUILD - pref("dom.sitepermsaddon-provider.enabled", true); -#endif From bfc03d20be40bedda0561deb16a4a978890cc1af Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sat, 28 Jan 2023 22:48:51 -0800 Subject: [PATCH 04/29] modify open-in-default-browser script --- buildDatcordWin.sh | 3 +-- open-in-default-browser/open-in-default-browser | 12 ++++++++++++ src/changed/mozconfig | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 src/changed/mozconfig diff --git a/buildDatcordWin.sh b/buildDatcordWin.sh index e18e55588d..e879c1a050 100644 --- a/buildDatcordWin.sh +++ b/buildDatcordWin.sh @@ -11,8 +11,7 @@ cp -rf mozilla-unified/browser/branding/unofficial/* mozilla-unified/browser/bra cd mozilla-unified echo "ac_add_options --disable-default-browser-agent" >> mozconfig echo "ac_add_options --enable-release" >> mozconfig -# Doesn't work properly if app name is datcord. -echo "ac_add_options --with-app-name=firefox" >> mozconfig +echo "ac_add_options --with-app-name=datcord" >> mozconfig echo "ac_add_options --with-branding=browser/branding/unofficial" >> mozconfig cat mozconfig patch -p1 $basedir/mozilla_dirsFromLibreWolf.patch diff --git a/open-in-default-browser/open-in-default-browser b/open-in-default-browser/open-in-default-browser index c24724934b..1d68b3e16e 100755 --- a/open-in-default-browser/open-in-default-browser +++ b/open-in-default-browser/open-in-default-browser @@ -1,4 +1,16 @@ #!/usr/bin/env bash #If you want to use a specific browser, change this to the executable of that. xdg-open opens in your default browser. browser="xdg-open" + +# Firefox specific stuff because firefox doesnt like the different profiles that datcord and itself use +if [ $(xdg-mime query default x-scheme-handler/https) == "firefox.desktop" ]; then + cd ~/.mozilla/firefox/ + if [[ $(grep '\[Profile[^0]\]' profiles.ini) ]] + then PROFPATH=$(grep -E '^\[Profile|^Path|^Default' profiles.ini | grep -1 '^Default=1' | grep '^Path' | cut -c6-) + else PROFPATH=$(grep 'Path=' profiles.ini | sed 's/^Path=//') + fi + + browser="firefox -P $PROFPATH" +fi + $browser $(echo $1 | sed "s/open\://g") \ No newline at end of file diff --git a/src/changed/mozconfig b/src/changed/mozconfig new file mode 100644 index 0000000000..dd4829019f --- /dev/null +++ b/src/changed/mozconfig @@ -0,0 +1 @@ +ac_add_options --with-app-name=datcord \ No newline at end of file From e053fbfb855fbc866d6da350c24eee28a31a4e29 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sat, 28 Jan 2023 22:52:56 -0800 Subject: [PATCH 05/29] Update build-linux-x86_64.yml --- .github/workflows/build-linux-x86_64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-linux-x86_64.yml b/.github/workflows/build-linux-x86_64.yml index bd7c333d74..a1628f4f99 100644 --- a/.github/workflows/build-linux-x86_64.yml +++ b/.github/workflows/build-linux-x86_64.yml @@ -53,8 +53,8 @@ jobs: run: | mkdir datcord tar --strip-components=1 -xvf mozilla-unified/obj-x86_64-pc-linux-gnu/dist/*.tar.bz2 -C datcord/ - mv datcord/firefox datcord/datcord - mv datcord/firefox-bin datcord/datcord-bin + #mv datcord/firefox datcord/datcord + #mv datcord/firefox-bin datcord/datcord-bin cp -r distribution/ datcord/ mv datcord/distribution/policies-linux.json datcord/distribution/policies.json cp open-in-default-browser/open-in-default-browser datcord/open-in-default-browser From ed239c087113f91e74f7969855fbd67803145639 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sun, 29 Jan 2023 14:32:11 -0800 Subject: [PATCH 06/29] Update build-linux-x86_64.yml --- .github/workflows/build-linux-x86_64.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-linux-x86_64.yml b/.github/workflows/build-linux-x86_64.yml index a1628f4f99..fb6f5d06d6 100644 --- a/.github/workflows/build-linux-x86_64.yml +++ b/.github/workflows/build-linux-x86_64.yml @@ -66,8 +66,8 @@ jobs: chmod a+x appimagetool-x86_64.AppImage mkdir -p datcord.AppImage/usr/bin/ tar --strip-components=1 -xvf mozilla-unified/obj-x86_64-pc-linux-gnu/dist/*.tar.bz2 -C datcord.AppImage/usr/bin/ - mv datcord.AppImage/usr/bin/firefox datcord.AppImage/usr/bin/datcord - mv datcord.AppImage/usr/bin/firefox-bin datcord.AppImage/usr/bin/datcord-bin + #mv datcord.AppImage/usr/bin/firefox datcord.AppImage/usr/bin/datcord + #mv datcord.AppImage/usr/bin/firefox-bin datcord.AppImage/usr/bin/datcord-bin cp -r distribution/ datcord.AppImage/usr/bin/ mv datcord.AppImage/usr/bin/distribution/policies-linux-appimage.json datcord.AppImage/usr/bin/distribution/policies.json cp open-in-default-browser/open-in-default-browser datcord.AppImage/usr/bin/ From 17510f671fd6ff0f23b97a8c7d443a8d9b945bde Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Sun, 29 Jan 2023 14:32:26 -0800 Subject: [PATCH 07/29] Update buildDatcordWin.sh --- buildDatcordWin.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildDatcordWin.sh b/buildDatcordWin.sh index e879c1a050..6d85cdfb7e 100644 --- a/buildDatcordWin.sh +++ b/buildDatcordWin.sh @@ -11,7 +11,7 @@ cp -rf mozilla-unified/browser/branding/unofficial/* mozilla-unified/browser/bra cd mozilla-unified echo "ac_add_options --disable-default-browser-agent" >> mozconfig echo "ac_add_options --enable-release" >> mozconfig -echo "ac_add_options --with-app-name=datcord" >> mozconfig +echo "ac_add_options --with-app-name=firefox" >> mozconfig echo "ac_add_options --with-branding=browser/branding/unofficial" >> mozconfig cat mozconfig patch -p1 $basedir/mozilla_dirsFromLibreWolf.patch From d5f68e3f24b12ecc94f6fdf14b2f7484f03e3912 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Tue, 31 Jan 2023 18:00:14 -0800 Subject: [PATCH 08/29] fix #22, give datcord its own profile dir --- buildDatcord.sh | 2 +- mozilla_dirsFromLibreWolf.patch | 32 ++++-------------- .../open-in-default-browser | 11 ------ .../branding/{unofficial => datcord}/LICENSE | 0 .../VisualElements_150.png | Bin .../VisualElements_70.png | Bin .../{unofficial => datcord}/background.png | Bin .../{unofficial => datcord}/branding.nsi | 0 .../browser/branding/datcord/configure.sh | 10 ++++++ .../content/about-logo.png | Bin .../content/about-logo.svg | 0 .../content/about-logo@2x.png | Bin .../content/about-wordmark.svg | 0 .../{unofficial => datcord}/content/about.png | Bin .../content/aboutDialog.css | 0 .../content/aboutlogins.svg | 0 .../content/firefox-wordmark.svg | 0 .../{unofficial => datcord}/content/jar.mn | 0 .../{unofficial => datcord}/content/moz.build | 0 .../{unofficial => datcord}/default128.png | Bin .../{unofficial => datcord}/default16.png | Bin .../{unofficial => datcord}/default22.png | Bin .../{unofficial => datcord}/default24.png | Bin .../{unofficial => datcord}/default256.png | Bin .../{unofficial => datcord}/default32.png | Bin .../{unofficial => datcord}/default48.png | Bin .../{unofficial => datcord}/default64.png | Bin .../{unofficial => datcord}/disk.icns | Bin .../{unofficial => datcord}/document.icns | Bin .../{unofficial => datcord}/document.ico | Bin .../branding/{unofficial => datcord}/dsstore | Bin .../firefox.VisualElementsManifest.xml | 0 .../{unofficial => datcord}/firefox.icns | Bin .../{unofficial => datcord}/firefox.ico | Bin .../{unofficial => datcord}/firefox64.ico | Bin .../locales/en-US/brand.dtd | 0 .../locales/en-US/brand.ftl | 0 .../locales/en-US/brand.properties | 0 .../{unofficial => datcord}/locales/jar.mn | 0 .../{unofficial => datcord}/locales/moz.build | 0 .../browser/branding/datcord/moz.build | 13 +++++++ .../msix/Assets/Document44x44.png | Bin .../msix/Assets/LargeTile.scale-200.png | Bin .../msix/Assets/SmallTile.scale-200.png | Bin .../Assets/Square150x150Logo.scale-200.png | Bin ...o.altform-lightunplated_targetsize-256.png | Bin ...44Logo.altform-unplated_targetsize-256.png | Bin .../msix/Assets/Square44x44Logo.scale-200.png | Bin .../Assets/Square44x44Logo.targetsize-256.png | Bin .../msix/Assets/StoreLogo.scale-200.png | Bin .../msix/Assets/Wide310x150Logo.scale-200.png | Bin .../pref/firefox-branding.js | 0 .../stubinstaller/bgstub.jpg | Bin .../stubinstaller/installing_page.css | 0 .../stubinstaller/profile_cleanup_page.css | 0 .../{unofficial => datcord}/wizHeader.bmp | Bin .../{unofficial => datcord}/wizHeaderRTL.bmp | Bin .../{unofficial => datcord}/wizWatermark.bmp | Bin .../browser/branding/unofficial/configure.sh | 19 ----------- src/changed/mozconfig | 9 ++++- 60 files changed, 39 insertions(+), 57 deletions(-) rename src/changed/browser/branding/{unofficial => datcord}/LICENSE (100%) rename src/changed/browser/branding/{unofficial => datcord}/VisualElements_150.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/VisualElements_70.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/background.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/branding.nsi (100%) create mode 100644 src/changed/browser/branding/datcord/configure.sh rename src/changed/browser/branding/{unofficial => datcord}/content/about-logo.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/about-logo.svg (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/about-logo@2x.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/about-wordmark.svg (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/about.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/aboutDialog.css (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/aboutlogins.svg (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/firefox-wordmark.svg (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/jar.mn (100%) rename src/changed/browser/branding/{unofficial => datcord}/content/moz.build (100%) rename src/changed/browser/branding/{unofficial => datcord}/default128.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default16.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default22.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default24.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default256.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default32.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default48.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/default64.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/disk.icns (100%) rename src/changed/browser/branding/{unofficial => datcord}/document.icns (100%) rename src/changed/browser/branding/{unofficial => datcord}/document.ico (100%) rename src/changed/browser/branding/{unofficial => datcord}/dsstore (100%) rename src/changed/browser/branding/{unofficial => datcord}/firefox.VisualElementsManifest.xml (100%) rename src/changed/browser/branding/{unofficial => datcord}/firefox.icns (100%) rename src/changed/browser/branding/{unofficial => datcord}/firefox.ico (100%) rename src/changed/browser/branding/{unofficial => datcord}/firefox64.ico (100%) rename src/changed/browser/branding/{unofficial => datcord}/locales/en-US/brand.dtd (100%) rename src/changed/browser/branding/{unofficial => datcord}/locales/en-US/brand.ftl (100%) rename src/changed/browser/branding/{unofficial => datcord}/locales/en-US/brand.properties (100%) rename src/changed/browser/branding/{unofficial => datcord}/locales/jar.mn (100%) rename src/changed/browser/branding/{unofficial => datcord}/locales/moz.build (100%) create mode 100644 src/changed/browser/branding/datcord/moz.build rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Document44x44.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/LargeTile.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/SmallTile.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Square150x150Logo.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Square44x44Logo.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Square44x44Logo.targetsize-256.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/StoreLogo.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/msix/Assets/Wide310x150Logo.scale-200.png (100%) rename src/changed/browser/branding/{unofficial => datcord}/pref/firefox-branding.js (100%) rename src/changed/browser/branding/{unofficial => datcord}/stubinstaller/bgstub.jpg (100%) rename src/changed/browser/branding/{unofficial => datcord}/stubinstaller/installing_page.css (100%) rename src/changed/browser/branding/{unofficial => datcord}/stubinstaller/profile_cleanup_page.css (100%) rename src/changed/browser/branding/{unofficial => datcord}/wizHeader.bmp (100%) rename src/changed/browser/branding/{unofficial => datcord}/wizHeaderRTL.bmp (100%) rename src/changed/browser/branding/{unofficial => datcord}/wizWatermark.bmp (100%) delete mode 100644 src/changed/browser/branding/unofficial/configure.sh diff --git a/buildDatcord.sh b/buildDatcord.sh index 475b5b03ef..29a2def101 100755 --- a/buildDatcord.sh +++ b/buildDatcord.sh @@ -23,7 +23,7 @@ fi cd mozilla-unified cp -r ../src/changed/* . -patch -p1 ../mozilla_dirsFromLibreWolf.patch +patch -p1 < ../mozilla_dirsFromLibreWolf.patch ./mach configure ./mach build ./mach package diff --git a/mozilla_dirsFromLibreWolf.patch b/mozilla_dirsFromLibreWolf.patch index 40f39308a3..1c8424ee8b 100644 --- a/mozilla_dirsFromLibreWolf.patch +++ b/mozilla_dirsFromLibreWolf.patch @@ -1,8 +1,8 @@ diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp -index 753c4df..8eefc56 100644 +index 50a64a2..79d7d9c 100644 --- a/toolkit/xre/nsXREDirProvider.cpp +++ b/toolkit/xre/nsXREDirProvider.cpp -@@ -302,16 +302,16 @@ static nsresult GetSystemParentDirectory(nsIFile** aFile) { +@@ -303,16 +303,16 @@ static nsresult GetSystemParentDirectory(nsIFile** aFile) { rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType, getter_AddRefs(localDir)); if (NS_SUCCEEDED(rv)) { @@ -23,7 +23,7 @@ index 753c4df..8eefc56 100644 # endif ; rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir)); -@@ -417,9 +417,9 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent, +@@ -413,9 +413,9 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent, rv = GetUserDataDirectoryHome(getter_AddRefs(localDir), false); if (NS_SUCCEEDED(rv)) { # if defined(XP_MACOSX) @@ -35,7 +35,7 @@ index 753c4df..8eefc56 100644 # endif } if (NS_SUCCEEDED(rv)) { -@@ -469,9 +469,9 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent, +@@ -465,9 +465,9 @@ nsXREDirProvider::GetFile(const char* aProperty, bool* aPersistent, else if (!strcmp(aProperty, XRE_SYS_SHARE_EXTENSION_PARENT_DIR)) { # ifdef ENABLE_SYSTEM_EXTENSION_DIRS # if defined(__OpenBSD__) || defined(__FreeBSD__) @@ -47,7 +47,7 @@ index 753c4df..8eefc56 100644 # endif return NS_NewNativeLocalFile(nsDependentCString(sysLExtDir), false, aFile); # else -@@ -1278,7 +1278,7 @@ nsresult nsXREDirProvider::GetUpdateRootDir(nsIFile** aResult, +@@ -1276,7 +1276,7 @@ nsresult nsXREDirProvider::GetUpdateRootDir(nsIFile** aResult, nsDependentCString(hasVendor ? GetAppVendor() : GetAppName())))) { return NS_ERROR_FAILURE; } @@ -56,7 +56,7 @@ index 753c4df..8eefc56 100644 return NS_ERROR_FAILURE; } -@@ -1584,7 +1584,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionPath(nsIFile* aFile) { +@@ -1559,7 +1559,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionPath(nsIFile* aFile) { #if defined(XP_MACOSX) || defined(XP_WIN) @@ -65,25 +65,7 @@ index 753c4df..8eefc56 100644 rv = aFile->AppendNative(nsDependentCString(sXR)); NS_ENSURE_SUCCESS(rv, rv); -@@ -1594,7 +1594,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionPath(nsIFile* aFile) { - - #elif defined(XP_UNIX) - -- static const char* const sXR = ".mozilla"; -+ static const char* const sXR = ".datcord"; - rv = aFile->AppendNative(nsDependentCString(sXR)); - NS_ENSURE_SUCCESS(rv, rv); - -@@ -1615,7 +1615,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionsDevPath(nsIFile* aFile) { - - #if defined(XP_MACOSX) || defined(XP_WIN) - -- static const char* const sXR = "Mozilla"; -+ static const char* const sXR = "Datcord"; - rv = aFile->AppendNative(nsDependentCString(sXR)); - NS_ENSURE_SUCCESS(rv, rv); - -@@ -1625,7 +1625,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionsDevPath(nsIFile* aFile) { +@@ -1569,7 +1569,7 @@ nsresult nsXREDirProvider::AppendSysUserExtensionPath(nsIFile* aFile) { #elif defined(XP_UNIX) diff --git a/open-in-default-browser/open-in-default-browser b/open-in-default-browser/open-in-default-browser index 1d68b3e16e..4c44c8bdb6 100755 --- a/open-in-default-browser/open-in-default-browser +++ b/open-in-default-browser/open-in-default-browser @@ -2,15 +2,4 @@ #If you want to use a specific browser, change this to the executable of that. xdg-open opens in your default browser. browser="xdg-open" -# Firefox specific stuff because firefox doesnt like the different profiles that datcord and itself use -if [ $(xdg-mime query default x-scheme-handler/https) == "firefox.desktop" ]; then - cd ~/.mozilla/firefox/ - if [[ $(grep '\[Profile[^0]\]' profiles.ini) ]] - then PROFPATH=$(grep -E '^\[Profile|^Path|^Default' profiles.ini | grep -1 '^Default=1' | grep '^Path' | cut -c6-) - else PROFPATH=$(grep 'Path=' profiles.ini | sed 's/^Path=//') - fi - - browser="firefox -P $PROFPATH" -fi - $browser $(echo $1 | sed "s/open\://g") \ No newline at end of file diff --git a/src/changed/browser/branding/unofficial/LICENSE b/src/changed/browser/branding/datcord/LICENSE similarity index 100% rename from src/changed/browser/branding/unofficial/LICENSE rename to src/changed/browser/branding/datcord/LICENSE diff --git a/src/changed/browser/branding/unofficial/VisualElements_150.png b/src/changed/browser/branding/datcord/VisualElements_150.png similarity index 100% rename from src/changed/browser/branding/unofficial/VisualElements_150.png rename to src/changed/browser/branding/datcord/VisualElements_150.png diff --git a/src/changed/browser/branding/unofficial/VisualElements_70.png b/src/changed/browser/branding/datcord/VisualElements_70.png similarity index 100% rename from src/changed/browser/branding/unofficial/VisualElements_70.png rename to src/changed/browser/branding/datcord/VisualElements_70.png diff --git a/src/changed/browser/branding/unofficial/background.png b/src/changed/browser/branding/datcord/background.png similarity index 100% rename from src/changed/browser/branding/unofficial/background.png rename to src/changed/browser/branding/datcord/background.png diff --git a/src/changed/browser/branding/unofficial/branding.nsi b/src/changed/browser/branding/datcord/branding.nsi similarity index 100% rename from src/changed/browser/branding/unofficial/branding.nsi rename to src/changed/browser/branding/datcord/branding.nsi diff --git a/src/changed/browser/branding/datcord/configure.sh b/src/changed/browser/branding/datcord/configure.sh new file mode 100644 index 0000000000..ee7d89e796 --- /dev/null +++ b/src/changed/browser/branding/datcord/configure.sh @@ -0,0 +1,10 @@ +# 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/. + + +MOZ_APP_NAME=datcord +MOZ_APP_BASENAME=Datcord +MOZ_APP_PROFILE=datcord +MOZ_APP_VENDOR=Datcord +MOZ_APP_DISPLAYNAME=Datcord diff --git a/src/changed/browser/branding/unofficial/content/about-logo.png b/src/changed/browser/branding/datcord/content/about-logo.png similarity index 100% rename from src/changed/browser/branding/unofficial/content/about-logo.png rename to src/changed/browser/branding/datcord/content/about-logo.png diff --git a/src/changed/browser/branding/unofficial/content/about-logo.svg b/src/changed/browser/branding/datcord/content/about-logo.svg similarity index 100% rename from src/changed/browser/branding/unofficial/content/about-logo.svg rename to src/changed/browser/branding/datcord/content/about-logo.svg diff --git a/src/changed/browser/branding/unofficial/content/about-logo@2x.png b/src/changed/browser/branding/datcord/content/about-logo@2x.png similarity index 100% rename from src/changed/browser/branding/unofficial/content/about-logo@2x.png rename to src/changed/browser/branding/datcord/content/about-logo@2x.png diff --git a/src/changed/browser/branding/unofficial/content/about-wordmark.svg b/src/changed/browser/branding/datcord/content/about-wordmark.svg similarity index 100% rename from src/changed/browser/branding/unofficial/content/about-wordmark.svg rename to src/changed/browser/branding/datcord/content/about-wordmark.svg diff --git a/src/changed/browser/branding/unofficial/content/about.png b/src/changed/browser/branding/datcord/content/about.png similarity index 100% rename from src/changed/browser/branding/unofficial/content/about.png rename to src/changed/browser/branding/datcord/content/about.png diff --git a/src/changed/browser/branding/unofficial/content/aboutDialog.css b/src/changed/browser/branding/datcord/content/aboutDialog.css similarity index 100% rename from src/changed/browser/branding/unofficial/content/aboutDialog.css rename to src/changed/browser/branding/datcord/content/aboutDialog.css diff --git a/src/changed/browser/branding/unofficial/content/aboutlogins.svg b/src/changed/browser/branding/datcord/content/aboutlogins.svg similarity index 100% rename from src/changed/browser/branding/unofficial/content/aboutlogins.svg rename to src/changed/browser/branding/datcord/content/aboutlogins.svg diff --git a/src/changed/browser/branding/unofficial/content/firefox-wordmark.svg b/src/changed/browser/branding/datcord/content/firefox-wordmark.svg similarity index 100% rename from src/changed/browser/branding/unofficial/content/firefox-wordmark.svg rename to src/changed/browser/branding/datcord/content/firefox-wordmark.svg diff --git a/src/changed/browser/branding/unofficial/content/jar.mn b/src/changed/browser/branding/datcord/content/jar.mn similarity index 100% rename from src/changed/browser/branding/unofficial/content/jar.mn rename to src/changed/browser/branding/datcord/content/jar.mn diff --git a/src/changed/browser/branding/unofficial/content/moz.build b/src/changed/browser/branding/datcord/content/moz.build similarity index 100% rename from src/changed/browser/branding/unofficial/content/moz.build rename to src/changed/browser/branding/datcord/content/moz.build diff --git a/src/changed/browser/branding/unofficial/default128.png b/src/changed/browser/branding/datcord/default128.png similarity index 100% rename from src/changed/browser/branding/unofficial/default128.png rename to src/changed/browser/branding/datcord/default128.png diff --git a/src/changed/browser/branding/unofficial/default16.png b/src/changed/browser/branding/datcord/default16.png similarity index 100% rename from src/changed/browser/branding/unofficial/default16.png rename to src/changed/browser/branding/datcord/default16.png diff --git a/src/changed/browser/branding/unofficial/default22.png b/src/changed/browser/branding/datcord/default22.png similarity index 100% rename from src/changed/browser/branding/unofficial/default22.png rename to src/changed/browser/branding/datcord/default22.png diff --git a/src/changed/browser/branding/unofficial/default24.png b/src/changed/browser/branding/datcord/default24.png similarity index 100% rename from src/changed/browser/branding/unofficial/default24.png rename to src/changed/browser/branding/datcord/default24.png diff --git a/src/changed/browser/branding/unofficial/default256.png b/src/changed/browser/branding/datcord/default256.png similarity index 100% rename from src/changed/browser/branding/unofficial/default256.png rename to src/changed/browser/branding/datcord/default256.png diff --git a/src/changed/browser/branding/unofficial/default32.png b/src/changed/browser/branding/datcord/default32.png similarity index 100% rename from src/changed/browser/branding/unofficial/default32.png rename to src/changed/browser/branding/datcord/default32.png diff --git a/src/changed/browser/branding/unofficial/default48.png b/src/changed/browser/branding/datcord/default48.png similarity index 100% rename from src/changed/browser/branding/unofficial/default48.png rename to src/changed/browser/branding/datcord/default48.png diff --git a/src/changed/browser/branding/unofficial/default64.png b/src/changed/browser/branding/datcord/default64.png similarity index 100% rename from src/changed/browser/branding/unofficial/default64.png rename to src/changed/browser/branding/datcord/default64.png diff --git a/src/changed/browser/branding/unofficial/disk.icns b/src/changed/browser/branding/datcord/disk.icns similarity index 100% rename from src/changed/browser/branding/unofficial/disk.icns rename to src/changed/browser/branding/datcord/disk.icns diff --git a/src/changed/browser/branding/unofficial/document.icns b/src/changed/browser/branding/datcord/document.icns similarity index 100% rename from src/changed/browser/branding/unofficial/document.icns rename to src/changed/browser/branding/datcord/document.icns diff --git a/src/changed/browser/branding/unofficial/document.ico b/src/changed/browser/branding/datcord/document.ico similarity index 100% rename from src/changed/browser/branding/unofficial/document.ico rename to src/changed/browser/branding/datcord/document.ico diff --git a/src/changed/browser/branding/unofficial/dsstore b/src/changed/browser/branding/datcord/dsstore similarity index 100% rename from src/changed/browser/branding/unofficial/dsstore rename to src/changed/browser/branding/datcord/dsstore diff --git a/src/changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml b/src/changed/browser/branding/datcord/firefox.VisualElementsManifest.xml similarity index 100% rename from src/changed/browser/branding/unofficial/firefox.VisualElementsManifest.xml rename to src/changed/browser/branding/datcord/firefox.VisualElementsManifest.xml diff --git a/src/changed/browser/branding/unofficial/firefox.icns b/src/changed/browser/branding/datcord/firefox.icns similarity index 100% rename from src/changed/browser/branding/unofficial/firefox.icns rename to src/changed/browser/branding/datcord/firefox.icns diff --git a/src/changed/browser/branding/unofficial/firefox.ico b/src/changed/browser/branding/datcord/firefox.ico similarity index 100% rename from src/changed/browser/branding/unofficial/firefox.ico rename to src/changed/browser/branding/datcord/firefox.ico diff --git a/src/changed/browser/branding/unofficial/firefox64.ico b/src/changed/browser/branding/datcord/firefox64.ico similarity index 100% rename from src/changed/browser/branding/unofficial/firefox64.ico rename to src/changed/browser/branding/datcord/firefox64.ico diff --git a/src/changed/browser/branding/unofficial/locales/en-US/brand.dtd b/src/changed/browser/branding/datcord/locales/en-US/brand.dtd similarity index 100% rename from src/changed/browser/branding/unofficial/locales/en-US/brand.dtd rename to src/changed/browser/branding/datcord/locales/en-US/brand.dtd diff --git a/src/changed/browser/branding/unofficial/locales/en-US/brand.ftl b/src/changed/browser/branding/datcord/locales/en-US/brand.ftl similarity index 100% rename from src/changed/browser/branding/unofficial/locales/en-US/brand.ftl rename to src/changed/browser/branding/datcord/locales/en-US/brand.ftl diff --git a/src/changed/browser/branding/unofficial/locales/en-US/brand.properties b/src/changed/browser/branding/datcord/locales/en-US/brand.properties similarity index 100% rename from src/changed/browser/branding/unofficial/locales/en-US/brand.properties rename to src/changed/browser/branding/datcord/locales/en-US/brand.properties diff --git a/src/changed/browser/branding/unofficial/locales/jar.mn b/src/changed/browser/branding/datcord/locales/jar.mn similarity index 100% rename from src/changed/browser/branding/unofficial/locales/jar.mn rename to src/changed/browser/branding/datcord/locales/jar.mn diff --git a/src/changed/browser/branding/unofficial/locales/moz.build b/src/changed/browser/branding/datcord/locales/moz.build similarity index 100% rename from src/changed/browser/branding/unofficial/locales/moz.build rename to src/changed/browser/branding/datcord/locales/moz.build diff --git a/src/changed/browser/branding/datcord/moz.build b/src/changed/browser/branding/datcord/moz.build new file mode 100644 index 0000000000..9045cee11b --- /dev/null +++ b/src/changed/browser/branding/datcord/moz.build @@ -0,0 +1,13 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# 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/. + +DIRS += ['content', 'locales'] + +DIST_SUBDIR = 'browser' +export('DIST_SUBDIR') + +include('../branding-common.mozbuild') +FirefoxBranding() diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Document44x44.png b/src/changed/browser/branding/datcord/msix/Assets/Document44x44.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Document44x44.png rename to src/changed/browser/branding/datcord/msix/Assets/Document44x44.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/LargeTile.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/LargeTile.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/LargeTile.scale-200.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/SmallTile.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/SmallTile.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/SmallTile.scale-200.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/Square150x150Logo.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Square150x150Logo.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/Square150x150Logo.scale-200.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png rename to src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png rename to src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.scale-200.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png b/src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.targetsize-256.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Square44x44Logo.targetsize-256.png rename to src/changed/browser/branding/datcord/msix/Assets/Square44x44Logo.targetsize-256.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/StoreLogo.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/StoreLogo.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/StoreLogo.scale-200.png diff --git a/src/changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png b/src/changed/browser/branding/datcord/msix/Assets/Wide310x150Logo.scale-200.png similarity index 100% rename from src/changed/browser/branding/unofficial/msix/Assets/Wide310x150Logo.scale-200.png rename to src/changed/browser/branding/datcord/msix/Assets/Wide310x150Logo.scale-200.png diff --git a/src/changed/browser/branding/unofficial/pref/firefox-branding.js b/src/changed/browser/branding/datcord/pref/firefox-branding.js similarity index 100% rename from src/changed/browser/branding/unofficial/pref/firefox-branding.js rename to src/changed/browser/branding/datcord/pref/firefox-branding.js diff --git a/src/changed/browser/branding/unofficial/stubinstaller/bgstub.jpg b/src/changed/browser/branding/datcord/stubinstaller/bgstub.jpg similarity index 100% rename from src/changed/browser/branding/unofficial/stubinstaller/bgstub.jpg rename to src/changed/browser/branding/datcord/stubinstaller/bgstub.jpg diff --git a/src/changed/browser/branding/unofficial/stubinstaller/installing_page.css b/src/changed/browser/branding/datcord/stubinstaller/installing_page.css similarity index 100% rename from src/changed/browser/branding/unofficial/stubinstaller/installing_page.css rename to src/changed/browser/branding/datcord/stubinstaller/installing_page.css diff --git a/src/changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css b/src/changed/browser/branding/datcord/stubinstaller/profile_cleanup_page.css similarity index 100% rename from src/changed/browser/branding/unofficial/stubinstaller/profile_cleanup_page.css rename to src/changed/browser/branding/datcord/stubinstaller/profile_cleanup_page.css diff --git a/src/changed/browser/branding/unofficial/wizHeader.bmp b/src/changed/browser/branding/datcord/wizHeader.bmp similarity index 100% rename from src/changed/browser/branding/unofficial/wizHeader.bmp rename to src/changed/browser/branding/datcord/wizHeader.bmp diff --git a/src/changed/browser/branding/unofficial/wizHeaderRTL.bmp b/src/changed/browser/branding/datcord/wizHeaderRTL.bmp similarity index 100% rename from src/changed/browser/branding/unofficial/wizHeaderRTL.bmp rename to src/changed/browser/branding/datcord/wizHeaderRTL.bmp diff --git a/src/changed/browser/branding/unofficial/wizWatermark.bmp b/src/changed/browser/branding/datcord/wizWatermark.bmp similarity index 100% rename from src/changed/browser/branding/unofficial/wizWatermark.bmp rename to src/changed/browser/branding/datcord/wizWatermark.bmp diff --git a/src/changed/browser/branding/unofficial/configure.sh b/src/changed/browser/branding/unofficial/configure.sh deleted file mode 100644 index 1fbe981c9c..0000000000 --- a/src/changed/browser/branding/unofficial/configure.sh +++ /dev/null @@ -1,19 +0,0 @@ -# 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/. - -MOZ_APP_DISPLAYNAME=Firefox - -if test "$MOZ_UPDATE_CHANNEL" = "beta"; then - # Official beta builds - MOZ_HANDLER_CLSID="21e9f98d-a6c9-4cb5-b288-ae2fd2a96c58" - MOZ_IHANDLERCONTROL_IID="119149fa-d212-4f22-9517-082eecc1a084" - MOZ_ASYNCIHANDLERCONTROL_IID="4e253d9b-59cf-4b32-a973-38bc85495d61" - MOZ_IGECKOBACKCHANNEL_IID="77b75c7d-d1c2-4469-864d-31aaebb67cc6" -else - # Official release/esr builds - MOZ_HANDLER_CLSID="1baa303d-b4b9-45e5-9ccb-e3fca3e274b6" - MOZ_IHANDLERCONTROL_IID="ce30f77e-8847-44f0-a648-a9656bd89c0d" - MOZ_ASYNCIHANDLERCONTROL_IID="dca8d857-1a63-4045-8f36-8809eb093d04" - MOZ_IGECKOBACKCHANNEL_IID="b32983ff-ef84-4945-8f86-fb7491b4f57b" -fi diff --git a/src/changed/mozconfig b/src/changed/mozconfig index dd4829019f..c3477c36ff 100644 --- a/src/changed/mozconfig +++ b/src/changed/mozconfig @@ -1 +1,8 @@ -ac_add_options --with-app-name=datcord \ No newline at end of file +ac_add_options --with-app-name=datcord +ac_add_options --with-branding=browser/branding/datcord + +export MOZ_APP_NAME=datcord +export MOZ_APP_BASENAME=Datcord +export MOZ_APP_PROFILE=datcord +export MOZ_APP_VENDOR=Datcord +export MOZ_APP_DISPLAYNAME=Datcord From fb526e5c014aa8d5babd1b18514ea859d3b9e5c0 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Tue, 31 Jan 2023 18:15:14 -0800 Subject: [PATCH 09/29] fix readme image --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1d4428d484..c644c98553 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@0>Ir4a#{3~n-N_Pl;j^_tF8{iN(79ge7eLj+KIy)HI%3WC-_2`%I8ZQx;YapP zA#(wSr}WuF1#vwAF^n=>4)TD9bx{|q<6~dz^z(XjE#pEpb)}k9cU3s@*1^x%e7AW` z_`4Hy;7kcFupk61s`ioCcz%V;1~pTUf4|H9bkSnHrkc< zi!>YW%p(ZqkGzwYpL?d+;dV{>niGjYMj)7%b)o=8AKn>DKKESlmKkfQI^oa5MC{3c z?o)yJ_)fX+c!;vjncV6+v&w>GPDji+xl3PP-z1*Z@y5m`MoP6S2R7SEOKOL iimy3_#SFu)- zSO9qnFUtXU+t@2@W}iscnhlTiTA(Tm`xctjN~gdk7drao;>SXn#-XlR-U`kw&Tq;a zoA `l95MTCmaI0-SW&tQqr~iN>DihR2RGuGE%d7& zJA{1)?@_T56L$XEJJ3#h&&{@fZp0s{SIA*vU}g8)SjM8wpGd}U4 mmziLPk1(St{u0E9!>SSzuPgjGdG%Hnz#i@{~cGaLPz0ajZLW;;AQFL2( zG8U%vI ze*hPUXJOToPFQ+$J8rhE(dH4d&bbYp@E)9n47RP19V*`d sCXnwFs4zP;W%{A{4vA~Z2C5Gt8ICZg zG~kAQU`aCU{akdu%Gj>e`&rpXjc}Zc7{e+PBgFK6C+})8<$Iqxn;F=AP_X2wM&Ybl zB!g)p(XN)OD<1X! #E(RX>sdMA(%a<2{NsIo%kyL;gfRRnCLYGamn#? zF!z-^FDR9lq3A=zUn29;h*Vx^w0y{gaIjXdcOj-fISYw0i2e FhBHN UYW#2Xo=JIGJ_(Yvg)9ys zD+}VRV!1LO>{!{(gHlk$=HSIAO)PnzW6TO2A{CSGMpI9Z9woV^*_t3`lz&4NA^;qt znrwu;{$|#u_YZ=@w{b&c?eJA+>-Cw@{3Hyb_Fg;`NMkGF&nbWHu3^5@YXWPMF|>qg zk?s@%Ataies||A9@cw;&`_p%adCluA Ag`Ait_z z;cDAJRaJw^oa-KdONE_4#4}q_5qQ(Bq>We>= Gc=T!Q$CF5#afs+Y z1fwN;qeh)-Iz-3S62dT1cgkJEKGhp!6LJk-FNxV zkY%iC_Oh_eEGrIV`&hd!~H8MM)PI086^wNaLIdY-cVz4 zd}tzT#B_CJU(%?CW&+qg#k%nbtw=bfIU9XUPlgPJ{E8gBmp<*0XhAlvpRkHH1D{0S znMe$69vW~S25Q|&tV}-Uh;>67xVrAzpC%4e+u}5opr3XnEY3mfG7P1 ghJF1x z(JD}rki_y%4@QUrZwEi?h0QDYkbsc2vE{RFQjWto=%FnL&bB0MQThb9`)`t488%Tw z+zFo?B#xF(a)f(k;XO5WXZ_l{t7Yi|Mx#m+QQpH(^35${L%)+@2Uvg+eMlVvMocbi zYcUq=_p9sO=dmj+Bet)VJkugd@$(!GhR>0Yx4J9qZy5Z6aF?l5XHNtl2hG~*C92=C zkk2m=YFw>TRiQUaJ ^fAZi=cA#!4|}f%7E`j; =>RF?z;mV%dADigEiSnY!8F}KhzYsc p+P_;Lf3< znw6I|Y2+j5@K_nemW0#e6k3acQg0Ps$<3VGL&^`r46P>6S8`(TP(5;05`iH*%-cW1 z6!QY9YCaodtt+cpN!3qJ*?$XXh;f7K{6(D|Oh@M6Cf*_>3Puf + +
+ \ No newline at end of file From 3d1944171f02bfef8df905a445d96b9e4de2b957 Mon Sep 17 00:00:00 2001 From: gamingdoom <37276884+gamingdoom@users.noreply.github.com> Date: Fri, 3 Feb 2023 16:16:10 -0800 Subject: [PATCH 17/29] cross compile for windows --- .github/workflows/build-win64.yml | 129 +++++++++++++++--- .gitignore | 1 + buildDatcord.sh | 2 + crossCompileForWindows.sh | 107 +++++++++++++++ src/changed/browser/app/profile/firefox.js | 6 +- .../browser/branding/datcord/branding.nsi | 2 +- .../browser/branding/datcord/datcord.ico | Bin 0 -> 15398 bytes .../browser/branding/datcord/document_pdf.ico | Bin 0 -> 19994 bytes .../browser/branding/datcord/firefox.ico | Bin 68328 -> 15398 bytes .../browser/branding/datcord/firefox64.ico | Bin 1985 -> 15398 bytes .../browser/branding/datcord/newtab.ico | Bin 0 -> 6518 bytes .../browser/branding/datcord/newwindow.ico | Bin 0 -> 6518 bytes .../browser/branding/datcord/pbmode.ico | Bin 0 -> 35978 bytes src/{changed/mozconfig => mozconfig.linux} | 0 src/mozconfig.windows | 30 ++++ windows/banner.bmp | Bin 206122 -> 154542 bytes 16 files changed, 257 insertions(+), 20 deletions(-) create mode 100755 crossCompileForWindows.sh create mode 100644 src/changed/browser/branding/datcord/datcord.ico create mode 100644 src/changed/browser/branding/datcord/document_pdf.ico create mode 100644 src/changed/browser/branding/datcord/newtab.ico create mode 100644 src/changed/browser/branding/datcord/newwindow.ico create mode 100644 src/changed/browser/branding/datcord/pbmode.ico rename src/{changed/mozconfig => mozconfig.linux} (100%) create mode 100644 src/mozconfig.windows diff --git a/.github/workflows/build-win64.yml b/.github/workflows/build-win64.yml index fd66275b67..299284cc69 100644 --- a/.github/workflows/build-win64.yml +++ b/.github/workflows/build-win64.yml @@ -1,4 +1,56 @@ -name: Build-Win64 +# name: Build-Win64 + +# # Controls when the workflow will run +# on: +# # Triggers the workflow on push or pull request events but only for the master branch +# push: +# branches: [ master, unstable ] +# pull_request: +# branches: [ master ] + +# # Allows you to run this workflow manually from the Actions tab +# workflow_dispatch: + +# # A workflow run is made up of one or more jobs that can run sequentially or in parallel +# jobs: +# # This workflow contains a single job called "build" +# build: +# # The type of runner that the job will run on +# runs-on: windows-latest + +# # Steps represent a sequence of tasks that will be executed as part of the job +# steps: +# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it +# - uses: actions/checkout@v2 + +# - name: Cache +# uses: actions/cache@v2.1.6 +# with: +# # A list of files, directories, and wildcard patterns to cache and restore +# path: mozilla-unified +# # An explicit key for restoring and saving the cache +# key: ${{ runner.os }}-mozilla-unified + +# # Runs a set of commands using the runners shell +# - name: Run a multi-line script +# run: | +# choco install mozillabuild cygwin nsis +# choco install --force git +# refreshenv +# C:\mozilla-build\start-shell.bat /d/a/datcord/datcord/buildDatcordWin.sh +# move C:/Users/runneradmin/mozilla-unified/obj-x86_64-pc-mingw32/dist/install/sea/*.exe C:/Users/runneradmin/mozilla-unified/obj-x86_64-pc-mingw32/dist/install/sea/datcordSetup-win64.exe + +# - name: Upload a Build Artifact +# uses: actions/upload-artifact@v2.2.4 +# with: +# # Artifact name +# name: win64-installer +# # A file, directory or wildcard pattern that describes what to upload +# path: work/datcordSetup-win64.exe + +# This is a basic workflow to help you get started with Actions + +name: Build-Linux-x86_64 # Controls when the workflow will run on: @@ -16,35 +68,76 @@ jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on - runs-on: windows-latest + runs-on: ubuntu-22.04 # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - - - name: Cache - uses: actions/cache@v2.1.6 - with: - # A list of files, directories, and wildcard patterns to cache and restore - path: mozilla-unified - # An explicit key for restoring and saving the cache - key: ${{ runner.os }}-mozilla-unified + + #- name: Cache + # uses: actions/cache@v3.0.11 + # with: + # path: mozilla-unified + # key: ${{ runner.os }}-mozilla-unified # Runs a set of commands using the runners shell - - name: Run a multi-line script + - name: Get deps, build and package + run: | + ls + sudo apt upgrade && sudo apt update + sudo add-apt-repository universe + sudo apt install libfuse2 + sudo apt install python3 python3-distutils python3-pip build-essential libpython3-dev m4 nodejs unzip uuid zip libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdbus-glib-1-dev libdrm-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb rustc clang nasm + sudo apt install mercurial python3 python3-dev python3-pip curl wget dpkg-sig msitools p7zip-full upx-ucl libssl-dev zstd wine64-tools + pip3 install --upgrade setuptools + pip3 install wheel setuptools zstandard==0.15.2 cffi>=1.13.0 glean-parser==2.5.0 appdirs>=1.4 Click>=7 diskcache>=4 importlib-metadata iso8601>=0.1.10 Jinja2>=2.10.1 jsonschema>=3.0.2 attrs>=17.4.0 MarkupSafe>=2.0 pycparser pyrsistent>=0.14.0 PyYAML>=3.13 six>=1.11.0 typing-extensions>=3.6.4 yamllint>=1.18.0 pathspec>=0.5.3 zipp>=0.5 psutil==5.8.0 + mkdir ~/.mozbuild + git clone https://github.com/glandium/git-cinnabar.git ~/.mozbuild/git-cinnabar + datcorddir=$PWD + cd ~/.mozbuild/git-cinnabar/ + make + ls + cd $datcorddir + bash ./crossCompileForWindows.sh + - name: Edit Tarball run: | - choco install mozillabuild cygwin nsis - choco install --force git - refreshenv - C:\mozilla-build\start-shell.bat /d/a/datcord/datcord/buildDatcordWin.sh - move C:/Users/runneradmin/mozilla-unified/obj-x86_64-pc-mingw32/dist/install/sea/*.exe C:/Users/runneradmin/mozilla-unified/obj-x86_64-pc-mingw32/dist/install/sea/datcordSetup-win64.exe + mkdir datcord + tar --strip-components=1 -xvf mozilla-unified/obj-x86_64-pc-linux-gnu/dist/*.tar.bz2 -C datcord/ + #mv datcord/firefox datcord/datcord + #mv datcord/firefox-bin datcord/datcord-bin + cp -r distribution/ datcord/ + mv datcord/distribution/policies-linux.json datcord/distribution/policies.json + cp open-in-default-browser/open-in-default-browser datcord/open-in-default-browser + cp src/launch-datcord datcord/launch-datcord + tar -cjf datcord.tar.bz2 datcord + - name: Appimage it + run: | + wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" + chmod a+x appimagetool-x86_64.AppImage + mkdir -p datcord.AppImage/usr/bin/ + tar --strip-components=1 -xvf mozilla-unified/obj-x86_64-pc-linux-gnu/dist/*.tar.bz2 -C datcord.AppImage/usr/bin/ + #mv datcord.AppImage/usr/bin/firefox datcord.AppImage/usr/bin/datcord + #mv datcord.AppImage/usr/bin/firefox-bin datcord.AppImage/usr/bin/datcord-bin + cp -r distribution/ datcord.AppImage/usr/bin/ + mv datcord.AppImage/usr/bin/distribution/policies-linux-appimage.json datcord.AppImage/usr/bin/distribution/policies.json + cp open-in-default-browser/open-in-default-browser datcord.AppImage/usr/bin/ + ARCH=x86_64 ./appimagetool-x86_64.AppImage datcord.AppImage/ - name: Upload a Build Artifact uses: actions/upload-artifact@v2.2.4 with: # Artifact name - name: win64-installer + name: tarball-linux-x86_64 # A file, directory or wildcard pattern that describes what to upload - path: work/datcordSetup-win64.exe + path: datcord.tar.bz2 + - name: Upload a Build Artifact + uses: actions/upload-artifact@v2.2.4 + with: + # Artifact name + name: Appimage + # A file, directory or wildcard pattern that describes what to upload + path: | + Datcord-x86_64.AppImage + diff --git a/.gitignore b/.gitignore index b1302f8328..f236b5eac5 100644 --- a/.gitignore +++ b/.gitignore @@ -177,4 +177,5 @@ Datcord-x86_64.AppImage # Ignore build dir build/ mozilla-unified/ +work/ diff --git a/buildDatcord.sh b/buildDatcord.sh index 29a2def101..e4ff235ffb 100755 --- a/buildDatcord.sh +++ b/buildDatcord.sh @@ -23,7 +23,9 @@ fi cd mozilla-unified cp -r ../src/changed/* . +cp ../src/mozconfig.linux mozconfig patch -p1 < ../mozilla_dirsFromLibreWolf.patch + ./mach configure ./mach build ./mach package diff --git a/crossCompileForWindows.sh b/crossCompileForWindows.sh new file mode 100755 index 0000000000..61e658fa37 --- /dev/null +++ b/crossCompileForWindows.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +export mozbuild=~/.mozbuild +export PATH="$PATH:$mozbuild/git-cinnabar" +datcordDir=$PWD + +if [ ! -d $mozbuild ]; then + mkdir $mozbuild +fi + +if [ ! -d mozilla-unified ]; then + mkdir mozilla-unified + curl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py -O + python3 bootstrap.py --vcs=git --no-interactive --application-choice=browser_artifact_mode +fi + +if [ ! -d $mozbuild/git-cinnabar ]; then + git clone https://github.com/glandium/git-cinnabar.git $mozbuild/git-cinnabar + cd $mozbuild/git-cinnabar + make + cd $datcordDir +fi + +cd mozilla-unified +cp -r ../src/changed/* . +cp ../src/mozconfig.windows mozconfig +patch -p1 < ../mozilla_dirsFromLibreWolf.patch + +# Add cross compile target +rustup target add x86_64-pc-windows-msvc + +# Install toolchains +if [ ! $1 == "--no-download-toolchains" ]; then + ./mach artifact toolchain --from-build linux64-binutils + ./mach artifact toolchain --from-build linux64-cbindgen + ./mach artifact toolchain --from-build linux64-clang + ./mach artifact toolchain --from-build linux64-dump_syms + ./mach artifact toolchain --from-build linux64-liblowercase + ./mach artifact toolchain --from-build linux64-nasm + ./mach artifact toolchain --from-build linux64-node + ./mach artifact toolchain --from-build linux64-rust-cross + ./mach artifact toolchain --from-build linux64-winchecksec + ./mach artifact toolchain --from-build linux64-wine + ./mach artifact toolchain --from-build nsis + ./mach artifact toolchain --from-build sysroot-x86_64-linux-gnu +fi + + +# Get windows sdk if needed +if [ ! -d $mozbuild/win-cross ]; then + # Generate yaml that contains things to download from Visual Studio packages + ./mach python --virtualenv build build/vs/generate_yaml.py \ + --major \ + 17 \ + Microsoft.VisualCpp.CRT.Headers \ + Microsoft.VisualCpp.CRT.Redist.ARM64 \ + Microsoft.VisualCpp.CRT.Redist.X64 \ + Microsoft.VisualCpp.CRT.Redist.X86 \ + Microsoft.VisualCpp.CRT.x64.Desktop \ + Microsoft.VisualCpp.CRT.x64.Store \ + Microsoft.VisualCpp.CRT.x86.Desktop \ + Microsoft.VisualCpp.CRT.x86.Store \ + Microsoft.VisualCpp.DIA.SDK \ + Microsoft.VisualCpp.Tools.HostX64.TargetARM64 \ + Microsoft.VisualCpp.Tools.HostX64.TargetX64 \ + Microsoft.VisualCpp.Tools.HostX64.TargetX86 \ + Microsoft.VisualStudio.Component.VC.ATL.ARM64 \ + Microsoft.VisualStudio.Component.VC.ATL \ + Microsoft.VisualStudio.Component.VC.ATLMFC \ + Microsoft.VisualStudio.Component.VC.MFC.ARM64 \ + Win10SDK_10.0.19041 \ + -o \ + build/vs/vs2022.yaml + + ./mach --no-interactive python --virtualenv build build/vs/pack_vs.py build/vs/vs2022.yaml -o $mozbuild/vs.tar.zst + mkdir -p $mozbuild/win-cross && cd $mozbuild/win-cross && rm -rf vs && tar xf ../vs.tar.zst + cd $datcordDir/mozilla-unified +fi + +./mach configure +./mach build +./mach package + +# Change the setup exe +mkdir $datcordDir/work +cp obj-x86_64-pc-mingw32/dist/install/sea/*.exe $datcordDir/work/ffSetup-win64.exe +cd $datcordDir/work +7z x ffSetup-win64.exe +ls +mv core datcord +rm setup.exe +cd datcord +#mv firefox.exe datcord.exe +cd .. +cp ../windows/datcord.ico datcord/ +mkdir datcord/distribution +cp ../distribution/policies-windows.json datcord/distribution/policies.json +cp -r ../open-in-default-browser/* datcord/ +# Based on librewolf mk.py +mkdir x86-ansi +wget -q -O ./x86-ansi/nsProcess.dll https://shorsh.de/upload/we7v/nsProcess.dll +wget -q -O ./vc_redist.x64.exe https://aka.ms/vs/17/release/vc_redist.x64.exe +cp ../windows/setup.nsi . +cp ../windows/datcord.ico . +cp ../windows/banner.bmp . +$mozbuild/wine/bin/wine $mozbuild/nsis/makensis.exe -V1 setup.nsi +# Setup filename will be datcordSetup-win64.exe \ No newline at end of file diff --git a/src/changed/browser/app/profile/firefox.js b/src/changed/browser/app/profile/firefox.js index eac32ce7a1..7543834b22 100644 --- a/src/changed/browser/app/profile/firefox.js +++ b/src/changed/browser/app/profile/firefox.js @@ -2791,7 +2791,11 @@ pref("network.protocol-handler.warn-external.open", true); pref("network.protocol-handler.expose.open", false); // Other Datcord Settings -pref("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36"); +#ifdef XP_WIN + pref("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0"); +#else + pref("general.useragent.override", "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0") +#endif pref("permissions.default.camera", 1); pref("permissions.default.microphone", 1); diff --git a/src/changed/browser/branding/datcord/branding.nsi b/src/changed/browser/branding/datcord/branding.nsi index 994703858d..cf432ebf6c 100644 --- a/src/changed/browser/branding/datcord/branding.nsi +++ b/src/changed/browser/branding/datcord/branding.nsi @@ -8,7 +8,7 @@ # BrandFullNameInternal is used for some registry and file system values # instead of BrandFullName and typically should not be modified. -!define BrandFullNameInternal "Mozilla Firefox" +!define BrandFullNameInternal "Datcord" !define BrandFullName "Datcord" !define CompanyName "Datcord" !define URLInfoAbout "https://github.com/gamingdoom/datcord" diff --git a/src/changed/browser/branding/datcord/datcord.ico b/src/changed/browser/branding/datcord/datcord.ico new file mode 100644 index 0000000000000000000000000000000000000000..fa3a518d330855126606d0dab0b7e694f4cd8e80 GIT binary patch literal 15398 zcmeHs2UHZzv+t0ET|km7NLI-?hy=+jl5>`vksKBY5*A@mL_uW9Q52N$t(b@cD~bpr zAW;PcL_|Pj1rbofogpatzu*7ebI-fyz4PAJXM3vZSJl-$Ju}tSy#PQ2kOH){07xkS zPci^F0RR9O*S36<0swFzCN91s?*{-2utJ3h-~#wL0bqj-0Qf-}bO9pUb|8V6Uj^cK z+ pkWT?IP%Z>%0a%MJfIKMYgLVaA zyTVH#1uKL@auLXH=|MRU(nG#Md&p+j9+LAxykHmKm3Odw$j6TT&$f{5AN8k?KX9lo zXbgYa{~P(&B>ltvGXwwM&j2|yF*FCn%;XTE7FCu((6O-4A!L 2 zpkk|Rf( 2xU!l8J)6&pdi8)KpPyf;Qe_->rujiX!f z9P+W(7UH2kAbXHP@fz~8CGTL6A4s=(pNKGGx0`fBJ>wT|YZEKifm{ zZeI}ppZJ4({$}%s-IgB0cI#e$yVx(f{Z#+C{xbvrugt){L&x-(f87kT-mydbeu<1a zJ}4B*>K9-Iil=lAYy)IUL69g*MJuA9t*@`GAVNzecM61p6rp$svjka`F+0*8qT9tD z$!-jB=3v}JLX5s4 GSG)4Bmk&_#M5_=YKQgp1Q}HTIQp-uUx*X{2<}Kh5>)KY z5bwlJC9&I^0011^(d&R?Jp%DZKt^u|JO}{$0=Icl=w2WeiuIz~SRj~?12)^dJjgOa zEF;LsZ(}Dx7SP`2-Dv?bLx?p5lYIAW47@#XUEAhSr%bno2M*8_nr^5-iwv-TX8_yK z-fI9Aqz6p*VtaX$Ej1v#7u(AVZtF>0_JY57SLpFU N1eJ!AQ`dN6*+?812jI2C7tc-AW6?Ze A5 )RLbZWQk%~Q}|K2l!3ovZwr zr$GBdC^soNx1FC{O#s(RaIXmA&>j)WH?D%Y29&cvYb}&}?B*tU(0U5$i$Dz8Gw#h% zp!{Sj|JYey3qkqM90gj_ch`R?$JpXQ`k&@4P#=&Dq=$U&wB2e4>7e_7a8SRMYe2R; z@~-`E9 4ssl7aCTeJHvUhox0J@(+csw*`_o%|(9S( Dbwlhs=(!90CP1J%WG}s|2B|NUijn$mBfkk-&{ihK zw#S|aascpbBfkk-(AIkd+hb3?Wly_}{3dKc+pol)ncOy^-fO=jKv4LWH^5 F?X2VmJThKL)24B@sb|0aOo?z r?z`4;)TPa^knxiA}#Z#8~h+CM6yIWxK_RM hnMB}M% X;?TDn96MwraAw7h2i{bp`f-}Zblbh_9{15kkd HU z?I0QQ3sP`z2<{I5o`U;EaOVh(bDOR~R2cw%qu_mjdrNS43C;&Z!OLbW0K`IcjB|w? zqAQ#$oDkhA|9zThWS~h6XMxTPsI|3_;L*kQ#*_kzezrk3-NAnd=CzTkW?`@A-kiaj z4dj3PGCyzDcj>f@ I5OJIMi@d^m0o1X?c;9h`iu$ zWw=ofkxa^u!Cn4^xb=$0 {2C}(OHy%X7X8v@9C$AZva2YQ8PJSWZ0FtW?f>N*mIG!%|sR_XN$rH ziC<#ADxMsz#iSuuk97zr9Zk3_-4^xosT@9NX!4SpA;ahuw4gG& Cr$$` _(d*UfQo-1DnW#%vDK@vmGhIn5`RxPM-h;SJ$G<;>@ z%Iv}u4fz{KSkosIvx>#ZWQhsHO`Y=Q8PXIo)=c9uR>T0}!&d@nCsK}Y%)fZ)@Q7G| z{~LFXztWYWOAx5(=z@SN_-uS4>9F~nYVFXu&Pnan#@Rdd7JaayBR5Q=3XjF#+86fv z5?--*WZ?DTlzLH@`?H-h_Kh9WVR>;u3J}Yt0XVI&35*+;kpCsN_y-?qHaEic5`gZYZcibiTd 0oWUCv%xT%5VoUgvb zDCMpdnsr<3WAFM*JPhx^uLtlF|2VM0O8H5bK;quI5L*+gOyr+P$Pla`vmm*(EKo6Z z|EZ1BzMeWY&86t4D6BQ+3`4w!;`oJ=A6ckoNqb(Dq%r!Ljn}Fe@GBH`TnaW_n8mx; zl`^c8o;xq8ovu!+q^sm~>EcQ?nJ+6rvLj~v3mc($sCzNEE7LNr$w<@S#`g|4yf#t( z!Xd+~<9q_$8ez?crG*((&RDdS5!A846d#7a(9z-i^gGg2AJ@p KZW%$Tk&OAIA|tQ?owy45QRImdEjdAXfus#)OgObw1wn}VMMJ{IskwE zP^dkIlJv{-RV=@yg?!FvYM*+PtSa`FAR9?!?^5H1vLzC+wJ?HJ$>@XZ$p~&GWx!xR zSGB%Msm)WW8>(-e(g67S8Y|2_dgHF3t(1(wa%OM d) z_EsVJhbYUp!c*MYqKfuo3F!K>w*+htoRI0klp6w+etje}^uop~Cx9EnTmd28IvE)e zj%O@Vmd0Zk?djnt#MRZOci}>cD{kI81^i26EzGKXglruW oXq*qdKO{; zg1*zGs9|>eib?cUsH1o(MgzWD84~@#K_P|n0rMF$E9SQ;6R!8298xHFc68J1=G7MF zV}RxTlJ^!vGS_U)vjN0NDR~&of+A85-Pd@t Vq8eLVFs4;!_ zdZ>r;%YuPG42*Aze#DlTAvu%oGwmejNz*&0EtMbeS7^s-m~Dig6zl2Dxss0aR}m=Z zCAuCge@A 2nR1-O>AQ z)qDEt+9^$CZ2L41f6`5qk4o)b5rL_CQB>eni`Z|K1;s{#N9t4uD*`r>Ip#u8)2>Uk zTIv3#>v!inzxgtZ8!-C$9XBj^^_B(&>Ktm5;Azc#dA8K1i7tfze73Dog{PTz(jh7( z_*~a}!HX1ye~B~5c7#~#UoW7yx)V+vN*#4}>#O=!b*}|6Rq;k&@AbgS74O@Iz?`*j z-x`;Go!^}Oql*ul->aEqiw1 W1cy&r-*K^Q-mstf?Yot@3u*UPe0ldFx2xC~K3L zCn}^W&MdVEVVCn_a`~C6tDmxS=Fi8xWy?LMSR)hT*C;466h0z*T!58)Lo#h34Sif- zUf^MA#EM=XC(RRiBG)_hSjiLXWP>-`Myb9o%HOTGOp#QN*Nv6HJ#%yRO~cPcb)1d0 z%s!qmjU1g&ax`i8VDR(O?a&*-ybcVL7=S*d$z|-u%G?layz`azt6J!5O&4lcesl{p zm{}$=Oj}QXIXfRafEk=HG;Xqg7aqAJ=ks}W;lV7iuc1$&?~m0s37%FyHOpldgMCk2 z??l)%FVL?d;?1K?%TxKKzNcqOTHAeh61&zg>X@TeHlG;wj&3**ZB-3O+C?a|`0L0% zwwxp{=pnl&V0+#?f}xTF(=Z!9zx1e#U&f?^3A@l*jR+qJIh1h0jZy{Ut-JDtBi>uV zi3X$0-`OJA46~2Jhk~7$Weba^ta)j+eyQyWA*$v(ErQmt&Ob~DfSr4w6`hO*J(qBd zNsk4$aufwPj||eCx1&_ypC0C1Xa*|Qc)h5xMyo^$Jah6NQ(E84qaPyNLg2@abW@oM zvJJg0aR_8@bG)qs5L?zKKg<#@6Ymb8ifeVJDk9K7nYV3o(tC-N<-N&RD#VzJK*Ja9 z+8p(`vCr(ziE|-D&@J+xZ|4cP=}|<+YX`nOtb`B&%-tJ6KNR7Q-%HIuAiHc`?&3!3 z-~YNxwzL}NGp8-SQ9ga=p&Q$08{kOoQ^DpkX?VlX@)x_IKv`cRC@35)7>W(V`NvD_ zubj1i6z{xzlp?MVp)wJhhXLok;hVq0WhvWzV@HX!q76e`yfUUHP`7D4?9eS|IX8#g z#xEt3ILJC%o-vDWwWh>(H{bQwd#=l`Z8>zhmze+4!s4-Nr9ufHw;mH^`-%7cb+VqD zd2!~^F8eO}eUp3Eipl2&3{M3H+POFjpH~#qMT9dszK~QzDij18Te-Z`i`suFVrlHD z4e%~7x_{_sDNF55)>K|Jm^BqGut#4ySlT7fpZXM;1Ds%gdcbj>|JErz##Ps=$w=N_ z(lK@OPuYGKh1OU3TvHQ$XsZaHHrYFdKlWvvyzN#)^U~u9)pYVZ=hXW^PP$Z8hkqyT zsNb9XP4 i?ck`dyWPl&pzbrNW7 zd1W;zQ)(5WNO;aKdO(}lX!0vR&ZRTpP{2v#5X{oOEE#+nE+T-7&iLY?Gc|VnG4RF1 z<2Aquaq5b-C)kcYx;&Qe8fsz*;v!$YnWd=0374vF(RndBs%9SJi(kS&t)g`96z}i5 z^-21c#<6oDu|_sPLEF&n4u8Em7Wx)#Cws1bQZ8t;g7iU5^7lklJZ>EOdhCm)&-Ysr z=@cQ2_#SYS`gv$@&IP6GjpdXo)6TsjqqslstoIjf7Rz9r2oW d0myC2P*QC1L#)cjrt-B%T$VBTm*y)Z-pVTrbdXV^GA*Nis36k z4szt9sI+6g?Ao~$zAD#dTS#3QE>9yQC%ZhKy+^ThP~%l`loJ>DD^A*Q_h_re@}hJ7 zdP`|ePbhjVuE#hywx9PCEtJ-c5LA5iF3;fOxnbj`_w|nHv~KDAQ_tlb?Em^|JDr#8 zW6=u_E_;qs9rfd^(!8vjK%N7D-~I*sqZgx0Q`I*Ex<;;#aDGjclCwK2`6z_w8OnQ^ z#r=9;FB3sAo3|q$-q0ZG*pFPD9Ylm5y}3x1qe0fhwk{Irmv$qM_QWK)Cm3tT=Ixm7 zPz~KHdEZhb6f<5hLY}A9 {<5#f1OTyMo&(M)P^+U}!W z*i8|hRDDwK?imccrdAYXMq2IX=bZA@x|j9wDzP`w(NL+nQo-gROKdu45l1P>tQ}Jn z-^R<_v0-ETDrp|w*akZ$1wnX&jQ{wpv+@p(FqMkPd-cfKS&X%@1Ij|@t@*gg5N0$n z+fqN1+SuV9hbYnEW}Flej)r!G8O`*znC$iuTh`WU{b4ZA3Qc_CUs}Rn@!BNlR+4wO zPJ2Uny!;1RDG5EGBhbK4 p Xz{t_3Z^Ev%ii ;>*W pA%ZCFSU4jsEqh#L^-* z>uCW&1K_?SaI@tH&V|{l=FLc3|Gno?RO)54FV7y7m^wz(-wPDMZS2~_`zwQ6!zU?& zLUM{IzWlJmybsRLKlx(CMgvxqun+ihH2PT{nFL&c&6!yT6EP%#yngjo>IHXF3oPK} z3D9EPha{+$U?H5QregYFS31(s5}1-+c`IY$o9RUOv+H)`;{C@0Inyk=n;^BLGU&qU z 0yiJ*&&UUNizrU7_l#pihPAR3zYo5|FqVN$il^mj*bam- zR&aT$L$P{|l b#Irb13X97@`bIfVPlVIp7{q+F=&d;^ggq-wfbSL z^Pp*+ygzZ?-Tdvh%4$`r56Ieyr6oe98@tuuq}RPo AFidjS2*npP^3Ov}p~& z^%yU$E2t=pYMjr@Shd%(=HxftA7D4eELZFhUL`IqAHXh`Urx| ~(Zi+|`B)Pgttpgi+8xY{XYz^X QOcct=c~sBfn);P(~dR^r1m zSkQNEV9F%^E^{ DchYOoPp4Cgade2F2G$pzON9lcWHEX`Q of+yP5C0C}HnuYn_7O=L}R7R~HU4cq^@TmowNW&g){azyY=J zsYWeo;$;$V_9u>=U2C@q2Sci5uEGn2C#Q7v0k?Togx2_i_xPq_OTOrYxH~^%^uEr} zMu#{&pU)6^`k|D!!RJVPSasFLJM#Hq0F*2I{O54k{fJ=saOfS^0R$d&Fr!aYn?# z<)d7c2PV_w18VszY{^}{22BgPU1{tQwVBL5y7pc&jr~51=ST@Ja)M{1PA{G`0C272 z_@pv9#q!AJGt_O~XKzc`+?9BYP|>4TdFbg77S=Dj-(R;~x_}TqCNQL$J+6;6pOFgp zOS-OkX(GU!gIg(`Q>XHph8RWft1{|FeeAurR>*38Jyt7NNtI)}+PfuP33CHSAwuII z))jc&@Ks1~Esr_6Yo_6#oOi~7fy1KpWQ2!)eucm% 82^|L;Bio}spK2e zU z+D2;I*ZxDz{n60|**5-~olGSq_cbyygN)i?09RU{u94q$`73zd_{G;(f=0h>+^(AJ z_i;q{jh;UG;#E<{75Nm_(0dr0@v>gY@`+~;Eo)JJIvLmqM{5{RE(+tSDw5{0{Pc0O zPmcZ7r{D~DCP|uYo448*cuPvdcy<2V)uDocV;C~CHjiP=+DZ`tWzngzI}8B6ShP_u zz7;pG0*f}M>GLRg|0aLk$f KGWX(5+!!dnrqq<)Eu#3+DI?{hIZwJM#NiN 7&>Zqt`#a?q9{X`U=$DzmjH_2aH|I4P`PXpd8UH?9@xPl3xWLCZpb?yp;3A zIs^vHx>)+IwRDgQ3!UbUgbry0l<8NJXUBA_sK@i1n;xI$xl9UhKEJf#QSQm5??~Md z{+Gyt=k2xwO5!(Qd9XF<3@Y1MA`ZGqj_!#jcIp}5?&3-Vx~C>~6?Xnc XnQ)Hfub}UXhZpsT~^AR|KYH4vtEy)$QL;;6 teEG6E zPO~m+hGimLgFdep46(HRFcN(LfL5pEk5eAtivR7cnNL2y<$ds&Ws)tgYx=3X+Xc9( zajCP*KGieS qg^7pQk!4Y9C9*OX_ zI#H{{NDQZ+wYq$MMpKa?hYm5bkz1O;zC}7e1N>T%q@R<;tIPvU`~g&}2sLw_HriFZ zP) | z+8|yr8*lci4`oFU;48`>aJMXmt%cSssAVlzRRs;8#x{W;4NWk&kEWCLbs|@wojW(0 zh}};96;lS$IgRi)z+a}dPPz;=rQKKF@{2)F#CV-;jPl3LwlKq2hKs|h^Xk#f35sar z_neOsmM+z#Mz%(ChS7vEg=voIJA~;*4u*9cpXUpc>eOjc%+G(_Gu%nWzj(9j0u7 I5^ z)NzJzV& Ts}ROk1brHtkapI&w2p9euzm0OmNv}G5C2;l{%~2S^x>$)O(mz zl!V2ujRAebtk%!Z w|OMP6e@+6=h;vRB~!!3bA zs;s4*t(aTa?%MOUIt^=m#M_q@$DmMais G4BVD2>0uSvTLT=tFOGkWw0kDm1_ZUZs6IpEa#-_yW{XR=b8Xl=}4el z75w)o7wd7}e_@#}x}@sf>nCTxQ*0`$tiC7(S%wl!*mL2L4={(UH0+cuxnv$ncu2dc zyYKOA_U5zlkx7^xiOo6l+;V*&?!L#86=&0t0C+MdgLSjA0%nOXIQfy)xqw1`WnXZ^ zjhojlNzfo>7QSnn(jRTWIPNo6q$TFJzR@GcLKCJw#-udT>_(kJeIwES5jcQqaI4CP z6@Z&Qy=8R3eeuQjb-MG;3M!5jE&im@A}#8V>W<4)GT (33DD4o({C@;_ufZep!&5$1x+MNmR(Ed^t?q zjhoE4G_xV2NWjp^w|V%PEGmt^yMjPWIBpo`B^&c-UPqq~JqNCnu%@8%xAYFAB=R$~ zi?KG!3};{DR A%nKEfp0BAi{9Ap_-aqJm3?^hgjYwJk{v-THocqRsC1;WU i`9FTQ|6ES2*rZ9>n0=WkGt>tC^{%a9fW)aep8XFrZj0dn literal 0 HcmV?d00001 diff --git a/src/changed/browser/branding/datcord/document_pdf.ico b/src/changed/browser/branding/datcord/document_pdf.ico new file mode 100644 index 0000000000000000000000000000000000000000..d6fe7c5bded97e155617a1a70ac3ea7c990431da GIT binary patch literal 19994 zcmeHP2|SeD_rEg+lXaw`5Q_8Z%L&hAxkLAPFj@6 zmLfEblqMOWELrFO-1O8Wq*A?~&+mUfoz7j(J?DGRJ@-D(bMF)Y7=Qx=0zfzs*x~?K z001Bod&?0>eJoO^pzx_Y2>`> qFdr1e zVg(2H*0HzsV*R#1o!%=?B(hkjd|VuhrJ%rK!8SiXR6n%Go?yARkEJDxMWy!UVZXvc z7K=dWEknJ% <0 Q^2e?BH;;~8k5=@sbx`w*47{4kYjIot&GvfCLbABZf- z;s+0gok9Wv`i=3vI3ke^roVXk)w;;@=Z9ebHX;Mp{qG{Ef3O7YqWjtJ;86cy>Azzi zJ{#=qzx4t7+<@(n;4_6x{#tIJzP C&pzq{ zcKf}(di{ge|LFKpAHw$qn4q5i?4z-O+JUlYU$m~5|Je9ZA3{GgG< A48~V}seAqUa~o 7=i3A&h~ap G|KT2rd?{EpE zT>~L^gjgQ{1|g1*FNg4)LIEL5gg&2BNDu9t0_g&VayI&>WCl8ef;b0CNSw0ZbK$>0 z5X(R~2damC*!SAMng8Fye*>AT|1u2}F=#!+KF~MP->!$)zL)+V|L>c>pZ7mJn}7uG zW(LED%Ax$r9ZvuKP`U5v?X~&y_|X#+Xm2q5s2n?o=R@$!sXvVH{01iWGrNKH|2h2d z+zy`aA)haw6U5qg4F6U9?EZvvh9>l^67}()#t;1o&n(e1LKFweQJn1fVH N_pX;*A|9bqO_)rexnjH^X-xohDqlrC+Q2b~c &iSv9Hy#ot#RZU34NkN=@g z=tDHI+wQLp#u%FZ3+orX(}0+uKiT6M#R= 9L zha3Mu{{QGl a7q94H=mX9VxFPz Z|w%Bd6=iwb-e|LOv9B>S< zon0Qr4J7p55FIZ&A8!0mH~ZaW1rqZprv7k1+;H9Yw{D=GzH!Em9p--re)juCxK`o( z!!fY$p>QnhV?)P?a(Fig$2HJ=q2u@+_@Qoe45-f=>g&J4KUkc>wE)-0_ptvi|D(QP zzjH?G*m-|@)nIFcy)T;oUH(V)561h>0bBz^@j1KBzlk5>V1MSq-@~wD8%q9fNI{$Ifk zNBB4Kf5Kk)Gk!;B=WpR>!%jf4{0#pa_%p6whwB;o{g<%A@&0N2Nyxub8ZPXA8b8F2 z{F{oPpNW%!`uqw1!{2lL4(zD^naFSIzDK{Z|3e=Qx8KqEfU$@WeF!wvXXrO_2zEcz z-v27^f& o{FLtX6@o@2HLl$QXU>s;eQ!?sh}`uK zA|b_<<{_c` rr_Dqij|=r>~l~ z9CevmYnw)Qtp@k@LymLwPCuZ$W+ $ zw-9kpwE_7u!jKY^h+D89Y16_V;=+KdUIbAAgn1K0`4G0Bu+1BQNkm+SHlWTtt6inB z+B!gQ3=YU<3wXrJkTz0Y %q)UE50TGAC03K~T5s)3C z_Cu*l+mQm$p%KUcq+hUth17^KSUjMLPw_$of&~q |S zfg5S!C*ht-O50*CiTvyAA{ksn$%Xs~sM(U@z=y#BDz5`CWV#MKkWrKOA#LR4Vjq=i zKGH^XpFd@D+{xK5VpUX*`~jsE0*D-bs{fScu6Erh!)1}iG56( $o4;D#dltnjB8YmoF;3r=l^t zwl0pftTmD+4Ngr<9Lu$dWv@jQSMO+H#OIarV!%W-H8mMCjr8O k8yAUtjAj4-VZ?h~k)fBgSaj@r}yXA^~An zuU_3*zW%k>7{Iq))S!Z{Azn*QG~PN#MTMl7R`W)*wi!pu=v)@RY!<=7z1z8b{ Jjz0BFCRjdN?}A`XP+QDV>fSH&sCqCs-I>9vU#6X5cnH6 !z2^tg)s`zO({oLyeX%s6%vkCxGB-Qu2m`6NM=)>Wg{rwz^zZIu?43C@ts z;ll!-oJ}3$7tAVJr!-ElqEhYOJyAuR7(lU>dpY9G8+wdkbV-lfiq_g& l@eiG|DbH_&hYYd{dr@JW0Y$ y>-lE?TIkXSA>v-^Bw4UKld?aA#AvAYEz434jduSgeG3d(wUDhe_{B>lj<&qGV() zIXbRNZQhXbROyufj#_rqk&;rb&R{ZkSJg4=_cW*!1?YSzW5t!_H_~NA7KicZEjeVt zoO)^r>2*g-`N0exJDPE*^~kd6ag74Itoh9+9C~`qUg^x9xOBs|=ayBnH-hA-35w4! zWXGNB{%vnxvzR38xPANLRJW`|PT@&-;71u#+$@k;?)p~H^_*dJjYjVY_`%F|y{I z+v 06w{@v%Nx*96uxn%-nhf0$92db#+JJy zmM&d7{k-DQ`=OHq^G%mn&OB76q WPSgl^!f3aEn z?0Tm_^BeOnZfZHPbm^uGN&2ay53Wyj+IoOQ(pOSHm!ag@)Odwb+q`eOAjyC~6=1ub z%+U?4E3)0ErdwbhnsDtJ+4-&QHH1Z;IJ?=qJ7 kj+<39L9+E3y$iW@ z`wgSzuCF NgQSBr9D@!=BJ23n|>S4z>5HB$^^kLfg@8)54#Y^j8&3OOWqIKNPy?&jcd z ;w11)=8MW@Jyzx8r9vh;Y=7dD6z}+`6LFR_VTixrLbf+O {d-j&hkZblxK!f&TVkW@lqOk8A}@)P-y4WhZ?D|ZWwUIO zTTfS5oZMc-b769$#if@@isNuuV8xT!%T{IBb?kCgL_GBFot#q=E##RO@3=Vn7)1wG z gwvk^j|O&U&SY?zL=qTU?PsnQ6N~*cpLFDeQQ?NKW64;9 ZmM>+m9X(U%Lq#_da*vGw7xrA!rsx^f41sj92Ze 40cy`%?$!R zCZ{?_U bCUp5xLeRBge3=-J!-$k^g>WTgIkP{TC;Y6{FVh zAU?V|BRrh621k7mne$W `A z+FdHddixS5p(hA{qqHrDZez#DGl*&rRJD=v1aRq6G5yG)+tbKWA&zJ6?UO!200JbL z8aLbOMxV{{462$?L1Tf+QFW}ue)am4YrtCY^>%Nt%`(pBc xRANqONUp2{k4iUm#)$(iJ&!>@e4i>va;bOA^NBtn{H+&nymF zGFlo57DdH1<@1BBu8O5x1@dYbAtAkGd8`SD6(q=1$kC5&3@&&-cWjZ7%C)&F{SN_` zMG%W6!i`4m`dSq)1LZ(XmODOOP1`zQZ25emR7iLCx|w> |2$5g^7cLdhb zXN%Ln*#>vqB4o;%s0j%>=FFLLU;geS(_4Xx?Lka@)w}exT{LMk4NDPh_(m^bnbtA2 z3P!K wiqCbyrTvyL~b@;y*@}CaB%wGTfhs*Yw-YhA#aGIkXP5` zqR0#2&sHp=jhv=%j;btPx>M@*mCVeJ1Fy4r>uz{ysW7gmF20sA;c3dwpcl^c4D}o5 zCe#&L=P@47a|5AvyqV)3Y3}6#GTxfa&6A5oER0zEi;rRy9ux=^Cu}Hf_ZsbzajPez zbsTSa>ZsJrdx=#mPUH!xyO6J4UvD<6tkgOn$9?KlilBrsrn#E4cteoT#xqQPkA-+} zW8=8uSK$VWs*N?3@_FXsG+#=By&)S7Iom(1E1xvt lIEHKTYd^3mdMwhK8q^ie8$ErtGhE^7duf4?5jyAd}J%d*j{RBE5@z04v!&> z(L2a;At&YQ%`#RO5-Id0+to9TEV^ya>@+Z0)8uw`zo4(OvdfaF5w}an6fbjo=k%}8 z6;D8nCpGc~*7)bG*;BdD?+$k=vmHBr{PS~_-JPXdGToT(uW-EWZi|Udv@r8GEqK%M zG)?4LyVLklOyWJ|7594H;96=7=QX@-dH+w_y(?So4+fRJiRye26MJC7h8-)r#9U)y z=D%p0QX8GNbf1~T3@)NnkW9zpxI1p8ezBAy9?s~n`1B>s?Tlv@_Up6{V~X%vz^CHr zs6gR{G8ZjTM;gywzj^OU{gTq=WeH%j4&L+2c9Wliv2^Wt^yZ%H2#=udC9P}75_mA3 zhx4jXx2*F1oirXyv6^Ufbh2Cy0h=|o*p57^HudoYf)}vl##9-ENu}YQPZ{NNey&jG z8b^*Nnt zT5(Jv0bC}6^dhCJg3ZqK`|>HyA FChCY@3Bd7-a 5*De1;qcij+1xn;tXpaNq%Nj|Z2Q`po-~)mgX2t|Ni8 zR}x1x5ft~ar$*LU<=ez2$GtC8a&ML0-MXapG>!{Hwl=W2BzT}((s<3)SXuK}%Ne`l z4{bihoyCKt=2S#7p5M0gTOoTVacnJ8F`5tStyz}cCg?N%EsZOi2yRvFR97dH2|#lu zUtO+5Kxa<|g`_EoUvpEGyqp=9;1JVAv6{$?iaBpBAV(#R;wg1{;t-3}mFz0UT5@8l zE@|DYm~}6&Ky`&w{LOo zI=R*;|H+2J%Yt`HE^RWcclE`QpYUGD?8rTHmlxSEDYxTBrP}Rrsn3m@qbF=KV(g2_ z*H?G};w}GMa>bMLO-$l-1=JPr__uRih?#=eaIFO7tGRgNnU-y ?kVkU4~1{bw-XB@4Q=E7ip zc?U&z;Zu*)F}(4G;$#PO*S=EZ%qdO^Vl`WpRndD|>FY(fvl8gtZ*RzF7BbxPqY5r? zB3nE15q}H0!{E_I{%5t1d;K>Rkq14z+usMVOq_&()#06>tKQx{zzjz `vksKBY5*A@mL_uW9Q52N$t(b@cD~bpr zAW;PcL_|Pj1rbofogpatzu*7ebI-fyz4PAJXM3vZSJl-$Ju}tSy#PQ2kOH){07xkS zPci^F0RR9O*S36<0swFzCN91s?*{-2utJ3h-~#wL0bqj-0Qf-}bO9pUb|8V6Uj^cK z pkWT?IP%Z>%0a%MJfIKMYgLVaA zyTVH#1uKL@auLXH=|MRU(nG#Md&p+j9+LAxykHmKm3Odw$j6TT&$f{5AN8k?KX9lo zXbgYa{~P(&B>ltvGXwwM&j2|yF*FCn%;XTE7FCu((6O-4A!L 2 zpkk|Rf( 2xU!l8J)6&pdi8)KpPyf;Qe_->rujiX!f z9P+W(7UH2kAbXHP@fz~8CGTL6A4s=(pNKGGx0`fBJ>wT|YZEKifm{ zZeI}ppZJ4({$}%s-IgB0cI#e$yVx(f{Z#+C{xbvrugt){L&x-(f87kT-mydbeu<1a zJ}4B*>K9-Iil=lAYy)IUL69g*MJuA9t*@`GAVNzecM61p6rp$svjka`F+0*8qT9tD z$!-jB=3v}JLX5s4 GSG)4Bmk&_#M5_=YKQgp1Q}HTIQp-uUx*X{2<}Kh5>)KY z5bwlJC9&I^0011^(d&R?Jp%DZKt^u|JO}{$0=Icl=w2WeiuIz~SRj~?12)^dJjgOa zEF;LsZ(}Dx7SP`2-Dv?bLx?p5lYIAW47@#XUEAhSr%bno2M*8_nr^5-iwv-TX8_yK z-fI9Aqz6p*VtaX$Ej1v#7u(AVZtF>0_JY57SLpFU N1eJ!AQ`dN6*+?812jI2C7tc-AW6?Ze A5 )RLbZWQk%~Q}|K2l!3ovZwr zr$GBdC^soNx1FC{O#s(RaIXmA&>j)WH?D%Y29&cvYb}&}?B*tU(0U5$i$Dz8Gw#h% zp!{Sj|JYey3qkqM90gj_ch`R?$JpXQ`k&@4P#=&Dq=$U&wB2e4>7e_7a8SRMYe2R; z@~-`E9 4ssl7aCTeJHvUhox0J@(+csw*`_o%|(9S( Dbwlhs=(!90CP1J%WG}s|2B|NUijn$mBfkk-&{ihK zw#S|aascpbBfkk-(AIkd+hb3?Wly_}{3dKc+pol)ncOy^-fO=jKv4LWH^5 F?X2VmJThKL)24B@sb|0aOo?z r?z`4;)TPa^knxiA}#Z#8~h+CM6yIWxK_RM hnMB}M% X;?TDn96MwraAw7h2i{bp`f-}Zblbh_9{15kkd HU z?I0QQ3sP`z2<{I5o`U;EaOVh(bDOR~R2cw%qu_mjdrNS43C;&Z!OLbW0K`IcjB|w? zqAQ#$oDkhA|9zThWS~h6XMxTPsI|3_;L*kQ#*_kzezrk3-NAnd=CzTkW?`@A-kiaj z4dj3PGCyzDcj>f@ I5OJIMi@d^m0o1X?c;9h`iu$ zWw=ofkxa^u!Cn4^xb=$0 {2C}(OHy%X7X8v@9C$AZva2YQ8PJSWZ0FtW?f>N*mIG!%|sR_XN$rH ziC<#ADxMsz#iSuuk97zr9Zk3_-4^xosT@9NX!4SpA;ahuw4gG& Cr$$` _(d*UfQo-1DnW#%vDK@vmGhIn5`RxPM-h;SJ$G<;>@ z%Iv}u4fz{KSkosIvx>#ZWQhsHO`Y=Q8PXIo)=c9uR>T0}!&d@nCsK}Y%)fZ)@Q7G| z{~LFXztWYWOAx5(=z@SN_-uS4>9F~nYVFXu&Pnan#@Rdd7JaayBR5Q=3XjF#+86fv z5?--*WZ?DTlzLH@`?H-h_Kh9WVR>;u3J}Yt0XVI&35*+;kpCsN_y-?qHaEic5`gZYZcibiTd 0oWUCv%xT%5VoUgvb zDCMpdnsr<3WAFM*JPhx^uLtlF|2VM0O8H5bK;quI5L*+gOyr+P$Pla`vmm*(EKo6Z z|EZ1BzMeWY&86t4D6BQ+3`4w!;`oJ=A6ckoNqb(Dq%r!Ljn}Fe@GBH`TnaW_n8mx; zl`^c8o;xq8ovu!+q^sm~>EcQ?nJ+6rvLj~v3mc($sCzNEE7LNr$w<@S#`g|4yf#t( z!Xd+~<9q_$8ez?crG*((&RDdS5!A846d#7a(9z-i^gGg2AJ@p KZW%$Tk&OAIA|tQ?owy45QRImdEjdAXfus#)OgObw1wn}VMMJ{IskwE zP^dkIlJv{-RV=@yg?!FvYM*+PtSa`FAR9?!?^5H1vLzC+wJ?HJ$>@XZ$p~&GWx!xR zSGB%Msm)WW8>(-e(g67S8Y|2_dgHF3t(1(wa%OM d) z_EsVJhbYUp!c*MYqKfuo3F!K>w*+htoRI0klp6w+etje}^uop~Cx9EnTmd28IvE)e zj%O@Vmd0Zk?djnt#MRZOci}>cD{kI81^i26EzGKXglruW oXq*qdKO{; zg1*zGs9|>eib?cUsH1o(MgzWD84~@#K_P|n0rMF$E9SQ;6R!8298xHFc68J1=G7MF zV}RxTlJ^!vGS_U)vjN0NDR~&of+A85-Pd@t Vq8eLVFs4;!_ zdZ>r;%YuPG42*Aze#DlTAvu%oGwmejNz*&0EtMbeS7^s-m~Dig6zl2Dxss0aR}m=Z zCAuCge@A 2nR1-O>AQ z)qDEt+9^$CZ2L41f6`5qk4o)b5rL_CQB>eni`Z|K1;s{#N9t4uD*`r>Ip#u8)2>Uk zTIv3#>v!inzxgtZ8!-C$9XBj^^_B(&>Ktm5;Azc#dA8K1i7tfze73Dog{PTz(jh7( z_*~a}!HX1ye~B~5c7#~#UoW7yx)V+vN*#4}>#O=!b*}|6Rq;k&@AbgS74O@Iz?`*j z-x`;Go!^}Oql*ul->aEqiw1 W1cy&r-*K^Q-mstf?Yot@3u*UPe0ldFx2xC~K3L zCn}^W&MdVEVVCn_a`~C6tDmxS=Fi8xWy?LMSR)hT*C;466h0z*T!58)Lo#h34Sif- zUf^MA#EM=XC(RRiBG)_hSjiLXWP>-`Myb9o%HOTGOp#QN*Nv6HJ#%yRO~cPcb)1d0 z%s!qmjU1g&ax`i8VDR(O?a&*-ybcVL7=S*d$z|-u%G?layz`azt6J!5O&4lcesl{p zm{}$=Oj}QXIXfRafEk=HG;Xqg7aqAJ=ks}W;lV7iuc1$&?~m0s37%FyHOpldgMCk2 z??l)%FVL?d;?1K?%TxKKzNcqOTHAeh61&zg>X@TeHlG;wj&3**ZB-3O+C?a|`0L0% zwwxp{=pnl&V0+#?f}xTF(=Z!9zx1e#U&f?^3A@l*jR+qJIh1h0jZy{Ut-JDtBi>uV zi3X$0-`OJA46~2Jhk~7$Weba^ta)j+eyQyWA*$v(ErQmt&Ob~DfSr4w6`hO*J(qBd zNsk4$aufwPj||eCx1&_ypC0C1Xa*|Qc)h5xMyo^$Jah6NQ(E84qaPyNLg2@abW@oM zvJJg0aR_8@bG)qs5L?zKKg<#@6Ymb8ifeVJDk9K7nYV3o(tC-N<-N&RD#VzJK*Ja9 z+8p(`vCr(ziE|-D&@J+xZ|4cP=}|<+YX`nOtb`B&%-tJ6KNR7Q-%HIuAiHc`?&3!3 z-~YNxwzL}NGp8-SQ9ga=p&Q$08{kOoQ^DpkX?VlX@)x_IKv`cRC@35)7>W(V`NvD_ zubj1i6z{xzlp?MVp)wJhhXLok;hVq0WhvWzV@HX!q76e`yfUUHP`7D4?9eS|IX8#g z#xEt3ILJC%o-vDWwWh>(H{bQwd#=l`Z8>zhmze+4!s4-Nr9ufHw;mH^`-%7cb+VqD zd2!~^F8eO}eUp3Eipl2&3{M3H+POFjpH~#qMT9dszK~QzDij18Te-Z`i`suFVrlHD z4e%~7x_{_sDNF55)>K|Jm^BqGut#4ySlT7fpZXM;1Ds%gdcbj>|JErz##Ps=$w=N_ z(lK@OPuYGKh1OU3TvHQ$XsZaHHrYFdKlWvvyzN#)^U~u9)pYVZ=hXW^PP$Z8hkqyT zsNb9XP4 i?ck`dyWPl&pzbrNW7 zd1W;zQ)(5WNO;aKdO(}lX!0vR&ZRTpP{2v#5X{oOEE#+nE+T-7&iLY?Gc|VnG4RF1 z<2Aquaq5b-C)kcYx;&Qe8fsz*;v!$YnWd=0374vF(RndBs%9SJi(kS&t)g`96z}i5 z^-21c#<6oDu|_sPLEF&n4u8Em7Wx)#Cws1bQZ8t;g7iU5^7lklJZ>EOdhCm)&-Ysr z=@cQ2_#SYS`gv$@&IP6GjpdXo)6TsjqqslstoIjf7Rz9r2oW d0myC2P*QC1L#)cjrt-B%T$VBTm*y)Z-pVTrbdXV^GA*Nis36k z4szt9sI+6g?Ao~$zAD#dTS#3QE>9yQC%ZhKy+^ThP~%l`loJ>DD^A*Q_h_re@}hJ7 zdP`|ePbhjVuE#hywx9PCEtJ-c5LA5iF3;fOxnbj`_w|nHv~KDAQ_tlb?Em^|JDr#8 zW6=u_E_;qs9rfd^(!8vjK%N7D-~I*sqZgx0Q`I*Ex<;;#aDGjclCwK2`6z_w8OnQ^ z#r=9;FB3sAo3|q$-q0ZG*pFPD9Ylm5y}3x1qe0fhwk{Irmv$qM_QWK)Cm3tT=Ixm7 zPz~KHdEZhb6f<5hLY}A9 {<5#f1OTyMo&(M)P^+U}!W z*i8|hRDDwK?imccrdAYXMq2IX=bZA@x|j9wDzP`w(NL+nQo-gROKdu45l1P>tQ}Jn z-^R<_v0-ETDrp|w*akZ$1wnX&jQ{wpv+@p(FqMkPd-cfKS&X%@1Ij|@t@*gg5N0$n z+fqN1+SuV9hbYnEW}Flej)r!G8O`*znC$iuTh`WU{b4ZA3Qc_CUs}Rn@!BNlR+4wO zPJ2Uny!;1RDG5EGBhbK4 p Xz{t_3Z^Ev%ii ;>*W pA%ZCFSU4jsEqh#L^-* z>uCW&1K_?SaI@tH&V|{l=FLc3|Gno?RO)54FV7y7m^wz(-wPDMZS2~_`zwQ6!zU?& zLUM{IzWlJmybsRLKlx(CMgvxqun+ihH2PT{nFL&c&6!yT6EP%#yngjo>IHXF3oPK} z3D9EPha{+$U?H5QregYFS31(s5}1-+c`IY$o9RUOv+H)`;{C@0Inyk=n;^BLGU&qU z 0yiJ*&&UUNizrU7_l#pihPAR3zYo5|FqVN$il^mj*bam- zR&aT$L$P{|l b#Irb13X97@`bIfVPlVIp7{q+F=&d;^ggq-wfbSL z^Pp*+ygzZ?-Tdvh%4$`r56Ieyr6oe98@tuuq}RPo AFidjS2*npP^3Ov}p~& z^%yU$E2t=pYMjr@Shd%(=HxftA7D4eELZFhUL`IqAHXh`Urx| ~(Zi+|`B)Pgttpgi+8xY{XYz^X