summaryrefslogtreecommitdiff
path: root/librewolf/debian/patches/librewolf
diff options
context:
space:
mode:
Diffstat (limited to 'librewolf/debian/patches/librewolf')
-rw-r--r--librewolf/debian/patches/librewolf/about-dialog.patch12
-rw-r--r--librewolf/debian/patches/librewolf/add-language-warning.patch8
-rw-r--r--librewolf/debian/patches/librewolf/armhf-reduce-linker-memory-use.patch22
-rw-r--r--librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch69
-rw-r--r--librewolf/debian/patches/librewolf/browser-confvars.patch28
-rw-r--r--librewolf/debian/patches/librewolf/custom-ubo-assets-bootstrap-location.patch17
-rw-r--r--librewolf/debian/patches/librewolf/disable-data-reporting-at-compile-time.patch18
-rw-r--r--librewolf/debian/patches/librewolf/fix-armhf-webrtc-build.patch65
-rw-r--r--librewolf/debian/patches/librewolf/hide-default-browser.patch13
-rw-r--r--librewolf/debian/patches/librewolf/librewolf-pref-pane.patch817
-rw-r--r--librewolf/debian/patches/librewolf/megabar.patch118
-rw-r--r--librewolf/debian/patches/librewolf/mozilla-vpn-ad.patch30
-rw-r--r--librewolf/debian/patches/librewolf/pref-naming.patch11
-rw-r--r--librewolf/debian/patches/librewolf/privacy-preferences.patch62
-rw-r--r--librewolf/debian/patches/librewolf/reduce-rust-debuginfo.patch21
-rw-r--r--librewolf/debian/patches/librewolf/relax-cargo-dep.patch12
-rw-r--r--librewolf/debian/patches/librewolf/remove-branding-urlbar.patch6
-rw-r--r--librewolf/debian/patches/librewolf/remove-organization-policy-banner.patch4
-rw-r--r--librewolf/debian/patches/librewolf/remove_addons.patch7
-rw-r--r--librewolf/debian/patches/librewolf/use-system-icupkg.patch13
-rw-r--r--librewolf/debian/patches/librewolf/webrtc-fix-compiler-flags-for-armhf.patch35
21 files changed, 1005 insertions, 383 deletions
diff --git a/librewolf/debian/patches/librewolf/about-dialog.patch b/librewolf/debian/patches/librewolf/about-dialog.patch
deleted file mode 100644
index 556d7b5..0000000
--- a/librewolf/debian/patches/librewolf/about-dialog.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -147,7 +147,7 @@
- </description>
- </vbox>
- <description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
-- <label is="text-link" href="https://www.mozilla.org/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-name="community-mozillaLink"/>
-+ <label is="text-link" href="https://librewolf.net/" data-l10n-name="community-mozillaLink"/>
- <label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-creditsLink"/>
- </description>
- <description class="text-blurb" id="contributeDesc" data-l10n-id="helpus">
diff --git a/librewolf/debian/patches/librewolf/add-language-warning.patch b/librewolf/debian/patches/librewolf/add-language-warning.patch
deleted file mode 100644
index fad50f7..0000000
--- a/librewolf/debian/patches/librewolf/add-language-warning.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/browser/locales/en-US/browser/preferences/languages.ftl
-+++ b/browser/locales/en-US/browser/preferences/languages.ftl
-@@ -70,4 +70,4 @@
- browser-languages-installed-label = Installed languages
- browser-languages-available-label = Available languages
-
--browser-languages-error = { -brand-short-name } can’t update your languages right now. Check that you are connected to the internet or try again.
-+browser-languages-error = { -brand-short-name } forces your language to en-US in order to protect your privacy. If you still want to make this change, check our FAQ.
diff --git a/librewolf/debian/patches/librewolf/armhf-reduce-linker-memory-use.patch b/librewolf/debian/patches/librewolf/armhf-reduce-linker-memory-use.patch
deleted file mode 100644
index a9afe2d..0000000
--- a/librewolf/debian/patches/librewolf/armhf-reduce-linker-memory-use.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Description: starting with firefox 66, armhf builds on Launchpad frequently
- fail with "/usr/bin/ld: final link failed: memory exhausted" when linking
- libxul.so. This is an attempt to reduce the memory used by ld.
-Author: Olivier Tilloy <olivier.tilloy@canonical.com>
-
---- a/build/moz.configure/toolchain.configure
-+++ b/build/moz.configure/toolchain.configure
-@@ -2287,10 +2287,12 @@
- set_config("LINKER_KIND", select_linker.KIND)
-
-
--@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler)
-+@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler, host)
- @imports("os")
--def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler):
-+def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler, host):
- flags = list((linker and linker.LINKER_FLAG) or [])
-+ if host.cpu == "arm":
-+ flags.append("-Wl,--no-keep-memory")
- # rpath-link is irrelevant to wasm, see for more info https://github.com/emscripten-core/emscripten/issues/11076.
- if sysroot.path and multiarch_dir and target.os != "WASI":
- for d in ("lib", "usr/lib"):
diff --git a/librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch b/librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch
new file mode 100644
index 0000000..6bedf32
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/bootstrap-without-vcs2.patch
@@ -0,0 +1,69 @@
+diff --git a/python/mozboot/mozboot/bootstrap.py b/python/mozboot/mozboot/bootstrap.py
+index b0d6965..8ea2e15 100644
+--- a/python/mozboot/mozboot/bootstrap.py
++++ b/python/mozboot/mozboot/bootstrap.py
+@@ -549,10 +549,8 @@ def current_firefox_checkout(env, hg: Optional[Path] = None):
+ if not len(path.parents):
+ break
+
+- raise UserError(
+- "Could not identify the root directory of your checkout! "
+- "Are you running `mach bootstrap` in an hg or git clone?"
+- )
++ return ("local", os.getcwd())
++
+
+
+ def update_git_tools(git: Optional[Path], root_state_dir: Path):
+diff --git a/python/mozversioncontrol/mozversioncontrol/__init__.py b/python/mozversioncontrol/mozversioncontrol/__init__.py
+index dd31f53..6f0087a 100644
+--- a/python/mozversioncontrol/mozversioncontrol/__init__.py
++++ b/python/mozversioncontrol/mozversioncontrol/__init__.py
+@@ -684,6 +684,29 @@ class GitRepository(Repository):
+ self._run("config", name, value)
+
+
++class LocalRepository(Repository):
++
++ def __init__(self, path):
++ super(LocalRepository, self).__init__(path, tool="true")
++
++ @property
++ def head_ref(self):
++ return ""
++
++ def get_outgoing_files(self):
++ return []
++
++ def get_changed_files(self):
++ return []
++
++ def get_tracked_files_finder(self):
++ files = [os.path.relpath(os.path.join(dp, f), self.path).replace("\\","/") for dp, dn, fn in os.walk(self.path) for f in fn]
++ files.sort()
++ return FileListFinder(files)
++
++
++
++
+ def get_repository_object(path: Optional[Union[str, Path]], hg="hg", git="git"):
+ """Get a repository object for the repository at `path`.
+ If `path` is not a known VCS repository, raise an exception.
+@@ -697,7 +720,7 @@ def get_repository_object(path: Optional[Union[str, Path]], hg="hg", git="git"):
+ elif (path / ".git").exists():
+ return GitRepository(path, git=git)
+ else:
+- raise InvalidRepoPath(f"Unknown VCS, or not a source checkout: {path}")
++ return LocalRepository(path)
+
+
+ def get_repository_from_build_config(config):
+@@ -721,6 +744,8 @@ def get_repository_from_build_config(config):
+ return HgRepository(Path(config.topsrcdir), hg=config.substs["HG"])
+ elif flavor == "git":
+ return GitRepository(Path(config.topsrcdir), git=config.substs["GIT"])
++ elif flavor == "local":
++ return LocalRepository(config.topsrcdir)
+ else:
+ raise MissingVCSInfo("unknown VCS_CHECKOUT_TYPE value: %s" % flavor)
+
diff --git a/librewolf/debian/patches/librewolf/browser-confvars.patch b/librewolf/debian/patches/librewolf/browser-confvars.patch
deleted file mode 100644
index 9b40dce..0000000
--- a/librewolf/debian/patches/librewolf/browser-confvars.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/browser/confvars.sh b/browser/confvars.sh
-index 92871c9516..1e151180dd 100644
---- a/browser/confvars.sh
-+++ b/browser/confvars.sh
-@@ -3,8 +3,10 @@
- # 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_VENDOR=Mozilla
--MOZ_UPDATER=1
-+MOZ_APP_BASENAME=LibreWolf
-+MOZ_APP_VENDOR="LibreWolf Community"
-+
-+MOZ_UPDATER=0
-
- if test "$OS_ARCH" = "WINNT"; then
- if ! test "$HAVE_64BIT_BUILD"; then
-@@ -34,8 +36,8 @@ BROWSER_CHROME_URL=chrome://browser/content/browser.xhtml
- # For mozilla-beta, mozilla-release, or mozilla-central repositories, use
- # "unofficial" branding.
- # For the mozilla-aurora repository, use "aurora".
--MOZ_BRANDING_DIRECTORY=browser/branding/unofficial
--MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/official
-+MOZ_BRANDING_DIRECTORY=browser/branding/librewolf
-+MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/librewolf
- MOZ_APP_ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-
- MOZ_PROFILE_MIGRATOR=1
diff --git a/librewolf/debian/patches/librewolf/custom-ubo-assets-bootstrap-location.patch b/librewolf/debian/patches/librewolf/custom-ubo-assets-bootstrap-location.patch
new file mode 100644
index 0000000..81a703f
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/custom-ubo-assets-bootstrap-location.patch
@@ -0,0 +1,17 @@
+--- a/toolkit/components/extensions/parent/ext-storage.js
++++ b/toolkit/components/extensions/parent/ext-storage.js
+@@ -177,6 +177,14 @@ this.storage = class extends ExtensionAPI {
+
+ let data = await lookup;
+ if (!data) {
++ const assetsBootstrapLocation = Services.prefs.getStringPref("librewolf.uBO.assetsBootstrapLocation", undefined);
++ if (extension.id == "uBlock0@raymondhill.net" && assetsBootstrapLocation) {
++ return {
++ adminSettings: {
++ assetsBootstrapLocation
++ }
++ }
++ }
+ return Promise.reject({
+ message: "Managed storage manifest not found",
+ });
diff --git a/librewolf/debian/patches/librewolf/disable-data-reporting-at-compile-time.patch b/librewolf/debian/patches/librewolf/disable-data-reporting-at-compile-time.patch
new file mode 100644
index 0000000..3702402
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/disable-data-reporting-at-compile-time.patch
@@ -0,0 +1,18 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index 8653bcb..935af40 100644
+--- a/browser/moz.configure
++++ b/browser/moz.configure
+@@ -5,11 +5,11 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ imply_option("MOZ_PLACES", True)
+-imply_option("MOZ_SERVICES_HEALTHREPORT", True)
++imply_option("MOZ_SERVICES_HEALTHREPORT", False)
+ imply_option("MOZ_SERVICES_SYNC", True)
+ imply_option("MOZ_DEDICATED_PROFILES", True)
+ imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True)
+-imply_option("MOZ_NORMANDY", True)
++imply_option("MOZ_NORMANDY", False)
+
+ with only_when(target_is_linux & compile_environment):
+ option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
diff --git a/librewolf/debian/patches/librewolf/fix-armhf-webrtc-build.patch b/librewolf/debian/patches/librewolf/fix-armhf-webrtc-build.patch
deleted file mode 100644
index 5256fc7..0000000
--- a/librewolf/debian/patches/librewolf/fix-armhf-webrtc-build.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
-+++ b/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
-@@ -31,10 +31,6 @@ LOCAL_INCLUDES += [
- "/tools/profiler/public"
- ]
-
--UNIFIED_SOURCES += [
-- "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
--]
--
- if not CONFIG["MOZ_DEBUG"]:
-
- DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "0"
-@@ -53,20 +49,36 @@ if CONFIG["CPU_ARCH"] == "aarch64":
- DEFINES["WEBRTC_ARCH_ARM64"] = True
- DEFINES["WEBRTC_HAS_NEON"] = True
-
--if CONFIG["CPU_ARCH"] == "arm":
--
-- CFLAGS += [
-- "-mfpu=neon"
-+ UNIFIED_SOURCES += [
-+ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
- ]
-
-+if CONFIG["CPU_ARCH"] == "arm":
-+
- DEFINES["WEBRTC_ARCH_ARM"] = True
- DEFINES["WEBRTC_ARCH_ARM_V7"] = True
- DEFINES["WEBRTC_HAS_NEON"] = True
-
-+if CONFIG["CPU_ARCH"] == "ppc64":
-+
-+ UNIFIED_SOURCES += [
-+ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
-+ ]
-+
- if CONFIG["CPU_ARCH"] == "x86":
-
- CFLAGS += [
- "-msse2"
- ]
-
-+ UNIFIED_SOURCES += [
-+ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
-+ ]
-+
-+if CONFIG["CPU_ARCH"] == "x86_64":
-+
-+ UNIFIED_SOURCES += [
-+ "/third_party/libwebrtc/webrtc/system_wrappers/source/cpu_features_linux.c"
-+ ]
-+
- Library("cpu_features_linux_gn")
---- a/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
-+++ b/third_party/libwebrtc/webrtc/system_wrappers/BUILD.gn
-@@ -187,7 +187,7 @@ if (is_android && !build_with_mozilla) {
- }
- }
-
--if (is_linux) {
-+if (is_linux && target_cpu != "arm") {
- rtc_static_library("cpu_features_linux") {
- sources = [
- "source/cpu_features_linux.c",
diff --git a/librewolf/debian/patches/librewolf/hide-default-browser.patch b/librewolf/debian/patches/librewolf/hide-default-browser.patch
new file mode 100644
index 0000000..4923780
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/hide-default-browser.patch
@@ -0,0 +1,13 @@
+diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
+index 855ee64..617911a 100644
+--- a/browser/components/preferences/main.inc.xhtml
++++ b/browser/components/preferences/main.inc.xhtml
+@@ -32,7 +32,7 @@
+ </vbox>
+
+ #ifdef HAVE_SHELL_SERVICE
+- <vbox id="defaultBrowserBox">
++ <vbox id="defaultBrowserBox" hidden="true">
+ <checkbox id="alwaysCheckDefault" preference="browser.shell.checkDefaultBrowser"
+ disabled="true"
+ data-l10n-id="always-check-default"/>
diff --git a/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch b/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch
new file mode 100644
index 0000000..931526a
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/librewolf-pref-pane.patch
@@ -0,0 +1,817 @@
+diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
+new file mode 100644
+index 0000000..2badfe9
+--- /dev/null
++++ b/.gitlab-ci.yml
+@@ -0,0 +1,12 @@
++stages:
++ - build
++
++create-patch:
++ stage: build
++ variables:
++ GIT_DEPTH: 200
++ script:
++ - git diff 1fee314adc81000294fc0cf3196a758e4b64dace > librewolf-pref-pane.patch
++ artifacts:
++ paths:
++ - librewolf-pref-pane.patch
+diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
+index 4f3babe..97c7ec2 100644
+--- a/browser/components/preferences/jar.mn
++++ b/browser/components/preferences/jar.mn
+@@ -11,6 +11,7 @@ browser.jar:
+ content/browser/preferences/home.js
+ content/browser/preferences/search.js
+ content/browser/preferences/privacy.js
++ content/browser/preferences/librewolf.js
+ content/browser/preferences/containers.js
+ content/browser/preferences/sync.js
+ content/browser/preferences/experimental.js
+diff --git a/browser/components/preferences/librewolf.inc.xhtml b/browser/components/preferences/librewolf.inc.xhtml
+new file mode 100644
+index 0000000..f27541d
+--- /dev/null
++++ b/browser/components/preferences/librewolf.inc.xhtml
+@@ -0,0 +1,224 @@
++# This Source Code Form is subject to the terms of the Mozilla Public
++# License, v. 2.0. If a copy of the MPL was not distributed with this
++# file, You can obtain one at http://mozilla.org/MPL/2.0/.
++
++<script src="chrome://browser/content/preferences/librewolf.js"/>
++
++<html:template id="template-paneLibrewolf">
++
++<hbox class="subcategory" hidden="true" data-category="paneLibrewolf">
++ <html:h1 data-l10n-id="librewolf-header"/>
++</hbox>
++
++<groupbox hidden="true" data-category="paneLibrewolf">
++ <html:h2 data-l10n-id="librewolf-general-heading"/>
++
++ <!-- TEMPLATE FOR A NEW PREFERENCE
++ <hbox>
++ <checkbox id="librewolf-LABEL-checkbox" data-l10n-id="librewolf-LABEL-checkbox" preference="PREF" flex="1" />
++ <html:label for="librewolf-LABEL-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-LABEL-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-LABEL-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-LABEL-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="PREF" label="PREF" />
++ </vbox>
++ </vbox>
++ -->
++
++ <hbox>
++ <checkbox id="librewolf-extension-update-checkbox" data-l10n-id="librewolf-extension-update-checkbox" preference="extensions.update.autoUpdateDefault" flex="1" />
++ <html:label for="librewolf-extension-update-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-extension-update-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-extension-update-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-extension-update-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="extensions.update.autoUpdateDefault" label="extensions.update.autoUpdateDefault" />
++ <checkbox preference="extensions.update.enabled" label="extensions.update.enabled" />
++ </vbox>
++ </vbox>
++
++
++ <hbox>
++ <checkbox id="librewolf-autocopy-checkbox" data-l10n-id="librewolf-autocopy-checkbox" preference="clipboard.autocopy" flex="1" />
++ <html:label for="librewolf-autocopy-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-autocopy-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-autocopy-description" />
++ <checkbox preference="clipboard.autocopy" label="clipboard.autocopy" />
++ <checkbox preference="middlemouse.paste" label="middlemouse.paste" />
++ </vbox>
++ </vbox>
++
++ <hbox>
++ <checkbox id="librewolf-styling-checkbox" data-l10n-id="librewolf-styling-checkbox" preference="toolkit.legacyUserProfileCustomizations.stylesheets" flex="1" />
++ <html:label for="librewolf-styling-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-styling-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-styling-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-styling-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="toolkit.legacyUserProfileCustomizations.stylesheets" label="toolkit.legacyUserProfileCustomizations.stylesheets" />
++ </vbox>
++ </vbox>
++
++</groupbox>
++
++<groupbox hidden="true" data-category="paneLibrewolf">
++ <html:h2 data-l10n-id="librewolf-network-heading" />
++
++ <hbox>
++ <checkbox id="librewolf-ipv6-checkbox" data-l10n-id="librewolf-ipv6-checkbox" preference="network.dns.disableIPv6" flex="1" />
++ <html:label for="librewolf-ipv6-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-ipv6-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-ipv6-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-ipv6-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="network.dns.disableIPv6" label="network.dns.disableIPv6" />
++ </vbox>
++ </vbox>
++
++</groupbox>
++
++<groupbox hidden="true" data-category="paneLibrewolf">
++ <html:h2 data-l10n-id="librewolf-broken-heading" />
++
++ <hbox>
++ <checkbox id="librewolf-rfp-checkbox" data-l10n-id="librewolf-rfp-checkbox" preference="privacy.resistFingerprinting" flex="1" />
++ <html:label for="librewolf-rfp-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-rfp-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-rfp-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-rfp-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="privacy.resistFingerprinting" label="privacy.resistFingerprinting" />
++ </vbox>
++ </vbox>
++
++ <vbox class="indent">
++
++ <hbox>
++ <checkbox id="librewolf-letterboxing-checkbox" data-l10n-id="librewolf-letterboxing-checkbox" preference="privacy.resistFingerprinting.letterboxing" flex="1" />
++ <html:label for="librewolf-letterboxing-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-letterboxing-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-letterboxing-description" />
++ <checkbox preference="privacy.resistFingerprinting.letterboxing" label="privacy.resistFingerprinting.letterboxing" />
++ </vbox>
++ </vbox>
++
++ <hbox>
++ <checkbox id="librewolf-auto-decline-canvas-checkbox" data-l10n-id="librewolf-auto-decline-canvas-checkbox" preference="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" flex="1" />
++ <html:label for="librewolf-auto-decline-canvas-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-auto-decline-canvas-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-auto-decline-canvas-description" />
++ <html:div> <label data-l10n-id="librewolf-auto-decline-canvas-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" label="privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" />
++ </vbox>
++ </vbox>
++
++ </vbox>
++
++ <hbox>
++ <checkbox id="librewolf-webgl-checkbox" data-l10n-id="librewolf-webgl-checkbox" preference="webgl.disabled" flex="1" />
++ <html:label for="librewolf-webgl-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-webgl-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-webgl-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-webgl-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="webgl.disabled" label="webgl.disabled" />
++ </vbox>
++ </vbox>
++
++
++</groupbox>
++
++<groupbox hidden="true" data-category="paneLibrewolf">
++ <html:h2 data-l10n-id="librewolf-security-heading" />
++
++ <hbox>
++ <checkbox id="librewolf-ocsp-checkbox" data-l10n-id="librewolf-ocsp-checkbox" preference="security.OCSP.require" flex="1" />
++ <html:label for="librewolf-ocsp-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-ocsp-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-ocsp-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-ocsp-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="security.OCSP.require" label="security.OCSP.require" />
++ </vbox>
++ </vbox>
++
++ <hbox>
++ <checkbox id="librewolf-goog-safe-checkbox" data-l10n-id="librewolf-goog-safe-checkbox" preference="browser.safebrowsing.malware.enabled" flex="1" />
++ <html:label for="librewolf-goog-safe-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-goog-safe-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-goog-safe-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-goog-safe-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="browser.safebrowsing.malware.enabled" label="browser.safebrowsing.malware.enabled" />
++ <checkbox preference="browser.safebrowsing.phishing.enabled" label="browser.safebrowsing.phishing.enabled" />
++ <checkbox preference="browser.safebrowsing.blockedURIs.enabled" label="browser.safebrowsing.blockedURIs.enabled" />
++ <checkbox preference="browser.safebrowsing.provider.google4.gethashURL" label="browser.safebrowsing.provider.google4.gethashURL" id="librewolf-goog-safe-hash4"/>
++ <checkbox preference="browser.safebrowsing.provider.google4.updateURL" label="browser.safebrowsing.provider.google4.updateURL" id="librewolf-goog-safe-up4"/>
++ <checkbox preference="browser.safebrowsing.provider.google.gethashURL" label="browser.safebrowsing.provider.google.gethashURL" id="librewolf-goog-safe-hash"/>
++ <checkbox preference="browser.safebrowsing.provider.google.updateURL" label="browser.safebrowsing.provider.google.updateURL" id="librewolf-goog-safe-up"/>
++ </vbox>
++ </vbox>
++
++ <vbox class="indent">
++ <hbox>
++ <checkbox id="librewolf-goog-safe-download-checkbox" data-l10n-id="librewolf-goog-safe-download-checkbox" preference="browser.safebrowsing.downloads.enabled" flex="1" />
++ <html:label for="librewolf-goog-safe-download-collapse" class="sidebar-footer-link" pack="end"> <image class="sidebar-footer-icon help-icon"/> </html:label>
++ </hbox>
++ <vbox class="librewolf-collapse indent">
++ <html:input type="checkbox" id="librewolf-goog-safe-download-collapse" />
++ <vbox class="librewolf-collapsed tracking-protection-ui content-blocking-category">
++ <label data-l10n-id="librewolf-goog-safe-download-description" />
++ <html:div> <image src="chrome://browser/skin/warning.svg" /> <label data-l10n-id="librewolf-goog-safe-download-warning1" class="librewolf-warning" /> </html:div>
++ <checkbox preference="browser.safebrowsing.downloads.enabled" label="browser.safebrowsing.downloads.enabled" />
++ </vbox>
++ </vbox>
++ </vbox>
++
++</groupbox>
++
++<hbox class="subcategory" hidden="true" data-category="paneLibrewolf">
++ <html:h1 data-l10n-id="librewolf-footer"/>
++</hbox>
++
++<groupbox data-category="paneLibrewolf" hidden="true">
++ <vbox align="start">
++ <hbox>
++ <button id="librewolf-config-link" is="highlightable-button" flex="1">
++ <image class="librewolf-button-icon" src="chrome://browser/skin/ion.svg" /> <!-- TODO not the typical way a picture is defined I think, and also we should copy the svg file in case they change it -->
++ <label data-l10n-id="librewolf-config-link"></label>
++ </button>
++ <button id="librewolf-open-profile" is="highlightable-button" flex="1">
++ <image class="librewolf-button-icon" src="chrome://browser/skin/open.svg" />
++ <label data-l10n-id="librewolf-open-profile"></label>
++ </button>
++ </hbox>
++ </vbox>
++</groupbox>
++
++</html:template>
+diff --git a/browser/components/preferences/librewolf.js b/browser/components/preferences/librewolf.js
+new file mode 100644
+index 0000000..ee49f0f
+--- /dev/null
++++ b/browser/components/preferences/librewolf.js
+@@ -0,0 +1,240 @@
++/* This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
++ * You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++/* import-globals-from extensionControlled.js */
++/* import-globals-from preferences.js */
++
++var { AppConstants } = ChromeUtils.import( "resource://gre/modules/AppConstants.jsm");
++XPCOMUtils.defineLazyGetter(this, "L10n", () => {
++ return new Localization([
++ "branding/brand.ftl",
++ "browser/preferences/preferences.ftl",
++ ]);
++});
++
++Preferences.addAll([
++ // IPv6
++ { id: "network.dns.disableIPv6", type: "bool" },
++ { id: "security.OCSP.require", type: "bool" },
++ // WebGL
++ { id: "webgl.disabled", type: "bool" },
++ // RFP
++ { id: "privacy.resistFingerprinting", type: "bool" },
++ // Automatically Update Extensions
++ { id: "extensions.update.enabled", type: "bool" },
++ { id: "extensions.update.autoUpdateDefault", type: "bool" },
++ // Clipboard autocopy/paste
++ { id: "clipboard.autocopy", type: "bool" },
++ { id: "middlemouse.paste", type: "bool" },
++ // Harden
++ { id: "privacy.resistFingerprinting.letterboxing", type: "bool" },
++ // Google Safe Browsing
++ //{ id: "browser.safebrowsing.malware.enabled", type: "bool" }, // Already loaded
++ //{ id: "browser.safebrowsing.phishing.enabled", type: "bool" },
++ { id: "browser.safebrowsing.blockedURIs.enabled", type: "bool" },
++ { id: "browser.safebrowsing.provider.google4.gethashURL", type: "string" },
++ { id: "browser.safebrowsing.provider.google4.updateURL", type: "string" },
++ { id: "browser.safebrowsing.provider.google.gethashURL", type: "string" },
++ { id: "browser.safebrowsing.provider.google.updateURL", type: "string" },
++ /**** Prefs that require changing a lockPref ****/
++ // Google safe browsing check downloads
++ //{ id: "browser.safebrowsing.downloads.enabled", type: "bool" }, //Also already added
++ { id: "toolkit.legacyUserProfileCustomizations.stylesheets", type: "bool" },
++ // Canvas UI when blocked
++ { id: "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", type: "bool" },
++]);
++
++var gLibrewolfPane = {
++ _pane: null,
++
++ // called when the document is first parsed
++ init() {
++ this._pane = document.getElementById("paneLibrewolf");
++
++ // Set all event listeners on checkboxes
++ setBoolSyncListeners(
++ "librewolf-extension-update-checkbox",
++ ["extensions.update.autoUpdateDefault", "extensions.update.enabled"],
++ [true, true ],
++ );
++ setBoolSyncListeners(
++ "librewolf-ipv6-checkbox",
++ ["network.dns.disableIPv6"],
++ [false, ],
++ );
++ setBoolSyncListeners(
++ "librewolf-ocsp-checkbox",
++ ["security.OCSP.require"],
++ [true, ],
++ );
++ setBoolSyncListeners(
++ "librewolf-autocopy-checkbox",
++ ["clipboard.autocopy", "middlemouse.paste"],
++ [true, true ],
++ );
++ setBoolSyncListeners(
++ "librewolf-styling-checkbox",
++ ["toolkit.legacyUserProfileCustomizations.stylesheets"],
++ [true, ],
++ );
++
++ setBoolSyncListeners(
++ "librewolf-webgl-checkbox",
++ ["webgl.disabled"],
++ [false ],
++ );
++ setBoolSyncListeners(
++ "librewolf-rfp-checkbox",
++ ["privacy.resistFingerprinting"],
++ [true ],
++ );
++ setBoolSyncListeners(
++ "librewolf-auto-decline-canvas-checkbox",
++ ["privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts"],
++ [true ],
++ );
++
++ setBoolSyncListeners(
++ "librewolf-letterboxing-checkbox",
++ ["privacy.resistFingerprinting.letterboxing"],
++ [true ],
++ );
++
++ setSyncListeners(
++ "librewolf-goog-safe-checkbox",
++ [
++ "browser.safebrowsing.malware.enabled",
++ "browser.safebrowsing.phishing.enabled",
++ "browser.safebrowsing.blockedURIs.enabled",
++ "browser.safebrowsing.provider.google4.gethashURL",
++ "browser.safebrowsing.provider.google4.updateURL",
++ "browser.safebrowsing.provider.google.gethashURL",
++ "browser.safebrowsing.provider.google.updateURL",
++ ],
++ [
++ true,
++ true,
++ true,
++ "https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST",
++ "https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST",
++ "https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2",
++ "https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_SAFEBROWSING_API_KEY%",
++ ],
++ [
++ false,
++ false,
++ false,
++ "",
++ "",
++ "",
++ "",
++ ]
++ );
++
++ // Set event listener on open profile directory button
++ setEventListener("librewolf-open-profile", "command", openProfileDirectory);
++ // Set event listener on open about:config button
++ setEventListener("librewolf-config-link", "click", openAboutConfig);
++
++ // Notify observers that the UI is now ready
++ Services.obs.notifyObservers(window, "librewolf-pane-loaded");
++ },
++};
++
++function openProfileDirectory() {
++ // Get the profile directory.
++ let currProfD = Services.dirsvc.get("ProfD", Ci.nsIFile);
++ let profileDir = currProfD.path;
++
++ // Show the profile directory.
++ let nsLocalFile = Components.Constructor(
++ "@mozilla.org/file/local;1",
++ "nsIFile",
++ "initWithPath"
++ );
++ new nsLocalFile(profileDir).reveal();
++}
++
++function openAboutConfig() {
++ window.open("about:config", "_blank");
++}
++
++function setBoolSyncListeners(checkboxid, opts, vals) {
++ setSyncFromPrefListener(checkboxid, () => readGenericBoolPrefs(opts, vals));
++ setSyncToPrefListener(checkboxid, () => writeGenericBoolPrefs(opts, vals, document.getElementById(checkboxid).checked));
++ for (let i = 1; i < opts.length; i++) {
++ Preferences.get(opts[i]).on("change", () => makeMasterCheckboxesReactive(checkboxid, () => readGenericBoolPrefs(opts, vals)));
++ }
++}
++function setSyncListeners(checkboxid, opts, onVals, offVals) {
++ setSyncFromPrefListener(checkboxid, () => readGenericPrefs(opts, onVals, offVals));
++ setSyncToPrefListener(checkboxid, () => writeGenericPrefs(opts, onVals, offVals, document.getElementById(checkboxid).checked));
++ for (let i = 1; i < opts.length; i++) {
++ Preferences.get(opts[i]).on("change", () => makeMasterCheckboxesReactive(checkboxid, () => readGenericPrefs(opts, onVals, offVals)));
++ }
++}
++
++function makeMasterCheckboxesReactive(checkboxid, func) {
++ let shouldBeChecked = func();
++ document.getElementById(checkboxid).checked = shouldBeChecked;
++}
++
++// Wrapper function in case something more is required (as I suspected in the first iteration of this)
++function getPref(pref) {
++ let retval = Preferences.get(pref);
++/* if (retval === undefined) {
++ return defaultValue;
++ } */
++ return retval._value;
++}
++// Returns true if all the preferences in prefs are equal to onVals, false otherwise TODO may need a third array for their default values because mozilla is dumb, after testing though pretty sure this was misinformation being spread by comments in default FF code that has long since been fixed
++function readGenericBoolPrefs(prefs, onVals) {
++ for (let i = 0; i < prefs.length; i++) {
++ if (getPref(prefs[i]) != onVals[i]) {
++ return false;
++ }
++ }
++ return true;
++}
++function writeGenericBoolPrefs(opts, vals, changeToOn) {
++ valsCopy = [...vals];
++ if (!changeToOn) {
++ for (let i = 0; i < vals.length; i++) {
++ valsCopy[i] = !vals[i];
++ }
++ }
++ // Start at 1 because returning sets the last one
++ for (let i = 1; i < vals.length; i++) {
++ Services.prefs.setBoolPref(opts[i], valsCopy[i]);
++ }
++ return valsCopy[0];
++}
++
++// Returns true if all the preferences in prefs are equal to onVals, false otherwise... currently the same as for Bool as offVals is ignored
++function readGenericPrefs(prefs, onVals, offVals) {
++ for (let i = 0; i < prefs.length; i ++) {
++ let temp = getPref(prefs[i]);
++ if (getPref(prefs[i]) != onVals[i]) {
++ return false;
++ }
++ }
++ return true;
++}
++function writeGenericPrefs(opts, onVals, offVals, changeToOn) {
++ let writeArr = (changeToOn) ? onVals : offVals;
++ for (let i = 1; i < opts.length; i++) {
++ let type = typeof(writeArr[i]);
++ if (type == "number") {
++ Services.prefs.setIntPref(opts[i], writeArr[i]);
++ } else if (type == "boolean") {
++ Services.prefs.setBoolPref(opts[i], writeArr[i]);
++ } else if (type == "string") {
++ Services.prefs.setCharPref(opts[i], writeArr[i]);
++ } else {
++ console.log("BADNESS 10000");
++ }
++ }
++ return writeArr[0];
++}
++
+diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
+index 91e9e46..763ab49 100644
+--- a/browser/components/preferences/preferences.js
++++ b/browser/components/preferences/preferences.js
+@@ -8,6 +8,7 @@
+ /* import-globals-from search.js */
+ /* import-globals-from containers.js */
+ /* import-globals-from privacy.js */
++/* import-globals-from librewolf.js */
+ /* import-globals-from sync.js */
+ /* import-globals-from experimental.js */
+ /* import-globals-from findInPage.js */
+@@ -117,6 +118,7 @@ function init_all() {
+ register_module("paneHome", gHomePane);
+ register_module("paneSearch", gSearchPane);
+ register_module("panePrivacy", gPrivacyPane);
++ register_module("paneLibrewolf", gLibrewolfPane);
+ register_module("paneContainers", gContainersPane);
+ if (Services.prefs.getBoolPref("browser.preferences.experimental")) {
+ // Set hidden based on previous load's hidden value.
+diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
+index aab4a9e..907a631 100644
+--- a/browser/components/preferences/preferences.xhtml
++++ b/browser/components/preferences/preferences.xhtml
+@@ -12,6 +12,7 @@
+ <?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?>
+ <?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?>
+ <?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
++<?xml-stylesheet href="chrome://browser/skin/preferences/librewolf.css"?>
+
+ <!DOCTYPE html>
+
+@@ -128,6 +129,17 @@
+ <label class="category-name" flex="1" data-l10n-id="pane-privacy-title"></label>
+ </richlistitem>
+
++ <richlistitem id="category-librewolf"
++ class="category"
++ value="paneLibrewolf"
++ helpTopic="prefs-librewolf"
++ data-l10n-id="category-librewolf"
++ data-l10n-attrs="tooltiptext"
++ align="center">
++ <image class="category-icon"/>
++ <label class="category-name" flex="1" data-l10n-id="pane-librewolf-title"></label>
++ </richlistitem>
++
+ <richlistitem id="category-sync"
+ class="category"
+ hidden="true"
+@@ -201,6 +213,7 @@
+ #include home.inc.xhtml
+ #include search.inc.xhtml
+ #include privacy.inc.xhtml
++#include librewolf.inc.xhtml
+ #include containers.inc.xhtml
+ #include sync.inc.xhtml
+ #include experimental.inc.xhtml
+diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser/locales/en-US/browser/preferences/preferences.ftl
+index d276f7a..127c8e1 100644
+--- a/browser/locales/en-US/browser/preferences/preferences.ftl
++++ b/browser/locales/en-US/browser/preferences/preferences.ftl
+@@ -1347,3 +1347,82 @@ choose-download-folder-title = Choose Download Folder:
+ # $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc...
+ save-files-to-cloud-storage =
+ .label = Save files to { $service-name }
++
++## LibreWolf preferences
++
++# Sidebar
++pane-librewolf-title = LibreWolf
++category-librewolf =
++ .tooltiptext = about:config changes, logically grouped and easily accessible
++
++# Main content
++librewolf-header = Librewolf Preferences
++librewolf-warning-title = Heads up!
++librewolf-warning-description = We carefully choose default settings to focus on privacy and security. When changing these settings, read the descriptions to understand the implications of those changes.
++
++# Page Layout
++librewolf-general-heading = Browser Behavior
++librewolf-extension-update-checkbox =
++ .label = Update add-ons automatically
++librewolf-autocopy-checkbox =
++ .label = Enable middle click paste
++librewolf-styling-checkbox =
++ .label = Allow userChrome.css customization
++
++librewolf-network-heading = Networking
++librewolf-ipv6-checkbox =
++ .label = Enable IPv6
++
++librewolf-broken-heading = Fingerprinting
++librewolf-webgl-checkbox =
++ .label = Enable WebGL
++librewolf-ocsp-checkbox =
++ .label = Enforce OCSP hard-fail
++librewolf-rfp-checkbox =
++ .label = Enable ResistFingerprinting
++librewolf-auto-decline-canvas-checkbox =
++ .label = Silently block canvas access requests
++librewolf-letterboxing-checkbox =
++ .label = Enable letterboxing
++
++librewolf-security-heading = Security
++librewolf-goog-safe-checkbox =
++ .label = Enable Google Safe Browsing
++librewolf-goog-safe-download-checkbox =
++ .label = Scan downloads
++
++# In-depth descriptions
++librewolf-extension-update-description = Keep extensions up to date without manual intervention. A good choice for your security.
++librewolf-extension-update-warning1 = If you don't review the code of your extensions before every update, you should enable this option.
++
++librewolf-ipv6-description = Allow { -brand-short-name } to connect using IPv6.
++librewolf-ipv6-warning1 = Before you change this, make sure your OS uses the IPv6 privacy extension.
++librewolf-ocsp-description = Prevent connecting to a website if the OCSP check cannot be performed.
++librewolf-ocsp-warning1 = This increases security, but it will cause breakage when a OCSP server is down.
++
++librewolf-autocopy-description = Select some text to copy it, then paste it with a middle-mouse click.
++
++librewolf-styling-description = Enable this if you want to customize the UI with a manually loaded theme.
++librewolf-styling-warning1 = Make sure you trust the provider of the theme.
++
++librewolf-webgl-description = WebGL is a strong fingerprinting vector.
++librewolf-webgl-warning1 = If you need to enable it, consider using an extension like Canvas Blocker.
++
++librewolf-rfp-description = ResistFingerprinting is the best in class anti-fingerprinting tool.
++librewolf-rfp-warning1 = If you need to disable it, consider using an extension like Canvas Blocker.
++
++librewolf-auto-decline-canvas-description = Automatically deny canvas access to websites, without prompting the user.
++librewolf-auto-decline-canvas-warning1 = It is still possible to allow canvas access from the urlbar.
++
++librewolf-letterboxing-description = Letterboxing applies margins around your windows, in order to return a limited set of rounded resolutions.
++
++librewolf-goog-safe-description = If you are worried about malware and phishing, consider enabling it.
++librewolf-goog-safe-warning1 = Disabled over censorship concerns but recommended for less advanced users. All the checks happen locally.
++
++librewolf-goog-safe-download-description = Allow Safe Browsing to scan your downloads to identify suspicious files.
++librewolf-goog-safe-download-warning1 = All the checks happen locally.
++
++# Footer
++librewolf-footer = Useful links
++librewolf-config-link = All advanced settings (about:config)
++librewolf-open-profile = Open user profile directory
+diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
+index cf1ebf0..336118c 100644
+--- a/browser/themes/shared/jar.inc.mn
++++ b/browser/themes/shared/jar.inc.mn
+@@ -105,6 +105,7 @@
+ skin/classic/browser/preferences/category-experiments.svg (../shared/preferences/category-experiments.svg)
+ skin/classic/browser/preferences/category-general.svg (../shared/preferences/category-general.svg)
+ skin/classic/browser/preferences/category-privacy-security.svg (../shared/preferences/category-privacy-security.svg)
++ skin/classic/browser/preferences/category-librewolf.svg (../shared/preferences/category-librewolf.svg)
+ skin/classic/browser/preferences/category-search.svg (../shared/preferences/category-search.svg)
+ skin/classic/browser/preferences/category-sync.svg (../shared/preferences/category-sync.svg)
+ skin/classic/browser/preferences/critters-postcard.jpg (../shared/preferences/critters-postcard.jpg)
+@@ -119,6 +120,7 @@
+ skin/classic/browser/preferences/search-bar.svg (../shared/preferences/search-bar.svg)
+ skin/classic/browser/preferences/search.css (../shared/preferences/search.css)
+ skin/classic/browser/preferences/siteDataSettings.css (../shared/preferences/siteDataSettings.css)
++ skin/classic/browser/preferences/librewolf.css (../shared/preferences/librewolf.css)
+ * skin/classic/browser/preferences/containers.css (../shared/preferences/containers.css)
+ * skin/classic/browser/preferences/containers-dialog.css (../shared/preferences/containers-dialog.css)
+ skin/classic/browser/upgradeDialog/highlights-24.svg (../shared/upgradeDialog/highlights-24.svg)
+diff --git a/browser/themes/shared/preferences/category-librewolf.svg b/browser/themes/shared/preferences/category-librewolf.svg
+new file mode 100644
+index 0000000..8ebf2eb
+--- /dev/null
++++ b/browser/themes/shared/preferences/category-librewolf.svg
+@@ -0,0 +1,96 @@
++<!-- This Source Code Form is subject to the terms of the Mozilla Public
++ - License, v. 2.0. If a copy of the MPL was not distributed with this
++ - file, You can obtain one at http://mozilla.org/MPL/2.0/.
++<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="context-fill" fill-opacity="context-fill-opacity">
++ <path d="M15.5 9 15 9l0-4A5 5 0 0 0 5 5l0 4-.5 0A2.5 2.5 0 0 0 2 11.5l0 6A2.5 2.5 0 0 0 4.5 20l11 0a2.5 2.5 0 0 0 2.5-2.5l0-6A2.5 2.5 0 0 0 15.5 9zm-9-4c0-1.93 1.57-3.5 3.5-3.5 1.93 0 3.5 1.57 3.5 3.5l0 4-7 0 0-4zm10 12.7-.8.8-11.4 0-.8-.8 0-6.4.8-.8 11.4 0 .8.8 0 6.4z"/>
++</svg>
++-->
++
++<svg
++ xmlns:dc="http://purl.org/dc/elements/1.1/"
++ xmlns:cc="http://creativecommons.org/ns#"
++ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
++ xmlns:svg="http://www.w3.org/2000/svg"
++ xmlns="http://www.w3.org/2000/svg"
++ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
++ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
++ width="67.733337mm"
++ height="67.733337mm"
++ viewBox="0 0 67.733337 67.733337"
++ version="1.1"
++ id="svg8"
++ inkscape:version="0.92.4 5da689c313, 2019-01-14"
++ sodipodi:docname="LibreWolf.svg">
++ <defs
++ id="defs2" />
++ <sodipodi:namedview
++ id="base"
++ pagecolor="#ffffff"
++ bordercolor="#666666"
++ borderopacity="1.0"
++ inkscape:pageopacity="0.0"
++ inkscape:pageshadow="2"
++ inkscape:zoom="0.9899495"
++ inkscape:cx="-15.106575"
++ inkscape:cy="110.91343"
++ inkscape:document-units="mm"
++ inkscape:current-layer="layer1"
++ showgrid="false"
++ inkscape:window-width="1366"
++ inkscape:window-height="711"
++ inkscape:window-x="0"
++ inkscape:window-y="30"
++ inkscape:window-maximized="1"
++ inkscape:showpageshadow="false"
++ units="px"
++ fit-margin-top="0"
++ fit-margin-left="0"
++ fit-margin-right="0"
++ fit-margin-bottom="0" />
++ <metadata
++ id="metadata5">
++ <rdf:RDF>
++ <cc:Work
++ rdf:about="">
++ <dc:format>image/svg+xml</dc:format>
++ <dc:type
++ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
++ <dc:title />
++ </cc:Work>
++ </rdf:RDF>
++ </metadata>
++ <g
++ inkscape:label="Layer 1"
++ inkscape:groupmode="layer"
++ id="layer1"
++ transform="translate(-42.106554,-153.8982)">
++ <circle
++ style="fill:#00acff;fill-opacity:1;stroke:none;stroke-width:0.53545821;stroke-miterlimit:4;stroke-dasharray:none"
++ id="path875"
++ cx="75.973221"
++ cy="187.76486"
++ r="33.866669" />
++ <path
++ style="fill:#ffffff;stroke-width:0.13229167"
++ d="m 72.543594,214.67719 c -4.744093,-0.60875 -9.281981,-2.49991 -13.241953,-5.51858 -1.29157,-0.98455 -3.714943,-3.42363 -4.772834,-4.80375 -2.96241,-3.86476 -4.804479,-8.2508 -5.41218,-12.88661 -0.260164,-1.98464 -0.258719,-5.63349 0.0029,-7.44738 1.308078,-9.0677 7.01463,-16.8454 15.20915,-20.72918 3.811512,-1.80647 7.300266,-2.57114 11.730683,-2.57114 7.165903,0 13.5265,2.56749 18.680882,7.54063 2.483054,2.39575 4.148141,4.66808 5.573968,7.60677 1.92868,3.9751 2.70979,7.43276 2.70979,11.99526 0,6.00619 -1.7345,11.24407 -5.336957,16.11672 -1.070527,1.44797 -3.161747,3.64749 -4.549468,4.78507 -3.806562,3.12041 -8.658642,5.23183 -13.473174,5.86296 -1.663528,0.21807 -5.593318,0.24524 -7.120854,0.0492 z m 10.041381,-4.86547 c 2.898391,-0.91366 5.260364,-2.14146 7.540624,-3.91979 1.212494,-0.9456 3.308223,-3.06144 4.186916,-4.22711 2.38328,-3.16162 4.004927,-7.12196 4.482067,-10.94597 0.229814,-1.84182 0.09634,-5.73827 -0.2545,-7.4296 -0.9294,-4.48046 -2.931647,-8.26499 -6.086007,-11.50342 -1.966575,-2.01898 -3.756882,-3.34972 -6.060203,-4.50458 -3.495001,-1.75236 -6.489835,-2.46043 -10.423481,-2.46442 -4.164073,-0.004 -7.815325,0.95024 -11.429055,2.98766 -3.289753,1.85476 -6.690628,5.25952 -8.553227,8.563 -1.371786,2.43299 -2.37583,5.32029 -2.767595,7.95869 -0.256867,1.72991 -0.261933,5.16508 -0.01006,6.82145 0.504067,3.31489 1.761474,6.59111 3.584314,9.33904 0.995409,1.50058 0.964154,1.48393 1.842248,0.98153 1.570774,-0.8987 1.980396,-1.33342 2.836087,-3.00984 1.000624,-1.96036 2.070459,-3.6735 3.037094,-4.86332 1.115822,-1.37347 1.269228,-1.61793 1.828988,-2.9147 0.281654,-0.65249 0.786977,-1.61074 1.122938,-2.12943 l 0.61084,-0.94309 -0.79023,-0.77671 c -1.049647,-1.03168 -1.922751,-2.2016 -2.087012,-2.79651 -0.167761,-0.60758 0.03021,-0.9466 0.818744,-1.40207 0.797354,-0.46057 1.367585,-0.5929 3.498657,-0.81193 1.037629,-0.10665 2.164153,-0.30199 2.518962,-0.43681 0.353024,-0.13414 1.407825,-0.70824 2.344001,-1.27579 2.702947,-1.63863 2.931619,-1.72344 4.552111,-1.68831 1.368686,0.0297 1.371262,0.0291 2.182813,-0.46143 1.700674,-1.02802 4.14305,-2.88289 7.357044,-5.58733 0.61632,-0.5186 1.21002,-0.92569 1.31934,-0.90464 0.45462,0.0876 1.289567,2.13636 1.416407,3.47562 0.07693,0.81225 -0.08023,1.6155 -0.562014,2.87261 -0.13146,0.34301 -0.19208,0.67043 -0.134706,0.7276 0.13774,0.13726 0.610706,-0.4535 0.610706,-0.76279 0,-0.39435 0.261127,-0.43936 0.616327,-0.10623 0.258235,0.24218 0.480842,0.31151 1.000202,0.31151 0.567073,0 0.707447,0.0526 0.928773,0.3479 0.375574,0.50112 0.463647,1.86688 0.176201,2.73231 -0.279641,0.84191 -1.124801,1.81287 -1.891829,2.17341 -0.686334,0.32262 -2.075841,1.67928 -2.726081,2.66164 -0.248906,0.37604 -0.715586,1.15995 -1.037066,1.74204 -0.321487,0.58208 -0.86074,1.46154 -1.19834,1.95436 -0.664294,0.96972 -1.233147,2.3224 -1.782214,4.23798 -0.322553,1.1253 -0.34962,1.41826 -0.362953,3.92797 -0.01613,3.0317 -0.172894,3.77561 -0.9925,4.7091 -0.931805,1.06126 -1.861937,3.39186 -1.940127,4.8613 -0.04935,0.92751 -0.192246,1.83164 -0.395304,2.50122 -0.08942,0.29484 0.07752,0.2914 1.072102,-0.0221 z"
++ id="path847"
++ inkscape:connector-curvature="0" />
++ <path
++ sodipodi:type="star"
++ style="fill:#00acff;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
++ id="path814"
++ sodipodi:sides="4"
++ sodipodi:cx="18.854025"
++ sodipodi:cy="172.98837"
++ sodipodi:r1="1.6036172"
++ sodipodi:r2="1.1339285"
++ sodipodi:arg1="1.5707963"
++ sodipodi:arg2="2.3561945"
++ inkscape:flatsided="true"
++ inkscape:rounded="0"
++ inkscape:randomized="0"
++ d="m 18.854025,174.59199 -1.603617,-1.60362 1.603617,-1.60361 1.603617,1.60361 z"
++ transform="matrix(0.23203125,0.40188991,-0.99392962,0.57384553,246.21921,73.888081)" />
++ </g>
++</svg>
++
+diff --git a/browser/themes/shared/preferences/librewolf.css b/browser/themes/shared/preferences/librewolf.css
+new file mode 100644
+index 0000000..12f926a
+--- /dev/null
++++ b/browser/themes/shared/preferences/librewolf.css
+@@ -0,0 +1,23 @@
++.librewolf-collapse > input {
++ display: none;
++}
++.librewolf-collapse > input ~ .librewolf-collapsed {
++ display: none;
++ /* max-height: 0; */
++ transition: max-height 0.25s ease-in-out;
++}
++.librewolf-collapse > input:checked ~ .librewolf-collapsed {
++ display: block;
++ /* max-height: 20rem; */
++}
++.librewolf-warning {
++ display: inline;
++ font-size: 0.8em;
++}
++.librewolf-button-icon {
++ width: 16px;
++ height: 16px;
++ margin-right: 8px;
++ -moz-context-properties: fill, fill-opacity;
++ fill: currentColor;
++}
+diff --git a/browser/themes/shared/preferences/preferences.inc.css b/browser/themes/shared/preferences/preferences.inc.css
+index 31bffd0..1f9fbcf 100644
+--- a/browser/themes/shared/preferences/preferences.inc.css
++++ b/browser/themes/shared/preferences/preferences.inc.css
+@@ -201,6 +201,10 @@ checkbox {
+ list-style-image: url("chrome://browser/skin/preferences/category-privacy-security.svg");
+ }
+
++#category-librewolf > .category-icon {
++ list-style-image: url("chrome://browser/skin/preferences/category-librewolf.svg");
++}
++
+ #category-sync > .category-icon {
+ list-style-image: url("chrome://browser/skin/preferences/category-sync.svg");
+ }
diff --git a/librewolf/debian/patches/librewolf/megabar.patch b/librewolf/debian/patches/librewolf/megabar.patch
deleted file mode 100644
index 1f2bed8..0000000
--- a/librewolf/debian/patches/librewolf/megabar.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
-index 4c42071..12323dd 100644
---- a/browser/components/urlbar/UrlbarInput.jsm
-+++ b/browser/components/urlbar/UrlbarInput.jsm
-@@ -1712,13 +1712,13 @@ class UrlbarInput {
-
- // Enable the animation only after the first extend call to ensure it
- // doesn't run when opening a new window.
-- if (!this.hasAttribute("breakout-extend-animate")) {
-- this.window.promiseDocumentFlushed(() => {
-- this.window.requestAnimationFrame(() => {
-- this.setAttribute("breakout-extend-animate", "true");
-- });
-- });
-- }
-+// if (!this.hasAttribute("breakout-extend-animate")) {
-+// this.window.promiseDocumentFlushed(() => {
-+// this.window.requestAnimationFrame(() => {
-+// this.setAttribute("breakout-extend-animate", "true");
-+// });
-+// });
-+// }
- }
-
- endLayoutExtend() {
-diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
-index e80aaf6..6ec0961 100644
---- a/browser/themes/shared/urlbar-searchbar.inc.css
-+++ b/browser/themes/shared/urlbar-searchbar.inc.css
-@@ -5,6 +5,6 @@
- %endif
-
--%define urlbarMarginInline 5px
-+%define urlbarMarginInline 0px
- %define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding))
-
- :root {
-@@ -246,14 +246,14 @@
-
- #urlbar[breakout][breakout-extend] {
- top: 0;
-- left: -@urlbarMarginInline@;
-- width: calc(100% + 2 * @urlbarMarginInline@);
-+ left: 0;
-+ width: 100;
- }
-
- #urlbar[breakout][breakout-extend] > #urlbar-input-container {
- height: var(--urlbar-toolbar-height);
-- padding-block: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
-- padding-inline: calc(@urlbarMarginInline@ + var(--urlbar-container-padding));
-+ padding-block: 0;
-+ padding-inline: 0;
- }
-
- #urlbar.searchButton[breakout][breakout-extend] > #urlbar-input-container > #urlbar-search-button {
-@@ -271,7 +271,7 @@
- }
-
- #urlbar[breakout][breakout-extend] > #urlbar-background {
-- animation-name: urlbar-grow;
-+ animation-name: none;
- animation-duration: 0s;
- animation-timing-function: var(--animation-easing-function);
- }
-diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
-index d2bb269..0d47466 100644
---- a/browser/themes/shared/urlbarView.inc.css
-+++ b/browser/themes/shared/urlbarView.inc.css
-@@ -56,8 +56,8 @@
- display: block;
- text-shadow: none;
- overflow: clip;
-- margin-inline: calc(5px + var(--urlbar-container-padding));
-- width: calc(100% - 2 * (5px + var(--urlbar-container-padding)));
-+ margin-inline: 0;
-+ width: 100%;
- /* Match urlbar-background's border. */
- border-inline: 1px solid transparent;
- }
-@@ -83,11 +83,11 @@
- .urlbarView-row {
- fill: currentColor;
- fill-opacity: var(--urlbar-icon-fill-opacity);
-- padding-block: 2px;
-+ padding-block: 0px;
- }
-
- :root:not([uidensity=compact]) .urlbarView-row:not([type=tip], [type=dynamic]) {
-- min-height: 32px;
-+ min-height: 0px;
- }
-
- :root[uidensity=touch] .urlbarView-row:not([type=tip], [type=dynamic]) {
-@@ -241,6 +241,7 @@
- object-fit: contain;
- flex-shrink: 0;
- -moz-context-properties: fill, fill-opacity;
-+ margin-inline-start: 20px;
- }
-
-
-@@ -268,10 +269,10 @@
-
- .urlbarView-type-icon {
- position: absolute;
-- width: 12px;
-- height: 12px;
-- margin-bottom: -4px;
-- margin-inline-start: 8px;
-+ width: 16px;
-+ height: 16px;
-+ margin-bottom: 0px;
-+ margin-inline-start: 0px;
- align-self: end;
- background-repeat: no-repeat;
- background-size: contain;
-
diff --git a/librewolf/debian/patches/librewolf/mozilla-vpn-ad.patch b/librewolf/debian/patches/librewolf/mozilla-vpn-ad.patch
deleted file mode 100644
index f5e2ce3..0000000
--- a/librewolf/debian/patches/librewolf/mozilla-vpn-ad.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
-index 32c9146..f645288 100644
---- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
-+++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
-@@ -51,14 +51,14 @@
- <div class="fake-caret"></div>
- </button>
- </div>
-- <div class="info">
-+ <!--div class="info">
- <h1 id="info-title"></h1>
- <p id="info-body"></p>
- <a id="private-browsing-myths"></a>
-- </div>
-+ </div-->
- </div>
-
-- <div class="promo">
-+ <!--div class="promo">
- <div class="promo-image-large">
- <img src="" alt="" />
- </div>
-@@ -72,6 +72,6 @@
- </div>
- </div>
- </div>
-- </div>
-+ </div-->
- </body>
- </html>
diff --git a/librewolf/debian/patches/librewolf/pref-naming.patch b/librewolf/debian/patches/librewolf/pref-naming.patch
index 6b462af..fa6eb80 100644
--- a/librewolf/debian/patches/librewolf/pref-naming.patch
+++ b/librewolf/debian/patches/librewolf/pref-naming.patch
@@ -5,19 +5,10 @@
startup-restore-windows-and-tabs =
- .label = Open previous windows and tabs
-+ .label = Open previous windows and tabs (requires enabling browsing history)
++ .label = Open previous windows and tabs. (requires enabling browsing history)
.accesskey = s
startup-restore-warn-on-quit =
-@@ -252,7 +252,7 @@
- .label = Choose…
- .accesskey = o
-
--choose-browser-language-description = Choose the languages used to display menus, messages, and notifications from { -brand-short-name }.
-+choose-browser-language-description = Choose the languages used to display menus, messages, and notifications from { -brand-short-name }. Please notice that, to preserve your privacy, { -brand-short-name } forces en-US as the default language.
- manage-browser-languages-button =
- .label = Set Alternatives…
- .accesskey = l
@@ -409,13 +409,13 @@
.label = Play DRM-controlled content
.accesskey = P
diff --git a/librewolf/debian/patches/librewolf/privacy-preferences.patch b/librewolf/debian/patches/librewolf/privacy-preferences.patch
new file mode 100644
index 0000000..ab6899a
--- /dev/null
+++ b/librewolf/debian/patches/librewolf/privacy-preferences.patch
@@ -0,0 +1,62 @@
+--- a/browser/components/preferences/privacy.inc.xhtml
++++ b/browser/components/preferences/privacy.inc.xhtml
+@@ -54,7 +54,7 @@
+ </description>
+ </vbox>
+ </hbox>
+- <vbox id="contentBlockingCategories">
++ <vbox id="contentBlockingCategories" hidden="true">
+ <radiogroup id="contentBlockingCategoryRadio"
+ preference="browser.contentblocking.category"
+ aria-labelledby="trackingProtectionMenuDesc">
+@@ -535,7 +535,7 @@
+ <!-- History -->
+ <groupbox id="historyGroup" data-category="panePrivacy" hidden="true">
+ <label><html:h2 data-l10n-id="history-header"/></label>
+- <hbox align="center">
++ <hbox align="center" hidden="true">
+ <label id="historyModeLabel"
+ control="historyMode"
+ data-l10n-id="history-remember-label"/>
+@@ -585,8 +585,9 @@
+ <vbox>
+ <checkbox id="privateBrowsingAutoStart"
+ data-l10n-id="history-private-browsing-permanent"
+- preference="browser.privatebrowsing.autostart"/>
+- <vbox class="indent">
++ preference="browser.privatebrowsing.autostart"
++ hidden="true" />
++ <vbox>
+ <checkbox id="rememberHistory"
+ data-l10n-id="history-remember-browser-option"
+ preference="places.history.enabled"/>
+@@ -1015,15 +1016,15 @@
+
+ <!-- addons, forgery (phishing) UI Security -->
+ <groupbox id="browsingProtectionGroup" data-category="panePrivacy" hidden="true">
+- <label><html:h2 data-l10n-id="security-browsing-protection"/></label>
+- <hbox align = "center">
++ <label><html:h2 data-l10n-id="security-browsing-protection" hidden="true"/></label>
++ <hbox align = "center" hidden="true">
+ <checkbox id="enableSafeBrowsing"
+ data-l10n-id="security-enable-safe-browsing"
+ class="tail-with-learn-more"/>
+ <label id="enableSafeBrowsingLearnMore"
+ class="learnMore" is="text-link" data-l10n-id="security-enable-safe-browsing-link"/>
+ </hbox>
+- <vbox class="indent">
++ <vbox class="indent" hidden="true">
+ <checkbox id="blockDownloads"
+ data-l10n-id="security-block-downloads"/>
+ <checkbox id="blockUncommonUnwanted"
+--- a/browser/locales/en-US/browser/preferences/preferences.ftl
++++ b/browser/locales/en-US/browser/preferences/preferences.ftl
+@@ -1107,7 +1107,7 @@ addressbar-suggestions-settings = Change preferences for search engine suggestio
+
+ content-blocking-enhanced-tracking-protection = Enhanced Tracking Protection
+
+-content-blocking-section-top-level-description = Trackers follow you around online to collect information about your browsing habits and interests. { -brand-short-name } blocks many of these trackers and other malicious scripts.
++content-blocking-section-top-level-description = LibreWolf supports - and it enables by default - Enhanced Tracking Protection in Strict mode. This is one of the most important settings in the browser, as it provides state partitioning, strict blocking lists and other neat privacy features. We do not recommend changing to other modes.
+
+ content-blocking-learn-more = Learn more
+
diff --git a/librewolf/debian/patches/librewolf/reduce-rust-debuginfo.patch b/librewolf/debian/patches/librewolf/reduce-rust-debuginfo.patch
deleted file mode 100644
index 9d9543f..0000000
--- a/librewolf/debian/patches/librewolf/reduce-rust-debuginfo.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: reduce the rust debuginfo level
- because compiling with debuginfo=2 causes the OOM killer to interrupt the build
- on launchpad builders. Initially this was only on 32 bit architectures, but
- with firefox 63 it started happening frequently on arm64 and ppc64el too,
- with newer versions it started happening very frequently on s390x too, and with
- firefox 84 (built with rustc 1.47) it started happening on amd64 too.
- This patch would initially decrease debug_info for selected architectures, but
- with recent versions of rustc pretty much all supported architectures are
- affected, so it is now unconditional.
-
---- a/build/moz.configure/rust.configure
-+++ b/build/moz.configure/rust.configure
-@@ -2167,7 +2167,7 @@ def rust_compile_flags(opt_level, debug_
- debug_assertions = False
-
- if debug_symbols:
-- debug_info = "2"
-+ debug_info = "1"
-
- opts = []
-
diff --git a/librewolf/debian/patches/librewolf/relax-cargo-dep.patch b/librewolf/debian/patches/librewolf/relax-cargo-dep.patch
deleted file mode 100644
index 46c3eff..0000000
--- a/librewolf/debian/patches/librewolf/relax-cargo-dep.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -r 246cfe5d5a05 build/moz.configure/rust.configure
---- a/build/moz.configure/rust.configure Sat Oct 02 16:40:36 2021 +0000
-+++ b/build/moz.configure/rust.configure Sun Oct 03 11:00:29 2021 +0200
-@@ -171,7 +171,7 @@
- )
- )
- rustc_min_version = Version(MINIMUM_RUST_VERSION)
-- cargo_min_version = rustc_min_version
-+ cargo_min_version = Version("1.51.0")
-
- version = rustc_info.version
- is_nightly = "nightly" in version.version
diff --git a/librewolf/debian/patches/librewolf/remove-branding-urlbar.patch b/librewolf/debian/patches/librewolf/remove-branding-urlbar.patch
index e005458..d1f5da5 100644
--- a/librewolf/debian/patches/librewolf/remove-branding-urlbar.patch
+++ b/librewolf/debian/patches/librewolf/remove-branding-urlbar.patch
@@ -1,5 +1,5 @@
---- a/browser/locales/en-US/browser/browser.ftl
-+++ b/browser/locales/en-US/browser/browser.ftl
+--- a/browser/locales/en-US/browser/browser.ftl.orig 2022-03-22 12:57:21.330016999 -0400
++++ b/browser/locales/en-US/browser/browser.ftl 2022-03-22 13:01:42.740728393 -0400
@@ -543,7 +543,7 @@
# A label shown above the "Firefox Suggest" (bookmarks/history) group in the
# urlbar results.
@@ -8,4 +8,4 @@
+ .label = Suggestions
# A label shown above the search suggestions group in the urlbar results. It
- # should use title case.
+ # should use sentence case.
diff --git a/librewolf/debian/patches/librewolf/remove-organization-policy-banner.patch b/librewolf/debian/patches/librewolf/remove-organization-policy-banner.patch
index 688c17c..1475de9 100644
--- a/librewolf/debian/patches/librewolf/remove-organization-policy-banner.patch
+++ b/librewolf/debian/patches/librewolf/remove-organization-policy-banner.patch
@@ -1,6 +1,6 @@
--- a/browser/components/preferences/preferences.js
+++ b/browser/components/preferences/preferences.js
-@@ -161,8 +161,6 @@
+@@ -234,8 +234,6 @@
this.removeAttribute("keyboard-navigation");
});
@@ -8,4 +8,4 @@
-
window.addEventListener("hashchange", onHashChange);
- gotoPref().then(() => {
+ document.getElementById("focusSearch1").addEventListener("command", () => {
diff --git a/librewolf/debian/patches/librewolf/remove_addons.patch b/librewolf/debian/patches/librewolf/remove_addons.patch
index ea3f532..7a0e9e9 100644
--- a/librewolf/debian/patches/librewolf/remove_addons.patch
+++ b/librewolf/debian/patches/librewolf/remove_addons.patch
@@ -2,18 +2,18 @@ diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index 269dcb2..ed7c31d 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
-@@ -5,11 +5,8 @@
+@@ -5,11 +5,9 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += [
- "doh-rollout",
"formautofill",
"screenshots",
-- "webcompat",
+ "webcompat",
- "report-site-issue",
"pictureinpicture",
- "proxy-failover",
"search-detection",
+ ]
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
index 496379c..dd6f359 100644
--- a/browser/locales/Makefile.in
@@ -72,4 +72,3 @@ index b9b18fe..af7c583 100644
-[[paths]]
reference = "services/sync/locales/en-US/**"
l10n = "{l}services/sync/**"
-
diff --git a/librewolf/debian/patches/librewolf/use-system-icupkg.patch b/librewolf/debian/patches/librewolf/use-system-icupkg.patch
deleted file mode 100644
index 99eb4b5..0000000
--- a/librewolf/debian/patches/librewolf/use-system-icupkg.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -r 08cd64cdbc3b config/external/icu/data/convert_icudata.py
---- a/config/external/icu/data/convert_icudata.py Fri Jul 17 11:18:09 2020 +0000
-+++ b/config/external/icu/data/convert_icudata.py Sat Jul 18 14:40:33 2020 +0200
-@@ -11,7 +11,7 @@
- subprocess.run(
- [
-- os.path.join(buildconfig.topobjdir, "dist", "host", "bin", "icupkg"),
-+ "icupkg",
- "-tb",
- data_file,
- output.name,
- ]
-
diff --git a/librewolf/debian/patches/librewolf/webrtc-fix-compiler-flags-for-armhf.patch b/librewolf/debian/patches/librewolf/webrtc-fix-compiler-flags-for-armhf.patch
deleted file mode 100644
index 5cd6658..0000000
--- a/librewolf/debian/patches/librewolf/webrtc-fix-compiler-flags-for-armhf.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-# Description: Don't pass -mfloat-abi=softfp on armhf
-# Author: Chris Coulson <chris.coulson@canonical.com>
-# Forwarded: no
-
---- a/build/gyp.mozbuild
-+++ b/build/gyp.mozbuild
-@@ -107,9 +107,15 @@ if CONFIG['ARM_ARCH']:
- gyp_vars['arm_neon'] = 1
- gyp_vars['build_with_neon'] = 1
- else:
-- # CPU detection for ARM works on Android only. armv7 always uses CPU
-- # detection, so we have to set armv7=0 for non-Android target
-- gyp_vars['armv7'] = 0
-+ gyp_vars['armv7'] = 1
-+ # We enable NEON for Ubuntu armhf. Note that these don't really
-+ # have any effect here as NEON is hardcoded on in
-+ # media/webrtc/trunk/webrtc/build/common.gypi. Disabling these
-+ # without fixing that file will result in a link failure, as
-+ # targets hidden behind the build_with_neon flag don't get
-+ # built but WEBRTC_HAS_NEON is still defined
-+ gyp_vars['arm_neon'] = 1
-+ gyp_vars['build_with_neon'] = 1
- # For libyuv
- gyp_vars['arm_version'] = int(CONFIG['ARM_ARCH'])
-
---- a/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
-+++ b/third_party/libwebrtc/webrtc/build/config/compiler/BUILD.gn
-@@ -590,7 +590,6 @@ config("compiler_cpu_abi") {
- if (!is_nacl) {
- cflags += [
- "-march=$arm_arch",
-- "-mfloat-abi=$arm_float_abi",
- ]
- }
- if (arm_tune != "") {
bgstack15