tor-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 215334 discussions
[Git][tpo/applications/tor-browser-build][main] Bug 41601: Drop support for Linux i686.
by Pier Angelo Vendrame (@pierov) 25 Nov '25
by Pier Angelo Vendrame (@pierov) 25 Nov '25
25 Nov '25
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
dc840a56 by Pier Angelo Vendrame at 2025-11-25T17:48:20+01:00
Bug 41601: Drop support for Linux i686.
Mozilla moved Linux i686 to tier 3, and its support is up to
distributions. For that reason, we are forced to drop support for that
platform.
- - - - -
28 changed files:
- Makefile
- README
- doc/HACKING.txt
- doc/MAKEFILE.txt
- projects/browser/RelativeLink/start-browser
- projects/browser/config
- projects/firefox/build
- projects/firefox/config
- projects/gcc-cross/config
- projects/gcc/config
- projects/go/config
- projects/linux-packages/build
- projects/linux-packages/config
- projects/linux-packages/debian/control.in
- projects/linux-packages/rpm-package.spec
- projects/openssl/build
- projects/openssl/config
- projects/release/build
- projects/release/config
- projects/release/update_responses_config.yml
- projects/rust/config
- projects/tor/config
- rbm.conf
- tools/dmg2mar
- tools/signing/nightly/config.yml
- tools/signing/nightly/update-responses-base-config.yml
- tools/signing/staticiforme-prepare-cdn-dist-upload
- tools/update-responses/update_responses
Changes:
=====================================
Makefile
=====================================
@@ -41,9 +41,6 @@ torbrowser-release-linux-x86_64: submodule-update
torbrowser-release-linux-x86_64-asan: submodule-update
$(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser
-torbrowser-release-linux-i686: submodule-update
- $(rbm) build release --target release --target browser-single-platform --target browser-linux-i686 --target torbrowser
-
torbrowser-release-linux-aarch64: submodule-update
$(rbm) build release --target release --target browser-single-platform --target browser-linux-aarch64 --target torbrowser
@@ -89,9 +86,6 @@ torbrowser-alpha-linux-x86_64-asan: submodule-update
torbrowser-alpha-linux-aarch64: submodule-update
$(rbm) build release --target alpha --target browser-single-platform --target browser-linux-aarch64 --target torbrowser
-torbrowser-alpha-linux-i686: submodule-update
- $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-i686 --target torbrowser
-
torbrowser-alpha-windows-i686: submodule-update
$(rbm) build release --target alpha --target browser-single-platform --target browser-windows-i686 --target torbrowser
@@ -134,9 +128,6 @@ torbrowser-nightly-linux-x86_64-asan: submodule-update
torbrowser-nightly-linux-aarch64: submodule-update
$(rbm) build release --target nightly --target browser-single-platform --target browser-linux-aarch64 --target torbrowser
-torbrowser-nightly-linux-i686: submodule-update
- $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-i686 --target torbrowser
-
torbrowser-nightly-windows-i686: submodule-update
$(rbm) build release --target nightly --target browser-single-platform --target browser-windows-i686 --target torbrowser
@@ -176,9 +167,6 @@ torbrowser-testbuild-linux-x86_64: submodule-update
torbrowser-testbuild-linux-x86_64-asan: submodule-update
$(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64-asan --target torbrowser
-torbrowser-testbuild-linux-i686: submodule-update
- $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-i686 --target torbrowser
-
torbrowser-testbuild-linux-aarch64: submodule-update
$(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-aarch64 --target torbrowser
@@ -285,9 +273,6 @@ basebrowser-release-linux-x86_64: submodule-update
basebrowser-release-linux-x86_64-asan: submodule-update
$(rbm) build release --target release --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser
-basebrowser-release-linux-i686: submodule-update
- $(rbm) build release --target release --target browser-single-platform --target browser-linux-i686 --target basebrowser
-
basebrowser-release-linux-aarch64: submodule-update
$(rbm) build release --target release --target browser-single-platform --target browser-linux-aarch64 --target basebrowser
@@ -324,9 +309,6 @@ basebrowser-alpha-linux-x86_64: submodule-update
basebrowser-alpha-linux-x86_64-asan: submodule-update
$(rbm) build release --target alpha --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser
-basebrowser-alpha-linux-i686: submodule-update
- $(rbm) build release --target alpha --target browser-single-platform --target browser-linux-i686 --target basebrowser
-
basebrowser-alpha-linux-aarch64: submodule-update
$(rbm) build release --target alpha --target browser-single-platform --target browser-linux-aarch64 --target basebrowser
@@ -363,9 +345,6 @@ basebrowser-nightly-linux-x86_64: submodule-update
basebrowser-nightly-linux-x86_64-asan: submodule-update
$(rbm) build release --target nightly --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser
-basebrowser-nightly-linux-i686: submodule-update
- $(rbm) build release --target nightly --target browser-single-platform --target browser-linux-i686 --target basebrowser
-
basebrowser-nightly-linux-aarch64: submodule-update
$(rbm) build release --target nightly --target browser-single-platform --target browser-linux-aarch64 --target basebrowser
@@ -402,9 +381,6 @@ basebrowser-testbuild-linux-x86_64: submodule-update
basebrowser-testbuild-linux-x86_64-asan: submodule-update
$(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-x86_64-asan --target basebrowser
-basebrowser-testbuild-linux-i686: submodule-update
- $(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-i686 --target basebrowser
-
basebrowser-testbuild-linux-aarch64: submodule-update
$(rbm) build release --target testbuild --target browser-single-platform --target browser-linux-aarch64 --target basebrowser
=====================================
README
=====================================
@@ -128,7 +128,7 @@ If you want to build for a specific platform only, append the platform
name to the makefile target:
$ make torbrowser-nightly-linux-x86_64
- $ make torbrowser-nightly-linux-i686
+ $ make torbrowser-nightly-linux-aarch64
$ make torbrowser-nightly-windows-i686
$ make torbrowser-nightly-windows-x86_64
$ make torbrowser-nightly-macos
=====================================
doc/HACKING.txt
=====================================
@@ -43,13 +43,13 @@ In each of those places, an option can be defined:
The targets are usually used to select:
-- the platform: torbrowser-linux-x86_64, torbrowser-linux-i686,
+- the platform: torbrowser-linux-x86_64, torbrowser-linux-aarch64,
torbrowser-windows-i686, torbrowser-windows-x86_64, torbrowser-macos,
torbrowser-android-armv7, torbrowser-android-aarch64, torbrowser-android-x86,
torbrowser-android-x86_64
- the channel: release, nightly, alpha
-The targets torbrowser-linux-x86_64, torbrowser-linux-i686,
+The targets torbrowser-linux-x86_64, torbrowser-linux-aarch64,
torbrowser-windows-i686, torbrowser-windows-x86_64, torbrowser-macos,
torbrowser-android-armv7, torbrowser-android-x86, torbrowser-android-aarch64,
torbrowser-android-x86_64 are special cases. They do not contain options
@@ -103,8 +103,8 @@ You can use the following template syntax in the build scripts:
# do something for macOS
[% END -%]
-You can also use var/linux-x86_64 and var/linux-i686 for things that
-only apply to x86_64 and i686 linux builds. You can use the var/release,
+You can also use var/linux-x86_64 and var/linux-aarch64 for things that
+only apply to x86_64 and aarch64 linux builds. You can use the var/release,
var/alpha and var/nightly options to do things depending on the channel.
As an alternative you can define an option with a different value
@@ -148,7 +148,7 @@ $platform should be one of the following:
- torbrowser-linux-x86_64
- - torbrowser-linux-i686
+ - torbrowser-linux-aarch64
- torbrowser-windows-i686
=====================================
doc/MAKEFILE.txt
=====================================
@@ -14,7 +14,7 @@ Build Tor Browser for the release channel, for all supported platforms
(defined in var/browser_platforms). The resulting build can be found in
directory torbrowser/release/$version.
-torbrowser-release-{linux-x86_64,linux-i686,windows-i686,macos,
+torbrowser-release-{linux-x86_64,linux-aarch64,windows-i686,macos,
android-armv7, android-x86,android-x86_64,
android-aarch64,desktop,android}
--------------------------------------------------------------------
@@ -27,7 +27,7 @@ torbrowser-alpha
Build Tor Browser for the alpha channel, for all supported platforms.
The resulting build can be found in directory torbrowser/alpha/$version.
-torbrowser-alpha-{linux-x86_64,linux-i686,windows-i686,macos,
+torbrowser-alpha-{linux-x86_64,linux-aarch64,windows-i686,macos,
android-armv7,android-x86,android-x86_64,
android-aarch64,desktop,android}
------------------------------------------------------------------
@@ -42,7 +42,7 @@ components.
The resulting build can be found in directory torbrowser/nightly/$date
-torbrowser-nightly-{linux-x86_64,linux-i686,windows-i686,macos,
+torbrowser-nightly-{linux-x86_64,linux-aarch64,windows-i686,macos,
android-armv7,android-x86,android-x86_64,
android-aarch64,desktop,android}
--------------------------------------------------------------------
@@ -56,7 +56,7 @@ By default it is based on the alpha channel, but you can change that by
editing rbm.local.conf. The resulting build can be found in directory
testbuild.
-torbrowser-testbuild-{linux-x86_64,linux-i686,windows-i686,macos,
+torbrowser-testbuild-{linux-x86_64,linux-aarch64,windows-i686,macos,
android-armv7,android-x86,android-x86_64,
android-aarch64,desktop,android}
-----------------------------------------------------------------
=====================================
projects/browser/RelativeLink/start-browser
=====================================
@@ -87,13 +87,6 @@ if [ "`id -u`" -eq 0 ]; then
exit 1
fi
-[% IF c('var/linux-i686') || c('var/linux-x86_64') -%]
-if test -r /proc/cpuinfo && ! grep -q '^flags\s*:.* sse2' /proc/cpuinfo; then
- complain "[% c('var/Project_Name') %] requires a CPU with SSE2 support. Exiting."
- exit 1
-fi
-[% END -%]
-
print_usage () {
printf "\n[% c('var/Project_Name') %] Script Options\n"
printf " --verbose Display [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in the terminal\n"
=====================================
projects/browser/config
=====================================
@@ -19,11 +19,6 @@ targets:
linux:
var:
- arch_deps:
- # Install libc6-i386 to be able to run 32bit mar tools in linux-i686
- # builds (bug 29812). We don't need it in x86_64 builds, but we
- # share the container to reduce space used.
- - libc6-i386
pt_path: ./TorBrowser/Tor/PluggableTransports/
macos:
=====================================
projects/firefox/build
=====================================
@@ -39,12 +39,10 @@ export PATH="/var/tmp/dist/rust/bin:/var/tmp/dist/cbindgen:/var/tmp/dist/node/bi
[% IF ! c("var/asan") -%]
export PATH="/var/tmp/dist/clang-linux/bin:$PATH"
[% END -%]
- [% IF c("var/linux-i686") -%]
+ [% IF c("var/linux-cross") -%]
# Exporting `PKG_CONFIG_PATH` in the mozconfig file is causing build
# breakage in Rust code. It seems that environment variable is not passed
# down properly in that case. Thus, we set it here in the build script.
- export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/i386-linux-gnu/pkgconfig"
- [% ELSIF c("var/linux-cross") -%]
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/[% c("var/crosstarget") %]/pkgconfig"
[% END -%]
[% END -%]
@@ -309,7 +307,7 @@ END;
/var/tmp/dist/gcc/bin/"${CROSS_PREFIX}g++" $rootdir/abicheck.cc -o Browser/abicheck -std=c++17
libdest=Browser/libstdc++
mkdir -p "$libdest"
- libdir=[% c("var/libdir") %]
+ libdir=lib64
[% IF c("var/linux-cross") -%]
libdir="[% c("var/crosstarget") %]/$libdir"
[% END -%]
=====================================
projects/firefox/config
=====================================
@@ -130,25 +130,6 @@ targets:
- libasound2-dev
# To support Wayland mode
- libdrm-dev
- libdir: lib64
-
- linux-i686:
- var:
- sort_deps: 0
- arch_deps:
- - libgtk2.0-dev:i386
- - libgtk-3-dev:i386
- - libdbus-glib-1-dev:i386
- - libxt-dev:i386
- # To pass configure since ESR 31
- - libpulse-dev:i386
- # To pass configure since ESR 52
- - libx11-xcb-dev:i386
- # To pass configure since ESR 102
- - libasound2-dev:i386
- # To support Wayland mode
- - libdrm-dev:i386
- libdir: lib32
linux-aarch64:
var:
@@ -166,7 +147,6 @@ targets:
- libasound2-dev:arm64
# To support Wayland mode
- libdrm-dev:arm64
- libdir: lib64
macos:
var:
=====================================
projects/gcc-cross/config
=====================================
@@ -16,14 +16,13 @@ var:
mkdir -p /var/tmp/dist
tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
export PATH="/var/tmp/dist/[% c("var/distdir") %]/bin:$PATH"
- export LD_LIBRARY_PATH=/var/tmp/dist/[% c("var/distdir") %]/lib64:/var/tmp/dist/[% c("var/distdir") %]/lib32
+ export LD_LIBRARY_PATH=/var/tmp/dist/[% c("var/distdir") %]/lib64
[% IF c("hardened_gcc"); GET c("var/set_hardened_build_flags"); END %]
configure_opt: '--target=[% c("var/crosstarget") %] --disable-multilib --enable-languages=c,c++ --with-glibc-version=[% c("var/glibc_version") %]'
# Use stretch's glibc and stretch-security's linux
glibc_version: 2.24
linux_version: 4.19.232
arch_deps:
- - libc6-dev-i386
- gawk
- rsync
=====================================
projects/gcc/config
=====================================
@@ -16,7 +16,7 @@ var:
mkdir -p /var/tmp/dist
tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %]
export PATH="/var/tmp/dist/[% c("var/distdir") %]/bin:$PATH"
- export LD_LIBRARY_PATH=/var/tmp/dist/[% c("var/distdir") %]/lib64:/var/tmp/dist/[% c("var/distdir") %]/lib32
+ export LD_LIBRARY_PATH=/var/tmp/dist/[% c("var/distdir") %]/lib64
[% IF c("hardened_gcc"); GET c("var/set_hardened_build_flags"); END %]
targets:
@@ -29,9 +29,7 @@ targets:
linux:
hardened_gcc: 1
var:
- configure_opt: --enable-multilib --enable-languages=c,c++ --with-arch_32=i686
- arch_deps:
- - libc6-dev-i386
+ configure_opt: --enable-multilib --enable-languages=c,c++
input_files:
- project: container-image
=====================================
projects/go/config
=====================================
@@ -59,9 +59,6 @@ targets:
linux-x86_64:
var:
GOARCH: amd64
- linux-i686:
- var:
- GOARCH: 386
linux-aarch64:
var:
GOARCH: arm64
=====================================
projects/linux-packages/build
=====================================
@@ -9,16 +9,6 @@ mkdir -p "$distdir"
umask 0022
[% IF c("var/build_deb_pkg") -%]
- [% IF c("var/browser-linux-i686") -%]
- # When building an i386 deb package, dh_strip requires i686-linux-gnu-*
- # commands not provided by the binutils x86_64 package on debian stretch.
- # We can use the binutils-i686-gnu package when we switch to buster.
- mkdir -p /var/tmp/dist/binutils
- for bin in strip objcopy objdump; do
- ln -s /usr/bin/$bin /var/tmp/dist/binutils/i686-linux-gnu-$bin
- done
- export PATH="/var/tmp/dist/binutils:$PATH"
- [% END -%]
cd $distdir
project_dir=[% c("var/system_pkg/pkg_name") %]-[% c("var/system_pkg/pkg_version") %]
mkdir "$project_dir"
@@ -52,11 +42,6 @@ umask 0022
$rootdir/[% c('input_files_by_name/linux-x86_64') %]/[% c("var/project-name") %]-linux-x86_64-[% c("version") %].tar.xz \
amd64
[% END -%]
- [% IF c("var/browser-linux-i686") -%]
- extract_src_tar \
- $rootdir/[% c('input_files_by_name/linux-i686') %]/[% c("var/project-name") %]-linux-i686-[% c("version") %].tar.xz \
- i386
- [% END -%]
[% IF c("var/browser-linux-aarch64") -%]
extract_src_tar \
$rootdir/[% c('input_files_by_name/linux-aarch64') %]/[% c("var/project-name") %]-linux-aarch64-[% c("version") %].tar.xz \
@@ -93,10 +78,6 @@ EOF
cp -a $rootdir/[% c('input_files_by_name/linux-x86_64') %]/[% c("var/project-name") %]-linux-x86_64-[% c("version") %].tar.xz \
SOURCES/[% c("var/system_pkg/pkg_name") %]-linux-x86_64-[% c("var/system_pkg/pkg_version") %].tar.xz
[% END -%]
- [% IF c("var/browser-linux-i686") -%]
- cp -a $rootdir/[% c('input_files_by_name/linux-i686') %]/[% c("var/project-name") %]-linux-i686-[% c("version") %].tar.xz \
- SOURCES/[% c("var/system_pkg/pkg_name") %]-linux-i386-[% c("var/system_pkg/pkg_version") %].tar.xz
- [% END -%]
[% IF c("var/browser-linux-aarch64") -%]
cp -a $rootdir/[% c('input_files_by_name/linux-aarch64') %]/[% c("var/project-name") %]-linux-aarch64-[% c("version") %].tar.xz \
SOURCES/[% c("var/system_pkg/pkg_name") %]-linux-aarch64-[% c("var/system_pkg/pkg_version") %].tar.xz
@@ -105,9 +86,6 @@ EOF
[% IF c("var/browser-linux-x86_64") -%]
rpmbuild --define "_topdir $rpmdir" -v -bb SPECS/[% c("var/system_pkg/pkg_name") %].spec
[% END -%]
- [% IF c("var/browser-linux-i686") -%]
- rpmbuild --define "_topdir $rpmdir" --target i686-redhat-linux -v -bb SPECS/[% c("var/system_pkg/pkg_name") %].spec
- [% END -%]
[% IF c("var/browser-linux-aarch64") -%]
rpmbuild --define "_topdir $rpmdir" --target aarch64-redhat-linux -v -bb SPECS/[% c("var/system_pkg/pkg_name") %].spec
[% END -%]
=====================================
projects/linux-packages/config
=====================================
@@ -18,7 +18,6 @@ var:
# Use var_p/system_pkg/deb_archs for the processed list
deb_archs_list:
- '[% IF c("var/browser-linux-x86_64") %]amd64[% END %]'
- - '[% IF c("var/browser-linux-i686") %]i386[% END %]'
- '[% IF c("var/browser-linux-aarch64") %]arm64[% END %]'
@@ -28,7 +27,6 @@ targets:
var:
build_deb_pkg: 1
pre_pkginst: |
- dpkg --add-architecture i386
# some foreign-arch packages fail to install when /var/lib/dpkg/available
# does not exist, so create it as an empty file
echo > /var/lib/dpkg/available
@@ -54,16 +52,6 @@ targets:
- libpulse-dev
- libx11-xcb-dev
- libxt-dev
- - linux-libc-dev:i386
- - libasound2-dev:i386
- - libfontconfig1-dev:i386
- - libfreetype6-dev:i386
- - libgconf2-dev:i386
- - libgtk-3-dev:i386
- - libpango1.0-dev:i386
- - libpulse-dev:i386
- - libx11-xcb-dev:i386
- - libxt-dev:i386
deb-arm64:
var:
build_deb_pkg: 1
@@ -111,9 +99,6 @@ targets:
browser-linux-x86_64:
var:
browser-linux-x86_64: 1
- browser-linux-i686:
- var:
- browser-linux-i686: 1
browser-linux-aarch64:
var:
browser-linux-aarch64: 1
@@ -163,13 +148,6 @@ input_files:
- '[% c("var/build_target") %]'
- '[% c("var/browser_type") %]-linux-x86_64'
- - name: linux-i686
- project: browser
- enable: '[% c("var/browser-linux-i686") %]'
- target:
- - '[% c("var/build_target") %]'
- - '[% c("var/browser_type") %]-linux-i686'
-
- name: linux-aarch64
project: browser
enable: '[% c("var/browser-linux-aarch64") %]'
=====================================
projects/linux-packages/debian/control.in
=====================================
@@ -5,7 +5,7 @@ Section: web
Build-Depends: debhelper (>= 9), dh-apparmor
Package: [% c("var/system_pkg/pkg_name") %]
-Architecture: amd64 i386 arm64
+Architecture: amd64 arm64
Depends: ${shlibs:Depends},
Recommends: libavcodec61 | libavcodec-extra61 | libavcodec60 | libavcodec-extra60 | libavcodec59 | libavcodec-extra59 | libavcodec58 | libavcodec-extra58 | libavcodec57 | libavcodec-extra57 | libavcodec56 | libavcodec-extra56 | libavcodec55 | libavcodec-extra55 | libavcodec54 | libavcodec-extra54 | libavcodec53 | libavcodec-extra53
Description: [% c('var/display_name') %]
=====================================
projects/linux-packages/rpm-package.spec
=====================================
@@ -34,9 +34,6 @@ Source1: [% c("var/system_pkg/pkg_name") %].desktop
[% IF c("var/browser-linux-x86_64") -%]
Source2: %{name}-linux-x86_64-%{version}.tar.xz
[% END -%]
-[% IF c("var/browser-linux-i686") -%]
-Source3: %{name}-linux-i386-%{version}.tar.xz
-[% END -%]
[% IF c("var/browser-linux-aarch64") -%]
Source4: %{name}-linux-aarch64-%{version}.tar.xz
[% END -%]
=====================================
projects/openssl/build
=====================================
@@ -7,9 +7,6 @@ mkdir -p /var/tmp/build
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
cd /var/tmp/build/[% project %]-[% c('version') %]
-[% IF c("var/osname") == "linux-i686" -%]
-export CC='gcc -m32'
-[% END %]
# OpenSSL prepends the host triple to $CC
[% IF c("var/macos") -%]
# Tricking OpenSSL into using our clang as cross-compiler
=====================================
projects/openssl/config
=====================================
@@ -8,9 +8,6 @@ targets:
linux-x86_64:
var:
configure_opts: -shared enable-ec_nistp_64_gcc_128 linux-x86_64
- linux-i686:
- var:
- configure_opts: -shared linux-x86
linux-aarch64:
var:
configure_opts: -shared --cross-compile-prefix=[% c("var/crosstarget") %]- enable-ec_nistp_64_gcc_128 linux-aarch64
=====================================
projects/release/build
=====================================
@@ -43,9 +43,6 @@ function mv_files {
[% IF c("var/browser_platforms/macos-aarch64") -%]
mv_files "[% c('input_files_by_name/macos-aarch64') %]"
[% END -%]
-[% IF c("var/browser_platforms/linux-i686") -%]
- mv_files "[% c('input_files_by_name/linux-i686') %]"
-[% END -%]
[% IF c("var/browser_platforms/linux-x86_64") -%]
mv_files "[% c('input_files_by_name/linux-x86_64') %]"
[% END -%]
@@ -75,8 +72,6 @@ RewriteRule ^sha256sums.incrementals.txt.asc$ sha256sums-unsigned-build.incremen
[% IF c("var/tor-browser") -%]
RewriteRule ^tor-browser-linux64-(.*)_ALL.tar.xz.asc$ tor-browser-linux-x86_64-$1.tar.xz.asc
RewriteRule ^tor-browser-linux64-(.*)_ALL.tar.xz$ tor-browser-linux-x86_64-$1.tar.xz
-RewriteRule ^tor-browser-linux32-(.*)_ALL.tar.xz.asc$ tor-browser-linux-i686-$1.tar.xz.asc
-RewriteRule ^tor-browser-linux32-(.*)_ALL.tar.xz$ tor-browser-linux-i686-$1.tar.xz
[% END -%]
EOF
=====================================
projects/release/config
=====================================
@@ -8,7 +8,7 @@ var:
publish_dir: '[% c("var/signed_status") %]/[% c("version") %]-[% c("var/torbrowser_build") %]'
containers_target: with_containers
- linux-packages: '[% ( c("var/browser_platforms/linux-i686") || c("var/browser_platforms/linux-x86_64") ) && ( c("var/mullvad-browser") || c("var/nightly") ) %]'
+ linux-packages: '[% c("var/browser_platforms/linux-x86_64") && ( c("var/mullvad-browser") || c("var/nightly") ) %]'
linux-packages-aarch64: '[% c("var/browser_platforms/linux-aarch64") && (c("var/mullvad-browser") || c("var/nightly")) %]'
list_used_projects: '[% INCLUDE list_used_projects %]'
@@ -57,10 +57,6 @@ targets:
browser_platforms:
linux-x86_64: 1
asan-build: '-asan'
- browser-linux-i686:
- var:
- browser_platforms:
- linux-i686: 1
browser-linux-aarch64:
var:
browser_platforms:
@@ -193,13 +189,6 @@ input_files:
- '[% c("var/build_target") %]'
- '[% c("var/browser_type") %]-linux-x86_64[% c("var/asan-build") %]'
- - name: linux-i686
- project: browser
- enable: '[% c("var/browser_platforms/linux-i686") %]'
- target:
- - '[% c("var/build_target") %]'
- - '[% c("var/browser_type") %]-linux-i686'
-
- name: linux-aarch64
project: browser
enable: '[% c("var/browser_platforms/linux-aarch64") %]'
@@ -214,7 +203,6 @@ input_files:
target:
- '[% IF c("var/testbuild") %]testbuild[% END %]'
- '[% c("var/build_target") %]'
- - '[% IF c("var/browser_platforms/linux-i686") %]browser-linux-i686[% END %]'
- '[% IF c("var/browser_platforms/linux-x86_64") %]browser-linux-x86_64[% END %]'
- deb
- '[% c("var/browser_type") %]-linux-x86_64'
@@ -239,7 +227,6 @@ input_files:
target:
- '[% IF c("var/testbuild") %]testbuild[% END %]'
- '[% c("var/build_target") %]'
- - '[% IF c("var/browser_platforms/linux-i686") %]browser-linux-i686[% END %]'
- '[% IF c("var/browser_platforms/linux-x86_64") %]browser-linux-x86_64[% END %]'
- '[% IF c("var/linux-packages-aarch64") %]browser-linux-aarch64[% END %]'
- rpm
=====================================
projects/release/update_responses_config.yml
=====================================
@@ -20,7 +20,6 @@ download:
[% END -%]
build_targets:
linux-aarch64: Linux_aarch64-gcc3
- linux-i686: Linux_x86-gcc3
linux-x86_64: Linux_x86_64-gcc3
windows-i686:
- WINNT_x86-gcc3
@@ -68,8 +67,6 @@ versions:
windows-x86_64:
# Windows 10
minSupportedOSVersion: 10.0
- linux-i686:
- minSupportedInstructionSet: SSE2
linux-x86_64:
minSupportedInstructionSet: SSE2
[% IF c("var/tor-browser") && c("var/torbrowser_legacy_version") -%]
=====================================
projects/rust/config
=====================================
@@ -15,11 +15,6 @@ targets:
target_flags: --set=target.armv7-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.armv7-linux-androideabi.ar=llvm-ar --set=target.thumbv7neon-linux-androideabi.cc=armv7a-linux-androideabi21-clang --set=target.thumbv7neon-linux-androideabi.ar=llvm-ar --set=target.aarch64-linux-android.cc=aarch64-linux-android21-clang --set=target.aarch64-linux-android.ar=llvm-ar --set=target.i686-linux-android.cc=i686-linux-android21-clang --set=target.i686-linux-android.ar=llvm-ar --set=target.x86_64-linux-android.cc=x86_64-linux-android21-clang --set=target.x86_64-linux-android.ar=llvm-ar
linux:
- var:
- target: i686-unknown-linux-gnu
- target_flags: --set target.i686-unknown-linux-gnu.linker=clang --set target.i686-unknown-linux-gnu.ar=llvm-ar --set target.i686-unknown-linux-gnu.ranlib=llvm-ranlib
-
- linux-aarch64:
var:
target: aarch64-unknown-linux-gnu
target_flags: --set target.aarch64-unknown-linux-gnu.linker=aarch64-linux-gnu-gcc --set target.aarch64-unknown-linux-gnu.ar=llvm-ar --set target.aarch64-unknown-linux-gnu.ranlib=llvm-ranlib
=====================================
projects/tor/config
=====================================
@@ -19,12 +19,6 @@ targets:
var:
flag_mwindows: '-Wl,--subsystem,console'
- linux-i686:
- var:
- libdir: lib32
- sort_deps: 0
- arch_deps:
- - zlib1g-dev:i386
linux-x86_64:
var:
libdir: lib64
=====================================
rbm.conf
=====================================
@@ -87,7 +87,6 @@ var:
android-x86_64: '[% c("var/browser_platforms/is_android_release") %]'
android-aarch64: '[% c("var/browser_platforms/is_android_release") %]'
linux-x86_64: '[% c("var/browser_platforms/is_desktop_release") %]'
- linux-i686: '[% c("var/browser_platforms/is_desktop_release") && c("var/tor-browser") %]'
linux-aarch64: '[% c("var/browser_platforms/is_desktop_release") %]'
windows-i686: '[% c("var/browser_platforms/is_desktop_release") && c("var/tor-browser") %]'
windows-x86_64: '[% c("var/browser_platforms/is_desktop_release") %]'
@@ -114,7 +113,6 @@ var:
signing_desktop: |
[%-
c("var/browser_platforms/linux-x86_64") ||
- c("var/browser_platforms/linux-i686") ||
c("var/browser_platforms/linux-aarch64") ||
c("var/browser_platforms/windows-i686") ||
c("var/browser_platforms/windows-x86_64") ||
@@ -534,14 +532,6 @@ targets:
- linux-x86_64
- linux
- mullvadbrowser
- torbrowser-linux-i686:
- - linux-i686
- - linux
- - torbrowser
- basebrowser-linux-i686:
- - linux-i686
- - linux
- - basebrowser
torbrowser-linux-aarch64:
- linux-cross
- linux-aarch64
@@ -574,14 +564,6 @@ targets:
osname: linux-x86_64
linux-cross: 0
arch_debian: amd64
- linux-i686:
- arch: i686
- var:
- linux-i686: 1
- osname: linux-i686
- linux-cross: 0
- configure_opt: '--host=i686-linux-gnu CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 [% c("var/configure_opt_project") %]'
- arch_debian: i386
linux-aarch64:
arch: aarch64
var:
@@ -615,11 +597,8 @@ targets:
container:
suite: stretch
arch: amd64
- pre_pkginst: dpkg --add-architecture i386
deps:
- ca-certificates
- - libc6-dev-i386
- - lib32stdc++6
- pkg-config
- libssl-dev
- build-essential
=====================================
tools/dmg2mar
=====================================
@@ -59,19 +59,6 @@ sub capture_exec {
return $stdout;
}
-sub osname {
- my ($osname) = capture_exec('uname', '-s');
- my ($arch) = capture_exec('uname', '-m');
- chomp($osname, $arch);
- if ($osname eq 'Linux' && $arch eq 'x86_64') {
- return 'linux-x86_64';
- }
- if ($osname eq 'Linux' && $arch =~ m/^i.86$/) {
- return 'linux-i686';
- }
- exit_error 'Unknown OS';
-}
-
sub setup_martools {
my ($out, $err, $exit) = capture {
system("$FindBin::Bin/setup-martools");
=====================================
tools/signing/nightly/config.yml
=====================================
@@ -7,7 +7,6 @@ builds_url: /srv/tbb-nightlies-master.torproject.org/htdocs/nightly-builds/tor-b
torbrowser:
publish_dirs:
- nightly-linux-x86_64
- - nightly-linux-i686
- nightly-linux-aarch64
- nightly-windows-x86_64
- nightly-windows-i686
=====================================
tools/signing/nightly/update-responses-base-config.yml
=====================================
@@ -3,7 +3,6 @@ download:
mars_url: https://nightlies.tbb.torproject.org/nightly-updates
build_targets:
linux-aarch64: Linux_aarch64-gcc3
- linux-i686: Linux_x86-gcc3
linux-x86_64: Linux_x86_64-gcc3
windows-i686:
- WINNT_x86-gcc3
@@ -30,8 +29,6 @@ versions:
windows-x86_64:
# Windows v10
minSupportedOSVersion: 10.0
- linux-i686:
- minSupportedInstructionSet: SSE2
linux-x86_64:
minSupportedInstructionSet: SSE2
mar_compression: xz
=====================================
tools/signing/staticiforme-prepare-cdn-dist-upload
=====================================
@@ -18,8 +18,6 @@ if is_project torbrowser; then
cat >> "$dist_dir/.htaccess" << 'EOF'
RewriteRule ^tor-browser-linux64-(.*)_ALL.tar.xz.asc$ tor-browser-linux-x86_64-$1.tar.xz.asc
RewriteRule ^tor-browser-linux64-(.*)_ALL.tar.xz$ tor-browser-linux-x86_64-$1.tar.xz
-RewriteRule ^tor-browser-linux32-(.*)_ALL.tar.xz.asc$ tor-browser-linux-i686-$1.tar.xz.asc
-RewriteRule ^tor-browser-linux32-(.*)_ALL.tar.xz$ tor-browser-linux-i686-$1.tar.xz
EOF
fi
=====================================
tools/update-responses/update_responses
=====================================
@@ -171,7 +171,7 @@ sub get_version_downloads {
my $os;
if ($file =~ m/^$config->{appname_bundle}-macos-$version.dmg$/) {
$os = 'macos';
- } elsif ($file =~ m/^$config->{appname_bundle}-(linux-i686|linux-x86_64)-${version}.tar.xz$/) {
+ } elsif ($file =~ m/^$config->{appname_bundle}-(linux-x86_64|linux-aarch64)-${version}.tar.xz$/) {
$os = $1;
} elsif ($file =~ m/^$config->{appname_bundle}-windows-x86_64-(portable-|)${version}.exe$/) {
$os = 'win64';
@@ -200,7 +200,7 @@ sub get_perplatform_downloads {
my $os;
if ($file =~ m/^$config->{appname_bundle}-macos-$version.dmg$/) {
$os = 'macos';
- } elsif ($file =~ m/^$config->{appname_bundle}-(linux-i686|linux-x86_64)-${version}.tar.xz$/) {
+ } elsif ($file =~ m/^$config->{appname_bundle}-(linux-x86_64|linux-aarch64)-${version}.tar.xz$/) {
$os = $1;
} elsif ($file =~ m/^$config->{appname_bundle}-(windows-i686|windows-x86_64)-(portable-|)${version}.exe$/) {
$os = $1;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][maint-15.0] MB 493: Check dist.torproject.org before submitting a new build to Mullvad.
by ma1 (@ma1) 25 Nov '25
by ma1 (@ma1) 25 Nov '25
25 Nov '25
ma1 pushed to branch maint-15.0 at The Tor Project / Applications / tor-browser-build
Commits:
94425a1f by hackademix at 2025-11-25T17:01:25+01:00
MB 493: Check dist.torproject.org before submitting a new build to Mullvad.
- - - - -
2 changed files:
- .gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
- tools/signing/publish-github.mullvadbrowser
Changes:
=====================================
.gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
=====================================
@@ -189,7 +189,9 @@ This step will send the relevant branches, tags (including a tag named after the
<details>
<summary>Communications</summary>
+
### packagers
+
- [ ] **(Once Packages are pushed to GitHub)**
- **Recipients**
- flathub package maintainer: proletarius101(a)protonmail.com
=====================================
tools/signing/publish-github.mullvadbrowser
=====================================
@@ -28,6 +28,12 @@ BB_BRANCH=${MB_BRANCH//mullvad-/base-}
ESR_VERSION=$(showconf firefox var/firefox_version $TARGET)
BASE_VERSION=$(showconf release var/torbrowser_version $TARGET)
RELEASE_VERSION="${BASE_VERSION}${mbrtag_suffix}"
+RELEASE_URL="https://dist.torproject.org/mullvadbrowser/${RELEASE_VERSION}/"
+if ! curl -f "$RELEASE_URL" >/dev/null 2>&1 ; then
+ echo >&2 "$RELEASE_URL not found! Maybe you need to run:"
+ echo >&2 "ssh staticiforme.torproject.org 'cd /srv/dist-master.torproject.org/htdocs/mullvadbrowser && static-update-component dist.torproject.org'"
+ exit 2
+fi
pushd >/dev/null ../../git_clones/firefox
echo "Fetching $MB_BRANCH and tags..."
git fetch --tags "$GL_REMOTE_MULLVAD" "$MB_BRANCH"
@@ -39,7 +45,7 @@ echo "MB tag: $MB_TAG"
echo "BB tag: $BB_TAG"
echo "FX tag: $FX_TAG"
echo "Mullvad release tag: $RELEASE_VERSION"
-read -p "Do you want to tag mullvad $RELEASE_VERSION and push tags/branches/QA build to ${GH_REMOTE}? (y/N) " -n 1 -r
+read -p "Do you want to tag mullvad $RELEASE_VERSION & push tags/branches/QA build to ${GH_REMOTE}? (y/N) " -n 1 -r
echo
if ! [[ $REPLY =~ ^[Yy]$ ]]; then
echo >&2 "Operation cancelled"
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][main] MB 493: Check dist.torproject.org before submitting a new build to Mullvad.
by ma1 (@ma1) 25 Nov '25
by ma1 (@ma1) 25 Nov '25
25 Nov '25
ma1 pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
ff64da1a by hackademix at 2025-11-25T16:54:24+01:00
MB 493: Check dist.torproject.org before submitting a new build to Mullvad.
- - - - -
2 changed files:
- .gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
- tools/signing/publish-github.mullvadbrowser
Changes:
=====================================
.gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md
=====================================
@@ -185,7 +185,9 @@ This step will send the relevant branches, tags (including a tag named after the
<details>
<summary>Communications</summary>
+
### packagers
+
- [ ] **(Once Packages are pushed to GitHub)**
- **Recipients**
- flathub package maintainer: proletarius101(a)protonmail.com
=====================================
tools/signing/publish-github.mullvadbrowser
=====================================
@@ -28,6 +28,12 @@ BB_BRANCH=${MB_BRANCH//mullvad-/base-}
ESR_VERSION=$(showconf firefox var/firefox_version $TARGET)
BASE_VERSION=$(showconf release var/torbrowser_version $TARGET)
RELEASE_VERSION="${BASE_VERSION}${mbrtag_suffix}"
+RELEASE_URL="https://dist.torproject.org/mullvadbrowser/${RELEASE_VERSION}/"
+if ! curl -f "$RELEASE_URL" >/dev/null 2>&1 ; then
+ echo >&2 "$RELEASE_URL not found! Maybe you need to run:"
+ echo >&2 "ssh staticiforme.torproject.org 'cd /srv/dist-master.torproject.org/htdocs/mullvadbrowser && static-update-component dist.torproject.org'"
+ exit 2
+fi
pushd >/dev/null ../../git_clones/firefox
echo "Fetching $MB_BRANCH and tags..."
git fetch --tags "$GL_REMOTE_MULLVAD" "$MB_BRANCH"
@@ -39,7 +45,7 @@ echo "MB tag: $MB_TAG"
echo "BB tag: $BB_TAG"
echo "FX tag: $FX_TAG"
echo "Mullvad release tag: $RELEASE_VERSION"
-read -p "Do you want to tag mullvad $RELEASE_VERSION and push tags/branches/QA build to ${GH_REMOTE}? (y/N) " -n 1 -r
+read -p "Do you want to tag mullvad $RELEASE_VERSION & push tags/branches/QA build to ${GH_REMOTE}? (y/N) " -n 1 -r
echo
if ! [[ $REPLY =~ ^[Yy]$ ]]; then
echo >&2 "Operation cancelled"
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser][mullvad-browser-145.0a1-16.0-1] 8 commits: fixup! BB 43140: Tighten up fonts on Linux.
by Pier Angelo Vendrame (@pierov) 25 Nov '25
by Pier Angelo Vendrame (@pierov) 25 Nov '25
25 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-145.0a1-16.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
71a835d4 by Pier Angelo Vendrame at 2025-11-24T16:42:17+01:00
fixup! BB 43140: Tighten up fonts on Linux.
BB 44315: Fix the fonts on the updater.
- - - - -
2e8e285c by Pier Angelo Vendrame at 2025-11-24T16:44:40+01:00
fixup! BB 43525: Skip Remote Settings for search engine customization.
MB 483: Ship DDG without AI as a bundled search engine.
MB 487: Use custom order for search engines.
- - - - -
77434824 by Pier Angelo Vendrame at 2025-11-24T16:47:37+01:00
fixup! MB 213: Customize the search engines list.
MB 487: Use custom order for search engines.
- - - - -
4e498e75 by Beatriz Rizental at 2025-11-24T16:47:37+01:00
fixup! Tweaks to the build system
Skip downloading WPT artifacts when generating test artifacts.
- - - - -
e9ded521 by Henry Wilkes at 2025-11-24T16:47:38+01:00
fixup! MB 39: Add home page about:mullvad-browser
MB 486: Delay the update data for preloaded about:mullvad-browser pages.
- - - - -
d4f44eea by Henry Wilkes at 2025-11-24T16:47:59+01:00
fixup! MB 213: Customize the search engines list.
MB 488: Drop Mullvad Leta search engine.
- - - - -
ba68b6de by Henry Wilkes at 2025-11-24T16:50:04+01:00
MB 488: Adjust search engine removal notification for Mullvad Leta.
- - - - -
157bb4f4 by Pier Angelo Vendrame at 2025-11-24T17:36:30+01:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
Update GitLab templates.
Avoid mentioning existing issues/MRs, and update the channels.
- - - - -
14 changed files:
- .gitlab/issue_templates/040 Feature.md
- .gitlab/issue_templates/050 Backport.md
- .gitlab/merge_request_templates/Default.md
- browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs
- browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs
- browser/components/search/SearchUIUtils.sys.mjs
- browser/components/tabbrowser/NewTabPagePreloading.sys.mjs
- testing/testsuite-targets.mk
- toolkit/components/search/SearchService.sys.mjs
- toolkit/components/search/content/base-browser-search-engine-icons.json
- toolkit/components/search/content/base-browser-search-engines.json
- − toolkit/components/search/content/mullvad-leta.svg
- toolkit/components/search/tests/xpcshell/test_base_browser.js
- toolkit/mozapps/update/updater/updater.cpp
Changes:
=====================================
.gitlab/issue_templates/040 Feature.md
=====================================
@@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature
### Proposal
<!-- Add links to associated proposal issues (or delete block) -->
-- mullvad-browser#123
+- mullvad-browser#xyz
### Design
<!-- Add links to associated design issues (or delete block) -->
-- tpo/UX/Design#123
+- tpo/UX/Design#xyz
<!-- Do not edit beneath this line <3 -->
=====================================
.gitlab/issue_templates/050 Backport.md
=====================================
@@ -13,12 +13,12 @@ please ensure the title has the following format:
## Bookkeeping
### Issue(s)
-- tor-browser#12345
-- mullvad-browser#123
-- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567
+- tor-browser#xxxxx
+- mullvad-browser#xyz
+- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx
### Merge Request(s)
-- tor-browser!123
+- tor-browser!xxxx
### Target Channels
=====================================
.gitlab/merge_request_templates/Default.md
=====================================
@@ -27,8 +27,8 @@
#### Target Channels
-- [ ] **Alpha**: esr140-15.0
-- [ ] **Stable**: esr128-14.5
+- [ ] **Alpha**: rapid release, 16.0
+- [ ] **Stable**: esr140-15.0
### Backporting
=====================================
browser/components/mullvad-browser/AboutMullvadBrowserChild.sys.mjs
=====================================
@@ -5,13 +5,34 @@ export class AboutMullvadBrowserChild extends JSWindowActorChild {
handleEvent(event) {
switch (event.type) {
case "DOMContentLoaded":
- this.sendQuery("AboutMullvadBrowser:GetUpdateData").then(data => {
- const updateEvent = new this.contentWindow.CustomEvent("UpdateData", {
- detail: Cu.cloneInto(data, this.contentWindow),
- });
- this.contentWindow.dispatchEvent(updateEvent);
+ this.sendQuery("AboutMullvadBrowser:GetUpdateData").then(response => {
+ if (response.delayed) {
+ // Wait for DelayedUpdateData.
+ return;
+ }
+ this.#dispatchUpdateData(response.updateData);
});
break;
}
}
+
+ receiveMessage(message) {
+ switch (message.name) {
+ case "AboutMullvadBrowser:DelayedUpdateData":
+ this.#dispatchUpdateData(message.data);
+ break;
+ }
+ }
+
+ /**
+ * Send the update data to the page.
+ *
+ * @param {object} data - The data to send.
+ */
+ #dispatchUpdateData(data) {
+ const updateEvent = new this.contentWindow.CustomEvent("UpdateData", {
+ detail: Cu.cloneInto(data, this.contentWindow),
+ });
+ this.contentWindow.dispatchEvent(updateEvent);
+ }
}
=====================================
browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs
=====================================
@@ -2,30 +2,73 @@
* Actor parent class for the about:mullvad-browser page.
*/
export class AboutMullvadBrowserParent extends JSWindowActorParent {
- receiveMessage(message) {
+ /**
+ * Whether this instance has a preloaded browser.
+ *
+ * @type {boolean}
+ */
+ #preloaded = false;
+
+ /**
+ * Method to be called when the browser corresponding to this actor has its
+ * preloadedState attribute removed.
+ */
+ preloadedRemoved() {
+ if (!this.#preloaded) {
+ return;
+ }
+ this.#preloaded = false;
+ // Send in the initial data now that the page is actually going to be
+ // visible.
+ this.sendAsyncMessage(
+ "AboutMullvadBrowser:DelayedUpdateData",
+ this.#getUpdateData()
+ );
+ }
+
+ /**
+ * Get the update data for the page.
+ *
+ * @returns {object?} - The update data, or `null` if no update should be
+ * shown.
+ */
+ #getUpdateData() {
const shouldNotifyPref = "mullvadbrowser.post_update.shouldNotify";
+ if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) {
+ return null;
+ }
+ Services.prefs.clearUserPref(shouldNotifyPref);
+ // Try use the same URL as the about dialog. See mullvad-browser#411.
+ let updateURL = Services.urlFormatter.formatURLPref(
+ "app.releaseNotesURL.aboutDialog"
+ );
+ if (updateURL === "about:blank") {
+ updateURL = Services.urlFormatter.formatURLPref(
+ "startup.homepage_override_url"
+ );
+ }
+
+ return {
+ version: Services.prefs.getCharPref(
+ "browser.startup.homepage_override.mullvadbrowser.version"
+ ),
+ url: updateURL,
+ };
+ }
+
+ receiveMessage(message) {
switch (message.name) {
case "AboutMullvadBrowser:GetUpdateData": {
- if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) {
- return Promise.resolve(null);
- }
- Services.prefs.clearUserPref(shouldNotifyPref);
- // Try use the same URL as the about dialog. See mullvad-browser#411.
- let updateURL = Services.urlFormatter.formatURLPref(
- "app.releaseNotesURL.aboutDialog"
- );
- if (updateURL === "about:blank") {
- updateURL = Services.urlFormatter.formatURLPref(
- "startup.homepage_override_url"
- );
+ const browser = this.browsingContext.top.embedderElement;
+ if (browser?.getAttribute("preloadedState") === "preloaded") {
+ // Wait until the page is actually about to be shown before sending
+ // the initial data.
+ // Otherwise the preloaded page might grab the updateData even though
+ // it won't be shown as the landing page. See mullvad-browser#486.
+ this.#preloaded = true;
+ return Promise.resolve({ delayed: true });
}
-
- return Promise.resolve({
- version: Services.prefs.getCharPref(
- "browser.startup.homepage_override.mullvadbrowser.version"
- ),
- url: updateURL,
- });
+ return Promise.resolve({ updateData: this.#getUpdateData() });
}
}
return undefined;
=====================================
browser/components/search/SearchUIUtils.sys.mjs
=====================================
@@ -86,8 +86,12 @@ export var SearchUIUtils = {
* name of the engine to be moved and replaced.
* @param {string} newEngine
* name of the application default engine to replaced the removed engine.
+ * @param {object} [details]
+ * Additional details about the removed search engine.
+ * @param {boolean} [details.removedMullvadLeta]
+ * Whether we removed Mullvad Leta.
*/
- async removalOfSearchEngineNotificationBox(oldEngine, newEngine) {
+ async removalOfSearchEngineNotificationBox(oldEngine, newEngine, details) {
let win = lazy.BrowserWindowTracker.getTopWindow({
allowFromInactiveWorkspace: true,
});
@@ -103,9 +107,14 @@ export var SearchUIUtils = {
win.gNotificationBox.removeNotification(notificationBox);
},
},
- {
- supportPage: "search-engine-removal",
- },
+ details?.removedMullvadLeta
+ ? {
+ link: "https://leta.mullvad.net/mullvad-browser",
+ "l10n-id": "moz-support-link-text",
+ }
+ : {
+ supportPage: "search-engine-removal",
+ },
];
await win.gNotificationBox.appendNotification(
=====================================
browser/components/tabbrowser/NewTabPagePreloading.sys.mjs
=====================================
@@ -178,6 +178,17 @@ export let NewTabPagePreloading = {
this.browserCounts[countKey]--;
browser.removeAttribute("preloadedState");
browser.setAttribute("autocompletepopup", "PopupAutoComplete");
+ // Copied from tor-browser. See mullvad-browser#486.
+ // Let a preloaded about:mullvad-browser page know that it is no longer
+ // preloaded (about to be shown).
+ try {
+ browser.browsingContext?.currentWindowGlobal
+ ?.getActor("AboutMullvadBrowser")
+ .preloadedRemoved();
+ } catch {
+ // Not an about:mullvad-browser page with an AboutMullvadBrowserParent
+ // instance.
+ }
}
return browser;
=====================================
testing/testsuite-targets.mk
=====================================
@@ -151,7 +151,7 @@ download-wpt-manifest:
$(call py_action,download_wpt_manifest)
define package_archive
-package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest
+package-tests-$(1): stage-all package-tests-prepare-dest
$$(call py_action,test_archive, \
$(1) \
'$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)')
=====================================
toolkit/components/search/SearchService.sys.mjs
=====================================
@@ -1849,7 +1849,11 @@ export class SearchService {
this._showRemovalOfSearchEngineNotificationBox(
prevCurrentEngineName || prevAppDefaultEngineName,
- newCurrentEngineName
+ newCurrentEngineName,
+ {
+ removedMullvadLeta:
+ (prevCurrentEngineId || prevAppDefaultEngineId) === "mullvad-leta",
+ }
);
}
}
@@ -1927,7 +1931,13 @@ export class SearchService {
// the user changes their locale it causes a change in engines.
// If there is no update to settings metadata then the engine change was
// caused by an update to config rather than a user changing their locale.
- if (!this.#didSettingsMetaDataUpdate(prevMetaData)) {
+ //
+ // For the removal of Mullvad Leta, we show the notification even if the
+ // locale also changed because this change is not locale-dependant.
+ if (
+ (prevCurrentEngineId || prevAppDefaultEngineId) === "mullvad-leta" ||
+ !this.#didSettingsMetaDataUpdate(prevMetaData)
+ ) {
return true;
}
}
@@ -3821,16 +3831,22 @@ export class SearchService {
* The name of the previous default engine that will be replaced.
* @param {string} newCurrentEngineName
* The name of the engine that will be the new default engine.
+ * @param {object} [details]
+ * Additional details about the removed search engine.
+ * @param {boolean} [details.removedMullvadLeta]
+ * Whether we removed Mullvad Leta.
*/
_showRemovalOfSearchEngineNotificationBox(
prevCurrentEngineName,
- newCurrentEngineName
+ newCurrentEngineName,
+ details
) {
lazy.BrowserUtils.callModulesFromCategory(
{ categoryName: "search-service-notification" },
"search-engine-removal",
prevCurrentEngineName,
- newCurrentEngineName
+ newCurrentEngineName,
+ details
);
}
=====================================
toolkit/components/search/content/base-browser-search-engine-icons.json
=====================================
@@ -5,11 +5,8 @@
"ddg-html": [
{ "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
],
- "mullvad-leta": [
- {
- "url": "chrome://global/content/search/mullvad-leta.svg",
- "imageSize": 16
- }
+ "ddg-noai": [
+ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
],
"mojeek": [
{ "url": "chrome://global/content/search/mojeek.ico", "imageSize": 32 }
=====================================
toolkit/components/search/content/base-browser-search-engines.json
=====================================
@@ -1,55 +1,55 @@
[
{
"base": {
- "aliases": ["mullvad-leta", "leta", "mullvad", "ml"],
+ "aliases": ["duckduckgo", "ddg"],
"classification": "general",
- "name": "Mullvad Leta",
+ "name": "DuckDuckGo",
"urls": {
"search": {
- "base": "https://leta.mullvad.net/",
+ "base": "https://duckduckgo.com/",
"params": [],
"searchTermParamName": "q"
}
}
},
- "id": "ee88d691-6d7a-4adb-9fec-5a205565505a",
- "identifier": "mullvad-leta",
+ "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99",
+ "identifier": "ddg",
"recordType": "engine",
"variants": [{ "environment": { "allRegionsAndLocales": true } }]
},
{
"base": {
- "aliases": ["duckduckgo", "ddg"],
+ "aliases": ["ddg-html", "duckduckgohtml", "ddgh"],
"classification": "general",
- "name": "DuckDuckGo",
+ "name": "DuckDuckGo (HTML)",
"urls": {
"search": {
- "base": "https://duckduckgo.com/",
+ "base": "https://html.duckduckgo.com/html/",
"params": [],
"searchTermParamName": "q"
}
}
},
- "id": "04e99a38-13ee-47d8-8aa4-64482b3dea99",
- "identifier": "ddg",
+ "id": "98d8c84b-7455-431d-98b9-890e7bcc0041",
+ "identifier": "ddg-html",
"recordType": "engine",
"variants": [{ "environment": { "allRegionsAndLocales": true } }]
},
{
"base": {
- "aliases": ["ddg-html", "duckduckgohtml", "ddgh"],
+ "aliases": ["ddgnoai"],
"classification": "general",
- "name": "DuckDuckGo (HTML)",
+ "name": "DuckDuckGo (no AI)",
"urls": {
"search": {
- "base": "https://html.duckduckgo.com/html/",
+ "base": "https://noai.duckduckgo.com/",
"params": [],
"searchTermParamName": "q"
}
}
},
- "id": "98d8c84b-7455-431d-98b9-890e7bcc0041",
- "identifier": "ddg-html",
+ "id": "91687f02-56dd-4fef-ba26-bf139dff3166",
+ "identifier": "ddg-noai",
"recordType": "engine",
"variants": [{ "environment": { "allRegionsAndLocales": true } }]
},
@@ -109,7 +109,16 @@
},
{
"recordType": "defaultEngines",
- "globalDefault": "mullvad-leta",
- "globalDefaultPrivate": "mullvad-leta"
+ "globalDefault": "ddg",
+ "globalDefaultPrivate": "dgg"
+ },
+ {
+ "recordType": "engineOrders",
+ "orders": [
+ {
+ "environment": { "allRegionsAndLocales": true },
+ "order": ["ddg", "ddg-html", "ddg-noai", "mojeek", "brave", "startpage"]
+ }
+ ]
}
]
=====================================
toolkit/components/search/content/mullvad-leta.svg deleted
=====================================
@@ -1,25 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" id="Mullvad_VPN_Logo_Positive" x="0" y="0" version="1.1"
- viewBox="0 0 252.70001 252.6" xml:space="preserve">
- <g id="Logo" transform="translate(-566.2 -73.7)">
- <path id="bg" fill="#192e45" fill-rule="evenodd"
- d="M566.2 200c0 69.8 56.6 126.3 126.3 126.3 69.7 0 126.4-56.5 126.4-126.3S762.3 73.7 692.5 73.7c-69.8 0-126.3 56.5-126.3 126.3z"
- clip-rule="evenodd" />
- <path id="Mullvad_Fur" fill="#d0933a" fill-rule="evenodd"
- d="M583.1 184.9l9.6-13.4c0 .1-.6 19.3-.6 19.3l2.7-14.5c8 16.2 27.6 38.6 45.5 50.6 1.9 1.3 3.5 2.7 4.6 4.1 2.3.9 4.6 1.4 6.9 1.8 1.2.2 2.5.3 3.7.4 1.2.1 2.5.1 3.7.1 1.2 0 2.4-.1 3.6-.2 1.2-.1 2.4-.3 3.6-.5 1.2-.2 2.4-.4 3.5-.8 1.2-.3 2.3-.6 3.5-1 1.1-.3 2.3-.8 3.4-1.2 1.1-.5 2.2-.9 3.3-1.5 1.1-.6 2.2-1.1 3.2-1.7 1.1-.5 2.1-1.2 3.2-1.8 1.1-.6 2.1-1.3 3.2-1.9 1.1-.6 2.1-1.3 3.1-1.9 1-.7 2.1-1.3 3.1-2s2.1-1.3 3.2-2l1-.6.5.3 7.2 4.8-7.3-1.9c-.7.8-1.4 1.6-2.2 2.4-.9.9-1.9 1.8-2.8 2.7-1 .8-2 1.7-3.1 2.4-1.1.8-2.1 1.5-3.3 2.2-2.2 1.4-4.6 2.6-7.1 3.6-1.2.5-2.5 1-3.7 1.4-1.3.4-2.5.8-3.8 1.1-1.3.3-2.6.6-3.9.8-1.3.2-2.6.3-3.9.5-2.6.1-5.3.1-7.9-.3-1.3-.2-2.6-.4-3.9-.7-1.3-.3-2.5-.7-3.7-1.1-2.1-.8-4.2-1.8-6.1-3 0 0-6.9 1-4.1 6.2 2.8 5.2 7 4.7 5 10.8-1.4 3.3-3.4 6.5-5.6 9.5-4.6 6.2-11.8 11.7-11.1 15 32.7 40.3 106.4 34.7 134.4-1.3-.4-5.2-8.6-7.7-14.3-20.4 1.6.5 4 1.2 4 1.1 0-.1-6.8-11.1-7.1-12.2l4.4.3s-5.8-7.2-6-7.9l5.9-.8s-7.4-8.5-7.5-9.2l7.5 1.2-8.2-9.9h3.9l-4.6-6.7c-.8-.3-1.6-.5-2.4-.7l-3-.9c-11.2-3.5-21.8-6.7-32-13.1-14.3-8.9-27.1-19.8-36.7-28.3l-19.3-9.4c-18.5-1.4-35.9-.9-46.5 1.2l6.8-11.6-10.4 12.5c-.7-.2-.9-.6-.9-.6l.7-15.4-3.3 13.9c-1-.5-2.2-.7-3.4-.7-4.6 0-8.3 3.7-8.3 8.3 0 4.2 3.1 7.7 7.2 8.2l-7.1 14.4z"
- clip-rule="evenodd" />
- <path id="Mullvad_Nose" fill="#ffcc86" fill-rule="evenodd"
- d="M594.8 154.5c-1-.4-2.2-.7-3.3-.7-4.6 0-8.3 3.7-8.3 8.3 0 4 2.9 7.4 6.7 8.2h.2c2.5-.8 7.5-7.5 6.7-11.7-.4-1.5-1-2.9-2-4.1z"
- clip-rule="evenodd" />
- <path id="Mullvad_Helmet" fill="#fdd321" fill-rule="evenodd"
- d="M667.6 143.8c-1.5-4.1-1.1-9.4 1-14.4 3-6.9 8.7-11.5 14.1-11.5 1.1 0 2.1.2 3.1.6 3.1-2.8 6.7-5.1 10.7-6.7 22.1-8.8 54.4 6.9 62.7 28.6 4 10.5 2.8 22-.6 32.5-2.8 8.6-13 21-9.2 30.4-1.5-.4-33.1-10.2-41.9-15.8-14.1-8.8-26.8-19.6-36.3-28l-.3-.3-32.1-15.2c-.4-.2-.8-.4-1.1-.6 4.6 0 22.1 2.1 29.9.4"
- clip-rule="evenodd" />
- <g id="Helmet_Lamp">
- <path id="path113" fill="#fff"
- d="M677.1 147.4c-.9 0-1.6-.2-2.3-.5-1.6-.7-2.8-2-3.6-4-1.4-3.4-1-8.1.9-12.5 2.5-5.6 7.3-9.7 11.5-9.7.8 0 1.6.2 2.4.5 2.1.9 3.6 3 4.1 6 .6 3.2.1 6.9-1.5 10.4-2.4 5.7-7.3 9.8-11.5 9.8z" />
- <g id="g117">
- <path id="path115" fill="#1d2a3a"
- d="M683.6 122.3c.6 0 1.2.1 1.8.4 1.6.7 2.8 2.5 3.2 4.9.5 2.9.1 6.3-1.4 9.5-2.2 5.1-6.5 8.8-10.1 8.8-.6 0-1.2-.1-1.7-.3-1.5-.6-2.3-2-2.7-3.1-1.2-3-.9-7.4.8-11.4 2.2-5.1 6.5-8.8 10.1-8.8m0-3c-4.8 0-10.1 4.4-12.9 10.7-2.1 4.7-2.4 9.8-.9 13.7.9 2.3 2.4 3.9 4.3 4.8.9.4 1.9.6 3 .6 4.8 0 10.1-4.4 12.8-10.7 1.7-3.8 2.2-7.8 1.6-11.3-.6-3.5-2.4-6-5-7.1-.9-.5-1.9-.7-2.9-.7z" />
- </g>
- </g>
- </g>
-</svg>
=====================================
toolkit/components/search/tests/xpcshell/test_base_browser.js
=====================================
@@ -4,19 +4,21 @@
/**
* This tests the SearchService to check our override of the remote settings is
* working as expected.
+ *
+ * When adding new engines, it should be enough to change expectedURLs below.
*/
"use strict";
const expectedURLs = {
- leta: "https://leta.mullvad.net/?q=test",
- ddg: "https://duckduckgo.com/html/?q=test",
- "ddg-html": "https://html.duckduckgo.com/html?q=test",
+ ddg: "https://duckduckgo.com/?q=test",
+ "ddg-html": "https://html.duckduckgo.com/html/?q=test",
+ "ddg-noai": "https://noai.duckduckgo.com/?q=test",
mojeek: "https://www.mojeek.com/search?q=test",
brave: "https://search.brave.com/search?q=test",
startpage: "https://www.startpage.com/sp/search?q=test",
};
-const defaultEngine = "leta";
+const defaultEngine = "ddg";
add_setup(async function setup() {
await Services.search.init();
@@ -49,3 +51,11 @@ add_task(function test_checkSearchURLs() {
Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`);
}
});
+
+add_task(async function test_iconsDoesNotFail() {
+ for (const id of Object.keys(expectedURLs)) {
+ const engine = Services.search.getEngineById(id);
+ // No need to assert anything, as in case of error this method should throw.
+ await engine.getIconURL();
+ }
+});
=====================================
toolkit/mozapps/update/updater/updater.cpp
=====================================
@@ -3326,6 +3326,10 @@ int NS_main(int argc, NS_tchar** argv) {
putenv(const_cast<char*>("MOZ_USING_SERVICE="));
#endif
+#if defined(XP_UNIX) && !defined(XP_MACOSX)
+ unsetenv("FONTCONFIG_PATH");
+#endif
+
if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) {
#ifdef MOZ_VERIFY_MAR_SIGNATURE
int rv = PopulategMARStrings();
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/16…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/16…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-bundle-testsuite][main] Bug 40092: Remove torbrowser-nightly-linux-i686
by boklm (@boklm) 24 Nov '25
by boklm (@boklm) 24 Nov '25
24 Nov '25
boklm pushed to branch main at The Tor Project / Applications / tor-browser-bundle-testsuite
Commits:
0d7e065b by Nicolas Vigier at 2025-11-24T16:54:15+01:00
Bug 40092: Remove torbrowser-nightly-linux-i686
See tor-browser-build#41601.
- - - - -
1 changed file:
- TBBTestSuite/TestSuite/TorBrowserBuild.pm
Changes:
=====================================
TBBTestSuite/TestSuite/TorBrowserBuild.pm
=====================================
@@ -55,27 +55,6 @@ sub set_tests {
publish_dir => 'nightly-linux-x86_64',
projectname => 'torbrowser',
},
- {
- name => 'torbrowser-nightly-linux-i686',
- descr => 'build tor-browser nightly linux-i686',
- type => 'rbm_build',
- project => 'release',
- targets => [
- 'noversiondir',
- 'nightly',
- 'browser-single-platform',
- 'browser-linux-i686',
- 'torbrowser',
- ],
- publish_dir => 'nightly-linux-i686',
- },
- {
- name => 'torbrowser-incrementals-nightly-linux-i686',
- descr => 'create incrementals for tor-browser nightly linux-i686',
- type => 'make_incrementals',
- publish_dir => 'nightly-linux-i686',
- projectname => 'torbrowser',
- },
{
name => 'torbrowser-nightly-linux-aarch64',
descr => 'build tor-browser nightly linux-aarch64',
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-bundle-testsuite…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][base-browser-145.0a1-16.0-1] fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25
by Pier Angelo Vendrame (@pierov) 24 Nov '25
24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser
Commits:
e2ed272c by Pier Angelo Vendrame at 2025-11-24T17:37:07+01:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
Update GitLab templates.
Avoid mentioning existing issues/MRs, and update the channels.
- - - - -
3 changed files:
- .gitlab/issue_templates/040 Feature.md
- .gitlab/issue_templates/050 Backport.md
- .gitlab/merge_request_templates/Default.md
Changes:
=====================================
.gitlab/issue_templates/040 Feature.md
=====================================
@@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature
### Proposal
<!-- Add links to associated proposal issues (or delete block) -->
-- tor-browser#12345
+- tor-browser#xxxxx
### Design
<!-- Add links to associated design issues (or delete block) -->
-- tpo/UX/Design#123
+- tpo/UX/Design#xyz
<!-- Do not edit beneath this line <3 -->
=====================================
.gitlab/issue_templates/050 Backport.md
=====================================
@@ -13,12 +13,12 @@ please ensure the title has the following format:
## Bookkeeping
### Issue(s)
-- tor-browser#12345
-- mullvad-browser#123
-- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567
+- tor-browser#xxxxx
+- mullvad-browser#xyz
+- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx
### Merge Request(s)
-- tor-browser!123
+- tor-browser!xxxx
### Target Channels
=====================================
.gitlab/merge_request_templates/Default.md
=====================================
@@ -27,8 +27,8 @@
#### Target Channels
-- [ ] **Alpha**: esr140-15.0
-- [ ] **Stable**: esr128-14.5
+- [ ] **Alpha**: rapid release, 16.0
+- [ ] **Stable**: esr140-15.0
- [ ] **Legacy**: esr115-13.5
### Backporting
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2ed272…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e2ed272…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][base-browser-145.0a1-16.0-1] 3 commits: fixup! BB 43140: Tighten up fonts on Linux.
by Pier Angelo Vendrame (@pierov) 24 Nov '25
by Pier Angelo Vendrame (@pierov) 24 Nov '25
24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser
Commits:
86495864 by Pier Angelo Vendrame at 2025-11-24T16:33:27+01:00
fixup! BB 43140: Tighten up fonts on Linux.
BB 44315: Fix the fonts on the updater.
- - - - -
6d3f1030 by Pier Angelo Vendrame at 2025-11-24T16:35:28+01:00
fixup! BB 43525: Skip Remote Settings for search engine customization.
MB 483: Ship DDG without AI as a bundled search engine.
MB 487: Use custom order for search engines.
- - - - -
7d9ea4aa by Beatriz Rizental at 2025-11-24T16:35:51+01:00
fixup! Tweaks to the build system
Skip downloading WPT artifacts when generating test artifacts.
- - - - -
5 changed files:
- testing/testsuite-targets.mk
- toolkit/components/search/content/base-browser-search-engine-icons.json
- toolkit/components/search/content/base-browser-search-engines.json
- toolkit/components/search/tests/xpcshell/test_base_browser.js
- toolkit/mozapps/update/updater/updater.cpp
Changes:
=====================================
testing/testsuite-targets.mk
=====================================
@@ -151,7 +151,7 @@ download-wpt-manifest:
$(call py_action,download_wpt_manifest)
define package_archive
-package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest
+package-tests-$(1): stage-all package-tests-prepare-dest
$$(call py_action,test_archive, \
$(1) \
'$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)')
=====================================
toolkit/components/search/content/base-browser-search-engine-icons.json
=====================================
@@ -2,6 +2,9 @@
"ddg": [
{ "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
],
+ "ddg-noai": [
+ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
+ ],
"startpage": [
{
"url": "chrome://global/content/search/startpage-16.png",
=====================================
toolkit/components/search/content/base-browser-search-engines.json
=====================================
@@ -17,6 +17,24 @@
"recordType": "engine",
"variants": [{ "environment": { "allRegionsAndLocales": true } }]
},
+ {
+ "base": {
+ "aliases": ["ddgnoai"],
+ "classification": "general",
+ "name": "DuckDuckGo (no AI)",
+ "urls": {
+ "search": {
+ "base": "https://noai.duckduckgo.com/",
+ "params": [],
+ "searchTermParamName": "q"
+ }
+ }
+ },
+ "id": "91687f02-56dd-4fef-ba26-bf139dff3166",
+ "identifier": "ddg-noai",
+ "recordType": "engine",
+ "variants": [{ "environment": { "allRegionsAndLocales": true } }]
+ },
{
"base": {
"aliases": ["startpage", "sp"],
@@ -39,5 +57,14 @@
"recordType": "defaultEngines",
"globalDefault": "ddg",
"globalDefaultPrivate": "ddg"
+ },
+ {
+ "recordType": "engineOrders",
+ "orders": [
+ {
+ "environment": { "allRegionsAndLocales": true },
+ "order": ["ddg", "ddg-noai", "startpage"]
+ }
+ ]
}
]
=====================================
toolkit/components/search/tests/xpcshell/test_base_browser.js
=====================================
@@ -4,12 +4,15 @@
/**
* This tests the SearchService to check our override of the remote settings is
* working as expected.
+ *
+ * When adding new engines, it should be enough to change expectedURLs below.
*/
"use strict";
const expectedURLs = {
ddg: "https://duckduckgo.com/?q=test",
+ "ddg-noai": "https://noai.duckduckgo.com/?q=test",
startpage: "https://www.startpage.com/sp/search?q=test",
};
const defaultEngine = "ddg";
@@ -45,3 +48,11 @@ add_task(function test_checkSearchURLs() {
Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`);
}
});
+
+add_task(async function test_iconsDoesNotFail() {
+ for (const id of Object.keys(expectedURLs)) {
+ const engine = Services.search.getEngineById(id);
+ // No need to assert anything, as in case of error this method should throw.
+ await engine.getIconURL();
+ }
+});
=====================================
toolkit/mozapps/update/updater/updater.cpp
=====================================
@@ -3326,6 +3326,10 @@ int NS_main(int argc, NS_tchar** argv) {
putenv(const_cast<char*>("MOZ_USING_SERVICE="));
#endif
+#if defined(XP_UNIX) && !defined(XP_MACOSX)
+ unsetenv("FONTCONFIG_PATH");
+#endif
+
if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) {
#ifdef MOZ_VERIFY_MAR_SIGNATURE
int rv = PopulategMARStrings();
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c9beb7…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c9beb7…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-145.0a1-16.0-1] 6 commits: fixup! TB 7494: Create local home page for TBB.
by Pier Angelo Vendrame (@pierov) 24 Nov '25
by Pier Angelo Vendrame (@pierov) 24 Nov '25
24 Nov '25
Pier Angelo Vendrame pushed to branch tor-browser-145.0a1-16.0-1 at The Tor Project / Applications / Tor Browser
Commits:
57842b65 by Henry Wilkes at 2025-11-20T17:47:36+01:00
fixup! TB 7494: Create local home page for TBB.
TB 44314: Delay initial data for preloaded about:tor pages.
- - - - -
7fe873d8 by Pier Angelo Vendrame at 2025-11-20T17:47:37+01:00
fixup! BB 43140: Tighten up fonts on Linux.
BB 44315: Fix the fonts on the updater.
- - - - -
5079b9ac by Pier Angelo Vendrame at 2025-11-20T17:47:38+01:00
fixup! BB 43525: Skip Remote Settings for search engine customization.
MB 483: Ship DDG without AI as a bundled search engine.
MB 487: Use custom order for search engines.
- - - - -
f940028c by Pier Angelo Vendrame at 2025-11-20T17:47:38+01:00
fixup! TB 42891: Set the bundled search engine for Tor Browser.
MB 487: Use custom order for search engines.
- - - - -
81b52668 by Beatriz Rizental at 2025-11-20T17:47:39+01:00
fixup! Tweaks to the build system
Skip downloading WPT artifacts when generating test artifacts.
- - - - -
851147b1 by clairehurst at 2025-11-20T17:47:40+01:00
fixup! [android] Disable features and functionality
- - - - -
10 changed files:
- browser/components/abouttor/AboutTorChild.sys.mjs
- browser/components/abouttor/AboutTorParent.sys.mjs
- browser/components/abouttor/content/aboutTor.js
- browser/components/tabbrowser/NewTabPagePreloading.sys.mjs
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt
- testing/testsuite-targets.mk
- toolkit/components/search/content/base-browser-search-engine-icons.json
- toolkit/components/search/content/base-browser-search-engines.json
- toolkit/components/search/tests/xpcshell/test_base_browser.js
- toolkit/mozapps/update/updater/updater.cpp
Changes:
=====================================
browser/components/abouttor/AboutTorChild.sys.mjs
=====================================
@@ -6,11 +6,9 @@ export class AboutTorChild extends JSWindowActorChild {
switch (event.type) {
case "DOMContentLoaded":
this.sendQuery("AboutTor:GetInitialData").then(data => {
- const initialDataEvent = new this.contentWindow.CustomEvent(
- "InitialData",
- { detail: Cu.cloneInto(data, this.contentWindow) }
- );
- this.contentWindow.dispatchEvent(initialDataEvent);
+ if (data) {
+ this.#dispatchInitialData(data);
+ }
});
break;
case "SubmitSearchOnionize":
@@ -36,6 +34,9 @@ export class AboutTorChild extends JSWindowActorChild {
receiveMessage(message) {
switch (message.name) {
+ case "AboutTor:DelayedInitialData":
+ this.#dispatchInitialData(message.data);
+ break;
case "AboutTor:DismissYEC": {
this.contentWindow.dispatchEvent(
new this.contentWindow.CustomEvent("DismissYEC")
@@ -45,4 +46,16 @@ export class AboutTorChild extends JSWindowActorChild {
}
return undefined;
}
+
+ /**
+ * Send the initial data to the page.
+ *
+ * @param {object} data - The data to send.
+ */
+ #dispatchInitialData(data) {
+ const initialDataEvent = new this.contentWindow.CustomEvent("InitialData", {
+ detail: Cu.cloneInto(data, this.contentWindow),
+ });
+ this.contentWindow.dispatchEvent(initialDataEvent);
+ }
}
=====================================
browser/components/abouttor/AboutTorParent.sys.mjs
=====================================
@@ -8,6 +8,8 @@ ChromeUtils.defineESModuleGetters(lazy, {
});
const initializedActors = new Set();
+const onionizePref = "torbrowser.homepage.search.onionize";
+const surveyDismissVersionPref = "torbrowser.homepage.survey.dismiss_version";
/**
* Actor parent class for the about:tor page.
@@ -21,35 +23,76 @@ export class AboutTorParent extends JSWindowActorParent {
*/
static #dismissYEC = false;
+ /**
+ * Whether this instance has a preloaded browser.
+ *
+ * @type {boolean}
+ */
+ #preloaded = false;
+
+ /**
+ * Method to be called when the browser corresponding to this actor has its
+ * preloadedState attribute removed.
+ */
+ preloadedRemoved() {
+ if (!this.#preloaded) {
+ return;
+ }
+ this.#preloaded = false;
+ // Send in the initial data now that the page is actually going to be
+ // visible.
+ this.sendAsyncMessage(
+ "AboutTor:DelayedInitialData",
+ this.#getInitialData()
+ );
+ }
+
+ /**
+ * Get the initial data for the page when it is about to be shown.
+ *
+ * @returns {object} - The initial data.
+ */
+ #getInitialData() {
+ let appLocale = Services.locale.appLocaleAsBCP47;
+ if (appLocale === "ja-JP-macos") {
+ appLocale = "ja";
+ }
+
+ return {
+ torConnectEnabled: lazy.TorConnect.enabled,
+ messageData: lazy.AboutTorMessage.getNext(),
+ isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release",
+ searchOnionize: Services.prefs.getBoolPref(onionizePref, false),
+ surveyDismissVersion: Services.prefs.getIntPref(
+ surveyDismissVersionPref,
+ 0
+ ),
+ appLocale,
+ dismissYEC: AboutTorParent.#dismissYEC,
+ };
+ }
+
didDestroy() {
initializedActors.delete(this);
}
receiveMessage(message) {
- const onionizePref = "torbrowser.homepage.search.onionize";
- const surveyDismissVersionPref =
- "torbrowser.homepage.survey.dismiss_version";
switch (message.name) {
case "AboutTor:GetInitialData": {
// Track this actor to send future updates.
initializedActors.add(this);
- let appLocale = Services.locale.appLocaleAsBCP47;
- if (appLocale === "ja-JP-macos") {
- appLocale = "ja";
+ const browser = this.browsingContext.top.embedderElement;
+ if (browser?.getAttribute("preloadedState") === "preloaded") {
+ // Wait until the page is actually about to be shown before sending
+ // the initial data.
+ // Otherwise the preloaded page might receive data that has expired by
+ // the time the page is shown. And it will iterate
+ // AboutTorMessage.getNext too early. See tor-browser#44314.
+ this.#preloaded = true;
+ return Promise.resolve(null);
}
- return Promise.resolve({
- torConnectEnabled: lazy.TorConnect.enabled,
- messageData: lazy.AboutTorMessage.getNext(),
- isStable: AppConstants.MOZ_UPDATE_CHANNEL === "release",
- searchOnionize: Services.prefs.getBoolPref(onionizePref, false),
- surveyDismissVersion: Services.prefs.getIntPref(
- surveyDismissVersionPref,
- 0
- ),
- appLocale,
- dismissYEC: AboutTorParent.#dismissYEC,
- });
+ return Promise.resolve(this.#getInitialData());
}
case "AboutTor:SetSearchOnionize":
Services.prefs.setBoolPref(onionizePref, message.data);
=====================================
browser/components/abouttor/content/aboutTor.js
=====================================
@@ -562,11 +562,35 @@ const YecArea = {
},
};
+let gInitialData = false;
+let gLoaded = false;
+
+function maybeComplete() {
+ if (!gInitialData || !gLoaded) {
+ return;
+ }
+ // Wait to show the content when the l10n population has completed.
+ if (document.hasPendingL10nMutations) {
+ window.addEventListener(
+ "L10nMutationsFinished",
+ () => {
+ document.body.classList.add("initialized");
+ },
+ { once: true }
+ );
+ } else {
+ document.body.classList.add("initialized");
+ }
+}
+
window.addEventListener("DOMContentLoaded", () => {
SearchWidget.init();
MessageArea.init();
SurveyArea.init();
YecArea.init();
+
+ gLoaded = true;
+ maybeComplete();
});
window.addEventListener("InitialData", event => {
@@ -584,18 +608,8 @@ window.addEventListener("InitialData", event => {
SurveyArea.potentiallyShow(surveyDismissVersion, isStable, appLocale);
YecArea.potentiallyShow(dismissYEC, isStable, appLocale);
- // Wait to show the content when the l10n population has completed.
- if (document.hasPendingL10nMutations) {
- window.addEventListener(
- "L10nMutationsFinished",
- () => {
- document.body.classList.add("initialized");
- },
- { once: true }
- );
- } else {
- document.body.classList.add("initialized");
- }
+ gInitialData = true;
+ maybeComplete();
});
window.addEventListener("DismissYEC", () => {
=====================================
browser/components/tabbrowser/NewTabPagePreloading.sys.mjs
=====================================
@@ -178,6 +178,24 @@ export let NewTabPagePreloading = {
this.browserCounts[countKey]--;
browser.removeAttribute("preloadedState");
browser.setAttribute("autocompletepopup", "PopupAutoComplete");
+ // Let a preloaded about:tor page know that it is no longer preloaded
+ // (about to be shown). See tor-browser#44314.
+ // NOTE: We call the AboutTorParent instance directly because it is not
+ // reliable for the AboutTorParent to wait for the "preloadedState"
+ // attribute to change via a MutationObserver on the browsingContext's
+ // browser element because the AboutTorParent's browsingContext's browser
+ // element may be swapped out. E.g. see the "SwapDocShells" event.
+ // NOTE: We assume that this is the only place that removes the
+ // "preloadedState" attribute.
+ // NOTE: Alternatively, we could have the AboutTorParent wait for
+ // MozAfterPaint, but this would be slightly delayed.
+ try {
+ browser.browsingContext?.currentWindowGlobal
+ ?.getActor("AboutTor")
+ .preloadedRemoved();
+ } catch {
+ // Not an about:tor page with an AboutTorParent instance.
+ }
}
return browser;
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt
=====================================
@@ -203,11 +203,9 @@ open class DefaultToolbarMenu(
*/
@VisibleForTesting(otherwise = PRIVATE)
fun shouldShowTranslations(): Boolean {
- val isEngineSupported = store.state.translationEngine.isEngineSupported
- return selectedSession?.let {
- isEngineSupported == true &&
- FxNimbus.features.translations.value().mainFlowBrowserMenuEnabled
- } ?: false
+ // We need this because in FxNimbus.kt, mainFlowToolbarEnabled defaults to true
+ // ```mainFlowToolbarEnabled: Boolean = true```
+ return false // bug_44304 Hide broken translat page action.
}
/**
=====================================
testing/testsuite-targets.mk
=====================================
@@ -151,7 +151,7 @@ download-wpt-manifest:
$(call py_action,download_wpt_manifest)
define package_archive
-package-tests-$(1): stage-all package-tests-prepare-dest download-wpt-manifest
+package-tests-$(1): stage-all package-tests-prepare-dest
$$(call py_action,test_archive, \
$(1) \
'$$(abspath $$(test_archive_dir))/$$(PKG_BASENAME).$(1).tests.$(2)')
=====================================
toolkit/components/search/content/base-browser-search-engine-icons.json
=====================================
@@ -2,6 +2,9 @@
"ddg": [
{ "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
],
+ "ddg-noai": [
+ { "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
+ ],
"ddg-onion": [
{ "url": "chrome://global/content/search/duckduckgo.ico", "imageSize": 32 }
],
=====================================
toolkit/components/search/content/base-browser-search-engines.json
=====================================
@@ -17,6 +17,24 @@
"recordType": "engine",
"variants": [{ "environment": { "allRegionsAndLocales": true } }]
},
+ {
+ "base": {
+ "aliases": ["ddgnoai"],
+ "classification": "general",
+ "name": "DuckDuckGo (no AI)",
+ "urls": {
+ "search": {
+ "base": "https://noai.duckduckgo.com/",
+ "params": [],
+ "searchTermParamName": "q"
+ }
+ }
+ },
+ "id": "91687f02-56dd-4fef-ba26-bf139dff3166",
+ "identifier": "ddg-noai",
+ "recordType": "engine",
+ "variants": [{ "environment": { "allRegionsAndLocales": true } }]
+ },
{
"base": {
"aliases": ["ddgonion"],
@@ -93,5 +111,21 @@
"recordType": "defaultEngines",
"globalDefault": "ddg",
"globalDefaultPrivate": "ddg"
+ },
+ {
+ "recordType": "engineOrders",
+ "orders": [
+ {
+ "environment": { "allRegionsAndLocales": true },
+ "order": [
+ "ddg",
+ "ddg-noai",
+ "ddg-onion",
+ "startpage",
+ "startpage-onion",
+ "wikipedia"
+ ]
+ }
+ ]
}
]
=====================================
toolkit/components/search/tests/xpcshell/test_base_browser.js
=====================================
@@ -4,12 +4,15 @@
/**
* This tests the SearchService to check our override of the remote settings is
* working as expected.
+ *
+ * When adding new engines, it should be enough to change expectedURLs below.
*/
"use strict";
const expectedURLs = {
ddg: "https://duckduckgo.com/?q=test",
+ "ddg-noai": "https://noai.duckduckgo.com/?q=test",
"ddg-onion":
"https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/?q=t…",
startpage: "https://www.startpage.com/sp/search?q=test",
@@ -50,3 +53,11 @@ add_task(function test_checkSearchURLs() {
Assert.equal(foundUrl, url, `The URL of ${engine.name} is not altered.`);
}
});
+
+add_task(async function test_iconsDoesNotFail() {
+ for (const id of Object.keys(expectedURLs)) {
+ const engine = Services.search.getEngineById(id);
+ // No need to assert anything, as in case of error this method should throw.
+ await engine.getIconURL();
+ }
+});
=====================================
toolkit/mozapps/update/updater/updater.cpp
=====================================
@@ -3474,6 +3474,10 @@ int NS_main(int argc, NS_tchar** argv) {
putenv(const_cast<char*>("MOZ_USING_SERVICE="));
#endif
+#if defined(XP_UNIX) && !defined(XP_MACOSX)
+ unsetenv("FONTCONFIG_PATH");
+#endif
+
if (argc == 2 && NS_tstrcmp(argv[1], NS_T("--channels-allowed")) == 0) {
#ifdef MOZ_VERIFY_MAR_SIGNATURE
int rv = PopulategMARStrings();
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4e3381…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4e3381…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][base-browser-140.5.0esr-15.0-1] fixup! BB 43525: Skip Remote Settings for search engine customization.
by Pier Angelo Vendrame (@pierov) 24 Nov '25
by Pier Angelo Vendrame (@pierov) 24 Nov '25
24 Nov '25
Pier Angelo Vendrame pushed to branch base-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
f3db5fb9 by Pier Angelo Vendrame at 2025-11-24T10:57:39+01:00
fixup! BB 43525: Skip Remote Settings for search engine customization.
Fix linting.
- - - - -
1 changed file:
- toolkit/components/search/content/base-browser-search-engines.json
Changes:
=====================================
toolkit/components/search/content/base-browser-search-engines.json
=====================================
@@ -63,11 +63,7 @@
"orders": [
{
"environment": { "allRegionsAndLocales": true },
- "order": [
- "ddg",
- "ddg-noai",
- "startpage"
- ]
+ "order": ["ddg", "ddg-noai", "startpage"]
}
]
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3db5fb…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f3db5fb…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser][mullvad-browser-140.5.0esr-15.0-1] 2 commits: fixup! BB 43615: Add Gitlab Issue and Merge Request templates
by Pier Angelo Vendrame (@pierov) 24 Nov '25
by Pier Angelo Vendrame (@pierov) 24 Nov '25
24 Nov '25
Pier Angelo Vendrame pushed to branch mullvad-browser-140.5.0esr-15.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
3b7ce9ff by Pier Angelo Vendrame at 2025-11-24T10:34:54+01:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
Update GitLab templates.
Avoid mentioning existing issues/MRs, and update the channels.
- - - - -
9f32928c by Tom Ritter at 2025-11-24T10:34:55+01:00
Bug 1999126: Hide the value of the pdfjs pref from being disabled when RFP is enabled r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D272930
- - - - -
8 changed files:
- .gitlab/issue_templates/040 Feature.md
- .gitlab/issue_templates/050 Backport.md
- .gitlab/merge_request_templates/Default.md
- browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js
- dom/base/Navigator.cpp
- dom/base/nsMimeTypeArray.cpp
- dom/base/nsPluginArray.cpp
- toolkit/components/resistfingerprinting/RFPTargets.inc
Changes:
=====================================
.gitlab/issue_templates/040 Feature.md
=====================================
@@ -18,11 +18,11 @@ Provide an overview of the technical/implementation aspects of this feature
### Proposal
<!-- Add links to associated proposal issues (or delete block) -->
-- mullvad-browser#123
+- mullvad-browser#xyz
### Design
<!-- Add links to associated design issues (or delete block) -->
-- tpo/UX/Design#123
+- tpo/UX/Design#xyz
<!-- Do not edit beneath this line <3 -->
=====================================
.gitlab/issue_templates/050 Backport.md
=====================================
@@ -13,12 +13,12 @@ please ensure the title has the following format:
## Bookkeeping
### Issue(s)
-- tor-browser#12345
-- mullvad-browser#123
-- https://bugzilla.mozilla.org/show_bug.cgi?id=1234567
+- tor-browser#xxxxx
+- mullvad-browser#xyz
+- https://bugzilla.mozilla.org/show_bug.cgi?id=xxxxxxx
### Merge Request(s)
-- tor-browser!123
+- tor-browser!xxxx
### Target Channels
=====================================
.gitlab/merge_request_templates/Default.md
=====================================
@@ -27,8 +27,8 @@
#### Target Channels
-- [ ] **Alpha**: esr140-15.0
-- [ ] **Stable**: esr128-14.5
+- [ ] **Alpha**: rapid release, 16.0
+- [ ] **Stable**: esr140-15.0
### Backporting
=====================================
browser/components/resistfingerprinting/test/browser/browser_navigator_iframes.js
=====================================
@@ -331,6 +331,13 @@ add_task(async () => {
await simpleRFPTest(uri, testNavigator, expectedResults);
});
+add_task(async () => {
+ expectedResults = structuredClone(allSpoofed);
+ await simpleRFPTest(uri, testNavigator, expectedResults, {}, [
+ ["pdfjs.disabled", true],
+ ]);
+});
+
// In the below tests, we use the cross-origin domain as the base URI of a resource we fetch (on both the framer and framee)
// so we can check that the HTTP header is as expected.
=====================================
dom/base/Navigator.cpp
=====================================
@@ -510,7 +510,11 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) {
return mPlugins;
}
-bool Navigator::PdfViewerEnabled() { return !StaticPrefs::pdfjs_disabled(); }
+bool Navigator::PdfViewerEnabled() {
+ return !StaticPrefs::pdfjs_disabled() ||
+ nsContentUtils::ShouldResistFingerprinting(GetDocShell(),
+ RFPTarget::PdfjsSpoof);
+}
Permissions* Navigator::GetPermissions(ErrorResult& aRv) {
if (!mWindow) {
=====================================
dom/base/nsMimeTypeArray.cpp
=====================================
@@ -79,7 +79,11 @@ void nsMimeTypeArray::GetSupportedNames(nsTArray<nsString>& retval) {
}
}
-bool nsMimeTypeArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); }
+bool nsMimeTypeArray::ForceNoPlugins() {
+ return StaticPrefs::pdfjs_disabled() &&
+ !nsContentUtils::ShouldResistFingerprinting(
+ mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof);
+}
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(nsMimeType, mPluginElement)
=====================================
dom/base/nsPluginArray.cpp
=====================================
@@ -97,7 +97,11 @@ void nsPluginArray::GetSupportedNames(nsTArray<nsString>& aRetval) {
}
}
-bool nsPluginArray::ForceNoPlugins() { return StaticPrefs::pdfjs_disabled(); }
+bool nsPluginArray::ForceNoPlugins() {
+ return StaticPrefs::pdfjs_disabled() &&
+ !nsContentUtils::ShouldResistFingerprinting(
+ mWindow ? mWindow->GetDocShell() : nullptr, RFPTarget::PdfjsSpoof);
+}
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsPluginArray)
=====================================
toolkit/components/resistfingerprinting/RFPTargets.inc
=====================================
@@ -34,7 +34,8 @@ ITEM_VALUE(NavigatorHWConcurrency, 16)
ITEM_VALUE(NavigatorOscpu, 17)
ITEM_VALUE(NavigatorPlatform, 18)
ITEM_VALUE(NavigatorUserAgent, 19)
-// We no longer use PointerId, it can renamed and reused
+// If the user disables PDFJS via a pref, we do not expose that to the web
+ITEM_VALUE(PdfjsSpoof, 20)
ITEM_VALUE(StreamVideoFacingMode, 21)
ITEM_VALUE(JSDateTimeUTC, 22)
ITEM_VALUE(JSMathFdlibm, 23)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/c8…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/c8…
You're receiving this email because of your account on gitlab.torproject.org.
1
0