lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2026 -----
  • 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
tbb-commits@lists.torproject.org

  • 1 participants
  • 20073 discussions
[Git][tpo/applications/tor-browser][base-browser-115.10.0esr-13.5-1] 4 commits: fixup! Base Browser strings
by Pier Angelo Vendrame (@pierov) 23 Apr '24

23 Apr '24
Pier Angelo Vendrame pushed to branch base-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: f1d27be7 by Henry Wilkes at 2024-04-22T20:49:17+01:00 fixup! Base Browser strings Bug 42537: Move base-browser.ftl to toolkit. - - - - - 3aa48e65 by Henry Wilkes at 2024-04-22T20:49:43+01:00 fixup! Bug 4234: Use the Firefox Update Process for Base Browser. Bug 42537: Move base-browser.ftl to toolkit. - - - - - a402e72c by Henry Wilkes at 2024-04-22T20:49:47+01:00 fixup! Bug 40926: Implemented the New Identity feature Bug 42537: Move base-browser.ftl to toolkit. - - - - - ca81f26e by Henry Wilkes at 2024-04-22T20:49:47+01:00 fixup! Bug 41698: Reword the recommendation badges in about:addons Bug 42537: Move base-browser.ftl to toolkit. - - - - - 9 changed files: - browser/base/content/aboutDialog.xhtml - browser/base/content/browser.xhtml - browser/components/newidentity/content/newIdentityDialog.xhtml - browser/components/preferences/preferences.xhtml - browser/locales/jar.mn - browser/locales-preview/base-browser-no-translate.ftl → toolkit/locales-preview/base-browser-no-translate.ftl - browser/locales/en-US/browser/base-browser.ftl → toolkit/locales/en-US/toolkit/global/base-browser.ftl - toolkit/locales/jar.mn - toolkit/mozapps/extensions/content/aboutaddons.html Changes: ===================================== browser/base/content/aboutDialog.xhtml ===================================== @@ -30,7 +30,7 @@ <linkset> <html:link rel="localization" href="branding/brand.ftl"/> <html:link rel="localization" href="browser/aboutDialog.ftl"/> - <html:link rel="localization" href="browser/base-browser.ftl"/> + <html:link rel="localization" href="toolkit/global/base-browser.ftl"/> </linkset> <html:div id="aboutDialogContainer"> ===================================== browser/base/content/browser.xhtml ===================================== @@ -88,7 +88,7 @@ <link rel="localization" href="toolkit/branding/brandings.ftl"/> <link rel="localization" href="toolkit/global/textActions.ftl"/> <link rel="localization" href="toolkit/printing/printUI.ftl"/> - <link rel="localization" href="browser/base-browser.ftl"/> + <link rel="localization" href="toolkit/global/base-browser.ftl"/> <!-- Untranslated FTL files --> <link rel="localization" href="preview/firefoxSuggest.ftl" /> <link rel="localization" href="preview/identityCredentialNotification.ftl" /> ===================================== browser/components/newidentity/content/newIdentityDialog.xhtml ===================================== @@ -22,7 +22,7 @@ <dialog id="newIdentityDialog" buttons="accept,cancel" defaultButton="accept"> <linkset> <html:link rel="localization" href="branding/brand.ftl" /> - <html:link rel="localization" href="browser/base-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/base-browser.ftl" /> </linkset> <div xmlns="http://www.w3.org/1999/xhtml"> ===================================== browser/components/preferences/preferences.xhtml ===================================== @@ -57,7 +57,7 @@ <link rel="localization" href="security/certificates/certManager.ftl"/> <link rel="localization" href="security/certificates/deviceManager.ftl"/> <link rel="localization" href="toolkit/updates/history.ftl"/> - <link rel="localization" href="browser/base-browser.ftl"/> + <link rel="localization" href="toolkit/global/base-browser.ftl"/> <link rel="shortcut icon" href="chrome://global/skin/icons/settings.svg"/> ===================================== browser/locales/jar.mn ===================================== @@ -14,7 +14,6 @@ preview/firefoxSuggest.ftl (../components/urlbar/content/firefoxSuggest.ftl) preview/identityCredentialNotification.ftl (../components/credentialmanager/identityCredentialNotification.ftl) preview/stripOnShare.ftl (../components/urlbar/content/stripOnShare.ftl) - preview/base-browser-no-translate.ftl (../locales-preview/base-browser-no-translate.ftl) browser (%browser/**/*.ftl) @AB_CD@.jar: ===================================== browser/locales-preview/base-browser-no-translate.ftl → toolkit/locales-preview/base-browser-no-translate.ftl ===================================== ===================================== browser/locales/en-US/browser/base-browser.ftl → toolkit/locales/en-US/toolkit/global/base-browser.ftl ===================================== ===================================== toolkit/locales/jar.mn ===================================== @@ -8,6 +8,7 @@ services (%services/**/*.ftl) toolkit (%toolkit/**/*.ftl) locales-preview/aboutTranslations.ftl (../locales-preview/aboutTranslations.ftl) + locales-preview/base-browser-no-translate.ftl (../locales-preview/base-browser-no-translate.ftl) #ifdef MOZ_LAYOUT_DEBUGGER layoutdebug/layoutdebug.ftl (../../layout/tools/layout-debug/ui/content/layoutdebug.ftl) #endif ===================================== toolkit/mozapps/extensions/content/aboutaddons.html ===================================== @@ -35,7 +35,7 @@ <link rel="localization" href="toolkit/about/aboutAddons.ftl" /> <link rel="localization" href="toolkit/about/abuseReports.ftl" /> - <link rel="localization" href="browser/base-browser.ftl" /> + <link rel="localization" href="toolkit/global/base-browser.ftl" /> <!-- Defer scripts so all the templates are loaded by the time they run. --> <script View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/5616a8… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/5616a8… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by richard (@richard) 22 Apr '24

22 Apr '24
richard pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 51c8a409 by Henry Wilkes at 2024-04-22T21:47:56+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42540: Fix gNetworkStatus.deinint typo - - - - - 1 changed file: - browser/components/torpreferences/content/connectionPane.js Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -2331,7 +2331,7 @@ const gNetworkStatus = { /** * Un-initialize the area. */ - deinint() { + uninit() { Services.obs.removeObserver(this, TorConnectTopics.StateChange); }, View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/51c8a40… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/51c8a40… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41111: Use Lyrebird to provide WebTunnel PT Client
by richard (@richard) 22 Apr '24

22 Apr '24
richard pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 991ebf57 by Richard Pospesel at 2024-04-22T19:24:31+00:00 Bug 41111: Use Lyrebird to provide WebTunnel PT Client - - - - - 13 changed files: - Makefile - projects/browser/build - projects/lyrebird/config - projects/tor-android-service/config - projects/tor-expert-bundle/build - projects/tor-expert-bundle/config - projects/tor-expert-bundle/pt_config.json - − projects/tor-onion-proxy-library/0001-Bug-40800-Add-WebTunnel-support.patch - + projects/tor-onion-proxy-library/0001-Bug-41111-Use-Lyrebird-to-provide-WebTunnel-PT-Client.patch - projects/tor-onion-proxy-library/build - projects/tor-onion-proxy-library/config - − projects/webtunnel/build - − projects/webtunnel/config Changes: ===================================== Makefile ===================================== @@ -643,9 +643,6 @@ go_vendor-snowflake: submodule-update go_vendor-conjure: submodule-update $(rbm) build conjure --step go_vendor --target alpha --target torbrowser-linux-x86_64 -go_vendor-webtunnel: submodule-update - $(rbm) build webtunnel --step go_vendor --target alpha --target torbrowser-linux-x86_64 - go_vendor-lyrebird: submodule-update $(rbm) build lyrebird --step go_vendor --target alpha --target torbrowser-linux-x86_64 ===================================== projects/browser/build ===================================== @@ -109,11 +109,8 @@ mv [% c('input_files_by_name/noscript') %] "$TBDIR/$EXTSPATH/{73a6fe31-595d-460b # Move READMEs from tor-expert-bundle to the doc dir mkdir -p "$TBDIR/$DOCSPATH/snowflake" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/snowflake"[% END %] - - mkdir -p "$TBDIR/$DOCSPATH/webtunnel" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/webtunnel"[% END %] mkdir -p "$TBDIR/$DOCSPATH/conjure" [% IF c("var/macos_universal") %]"$TBDIR_AARCH64/$DOCSPATH/conjure"[% END %] mv_tbdir tor/pluggable_transports/README.SNOWFLAKE.md "$DOCSPATH/snowflake/README.md" - mv_tbdir tor/pluggable_transports/README.WEBTUNNEL.md "$DOCSPATH/webtunnel/README.md" mv_tbdir tor/pluggable_transports/README.CONJURE.md "$DOCSPATH/conjure/README.md" # Move the PTs to where TB expects them ===================================== projects/lyrebird/config ===================================== @@ -1,5 +1,5 @@ # vim: filetype=yaml sw=2 -version: 0.1.0 +version: 0.2.0 git_url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyre… git_hash: 'lyrebird-[% c("version") %]' tag_gpg_id: 1 @@ -9,7 +9,7 @@ container: use_container: 1 var: - go_vendor_sha256sum: d95d1fa8ce3904b76395b20ef169e8ef2b039fa485764b74739bb6290631537d + go_vendor_sha256sum: dc6b2671250f4ffd0caff3ef020bd60f99207f519f6f5f1be47243677a13c695 targets: nightly: ===================================== projects/tor-android-service/config ===================================== @@ -1,7 +1,7 @@ # vim: filetype=yaml sw=2 version: '[% c("abbrev") %]' filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %]' -git_hash: 0438a9a4ce1548be08dd2df891a38987bb313d22 +git_hash: 27924bc748044e987c188be854ff1471397cdb6a git_url: https://gitlab.torproject.org/tpo/applications/tor-android-service.git git_submodule: 1 container: ===================================== projects/tor-expert-bundle/build ===================================== @@ -15,7 +15,6 @@ mkdir pluggable_transports && cd pluggable_transports tar -xkf $rootdir/[% c('input_files_by_name/lyrebird') %] tar -xkf $rootdir/[% c('input_files_by_name/snowflake') %] -tar -xkf $rootdir/[% c('input_files_by_name/webtunnel') %] tar -xkf $rootdir/[% c('input_files_by_name/conjure') %] # add per-platform pt extension @@ -35,7 +34,6 @@ cd $distdir cp -a tor/pluggable_transports/conjure-client aar/jni/[% c('arch') %]/libConjure.so cp -a tor/pluggable_transports/lyrebird aar/jni/[% c('arch') %]/Lyrebird.so cp -a tor/pluggable_transports/snowflake-client aar/jni/[% c('arch') %]/libSnowflake.so - cp -a tor/pluggable_transports/webtunnel-client aar/jni/[% c('arch') %]/libWebtunnel.so cp -a data/* aar/assets/common/ ===================================== projects/tor-expert-bundle/config ===================================== @@ -18,8 +18,6 @@ input_files: project: lyrebird - name: snowflake project: snowflake - - project: webtunnel - name: webtunnel - name: conjure project: conjure - filename: pt_config.json ===================================== projects/tor-expert-bundle/pt_config.json ===================================== @@ -1,9 +1,8 @@ { "recommendedDefault" : "obfs4", "pluggableTransports" : { - "lyrebird" : "ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit exec ${pt_path}lyrebird${pt_extension}", + "lyrebird" : "ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit,webtunnel exec ${pt_path}lyrebird${pt_extension}", "snowflake" : "ClientTransportPlugin snowflake exec ${pt_path}snowflake-client${pt_extension}", - "webtunnel" : "ClientTransportPlugin webtunnel exec ${pt_path}webtunnel-client${pt_extension}", "conjure" : "ClientTransportPlugin conjure exec ${pt_path}conjure-client${pt_extension} -registerURL https://registration.refraction.network/api" }, "bridges" : { ===================================== projects/tor-onion-proxy-library/0001-Bug-40800-Add-WebTunnel-support.patch deleted ===================================== @@ -1,74 +0,0 @@ -From 3a6f835e8089dd15f5cd6487b5cfbdfafe7422f8 Mon Sep 17 00:00:00 2001 -From: Shelikhoo <xiaokangwang(a)outlook.com> -Date: Tue, 14 Feb 2023 16:59:59 +0000 -Subject: [PATCH] add WebTunnel Support - ---- - android/build.gradle | 3 +++ - .../thali/toronionproxy/TorConfigBuilder.java | 19 +++++++++++++++---- - 2 files changed, 18 insertions(+), 4 deletions(-) - -diff --git a/android/build.gradle b/android/build.gradle -index e107e8e..acd92c1 100644 ---- a/android/build.gradle -+++ b/android/build.gradle -@@ -102,6 +102,9 @@ task copyPluggableTransports(type: Copy) { - rename { filename -> - filename.replace 'conjure-client', 'libConjure.so' - } -+ rename { filename -> -+ filename.replace 'webtunnel-client', 'libWebtunnel.so' -+ } - } - - gradle.projectsEvaluated { -diff --git a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java -index b87993d..5e6d6c5 100644 ---- a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java -+++ b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java -@@ -109,8 +109,8 @@ public final class TorConfigBuilder { - return this; - } - -- public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableTransportObfs, File pluggableTransportSnow, File pluggableTransportConjure) throws IOException { -- if (pluggableTransportObfs == null || pluggableTransportSnow == null || pluggableTransportConjure == null) { -+ public TorConfigBuilder configurePluggableTransportsFromSettings(File pluggableTransportObfs, File pluggableTransportSnow, File pluggableTransportConjure, File pluggableTransportWebtunnel) throws IOException { -+ if (pluggableTransportObfs == null || pluggableTransportSnow == null || pluggableTransportConjure == null || pluggableTransportWebtunnel == null) { - return this; - } - -@@ -144,7 +144,17 @@ public final class TorConfigBuilder { - .getCanonicalPath()); - } - -- transportPlugin(pluggableTransportObfs.getCanonicalPath(), pluggableTransportSnow.getCanonicalPath(), pluggableTransportConjure.getCanonicalPath()); -+ if (!pluggableTransportWebtunnel.exists()) { -+ throw new IOException("Webtunnel binary does not exist: " + pluggableTransportWebtunnel -+ .getCanonicalPath()); -+ } -+ -+ if (!pluggableTransportWebtunnel.canExecute()) { -+ throw new IOException("Webtunnel binary is not executable: " + pluggableTransportWebtunnel -+ .getCanonicalPath()); -+ } -+ -+ transportPlugin(pluggableTransportObfs.getCanonicalPath(), pluggableTransportSnow.getCanonicalPath(), pluggableTransportConjure.getCanonicalPath(), pluggableTransportWebtunnel.getCanonicalPath()); - return this; - } - -@@ -511,10 +521,11 @@ public final class TorConfigBuilder { - return transPort(settings.transPort()); - } - -- public TorConfigBuilder transportPlugin(String obfsPath, String snowPath, String conjurePath) { -+ public TorConfigBuilder transportPlugin(String obfsPath, String snowPath, String conjurePath, String webtunnelPath) { - buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4 exec ").append(obfsPath).append('\n'); - buffer.append("ClientTransportPlugin snowflake exec ").append(snowPath).append('\n'); - buffer.append("ClientTransportPlugin conjure exec ").append(conjurePath).append(" -registerURL https://registration.refraction.network/api\n"); -+ buffer.append("ClientTransportPlugin webtunnel exec ").append(webtunnelPath).append('\n'); - return this; - } - --- -2.34.1 - ===================================== projects/tor-onion-proxy-library/0001-Bug-41111-Use-Lyrebird-to-provide-WebTunnel-PT-Client.patch ===================================== @@ -0,0 +1,19 @@ +From 4aa1038fd0d3acc212579fbd94566e062dd187e6 Mon Sep 17 00:00:00 2001 +From: Richard Pospesel <richard(a)torproject.org> +Date: Mon, 22 Apr 2024 17:38:49 +0000 +Subject: [PATCH] add WebTunnel Support + +--- +diff --git a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java +index 8a439f8..77e6f35 100644 +--- a/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java ++++ b/universal/src/main/java/com/msopentech/thali/toronionproxy/TorConfigBuilder.java +@@ -512,7 +512,7 @@ public final class TorConfigBuilder { + } + + public TorConfigBuilder transportPlugin(String obfsPath, String snowPath, String conjurePath) { +- buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4 exec ").append(obfsPath).append('\n'); ++ buffer.append("ClientTransportPlugin meek_lite,obfs3,obfs4,webtunnel exec ").append(obfsPath).append('\n'); + buffer.append("ClientTransportPlugin snowflake exec ").append(snowPath).append('\n'); + buffer.append("ClientTransportPlugin conjure exec ").append(conjurePath).append(" -registerURL https://registration.refraction.network/api\n"); + return this; ===================================== projects/tor-onion-proxy-library/build ===================================== @@ -37,7 +37,7 @@ patch -p1 < $rootdir/gradle.patch patch -p1 < $rootdir/0001-Bug-33931-Filter-bridges-in-stream-by-type.patch patch -p1 < $rootdir/0001-Bug-30318-Add-snowflake-support.patch patch -p1 < $rootdir/0001-Bug-41361-Add-conjure-support.patch -patch -p1 < $rootdir/0001-Bug-40800-Add-WebTunnel-support.patch +patch -p1 < $rootdir/0001-Bug-41111-Use-Lyrebird-to-provide-WebTunnel-PT-Client.patch [% FOREACH arch = ['armv7', 'aarch64', 'x86', 'x86_64'] -%] # Extract tor-expert-bundle @@ -54,18 +54,14 @@ patch -p1 < $rootdir/0001-Bug-40800-Add-WebTunnel-support.patch cp $ptdir/snowflake-client external/pluto/bin/armeabi/ cp $ptdir/conjure-client external/pluto/bin/armeabi-v7a/ cp $ptdir/conjure-client external/pluto/bin/armeabi/ - cp $ptdir/webtunnel-client external/pluto/bin/armeabi-v7a/ - cp $ptdir/webtunnel-client external/pluto/bin/armeabi/ [% ELSIF arch == "aarch64" -%] cp $ptdir/lyrebird external/pluto/bin/arm64-v8a/obfs4proxy cp $ptdir/snowflake-client external/pluto/bin/arm64-v8a/ cp $ptdir/conjure-client external/pluto/bin/arm64-v8a/ - cp $ptdir/webtunnel-client external/pluto/bin/arm64-v8a/ [% ELSE -%] cp $ptdir/lyrebird external/pluto/bin/[% arch %]/obfs4proxy cp $ptdir/snowflake-client external/pluto/bin/[% arch %]/ cp $ptdir/conjure-client external/pluto/bin/[% arch %]/ - cp $ptdir/webtunnel-client external/pluto/bin/[% arch %]/ [% END -%] [% END -%] ===================================== projects/tor-onion-proxy-library/config ===================================== @@ -41,4 +41,4 @@ input_files: - filename: 0001-Bug-33931-Filter-bridges-in-stream-by-type.patch - filename: 0001-Bug-30318-Add-snowflake-support.patch - filename: 0001-Bug-41361-Add-conjure-support.patch - - filename: 0001-Bug-40800-Add-WebTunnel-support.patch + - filename: 0001-Bug-41111-Use-Lyrebird-to-provide-WebTunnel-PT-Client.patch ===================================== projects/webtunnel/build deleted ===================================== @@ -1,31 +0,0 @@ -#!/bin/bash -[% c("var/set_default_env") -%] -[% pc('go', 'var/setup', { go_tarfile => c('input_files_by_name/go') }) %] -distdir=/var/tmp/dist/[% project %] -mkdir -p $distdir - -[% IF c("var/android") -%] - [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] - # We need to explicitly set CGO_ENABLED with Go 1.13.x as the Android build - # breaks otherwise. - export CGO_ENABLED=1 -[% END -%] - -mkdir -p /var/tmp/build -tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %] -cd /var/tmp/build/[% project %]-[% c('version') %] - -tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %] - -cd main/client -go build -ldflags '-s' -cp -a client[% IF c("var/windows") %].exe[% END %] $distdir/webtunnel-client[% IF c("var/windows") %].exe[% END %] - -cd /var/tmp/build/[% project %]-[% c('version') %] -cp -a README.md $distdir/README.WEBTUNNEL.md - -cd $distdir -[% c('tar', { - tar_src => [ '.' ], - tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'), - }) %] ===================================== projects/webtunnel/config deleted ===================================== @@ -1,24 +0,0 @@ -# vim: filetype=yaml sw=2 -version: '[% c("abbrev") %]' -git_url: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/webt… -git_hash: 38eb55054a5c3c072acc1d8f9a9afa36e3a5c9b7 -container: - use_container: 1 - -steps: - build: - filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' - input_files: - - project: container-image - - name: go - project: go - - name: '[% c("var/compiler") %]' - project: '[% c("var/compiler") %]' - enable: '[% c("var/android") %]' - - name: go_vendor - pkg_type: go_vendor - project: webtunnel - norec: - sha256sum: e3b5a9b3c3939aafa5389246f3a7a7e78d70fe623bed495f99c39cc37bbbe645 - target_replace: - '^torbrowser-(?!testbuild).*': 'torbrowser-linux-x86_64' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/9… -- This project does not include diff previews in email notifications. 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
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 8 commits: fixup! Tor Browser strings
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: ba71db7d by Henry Wilkes at 2024-04-22T18:17:43+01:00 fixup! Tor Browser strings Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 3878b648 by Henry Wilkes at 2024-04-22T18:17:44+01:00 fixup! Bug 40209: Implement Basic Crypto Safety Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 70f8caa3 by Henry Wilkes at 2024-04-22T18:17:44+01:00 fixup! Bug 2176: Rebrand Firefox to TorBrowser Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 401d5c98 by Henry Wilkes at 2024-04-22T18:17:45+01:00 fixup! Bug 7494: Create local home page for TBB. Bug 42537: Move tor-browser.ftl to toolkit. - - - - - ed24f5ca by Henry Wilkes at 2024-04-22T18:17:45+01:00 fixup! Bug 40701: Add security warning when downloading a file Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 179b425c by Henry Wilkes at 2024-04-22T18:17:46+01:00 fixup! Bug 40458: Implement .tor.onion aliases Bug 42537: Move tor-browser.ftl to toolkit. - - - - - b8698ae3 by Henry Wilkes at 2024-04-22T18:17:46+01:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 464c9389 by Henry Wilkes at 2024-04-22T18:17:47+01:00 fixup! Bug 30237: Add v3 onion services client authentication prompt Bug 42537: Move tor-browser.ftl to toolkit. - - - - - 20 changed files: - browser/actors/CryptoSafetyParent.jsm - browser/base/content/aboutDialog.xhtml - browser/base/content/browser.xhtml - browser/components/abouttor/content/aboutTor.html - browser/components/downloads/content/contentAreaDownloadsView.xhtml - browser/components/places/content/places.xhtml - browser/components/preferences/preferences.xhtml - browser/components/rulesets/content/aboutRulesets.html - browser/components/torpreferences/content/bridgeQrDialog.xhtml - browser/components/torpreferences/content/builtinBridgeDialog.xhtml - browser/components/torpreferences/content/connectionSettingsDialog.xhtml - browser/components/torpreferences/content/loxInviteDialog.xhtml - browser/components/torpreferences/content/provideBridgeDialog.xhtml - browser/components/torpreferences/content/requestBridgeDialog.xhtml - browser/components/torpreferences/content/torLogDialog.xhtml - browser/locales/jar.mn - toolkit/content/aboutNetError.xhtml - browser/locales-preview/tor-browser-no-translate.ftl → toolkit/locales-preview/tor-browser-no-translate.ftl - browser/locales/en-US/browser/tor-browser.ftl → toolkit/locales/en-US/toolkit/global/tor-browser.ftl - toolkit/locales/jar.mn Changes: ===================================== browser/actors/CryptoSafetyParent.jsm ===================================== @@ -21,7 +21,7 @@ ChromeUtils.defineModuleGetter( ); ChromeUtils.defineLazyGetter(lazy, "CryptoStrings", function () { - return new Localization(["browser/tor-browser.ftl"]); + return new Localization(["toolkit/global/tor-browser.ftl"]); }); XPCOMUtils.defineLazyPreferenceGetter( ===================================== browser/base/content/aboutDialog.xhtml ===================================== @@ -32,7 +32,7 @@ <html:link rel="localization" href="branding/brand.ftl"/> <html:link rel="localization" href="browser/aboutDialog.ftl"/> <html:link rel="localization" href="toolkit/global/base-browser.ftl"/> - <html:link rel="localization" href="browser/tor-browser.ftl"/> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl"/> </linkset> <html:div id="aboutDialogContainer"> ===================================== browser/base/content/browser.xhtml ===================================== @@ -96,7 +96,7 @@ <link rel="localization" href="toolkit/global/textActions.ftl"/> <link rel="localization" href="toolkit/printing/printUI.ftl"/> <link rel="localization" href="toolkit/global/base-browser.ftl"/> - <link rel="localization" href="browser/tor-browser.ftl"/> + <link rel="localization" href="toolkit/global/tor-browser.ftl"/> <!-- Untranslated FTL files --> <link rel="localization" href="preview/firefoxSuggest.ftl" /> <link rel="localization" href="preview/identityCredentialNotification.ftl" /> ===================================== browser/components/abouttor/content/aboutTor.html ===================================== @@ -20,7 +20,7 @@ /> <link rel="localization" href="browser/newtab/newtab.ftl" /> - <link rel="localization" href="browser/tor-browser.ftl" /> + <link rel="localization" href="toolkit/global/tor-browser.ftl" /> <script type="module" ===================================== browser/components/downloads/content/contentAreaDownloadsView.xhtml ===================================== @@ -21,7 +21,7 @@ <linkset> <html:link rel="localization" href="toolkit/global/textActions.ftl"/> <html:link rel="localization" href="browser/downloads.ftl" /> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://global/content/globalOverlay.js"/> ===================================== browser/components/places/content/places.xhtml ===================================== @@ -40,7 +40,7 @@ <html:link rel="localization" href="browser/places.ftl"/> <html:link rel="localization" href="browser/downloads.ftl"/> <html:link rel="localization" href="browser/editBookmarkOverlay.ftl"/> - <html:link rel="localization" href="browser/tor-browser.ftl"/> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl"/> </linkset> <script src="chrome://browser/content/places/places.js"/> ===================================== browser/components/preferences/preferences.xhtml ===================================== @@ -60,7 +60,7 @@ <link rel="localization" href="security/certificates/deviceManager.ftl"/> <link rel="localization" href="toolkit/updates/history.ftl"/> <link rel="localization" href="toolkit/global/base-browser.ftl"/> - <link rel="localization" href="browser/tor-browser.ftl"/> + <link rel="localization" href="toolkit/global/tor-browser.ftl"/> <link rel="shortcut icon" href="chrome://global/skin/icons/settings.svg"/> ===================================== browser/components/rulesets/content/aboutRulesets.html ===================================== @@ -13,7 +13,7 @@ /> <link rel="localization" href="branding/brand.ftl" /> - <link rel="localization" href="browser/tor-browser.ftl" /> + <link rel="localization" href="toolkit/global/tor-browser.ftl" /> </head> <body> <!-- Warning --> ===================================== browser/components/torpreferences/content/bridgeQrDialog.xhtml ===================================== @@ -11,7 +11,7 @@ > <dialog id="bridgeQr-dialog" buttons="accept"> <linkset> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/bridgeQrDialog.js" /> ===================================== browser/components/torpreferences/content/builtinBridgeDialog.xhtml ===================================== @@ -12,7 +12,7 @@ <dialog id="torPreferences-builtinBridge-dialog" buttons="accept,cancel"> <linkset> <html:link rel="localization" href="branding/brand.ftl" /> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/builtinBridgeDialog.js" /> ===================================== browser/components/torpreferences/content/connectionSettingsDialog.xhtml ===================================== @@ -12,7 +12,7 @@ <dialog id="torPreferences-connection-dialog" buttons="accept,cancel"> <linkset> <html:link rel="localization" href="branding/brand.ftl" /> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/connectionSettingsDialog.js" /> ===================================== browser/components/torpreferences/content/loxInviteDialog.xhtml ===================================== @@ -19,10 +19,10 @@ </menupopup> <dialog id="lox-invite-dialog" buttons="accept"> <linkset> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> <html:link rel="localization" - href="preview/tor-browser-no-translate.ftl" + href="locales-preview/tor-browser-no-translate.ftl" /> </linkset> ===================================== browser/components/torpreferences/content/provideBridgeDialog.xhtml ===================================== @@ -14,7 +14,7 @@ class="show-entry-page" > <linkset> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/bridgemoji/BridgeEmoji.js" /> ===================================== browser/components/torpreferences/content/requestBridgeDialog.xhtml ===================================== @@ -11,7 +11,7 @@ > <dialog id="torPreferences-requestBridge-dialog" buttons="accept,cancel"> <linkset> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/requestBridgeDialog.js" /> ===================================== browser/components/torpreferences/content/torLogDialog.xhtml ===================================== @@ -11,7 +11,7 @@ > <dialog id="torPreferences-torLog-dialog" buttons="accept,extra1"> <linkset> - <html:link rel="localization" href="browser/tor-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/tor-browser.ftl" /> </linkset> <script src="chrome://browser/content/torpreferences/torLogDialog.js" /> ===================================== browser/locales/jar.mn ===================================== @@ -14,7 +14,6 @@ preview/firefoxSuggest.ftl (../components/urlbar/content/firefoxSuggest.ftl) preview/identityCredentialNotification.ftl (../components/credentialmanager/identityCredentialNotification.ftl) preview/stripOnShare.ftl (../components/urlbar/content/stripOnShare.ftl) - preview/tor-browser-no-translate.ftl (../locales-preview/tor-browser-no-translate.ftl) browser (%browser/**/*.ftl) @AB_CD@.jar: ===================================== toolkit/content/aboutNetError.xhtml ===================================== @@ -16,7 +16,7 @@ <link rel="localization" href="branding/brand.ftl"/> <link rel="localization" href="toolkit/neterror/certError.ftl" /> <link rel="localization" href="toolkit/neterror/netError.ftl"/> - <link rel="localization" href="browser/tor-browser.ftl"/> + <link rel="localization" href="toolkit/global/tor-browser.ftl"/> </head> <body> ===================================== browser/locales-preview/tor-browser-no-translate.ftl → toolkit/locales-preview/tor-browser-no-translate.ftl ===================================== ===================================== browser/locales/en-US/browser/tor-browser.ftl → toolkit/locales/en-US/toolkit/global/tor-browser.ftl ===================================== ===================================== toolkit/locales/jar.mn ===================================== @@ -9,6 +9,7 @@ toolkit (%toolkit/**/*.ftl) locales-preview/aboutTranslations.ftl (../locales-preview/aboutTranslations.ftl) locales-preview/base-browser-no-translate.ftl (../locales-preview/base-browser-no-translate.ftl) + locales-preview/tor-browser-no-translate.ftl (../locales-preview/tor-browser-no-translate.ftl) #ifdef MOZ_LAYOUT_DEBUGGER layoutdebug/layoutdebug.ftl (../../layout/tools/layout-debug/ui/content/layoutdebug.ftl) #endif View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9d6fa2… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9d6fa2… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 4 commits: fixup! Base Browser strings
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 26909ecf by Henry Wilkes at 2024-04-22T17:14:34+00:00 fixup! Base Browser strings Bug 42537: Move base-browser.ftl to toolkit. - - - - - 3db6db01 by Henry Wilkes at 2024-04-22T17:14:34+00:00 fixup! Bug 4234: Use the Firefox Update Process for Base Browser. Bug 42537: Move base-browser.ftl to toolkit. - - - - - f223c735 by Henry Wilkes at 2024-04-22T17:14:34+00:00 fixup! Bug 40926: Implemented the New Identity feature Bug 42537: Move base-browser.ftl to toolkit. - - - - - 9d6fa205 by Henry Wilkes at 2024-04-22T17:14:34+00:00 fixup! Bug 41698: Reword the recommendation badges in about:addons Bug 42537: Move base-browser.ftl to toolkit. - - - - - 9 changed files: - browser/base/content/aboutDialog.xhtml - browser/base/content/browser.xhtml - browser/components/newidentity/content/newIdentityDialog.xhtml - browser/components/preferences/preferences.xhtml - browser/locales/jar.mn - browser/locales-preview/base-browser-no-translate.ftl → toolkit/locales-preview/base-browser-no-translate.ftl - browser/locales/en-US/browser/base-browser.ftl → toolkit/locales/en-US/toolkit/global/base-browser.ftl - toolkit/locales/jar.mn - toolkit/mozapps/extensions/content/aboutaddons.html Changes: ===================================== browser/base/content/aboutDialog.xhtml ===================================== @@ -31,7 +31,7 @@ <linkset> <html:link rel="localization" href="branding/brand.ftl"/> <html:link rel="localization" href="browser/aboutDialog.ftl"/> - <html:link rel="localization" href="browser/base-browser.ftl"/> + <html:link rel="localization" href="toolkit/global/base-browser.ftl"/> <html:link rel="localization" href="browser/tor-browser.ftl"/> </linkset> ===================================== browser/base/content/browser.xhtml ===================================== @@ -95,7 +95,7 @@ <link rel="localization" href="toolkit/branding/brandings.ftl"/> <link rel="localization" href="toolkit/global/textActions.ftl"/> <link rel="localization" href="toolkit/printing/printUI.ftl"/> - <link rel="localization" href="browser/base-browser.ftl"/> + <link rel="localization" href="toolkit/global/base-browser.ftl"/> <link rel="localization" href="browser/tor-browser.ftl"/> <!-- Untranslated FTL files --> <link rel="localization" href="preview/firefoxSuggest.ftl" /> ===================================== browser/components/newidentity/content/newIdentityDialog.xhtml ===================================== @@ -22,7 +22,7 @@ <dialog id="newIdentityDialog" buttons="accept,cancel" defaultButton="accept"> <linkset> <html:link rel="localization" href="branding/brand.ftl" /> - <html:link rel="localization" href="browser/base-browser.ftl" /> + <html:link rel="localization" href="toolkit/global/base-browser.ftl" /> </linkset> <div xmlns="http://www.w3.org/1999/xhtml"> ===================================== browser/components/preferences/preferences.xhtml ===================================== @@ -59,7 +59,7 @@ <link rel="localization" href="security/certificates/certManager.ftl"/> <link rel="localization" href="security/certificates/deviceManager.ftl"/> <link rel="localization" href="toolkit/updates/history.ftl"/> - <link rel="localization" href="browser/base-browser.ftl"/> + <link rel="localization" href="toolkit/global/base-browser.ftl"/> <link rel="localization" href="browser/tor-browser.ftl"/> <link rel="shortcut icon" href="chrome://global/skin/icons/settings.svg"/> ===================================== browser/locales/jar.mn ===================================== @@ -14,7 +14,6 @@ preview/firefoxSuggest.ftl (../components/urlbar/content/firefoxSuggest.ftl) preview/identityCredentialNotification.ftl (../components/credentialmanager/identityCredentialNotification.ftl) preview/stripOnShare.ftl (../components/urlbar/content/stripOnShare.ftl) - preview/base-browser-no-translate.ftl (../locales-preview/base-browser-no-translate.ftl) preview/tor-browser-no-translate.ftl (../locales-preview/tor-browser-no-translate.ftl) browser (%browser/**/*.ftl) ===================================== browser/locales-preview/base-browser-no-translate.ftl → toolkit/locales-preview/base-browser-no-translate.ftl ===================================== ===================================== browser/locales/en-US/browser/base-browser.ftl → toolkit/locales/en-US/toolkit/global/base-browser.ftl ===================================== ===================================== toolkit/locales/jar.mn ===================================== @@ -8,6 +8,7 @@ services (%services/**/*.ftl) toolkit (%toolkit/**/*.ftl) locales-preview/aboutTranslations.ftl (../locales-preview/aboutTranslations.ftl) + locales-preview/base-browser-no-translate.ftl (../locales-preview/base-browser-no-translate.ftl) #ifdef MOZ_LAYOUT_DEBUGGER layoutdebug/layoutdebug.ftl (../../layout/tools/layout-debug/ui/content/layoutdebug.ftl) #endif ===================================== toolkit/mozapps/extensions/content/aboutaddons.html ===================================== @@ -35,7 +35,7 @@ <link rel="localization" href="toolkit/about/aboutAddons.ftl" /> <link rel="localization" href="toolkit/about/abuseReports.ftl" /> - <link rel="localization" href="browser/base-browser.ftl" /> + <link rel="localization" href="toolkit/global/base-browser.ftl" /> <!-- Defer scripts so all the templates are loaded by the time they run. --> <script View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/94374b… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/94374b… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 42537 (TB): Move our Fluent files to toolkit.
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: fd4f3d0b by Pier Angelo Vendrame at 2024-04-22T19:13:34+02:00 Bug 42537 (TB): Move our Fluent files to toolkit. For tor-browser#42537, we are moving our Fluent files to toolkit, so that they are available also on Android, shall we need them. This needs a couple of changes also on the tor-browser-build side. - - - - - 1 changed file: - projects/firefox/build Changes: ===================================== projects/firefox/build ===================================== @@ -118,7 +118,7 @@ mkdir "$HOME/.mozbuild" ln -s ja ja-JP-mac for lang in $supported_locales; do # Fluent - mv $lang/base-browser.ftl "$l10ncentral/$lang/browser/browser/" + mv $lang/base-browser.ftl "$l10ncentral/$lang/toolkit/toolkit/global/" # Properties (they use a different directory) mv $lang/* "$l10ncentral/$lang/browser/chrome/browser/" done @@ -139,7 +139,7 @@ mkdir "$HOME/.mozbuild" source_lang="ja" fi [% END -%] - mv "$transl_tor_browser/$source_lang/tor-browser.ftl" "$l10ncentral/$lang/browser/browser/" + mv "$transl_tor_browser/$source_lang/tor-browser.ftl" "$l10ncentral/$lang/toolkit/toolkit/global/" mv "$transl_tor_browser/$source_lang/cryptoSafetyPrompt.properties" "$l10ncentral/$lang/browser/chrome/browser/" mv "$transl_tor_browser/$source_lang" "$torbutton_locales/$lang" echo "% locale torbutton $lang %locale/$lang/" >> "$torbutton_jar" View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/f… -- This project does not include diff previews in email notifications. 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
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 3 commits: fixup! Lox integration
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 303a1239 by Henry Wilkes at 2024-04-22T17:35:39+01:00 fixup! Lox integration Bug 42476: Drop unnecessary #window property. - - - - - 45f5e2d9 by Henry Wilkes at 2024-04-22T17:35:39+01:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42476: Disable the Lox module for the stable release. - - - - - 94374ba5 by Henry Wilkes at 2024-04-22T18:01:19+01:00 fixup! Lox integration Bug 42476: Disable the Lox module for the stable release. - - - - - 3 changed files: - browser/components/torpreferences/content/connectionPane.js - browser/components/torpreferences/content/provideBridgeDialog.js - toolkit/components/lox/Lox.sys.mjs Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -1284,6 +1284,11 @@ const gLoxStatus = { * Initialize the bridge pass area. */ init() { + if (!Lox.enabled) { + // Area should remain inactive and hidden. + return; + } + this._area = document.getElementById("tor-bridges-lox-status"); this._detailsArea = document.getElementById("tor-bridges-lox-details"); this._nextUnlockCounterEl = document.getElementById( @@ -1333,6 +1338,10 @@ const gLoxStatus = { * Uninitialize the built-in bridges area. */ uninit() { + if (!Lox.enabled) { + return; + } + Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); Services.obs.removeObserver(this, LoxTopics.UpdateActiveLoxId); Services.obs.removeObserver(this, LoxTopics.UpdateEvents); ===================================== browser/components/torpreferences/content/provideBridgeDialog.js ===================================== @@ -72,8 +72,7 @@ const gProvideBridgeDialog = { document.l10n.setAttributes(document.documentElement, titleId); - // TODO: Make conditional on Lox being enabled. - this._allowLoxInvite = mode !== "edit"; // && Lox.enabled + this._allowLoxInvite = mode !== "edit" && Lox.enabled; document.l10n.setAttributes( document.getElementById("user-provide-bridge-textarea-label"), @@ -403,33 +402,39 @@ const gProvideBridgeDialog = { return null; } - let loxInvite = null; - for (let line of this._textarea.value.split(/\r?\n/)) { - line = line.trim(); - if (!line) { - continue; - } - // TODO: Once we have a Lox invite encoding, distinguish between a valid - // invite and something that looks like it should be an invite. - const isLoxInvite = Lox.validateInvitation(line); - if (isLoxInvite) { - if (!this._allowLoxInvite) { - this.updateError({ type: "not-allowed-invite" }); - return null; + // Only check if this looks like a Lox invite when the Lox module is + // enabled. + if (Lox.enabled) { + let loxInvite = null; + for (let line of this._textarea.value.split(/\r?\n/)) { + line = line.trim(); + if (!line) { + continue; } - if (loxInvite) { - this.updateError({ type: "multiple-invites" }); + // TODO: Once we have a Lox invite encoding, distinguish between a valid + // invite and something that looks like it should be an invite. + const isLoxInvite = Lox.validateInvitation(line); + if (isLoxInvite) { + if (!this._allowLoxInvite) { + // Lox is enabled, but not allowed invites when editing bridge + // addresses. + this.updateError({ type: "not-allowed-invite" }); + return null; + } + if (loxInvite) { + this.updateError({ type: "multiple-invites" }); + return null; + } + loxInvite = line; + } else if (loxInvite) { + this.updateError({ type: "mixed" }); return null; } - loxInvite = line; - } else if (loxInvite) { - this.updateError({ type: "mixed" }); - return null; } - } - if (loxInvite) { - return { loxInvite }; + if (loxInvite) { + return { loxInvite }; + } } const validation = validateBridgeLines(this._textarea.value); ===================================== toolkit/components/lox/Lox.sys.mjs ===================================== @@ -1,4 +1,5 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; +import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs"; import { clearInterval, setInterval, @@ -103,8 +104,24 @@ export class LoxError extends Error { } class LoxImpl { + /** + * Whether the Lox module has completed initialization. + * + * @type {boolean} + */ #initialized = false; - #window = null; + + /** + * Whether the Lox module is enabled for this Tor Browser instance. + * + * @type {boolean} + */ + #enabled = AppConstants.MOZ_UPDATE_CHANNEL !== "release"; + + get enabled() { + return this.#enabled; + } + #pubKeyPromise = null; #encTablePromise = null; #constantsPromise = null; @@ -218,13 +235,14 @@ class LoxImpl { * Assert that the module is initialized. */ #assertInitialized() { - if (!this.#initialized) { + if (!this.enabled || !this.#initialized) { throw new LoxError("Not initialized"); } } get #inuse() { return ( + this.enabled && Boolean(this.#activeLoxId) && lazy.TorSettings.bridges.enabled === true && lazy.TorSettings.bridges.source === lazy.TorBridgeSource.Lox @@ -532,16 +550,20 @@ class LoxImpl { } async init() { + if (!this.enabled) { + lazy.logger.info( + "Skipping initialization since Lox module is not enabled" + ); + return; + } // If lox_id is set, load it Services.obs.addObserver(this, lazy.TorSettingsTopics.SettingsChanged); Services.obs.addObserver(this, lazy.TorSettingsTopics.Ready); // Hack to make the generated wasm happy - this.#window = { - crypto, - }; - this.#window.window = this.#window; - await lazy.init(this.#window); + const win = { crypto }; + win.window = win; + await lazy.init(win); lazy.set_panic_hook(); if (typeof lazy.open_invite !== "function") { throw new LoxError("Initialization failed"); @@ -551,6 +573,9 @@ class LoxImpl { } async uninit() { + if (!this.enabled) { + return; + } Services.obs.removeObserver(this, lazy.TorSettingsTopics.SettingsChanged); Services.obs.removeObserver(this, lazy.TorSettingsTopics.Ready); if (this.#domainFrontedRequests !== null) { @@ -561,7 +586,6 @@ class LoxImpl { this.#domainFrontedRequests = null; } this.#initialized = false; - this.#window = null; this.#invites = []; this.#pubKeys = null; this.#encTable = null; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/07ec58… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/07ec58… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 3 commits: Bug 41112: Fix indentation of projects/browser/RelativeLink/start-browser
by boklm (@boklm) 22 Apr '24

22 Apr '24
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: ac2bba26 by Nicolas Vigier at 2024-04-22T18:22:06+02:00 Bug 41112: Fix indentation of projects/browser/RelativeLink/start-browser - - - - - 9b42ad01 by Nicolas Vigier at 2024-04-22T18:22:08+02:00 Bug 41083: Add more spaces to projects/browser/config - - - - - c93586fc by Nicolas Vigier at 2024-04-22T18:22:11+02:00 Bug 41083: Make a deb package for Mullvad Browser - - - - - 17 changed files: - projects/browser/RelativeLink/start-browser - projects/browser/config - + projects/linux-packages/Makefile.in - + projects/linux-packages/build - + projects/linux-packages/config - + projects/linux-packages/debian/browser.desktop.in - + projects/linux-packages/debian/changelog.in - + projects/linux-packages/debian/compat - + projects/linux-packages/debian/control.in - + projects/linux-packages/debian/copyright.in - + projects/linux-packages/debian/docs.in - + projects/linux-packages/debian/install.in - + projects/linux-packages/debian/links.in - + projects/linux-packages/debian/rules - projects/release/build - projects/release/config - rbm Changes: ===================================== projects/browser/RelativeLink/start-browser ===================================== @@ -9,9 +9,9 @@ complain_dialog_title="[% c('var/Project_Name') %]" # Make sure this script wasn't started as 'sh start-[% c('var/project-name') %]' or similar. if [ "x$BASH" = "x" ]; then - echo "$complain_dialog_title should be started as './start-[% c('var/project-name') %]'" - echo "Exiting." >&2 - exit 1; + echo "$complain_dialog_title should be started as './start-[% c('var/project-name') %]'" + echo "Exiting." >&2 + exit 1; fi # Do not (try to) connect to the session manager @@ -21,84 +21,86 @@ unset SESSION_MANAGER # Usage: complain message # message must not begin with a dash. complain () { - # Trim leading newlines, to avoid breaking formatting in some dialogs. - complain_message="`echo "$1" | sed '/./,$!d'`" - - # If we're being run in debug/verbose mode, complain to stderr. - if [ "$show_output" -eq 1 ]; then - echo "$complain_message" >&2 - return - fi - - # Otherwise, we're being run by a GUI program of some sort; - # try to pop up a message in the GUI in the nicest way - # possible. - # - # In mksh, non-existent commands return 127; I'll assume all - # other shells set the same exit code if they can't run a - # command. (xmessage returns 1 if the user clicks the WM - # close button, so we do need to look at the exact exit code, - # not just assume the command failed to display a message if - # it returns non-zero.) - - # First, try zenity. - zenity --error \ - --title="$complain_dialog_title" \ - --text="$complain_message" - if [ "$?" -ne 127 ]; then - return - fi - - # Try kdialog. - kdialog --title "$complain_dialog_title" \ - --error "$complain_message" - if [ "$?" -ne 127 ]; then - return - fi - - # Try xmessage. - xmessage -title "$complain_dialog_title" \ - -center \ - -buttons OK \ - -default OK \ - -xrm '*message.scrollVertical: Never' \ - "$complain_message" - if [ "$?" -ne 127 ]; then - return - fi - - # Try gxmessage. This one isn't installed by default on - # Debian with the default GNOME installation, so it seems to - # be the least likely program to have available, but it might - # be used by one of the 'lightweight' Gtk-based desktop - # environments. - gxmessage -title "$complain_dialog_title" \ - -center \ - -buttons GTK_STOCK_OK \ - -default OK \ - "$complain_message" - if [ "$?" -ne 127 ]; then - return - fi + # Trim leading newlines, to avoid breaking formatting in some dialogs. + complain_message="`echo "$1" | sed '/./,$!d'`" + + # If we're being run in debug/verbose mode, complain to stderr. + if [ "$show_output" -eq 1 ]; then + echo "$complain_message" >&2 + return + fi + + # Otherwise, we're being run by a GUI program of some sort; + # try to pop up a message in the GUI in the nicest way + # possible. + # + # In mksh, non-existent commands return 127; I'll assume all + # other shells set the same exit code if they can't run a + # command. (xmessage returns 1 if the user clicks the WM + # close button, so we do need to look at the exact exit code, + # not just assume the command failed to display a message if + # it returns non-zero.) + + # First, try zenity. + zenity --error \ + --title="$complain_dialog_title" \ + --text="$complain_message" + if [ "$?" -ne 127 ]; then + return + fi + + # Try kdialog. + kdialog --title "$complain_dialog_title" \ + --error "$complain_message" + if [ "$?" -ne 127 ]; then + return + fi + + # Try xmessage. + xmessage -title "$complain_dialog_title" \ + -center \ + -buttons OK \ + -default OK \ + -xrm '*message.scrollVertical: Never' \ + "$complain_message" + if [ "$?" -ne 127 ]; then + return + fi + + # Try gxmessage. This one isn't installed by default on + # Debian with the default GNOME installation, so it seems to + # be the least likely program to have available, but it might + # be used by one of the 'lightweight' Gtk-based desktop + # environments. + gxmessage -title "$complain_dialog_title" \ + -center \ + -buttons GTK_STOCK_OK \ + -default OK \ + "$complain_message" + if [ "$?" -ne 127 ]; then + return + fi } if [ "`id -u`" -eq 0 ]; then - complain "The [% c('var/Project_Name') %] should not be run as root. Exiting." - exit 1 + complain "The [% c('var/Project_Name') %] should not be run as root. Exiting." + exit 1 fi 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 + complain "[% c('var/Project_Name') %] requires a CPU with SSE2 support. Exiting." + exit 1 fi 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" - printf " --log [file] Record [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in file (default: [% c('var/project-name') %].log)\n" - printf " --detach Detach from terminal and run [% c('var/Project_Name') %] in the background.\n" + 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" + printf " --log [file] Record [% IF c("var/tor-browser") -%]Tor and [% END -%]the browser output in file (default: [% c('var/project-name') %].log)\n" + printf " --detach Detach from terminal and run [% c('var/Project_Name') %] in the background.\n" + if test -z "$system_install"; then printf " --register-app Register [% c('var/Project_Name') %] as a desktop app for this user\n" printf " --unregister-app Unregister [% c('var/Project_Name') %] as a desktop app for this user\n" + fi } log_output=0 show_output=0 @@ -108,116 +110,122 @@ register_desktop_app=0 logfile=/dev/null while : do - case "$1" in - --detach) - detach=1 - shift - ;; - -v | --verbose | -d | --debug) - show_output=1 - verbose_arg="$2" - shift - ;; - -h | "-?" | --help | -help) - show_usage=1 - show_output=1 - shift - ;; - -l | --log) - if [ -z "$2" -o "${2:0:1}" == "-" ]; then - printf "Logging [% c('var/Project_Name') %] debug information to [% c('var/project-name') %].log\n" - logfile="../[% c('var/project-name') %].log" - elif [ "${2:0:1}" == "/" -o "${2:0:1}" == "~" ]; then - printf "Logging [% c('var/Project_Name') %] debug information to %s\n" "$2" - logfile="$2" - shift - else - printf "Logging [% c('var/Project_Name') %] debug information to %s\n" "$2" - logfile="../$2" - shift - fi - log_output=1 - shift - ;; - --register-app) - register_desktop_app=1 - show_output=1 - shift - ;; - --unregister-app) - register_desktop_app=-1 - show_output=1 - shift - ;; - *) # No more options - break - ;; - esac + case "$1" in + --detach) + detach=1 + shift + ;; + -v | --verbose | -d | --debug) + show_output=1 + verbose_arg="$2" + shift + ;; + -h | "-?" | --help | -help) + show_usage=1 + show_output=1 + shift + ;; + -l | --log) + if [ -z "$2" -o "${2:0:1}" == "-" ]; then + printf "Logging [% c('var/Project_Name') %] debug information to [% c('var/project-name') %].log\n" + logfile="../[% c('var/project-name') %].log" + elif [ "${2:0:1}" == "/" -o "${2:0:1}" == "~" ]; then + printf "Logging [% c('var/Project_Name') %] debug information to %s\n" "$2" + logfile="$2" + shift + else + printf "Logging [% c('var/Project_Name') %] debug information to %s\n" "$2" + logfile="../$2" + shift + fi + log_output=1 + shift + ;; + --register-app) + register_desktop_app=1 + show_output=1 + shift + ;; + --unregister-app) + register_desktop_app=-1 + show_output=1 + shift + ;; + *) # No more options + break + ;; + esac done # We can't detach and show output at the same time.. if [ "$show_output" -eq 1 -a "$detach" -eq 1 ]; then - detach=0 + detach=0 fi if [ "$show_output" -eq 0 ]; then - # If the user hasn't requested 'debug mode' or --help, close stdout and stderr, - # to keep Firefox and the stuff loaded by/for it (including the - # system's shared-library loader) from printing messages to - # $HOME/.xsession-errors or other files. (Users wouldn't have seen - # messages there anyway.) - exec > "$logfile" - exec 2> "$logfile" + # If the user hasn't requested 'debug mode' or --help, close stdout and stderr, + # to keep Firefox and the stuff loaded by/for it (including the + # system's shared-library loader) from printing messages to + # $HOME/.xsession-errors or other files. (Users wouldn't have seen + # messages there anyway.) + exec > "$logfile" + exec 2> "$logfile" fi # If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority # before we change HOME below. (See xauth(1) and #1945.) XDM and KDM rely # on applications using this default value. if [ -z "$XAUTHORITY" ]; then - XAUTHORITY=~/.Xauthority - export XAUTHORITY + XAUTHORITY=~/.Xauthority + export XAUTHORITY fi # If this script is being run through a symlink, we need to know where # in the filesystem the script itself is, not where the symlink is. myname="$0" if [ -L "$myname" ]; then - # XXX readlink is not POSIX, but is present in GNU coreutils - # and on FreeBSD. Unfortunately, the -f option (which follows - # a whole chain of symlinks until it reaches a non-symlink - # path name) is a GNUism, so we have to have a fallback for - # FreeBSD. Fortunately, FreeBSD has realpath instead; - # unfortunately, that's also non-POSIX and is not present in - # GNU coreutils. - # - # If this launcher were a C program, we could just use the - # realpath function, which *is* POSIX. Too bad POSIX didn't - # make that function accessible to shell scripts. - - # If realpath is available, use it; it Does The Right Thing. - possibly_my_real_name="`realpath "$myname" 2>/dev/null`" - if [ "$?" -eq 0 ]; then - myname="$possibly_my_real_name" - else - # realpath is not available; hopefully readlink -f works. - myname="`readlink -f "$myname" 2>/dev/null`" - if [ "$?" -ne 0 ]; then - # Ugh. - complain "start-[% c('var/project-name') %] cannot be run using a symlink on this operating system." - fi - fi + # XXX readlink is not POSIX, but is present in GNU coreutils + # and on FreeBSD. Unfortunately, the -f option (which follows + # a whole chain of symlinks until it reaches a non-symlink + # path name) is a GNUism, so we have to have a fallback for + # FreeBSD. Fortunately, FreeBSD has realpath instead; + # unfortunately, that's also non-POSIX and is not present in + # GNU coreutils. + # + # If this launcher were a C program, we could just use the + # realpath function, which *is* POSIX. Too bad POSIX didn't + # make that function accessible to shell scripts. + + # If realpath is available, use it; it Does The Right Thing. + possibly_my_real_name="`realpath "$myname" 2>/dev/null`" + if [ "$?" -eq 0 ]; then + myname="$possibly_my_real_name" + else + # realpath is not available; hopefully readlink -f works. + myname="`readlink -f "$myname" 2>/dev/null`" + if [ "$?" -ne 0 ]; then + # Ugh. + complain "start-[% c('var/project-name') %] cannot be run using a symlink on this operating system." + fi + fi fi -# Try to be agnostic to where we're being started from, chdir to where -# the script is. -mydir="`dirname "$myname"`" -test -d "$mydir" && cd "$mydir" +cd "$(dirname "$myname")" +browser_dir="$(pwd)" +if test -f "$browser_dir/is-packaged-app"; then + system_install=1 + browser_home="$HOME/.[% pc('linux-packages', 'var/system_pkg/pkg_name') %]" + mkdir -p "$browser_home" + cd "$browser_home" +else + browser_home="$browser_dir" +fi # If ${PWD} results in a zero length string, we can try something else... if [ ! "${PWD}" ]; then - # "hacking around some braindamage" - PWD="`pwd`" - surveysays="This system has a messed up shell.\n" + # "hacking around some braindamage" + PWD="`pwd`" + surveysays="This system has a messed up shell.\n" fi # This is a fix for an ibus issue on some Linux systems. See #9353 for more @@ -227,46 +235,48 @@ if [ ! -d ".config/ibus" ]; then ln -nsf ~/.config/ibus/bus .config/ibus fi -# Fix up .desktop Icon and Exec Paths, and update the .desktop file from the -# canonical version if it was changed by the updater. -cp start-[% c('var/project-name') %].desktop ../ -sed -i -e "s,^Name=.*,Name=[% c('var/Project_Name') %],g" ../start-[% c('var/project-name') %].desktop -sed -i -e "s,^Icon=.*,Icon=$PWD/browser/chrome/icons/default/default128.png,g" ../start-[% c('var/project-name') %].desktop -sed -i -e "s,^Icon=.*,Icon=$PWD/browser/chrome/icons/default/default128.png,g" start-[% c('var/project-name') %].desktop -sed -i -e "s,^Exec=.*,Exec=sh -c '\"$PWD/start-[% c('var/project-name') %]\" --detach || ([ ! -x \"$PWD/start-[% c('var/project-name') %]\" ] \&\& \"\$(dirname \"\$*\")\"/Browser/start-[% c('var/project-name') %] --detach)' dummy %k,g" ../start-[% c('var/project-name') %].desktop - -if [ "$register_desktop_app" -eq 1 ]; then - mkdir -p "$HOME/.local/share/applications/" - cp ../start-[% c('var/project-name') %].desktop "$HOME/.local/share/applications/" - update-desktop-database "$HOME/.local/share/applications/" - printf "[% c('var/Project_Name') %] has been registered as a desktop app for this user in ~/.local/share/applications/\n" - exit 0 -fi - -if [ "$register_desktop_app" -eq -1 ]; then - if [ -e "$HOME/.local/share/applications/start-[% c('var/project-name') %].desktop" ]; then - rm -f "$HOME/.local/share/applications/start-[% c('var/project-name') %].desktop" - update-desktop-database "$HOME/.local/share/applications/" - printf "[% c('var/Project_Name') %] has been removed as a user desktop app (from ~/.local/share/applications/)\n" - else - printf "[% c('var/Project_Name') %] does not appear to be a desktop app (not present in ~/.local/share/applications/)\n" - fi - exit 0 +if test -z "$system_install"; then + # Fix up .desktop Icon and Exec Paths, and update the .desktop file from the + # canonical version if it was changed by the updater. + cp start-[% c('var/project-name') %].desktop ../ + sed -i -e "s,^Name=.*,Name=[% c('var/Project_Name') %],g" ../start-[% c('var/project-name') %].desktop + sed -i -e "s,^Icon=.*,Icon=$PWD/browser/chrome/icons/default/default128.png,g" ../start-[% c('var/project-name') %].desktop + sed -i -e "s,^Icon=.*,Icon=$PWD/browser/chrome/icons/default/default128.png,g" start-[% c('var/project-name') %].desktop + sed -i -e "s,^Exec=.*,Exec=sh -c '\"$PWD/start-[% c('var/project-name') %]\" --detach || ([ ! -x \"$PWD/start-[% c('var/project-name') %]\" ] \&\& \"\$(dirname \"\$*\")\"/Browser/start-[% c('var/project-name') %] --detach)' dummy %k,g" ../start-[% c('var/project-name') %].desktop + + if [ "$register_desktop_app" -eq 1 ]; then + mkdir -p "$HOME/.local/share/applications/" + cp ../start-[% c('var/project-name') %].desktop "$HOME/.local/share/applications/" + update-desktop-database "$HOME/.local/share/applications/" + printf "[% c('var/Project_Name') %] has been registered as a desktop app for this user in ~/.local/share/applications/\n" + exit 0 + fi + + if [ "$register_desktop_app" -eq -1 ]; then + if [ -e "$HOME/.local/share/applications/start-[% c('var/project-name') %].desktop" ]; then + rm -f "$HOME/.local/share/applications/start-[% c('var/project-name') %].desktop" + update-desktop-database "$HOME/.local/share/applications/" + printf "[% c('var/Project_Name') %] has been removed as a user desktop app (from ~/.local/share/applications/)\n" + else + printf "[% c('var/Project_Name') %] does not appear to be a desktop app (not present in ~/.local/share/applications/)\n" + fi + exit 0 + fi fi export BB_ORIGINAL_HOME="$HOME" -HOME="${PWD}" +HOME="$browser_home" export HOME # Prevent disk leaks in $HOME/.local/share (tor-browser#17560) function erase_leaky() { - local leaky="$1" - [ -e "$leaky" ] && - ( srm -r "$leaky" || - wipe -r "$leaky" || - find "$leaky" -type f -exec shred -u {} \; ; - rm -rf "$leaky" - ) > /dev/null 2>&1 + local leaky="$1" + [ -e "$leaky" ] && + ( srm -r "$leaky" || + wipe -r "$leaky" || + find "$leaky" -type f -exec shred -u {} \; ; + rm -rf "$leaky" + ) > /dev/null 2>&1 } local_dir="$HOME/.local/" share_dir="$local_dir/share" @@ -275,14 +285,14 @@ share_dir="$local_dir/share" # We're not using realpath/readlink for consistency with the (possibly # outdated) availability assumptions made elsewhere in this script. if ! [ -L "$local_dir" -o -L "$share_dir" ]; then - if [ -d "$share_dir" ]; then - for leaky_path in "gvfs-metadata" "recently-used.xbel"; do - erase_leaky "$share_dir/$leaky_path" - done - else - mkdir -p "$local_dir" - fi - ln -fs /dev/null "$share_dir" + if [ -d "$share_dir" ]; then + for leaky_path in "gvfs-metadata" "recently-used.xbel"; do + erase_leaky "$share_dir/$leaky_path" + done + else + mkdir -p "$local_dir" + fi + ln -fs /dev/null "$share_dir" fi [ -L "$HOME/.cache" ] || erase_leaky "$HOME/.cache/nvidia" @@ -291,8 +301,8 @@ SYSARCHITECTURE=$(getconf LONG_BIT) TORARCHITECTURE=$(expr "$(file TorBrowser/Tor/tor)" : '.*ELF \([[:digit:]]*\)') if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then - complain "Wrong architecture? 32-bit vs. 64-bit." - exit 1 + complain "Wrong architecture? 32-bit vs. 64-bit." + exit 1 fi [% END -%] @@ -305,27 +315,27 @@ export ASAN_OPTIONS [% IF c("var/tor-browser") -%] function setControlPortPasswd() { - local ctrlPasswd=$1 - - if test -z "$ctrlPasswd" -o "$ctrlPasswd" = $'\"secret\"' ; then - unset TOR_CONTROL_PASSWD - return - fi - - if test "${ctrlPasswd:0:1}" = $'\"'; then # First 2 chars were '" - printf "Using system Tor process.\n" - export TOR_CONTROL_PASSWD - else - complain "There seems to have been a quoting problem with your \ + local ctrlPasswd=$1 + + if test -z "$ctrlPasswd" -o "$ctrlPasswd" = $'\"secret\"' ; then + unset TOR_CONTROL_PASSWD + return + fi + + if test "${ctrlPasswd:0:1}" = $'\"'; then # First 2 chars were '" + printf "Using system Tor process.\n" + export TOR_CONTROL_PASSWD + else + complain "There seems to have been a quoting problem with your \ TOR_CONTROL_PASSWD environment variable." - echo "The Tor ControlPort password should be given inside double" - echo "quotes, inside single quotes. That is, if the ControlPort" - echo 'password is “secret” (without curly quotes) then we must' - echo "start this script after setting the environment variable" - echo "exactly like this:" - echo - echo " \$ TOR_CONTROL_PASSWD='\"secret\"' $myname" - fi + echo "The Tor ControlPort password should be given inside double" + echo "quotes, inside single quotes. That is, if the ControlPort" + echo 'password is “secret” (without curly quotes) then we must' + echo "start this script after setting the environment variable" + echo "exactly like this:" + echo + echo " \$ TOR_CONTROL_PASSWD='\"secret\"' $myname" + fi } # Using a system-installed Tor process with Tor Browser: @@ -367,7 +377,7 @@ setControlPortPasswd ${TOR_CONTROL_PASSWD:='"secret"'} [% END -%] # Set up custom bundled fonts. See fonts-conf(5). -export FONTCONFIG_PATH="${HOME}/fontconfig" +export FONTCONFIG_PATH="$browser_dir/fontconfig" export FONTCONFIG_FILE="fonts.conf" [% # tor-browser#41776: We cannot make the updater remove this file. # So, let's remove it on this script, since we know that at this point the @@ -397,19 +407,19 @@ cd "${HOME}" # prevent from mixing up with them). if [ "$show_usage" -eq 1 ]; then - # Display Firefox help, then our help - [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] --help 2>/dev/null - print_usage + # Display Firefox help, then our help + [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] "$browser_dir"/[% c('var/exe_name') %] --help 2>/dev/null + print_usage elif [ "$detach" -eq 1 ] ; then - [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] "${@}" > "$logfile" 2>&1 </dev/null & - disown "$!" + [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] "$browser_dir"/[% c('var/exe_name') %] "${@}" > "$logfile" 2>&1 </dev/null & + disown "$!" elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then - [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] "${@}" 2>&1 </dev/null | \ - tee "$logfile" + [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] "$browser_dir"/[% c('var/exe_name') %] "${@}" 2>&1 </dev/null | \ + tee "$logfile" elif [ "$show_output" -eq 1 ]; then - [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] "${@}" < /dev/null + [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] "$browser_dir"/[% c('var/exe_name') %] "${@}" < /dev/null else - [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] ./[% c('var/exe_name') %] "${@}" > "$logfile" 2>&1 </dev/null + [% IF c("var/tor-browser") %]TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD}[% END %] "$browser_dir"/[% c('var/exe_name') %] "${@}" > "$logfile" 2>&1 </dev/null fi exit $? ===================================== projects/browser/config ===================================== @@ -14,7 +14,9 @@ var: mar_osname: '[% c("var/osname") %]' version_json: version.json + targets: + linux: var: arch_deps: @@ -23,6 +25,7 @@ targets: # share the container to reduce space used. - libc6-i386 pt_path: ./TorBrowser/Tor/PluggableTransports/ + macos: var: arch_deps: @@ -32,14 +35,17 @@ targets: - python3-distutils-extra - python3-psutil pt_path: PluggableTransports/ + macos-universal: var: mar_osname: macos + windows: var: arch_deps: - python3-pefile pt_path: TorBrowser\Tor\PluggableTransports\ + android: build: '[% INCLUDE build.android %]' var: @@ -53,17 +59,21 @@ targets: # apksigner. suite: bookworm arch: amd64 + torbrowser: var: prefs_file: 000-tor-browser.js version_json: tbb_version.json + basebrowser: var: prefs_file: 001-base-profile.js + mullvadbrowser: var: prefs_file: 001-base-profile.js + input_files: - project: container-image - project: firefox ===================================== projects/linux-packages/Makefile.in ===================================== @@ -0,0 +1,7 @@ +build: + rm -f "${DEB_TARGET_ARCH}/Browser/start-[% c('var/project-name') %].desktop" + echo 'This is a packaged app.' > "${DEB_TARGET_ARCH}/Browser/is-packaged-app" + [% c("touch") %] "${DEB_TARGET_ARCH}/Browser/is-packaged-app" + +clean: + rm -f "${DEB_TARGET_ARCH}/Browser/is-packaged-app" ===================================== projects/linux-packages/build ===================================== @@ -0,0 +1,55 @@ +#!/bin/bash +[% c("var/set_default_env") -%] +distdir=/var/tmp/dist/[% project %] + +OUTDIR='[% dest_dir _ "/" _ c("filename") %]' +mkdir -p $OUTDIR +mkdir -p "$distdir" + +export SOURCE_DATE_EPOCH='[% c("timestamp") %]' + +[% IF c("var/build_deb_pkg") -%] + cd $distdir + project_dir=[% c("var/system_pkg/pkg_name") %]-[% c("var/system_pkg/pkg_version") %] + mkdir "$project_dir" + mv $rootdir/Makefile "$project_dir" + [% c('tar', { + tar_src => [ '$project_dir' ], + tar_args => '-cJf ' _ c("var/system_pkg/pkg_name") _ '_' _ c("var/system_pkg/pkg_version") _ '.orig.tar.xz', + }) %] + + cd "$project_dir" + mv $rootdir/debian . + chmod +x debian/install debian/docs debian/rules + mkdir debian/source + echo -n '3.0 (quilt)' > debian/source/format + + + function extract_src_tar { + src_tar="$1" + deb_arch="$2" + mkdir $deb_arch + tar -C $deb_arch --strip-components=1 -xf "$src_tar" + mv "$src_tar" \ + ../[% c("var/system_pkg/pkg_name") %]_[% c("var/system_pkg/pkg_version") %].orig-$deb_arch.tar.xz + } + [% IF c("var/browser-linux-x86_64") -%] + extract_src_tar \ + $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-x86_64') %]/[% c("var/project-name") %]-linux-i686-[% c("version") %].tar.xz \ + i386 + [% END -%] + + [% FOREACH deb_arch = c("var_p/system_pkg/deb_archs") -%] + dpkg-buildpackage --unsigned-source --unsigned-changes --build=full --host-arch=[% deb_arch %] + deb_file_name='[% c("var/system_pkg/pkg_name") %]_[% c("var/system_pkg/pkg_version") %]-[% c("var/system_pkg/pkg_revision") %]_[% deb_arch %].deb' + dpkg-deb --info "../$deb_file_name" + pushd .. + mv -f "$deb_file_name" *.dsc *.orig.tar.xz *.debian.tar.xz "$OUTDIR/" + popd + [% END -%] +[% END %] ===================================== projects/linux-packages/config ===================================== @@ -0,0 +1,157 @@ +# vim: filetype=yaml sw=2 +version: '[% c("var/torbrowser_version") %]' +filename: '[% c("var/project-name") %]-[% c("version") %]-[% c("var/build_id") %]' +timestamp: '[% c("var/browser_release_date_timestamp") %]' +container: + use_container: 1 + +var: + build_deb_pkg: '[% c("var/mullvad-browser") %]' + system_pkg: + install_path: 'usr/lib/[% c("var/system_pkg/pkg_name") %]' + pkg_name: '[% c("var/project-name") %]-[% c("var/channel") %]' + pkg_version: '[% c("var/torbrowser_version") %]-[% c("var/torbrowser_build") %]' + pkg_revision: '1' + pkg_description: '[% c("var/display_name") %]' + deb_release_date: '[% USE date; date.format(c("timestamp"), format = "%a, %d %b %Y 01:02:03 +0000", locale = "en_US") %]' + # 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 %]' + + arch_deps: + # Packages needed to build the deb package + - dpkg-dev + - debhelper + - dh-exec + # Packages needed to generate dependencies for the deb package + - linux-libc-dev + - libasound2-dev + - libfontconfig1-dev + - libfreetype6-dev + - libgconf2-dev + - libgtk-3-dev + - libpango1.0-dev + - libpulse-dev + - libx11-xcb-dev + - libxt-dev + +targets: + + browser-all: + - browser-linux-x86_64 + - browser-linux-i686 + + browser-all-desktop: browser-all + + browser-linux-x86_64: + var: + browser-linux-x86_64: 1 + browser-linux-i686: + var: + browser-linux-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' + + torbrowser: + var: + browser_type: torbrowser + basebrowser: + var: + browser_type: basebrowser + mullvadbrowser: + var: + browser_type: mullvadbrowser + system_pkg: + pkg_description: 'Mullvad Browser is a privacy-focused web browser designed to minimize tracking and fingerprinting.' + + release: + var: + build_target: release + system_pkg: + pkg_name: '[% c("var/project-name") %]' + nightly: + var: + build_target: nightly + system_pkg: + # debian package version needs to start with a number + pkg_version: '[% pc("firefox", "var/browser_series") %]~[% c("var/torbrowser_version") FILTER remove("tbb-nightly.") %]' + alpha: + var: + build_target: alpha + testbuild: + var: + testbuild: 1 + build_target: '[% c("var/browser_type") %]-testbuild' + + +input_files: + + - project: container-image + + - name: linux-x86_64 + project: browser + enable: '[% c("var/browser-linux-x86_64") %]' + target: + - '[% 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' + + - filename: Makefile + content: "[% INCLUDE 'Makefile.in' %]" + refresh_input: 1 + + # Debian Package + - filename: debian/changelog + content: "[% INCLUDE 'debian/changelog.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/compat + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/control + content: "[% INCLUDE 'debian/control.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/copyright + content: "[% INCLUDE 'debian/copyright.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/install + content: "[% INCLUDE 'debian/install.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/docs + content: "[% INCLUDE 'debian/docs.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: 'debian/[% c("var/system_pkg/pkg_name") %].desktop' + content: "[% INCLUDE 'debian/browser.desktop.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/links + content: "[% INCLUDE 'debian/links.in' %]" + refresh_input: 1 + enable: '[% c("var/build_deb_pkg") %]' + - filename: debian/rules + enable: '[% c("var/build_deb_pkg") %]' + +--- | + # This part of the file contains options written in perl + ( + var_p => { + system_pkg => { + deb_archs => sub { + my ($project, $options) = @_; + my $deb_archs = project_config($project, + 'var/system_pkg/deb_archs_list', $options); + return [ + grep { $_ } map { process_template($project, $_, '.') } @$deb_archs + ]; + }, + }, + }, + ) ===================================== projects/linux-packages/debian/browser.desktop.in ===================================== @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Name=[% c("var/Project_Name") %] +GenericName=Web Browser +Comment=[% c("var/system_pkg/pkg_description") %] +Categories=Network;WebBrowser;Security; +Exec=/[% c("var/system_pkg/install_path") %]/start-[% c("var/project-name") %] --detach +X-[% c("var/ProjectName") %]-ExecShell=/[% c("var/system_pkg/install_path") %]/start-[% c("var/project-name") %] --detach +Icon=[% c("var/system_pkg/pkg_name") %] +StartupWMClass=[% c("var/display_name") %] ===================================== projects/linux-packages/debian/changelog.in ===================================== @@ -0,0 +1,5 @@ +[% c("var/system_pkg/pkg_name") %] ([% c("var/system_pkg/pkg_version") %]-[% c("var/system_pkg/pkg_revision") %]) UNRELEASED; urgency=medium + + * [% c("var/Project_Name") %] [% c("var/torbrowser_version") %] + + -- [% c("var/Project_Name") %] Developers <torbrowser(a)torproject.org> [% c("var/system_pkg/deb_release_date") %] ===================================== projects/linux-packages/debian/compat ===================================== @@ -0,0 +1 @@ +9 ===================================== projects/linux-packages/debian/control.in ===================================== @@ -0,0 +1,11 @@ +Source: [% c("var/system_pkg/pkg_name") %] +Maintainer: [% c("var/Project_Name") %] Developers <torbrowser(a)torproject.org> +Priority: optional +Section: web +Build-Depends: debhelper (>= 9) + +Package: [% c("var/system_pkg/pkg_name") %] +Architecture: [% c("var_p/system_pkg/deb_archs").join(" ") %] +Depends: ${shlibs:Depends}, +Description: [% c('var/display_name') %] + [% c("var/system_pkg/pkg_description") %] ===================================== projects/linux-packages/debian/copyright.in ===================================== @@ -0,0 +1,10 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Source:: https://gitlab.torproject.org/tpo/applications/tor-browser-build/ +Upstream-Name: [% c("var/Project_Name") %] +Comment: + License for the build recipes and tools used for building [% c("var/Project_Name") %] + can be found at this URL: + https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/blob/mai… + For the license of specific components included in [% c("var/Project_Name") %], see + this directory: + /usr/share/doc/[% c("var/system_pkg/pkg_name") %]/Licenses ===================================== projects/linux-packages/debian/docs.in ===================================== @@ -0,0 +1,3 @@ +#! /usr/bin/dh-exec +${DEB_HOST_ARCH}/Browser/[% c("var/ProjectName") %]/Docs/ChangeLog.txt +${DEB_HOST_ARCH}/Browser/[% c("var/ProjectName") %]/Docs/Licenses/ ===================================== projects/linux-packages/debian/install.in ===================================== @@ -0,0 +1,3 @@ +#! /usr/bin/dh-exec +${DEB_HOST_ARCH}/Browser/* [% c("var/system_pkg/install_path") %] +debian/[% c("var/system_pkg/pkg_name") %].desktop usr/share/applications ===================================== projects/linux-packages/debian/links.in ===================================== @@ -0,0 +1,7 @@ +[% c("var/system_pkg/install_path") %]/start-[% c("var/project-name") %] usr/bin/[% c("var/system_pkg/pkg_name") %] +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/default16.png usr/share/icons/hicolor/16x16/apps/[% c("var/system_pkg/pkg_name") %].png +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/default32.png usr/share/icons/hicolor/32x32/apps/[% c("var/system_pkg/pkg_name") %].png +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/default48.png usr/share/icons/hicolor/48x48/apps/[% c("var/system_pkg/pkg_name") %].png +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/default64.png usr/share/icons/hicolor/64x64/apps/[% c("var/system_pkg/pkg_name") %].png +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/default128.png usr/share/icons/hicolor/128x128/apps/[% c("var/system_pkg/pkg_name") %].png +[% c("var/system_pkg/install_path") %]/browser/chrome/icons/default/about-logo.svg usr/share/icons/hicolor/scalable/apps/[% c("var/system_pkg/pkg_name") %].svg ===================================== projects/linux-packages/debian/rules ===================================== @@ -0,0 +1,10 @@ +#!/usr/bin/make -f + +%: + dh $@ + +override_dh_strip_nondeterminism: + dh_strip_nondeterminism -Xxpi + +override_dh_shlibdeps: + dh_shlibdeps -Xabicheck ===================================== projects/release/build ===================================== @@ -37,6 +37,9 @@ mkdir -p "$destdir" [% IF c("var/browser-linux-x86_64") -%] mv [% c('input_files_by_name/linux-x86_64') %]/* "$destdir"/ [% END -%] +[% IF c("var/linux-packages") -%] + mv [% c('input_files_by_name/linux-packages') %]/* "$destdir"/ +[% END -%] [% IF c("var/browser-src") -%] mv [% c('input_files_by_name/src-firefox') %] \ "$destdir"/ @@ -59,7 +62,7 @@ EOF # empty any existing sh256sums file echo -n > sha256sums-unsigned-build.txt # concat sha256sum entry for each file in set -for i in $(ls -1 *.exe *.tar.xz *.dmg *.mar *.zip *.tar.gz *.apk *.bspatch *.json | grep -v '\.incremental\.mar$' | sort) +for i in $(ls -1 *.exe *.tar.xz *.dmg *.mar *.zip *.tar.gz *.apk *.bspatch *.json *.deb | grep -v '\.incremental\.mar$' | sort) do sha256sum $i >> sha256sums-unsigned-build.txt done ===================================== projects/release/config ===================================== @@ -47,6 +47,7 @@ targets: browser-linux-x86_64: var: browser-linux-x86_64: 1 + linux-packages: '[% c("var/mullvad-browser") %]' browser-linux-x86_64-asan: var: browser-linux-x86_64: 1 @@ -54,6 +55,7 @@ targets: browser-linux-i686: var: browser-linux-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' + linux-packages: '[% c("var/mullvad-browser") %]' browser-windows-i686: var: browser-windows-i686: '[% c("var/browser_type") != "mullvadbrowser" %]' @@ -186,6 +188,14 @@ input_files: - '[% c("var/build_target") %]' - '[% c("var/browser_type") %]-linux-i686' + - name: linux-packages + project: linux-packages + enable: '[% c("var/linux-packages") %]' + # Add linux-x86_64 targets for container config + target_prepend: + - linux-x86_64 + - linux + - name: windows-i686 project: browser enable: '[% c("var/browser-windows-i686") %]' ===================================== rbm ===================================== @@ -1 +1 @@ -Subproject commit 10c6b24e90e3dc9c2578290a7d82a87b7f4eb9a3 +Subproject commit 05e32169dfad9f3cc3eb6aa3f93d9b7a1690290e View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 4 commits: fixup! Bug 2176: Rebrand Firefox to TorBrowser
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: fd8774a0 by Henry Wilkes at 2024-04-22T17:33:16+01:00 fixup! Bug 2176: Rebrand Firefox to TorBrowser Bug 42538: Move onion icons to toolkit. - - - - - 916196f7 by Henry Wilkes at 2024-04-22T17:33:16+01:00 fixup! Bug 21952: Implement Onion-Location Bug 42538: Move onion icons to toolkit. - - - - - 09294f1b by Henry Wilkes at 2024-04-22T17:33:17+01:00 fixup! Bug 23247: Communicating security expectations for .onion Bug 42538: Move onion icons to toolkit. - - - - - 07ec5817 by Henry Wilkes at 2024-04-22T17:33:17+01:00 fixup! Bug 30237: Add v3 onion services client authentication prompt Bug 42538: Move onion icons to toolkit. - - - - - 8 changed files: - browser/components/onionservices/content/onionlocation.css - browser/themes/shared/identity-block/identity-block.css - browser/themes/shared/jar.inc.mn - toolkit/themes/shared/aboutNetError.css - toolkit/themes/shared/desktop-jar.inc.mn - browser/themes/shared/identity-block/onion-site.svg → toolkit/themes/shared/icons/onion-site.svg - browser/themes/shared/identity-block/onion-slash.svg → toolkit/themes/shared/icons/onion-slash.svg - browser/themes/shared/identity-block/onion-warning.svg → toolkit/themes/shared/icons/onion-warning.svg Changes: ===================================== browser/components/onionservices/content/onionlocation.css ===================================== @@ -1,7 +1,7 @@ /* Copyright (c) 2020, The Tor Project, Inc. */ #onion-location-button { - list-style-image: url(chrome://browser/skin/onion-site.svg); + list-style-image: url(chrome://global/skin/icons/onion-site.svg); -moz-context-properties: fill; fill: currentColor; } ===================================== browser/themes/shared/identity-block/identity-block.css ===================================== @@ -195,14 +195,14 @@ #identity-box[pageproxystate="valid"].onionUnknownIdentity #identity-icon, #identity-box[pageproxystate="valid"].onionVerifiedDomain #identity-icon, #identity-box[pageproxystate="valid"].onionMixedActiveBlocked #identity-icon { - list-style-image: url(chrome://browser/skin/onion-site.svg); + list-style-image: url(chrome://global/skin/icons/onion-site.svg); visibility: visible; } #identity-box[pageproxystate="valid"].onionMixedDisplayContent #identity-icon, #identity-box[pageproxystate="valid"].onionMixedDisplayContentLoadedActiveBlocked #identity-icon, #identity-box[pageproxystate="valid"].onionCertUserOverridden #identity-icon { - list-style-image: url(chrome://browser/skin/onion-warning.svg); + list-style-image: url(chrome://global/skin/icons/onion-warning.svg); visibility: visible; /* onion-warning includes another context-stroke color. Here we want it to * match the context-fill color, which should be currentColor. */ @@ -211,7 +211,7 @@ } #identity-box[pageproxystate="valid"].onionMixedActiveContent #identity-icon { - list-style-image: url(chrome://browser/skin/onion-slash.svg); + list-style-image: url(chrome://global/skin/icons/onion-slash.svg); visibility: visible; } ===================================== browser/themes/shared/jar.inc.mn ===================================== @@ -70,9 +70,6 @@ skin/classic/browser/downloads/progressmeter.css (../shared/downloads/progressmeter.css) skin/classic/browser/drm-icon.svg (../shared/drm-icon.svg) skin/classic/browser/identity-block/identity-block.css (../shared/identity-block/identity-block.css) - skin/classic/browser/onion-site.svg (../shared/identity-block/onion-site.svg) - skin/classic/browser/onion-slash.svg (../shared/identity-block/onion-slash.svg) - skin/classic/browser/onion-warning.svg (../shared/identity-block/onion-warning.svg) skin/classic/browser/permissions.svg (../shared/identity-block/permissions.svg) skin/classic/browser/migration/migration-dialog-window.css (../shared/migration/migration-dialog-window.css) skin/classic/browser/migration/migration-wizard.css (../shared/migration/migration-wizard.css) ===================================== toolkit/themes/shared/aboutNetError.css ===================================== @@ -51,7 +51,7 @@ body.certerror .title { } body.onion-error .title { - background-image: url("chrome://browser/skin/onion-warning.svg"); + background-image: url("chrome://global/skin/icons/onion-warning.svg"); -moz-context-properties: fill, stroke; fill: currentColor; stroke: var(--warning-color); ===================================== toolkit/themes/shared/desktop-jar.inc.mn ===================================== @@ -91,6 +91,9 @@ skin/classic/global/icons/tor-dark-loading.png (../../shared/icons/tor-dark-loading.png) skin/classic/global/icons/tor-dark-loading(a)2x.png (../../shared/icons/tor-dark-loading(a)2x.png) skin/classic/global/icons/more.svg (../../shared/icons/more.svg) + skin/classic/global/icons/onion-site.svg (../../shared/icons/onion-site.svg) + skin/classic/global/icons/onion-slash.svg (../../shared/icons/onion-slash.svg) + skin/classic/global/icons/onion-warning.svg (../../shared/icons/onion-warning.svg) skin/classic/global/icons/open-in-new.svg (../../shared/icons/open-in-new.svg) skin/classic/global/icons/page-portrait.svg (../../shared/icons/page-portrait.svg) skin/classic/global/icons/page-landscape.svg (../../shared/icons/page-landscape.svg) ===================================== browser/themes/shared/identity-block/onion-site.svg → toolkit/themes/shared/icons/onion-site.svg ===================================== ===================================== browser/themes/shared/identity-block/onion-slash.svg → toolkit/themes/shared/icons/onion-slash.svg ===================================== ===================================== browser/themes/shared/identity-block/onion-warning.svg → toolkit/themes/shared/icons/onion-warning.svg ===================================== View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d98ff1… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/d98ff1… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-115.10.0esr-13.5-1] fixup! Bug 40926: Implemented the New Identity feature
by ma1 (@ma1) 22 Apr '24

22 Apr '24
ma1 pushed to branch mullvad-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser Commits: 04899df2 by hackademix at 2024-04-22T18:27:14+02:00 fixup! Bug 40926: Implemented the New Identity feature Bug 42532: Use the HomePage module for new identity checks. - - - - - 1 changed file: - browser/components/newidentity/content/newidentity.js Changes: ===================================== browser/components/newidentity/content/newidentity.js ===================================== @@ -395,15 +395,12 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { return new Promise(resolve => { // Open a new window forcing the about:privatebrowsing page (tor-browser#41765) // unless user explicitly overrides this policy (tor-browser #42236) - const homePref = "browser.startup.homepage"; const trustedHomePref = "browser.startup.homepage.new_identity"; - const homeURL = Services.prefs.getStringPref(homePref, ""); - const defaultHomeURL = Services.prefs - .getDefaultBranch("") - .getStringPref(homePref, ""); + const homeURL = HomePage.get(); + const defaultHomeURL = HomePage.getDefault(); const isTrustedHome = homeURL === defaultHomeURL || - homeURL.startsWith("chrome://") || // about:blank and other built-ins + homeURL === "chrome://browser/content/blanktab.html" || // about:blank homeURL === Services.prefs.getStringPref(trustedHomePref, ""); const isCustomHome = Services.prefs.getIntPref("browser.startup.page") === 1; View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/048… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/048… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-115.10.0esr-13.5-1] fixup! Bug 40926: Implemented the New Identity feature
by ma1 (@ma1) 22 Apr '24

22 Apr '24
ma1 pushed to branch base-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 5616a8da by hackademix at 2024-04-22T18:26:36+02:00 fixup! Bug 40926: Implemented the New Identity feature Bug 42532: Use the HomePage module for new identity checks. - - - - - 1 changed file: - browser/components/newidentity/content/newidentity.js Changes: ===================================== browser/components/newidentity/content/newidentity.js ===================================== @@ -395,15 +395,12 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { return new Promise(resolve => { // Open a new window forcing the about:privatebrowsing page (tor-browser#41765) // unless user explicitly overrides this policy (tor-browser #42236) - const homePref = "browser.startup.homepage"; const trustedHomePref = "browser.startup.homepage.new_identity"; - const homeURL = Services.prefs.getStringPref(homePref, ""); - const defaultHomeURL = Services.prefs - .getDefaultBranch("") - .getStringPref(homePref, ""); + const homeURL = HomePage.get(); + const defaultHomeURL = HomePage.getDefault(); const isTrustedHome = homeURL === defaultHomeURL || - homeURL.startsWith("chrome://") || // about:blank and other built-ins + homeURL === "chrome://browser/content/blanktab.html" || // about:blank homeURL === Services.prefs.getStringPref(trustedHomePref, ""); const isCustomHome = Services.prefs.getIntPref("browser.startup.page") === 1; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5616a8d… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/5616a8d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 42535 (TB): Fix Japanese translation paths.
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 40425dd2 by Pier Angelo Vendrame at 2024-04-22T17:52:26+02:00 Bug 42535 (TB): Fix Japanese translation paths. When we setup packaged locales, it seemed that Japanese files needed to be in torbutton/locale/ja also for macOS, instead of ja-JP-mac. However, recently we saw that Firefox cannot find brand.ftl in ja, and the legacy files work also in ja-JP-mac. Maybe the initial tests were influenced by some cache. - - - - - 1 changed file: - projects/firefox/build Changes: ===================================== projects/firefox/build ===================================== @@ -133,15 +133,15 @@ mkdir "$HOME/.mozbuild" torbutton_locales="toolkit/torbutton/chrome/locale/" torbutton_jar="toolkit/torbutton/jar.mn" for lang in $supported_locales; do - central_lang=$lang + source_lang=$lang [% IF c("var/macos") -%] if [ "$lang" == "ja-JP-mac" ]; then - lang="ja" + source_lang="ja" fi [% END -%] - mv "$transl_tor_browser/$lang/tor-browser.ftl" "$l10ncentral/$central_lang/browser/browser/" - mv "$transl_tor_browser/$lang/cryptoSafetyPrompt.properties" "$l10ncentral/$central_lang/browser/chrome/browser/" - mv "$transl_tor_browser/$lang" "$torbutton_locales/" + mv "$transl_tor_browser/$source_lang/tor-browser.ftl" "$l10ncentral/$lang/browser/browser/" + mv "$transl_tor_browser/$source_lang/cryptoSafetyPrompt.properties" "$l10ncentral/$lang/browser/chrome/browser/" + mv "$transl_tor_browser/$source_lang" "$torbutton_locales/$lang" echo "% locale torbutton $lang %locale/$lang/" >> "$torbutton_jar" echo " locale/$lang (chrome/locale/$lang/*)" >> "$torbutton_jar" done View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/4… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/4… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Bug 40926: Implemented the New Identity feature
by ma1 (@ma1) 22 Apr '24

22 Apr '24
ma1 pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: d98ff16e by hackademix at 2024-04-22T17:06:04+02:00 fixup! Bug 40926: Implemented the New Identity feature Bug 42532: Use the HomePage module for new identity checks. - - - - - 1 changed file: - browser/components/newidentity/content/newidentity.js Changes: ===================================== browser/components/newidentity/content/newidentity.js ===================================== @@ -395,15 +395,12 @@ XPCOMUtils.defineLazyGetter(this, "NewIdentityButton", () => { return new Promise(resolve => { // Open a new window forcing the about:privatebrowsing page (tor-browser#41765) // unless user explicitly overrides this policy (tor-browser #42236) - const homePref = "browser.startup.homepage"; const trustedHomePref = "browser.startup.homepage.new_identity"; - const homeURL = Services.prefs.getStringPref(homePref, ""); - const defaultHomeURL = Services.prefs - .getDefaultBranch("") - .getStringPref(homePref, ""); + const homeURL = HomePage.get(); + const defaultHomeURL = HomePage.getDefault(); const isTrustedHome = homeURL === defaultHomeURL || - homeURL.startsWith("chrome://") || // about:blank and other built-ins + homeURL === "chrome://browser/content/blanktab.html" || // about:blank homeURL === Services.prefs.getStringPref(trustedHomePref, ""); const isCustomHome = Services.prefs.getIntPref("browser.startup.page") === 1; View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d98ff16… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/d98ff16… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-115.10.0esr-13.5-1] fixup! Bug 9173: Change the default Firefox profile directory to be relative.
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch mullvad-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser Commits: fd7362db by Pier Angelo Vendrame at 2024-04-22T16:37:11+02:00 fixup! Bug 9173: Change the default Firefox profile directory to be relative. Bug 42536: Fix !985 on macOS. - - - - - 1 changed file: - toolkit/xre/nsXREDirProvider.cpp Changes: ===================================== toolkit/xre/nsXREDirProvider.cpp ===================================== @@ -1323,6 +1323,7 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile, # if defined(XP_MACOSX) // On macOS we try to create the directory immediately to switch to // system-install mode if needed (e.g., when running from the DMG). + bool exists = false; rv = localDir->Exists(&exists); NS_ENSURE_SUCCESS(rv, rv); if (!exists) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fd7… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fd7… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][base-browser-115.10.0esr-13.5-1] fixup! Bug 9173: Change the default Firefox profile directory to be relative.
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch base-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: fd04a394 by Pier Angelo Vendrame at 2024-04-22T16:36:35+02:00 fixup! Bug 9173: Change the default Firefox profile directory to be relative. Bug 42536: Fix !985 on macOS. - - - - - 1 changed file: - toolkit/xre/nsXREDirProvider.cpp Changes: ===================================== toolkit/xre/nsXREDirProvider.cpp ===================================== @@ -1323,6 +1323,7 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile, # if defined(XP_MACOSX) // On macOS we try to create the directory immediately to switch to // system-install mode if needed (e.g., when running from the DMG). + bool exists = false; rv = localDir->Exists(&exists); NS_ENSURE_SUCCESS(rv, rv); if (!exists) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fd04a39… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fd04a39… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Bug 9173: Change the default Firefox profile directory to be relative.
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 22873387 by Pier Angelo Vendrame at 2024-04-22T09:23:12+02:00 fixup! Bug 9173: Change the default Firefox profile directory to be relative. Bug 42536: Fix !985 on macOS. - - - - - 1 changed file: - toolkit/xre/nsXREDirProvider.cpp Changes: ===================================== toolkit/xre/nsXREDirProvider.cpp ===================================== @@ -1326,6 +1326,7 @@ nsresult nsXREDirProvider::GetPortableDataDir(nsIFile** aFile, # if defined(XP_MACOSX) // On macOS we try to create the directory immediately to switch to // system-install mode if needed (e.g., when running from the DMG). + bool exists = false; rv = localDir->Exists(&exists); NS_ENSURE_SUCCESS(rv, rv); if (!exists) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2287338… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/2287338… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 2 commits: fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by Pier Angelo Vendrame (@pierov) 22 Apr '24

22 Apr '24
Pier Angelo Vendrame pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: a9c02248 by Henry Wilkes at 2024-04-22T07:22:05+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42533: Only update the internal loxId *after* the Lox.activeLoxId has changed. In particular, we want to ensure that the data associated with the new loxId (invites and event data) is set before we fetch them. - - - - - 4006866f by Henry Wilkes at 2024-04-22T07:22:05+00:00 fixup! Lox integration Bug 42533: Add notification for when the activeLoxId changes. - - - - - 3 changed files: - browser/components/torpreferences/content/connectionPane.js - browser/components/torpreferences/content/loxInviteDialog.js - toolkit/components/lox/Lox.sys.mjs Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -1317,6 +1317,7 @@ const gLoxStatus = { }); Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.addObserver(this, LoxTopics.UpdateActiveLoxId); Services.obs.addObserver(this, LoxTopics.UpdateEvents); Services.obs.addObserver(this, LoxTopics.UpdateNextUnlock); Services.obs.addObserver(this, LoxTopics.UpdateRemainingInvites); @@ -1333,6 +1334,7 @@ const gLoxStatus = { */ uninit() { Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.removeObserver(this, LoxTopics.UpdateActiveLoxId); Services.obs.removeObserver(this, LoxTopics.UpdateEvents); Services.obs.removeObserver(this, LoxTopics.UpdateNextUnlock); Services.obs.removeObserver(this, LoxTopics.UpdateRemainingInvites); @@ -1343,12 +1345,17 @@ const gLoxStatus = { switch (topic) { case TorSettingsTopics.SettingsChanged: const { changes } = subject.wrappedJSObject; - if ( - changes.includes("bridges.source") || - changes.includes("bridges.lox_id") - ) { + if (changes.includes("bridges.source")) { this._updateLoxId(); } + // NOTE: We do not call _updateLoxId when "bridges.lox_id" is in the + // changes. Instead we wait until LoxTopics.UpdateActiveLoxId to ensure + // that the Lox module has responded to the change in ID strictly + // *before* we do. In particular, we want to make sure the invites and + // event data has been cleared. + break; + case LoxTopics.UpdateActiveLoxId: + this._updateLoxId(); break; case LoxTopics.UpdateNextUnlock: this._updateNextUnlock(); @@ -1378,9 +1385,7 @@ const gLoxStatus = { */ async _updateLoxId() { let loxId = - TorSettings.bridges.source === TorBridgeSource.Lox - ? TorSettings.bridges.lox_id - : ""; + TorSettings.bridges.source === TorBridgeSource.Lox ? Lox.activeLoxId : ""; if (loxId === this._loxId) { return; } ===================================== browser/components/torpreferences/content/loxInviteDialog.js ===================================== @@ -104,6 +104,7 @@ const gLoxInvites = { // NOTE: TorSettings should already be initialized when this dialog is // opened. Services.obs.addObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.addObserver(this, LoxTopics.UpdateActiveLoxId); Services.obs.addObserver(this, LoxTopics.UpdateRemainingInvites); Services.obs.addObserver(this, LoxTopics.NewInvite); @@ -119,6 +120,7 @@ const gLoxInvites = { */ uninit() { Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); + Services.obs.removeObserver(this, LoxTopics.UpdateActiveLoxId); Services.obs.removeObserver(this, LoxTopics.UpdateRemainingInvites); Services.obs.removeObserver(this, LoxTopics.NewInvite); }, @@ -127,13 +129,13 @@ const gLoxInvites = { switch (topic) { case TorSettingsTopics.SettingsChanged: const { changes } = subject.wrappedJSObject; - if ( - changes.includes("bridges.source") || - changes.includes("bridges.lox_id") - ) { + if (changes.includes("bridges.source")) { this._updateLoxId(); } break; + case LoxTopics.UpdateActiveLoxId: + this._updateLoxId(); + break; case LoxTopics.UpdateRemainingInvites: this._updateRemainingInvites(); break; @@ -155,9 +157,7 @@ const gLoxInvites = { */ _updateLoxId() { const loxId = - TorSettings.bridges.source === TorBridgeSource.Lox - ? TorSettings.bridges.lox_id - : ""; + TorSettings.bridges.source === TorBridgeSource.Lox ? Lox.activeLoxId : ""; if (!loxId || (this._loxId !== null && loxId !== this._loxId)) { // No lox id, or it changed. Close this dialog. this._dialog.cancelDialog(); ===================================== toolkit/components/lox/Lox.sys.mjs ===================================== @@ -55,6 +55,8 @@ XPCOMUtils.defineLazyModuleGetters(lazy, { }); export const LoxTopics = Object.freeze({ + // Whenever the activeLoxId value changes. + UpdateActiveLoxId: "lox:update-active-lox-id", // Whenever the bridges *might* have changed. // getBridges only uses #credentials, so this will only fire when it changes. UpdateBridges: "lox:update-bridges", @@ -141,6 +143,10 @@ class LoxImpl { */ #activeLoxId = null; + get activeLoxId() { + return this.#activeLoxId; + } + /** * Update the active lox id. */ @@ -164,6 +170,8 @@ class LoxImpl { this.#store(); } this.#activeLoxId = loxId; + + Services.obs.notifyObservers(null, LoxTopics.UpdateActiveLoxId); } observe(subject, topic, data) { View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/00e009… -- This project does not include diff previews in email notifications. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/00e009… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by richard (@richard) 18 Apr '24

18 Apr '24
richard pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 00e009df by Henry Wilkes at 2024-04-18T13:57:12+01:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42457: Add a loading icon for Lox invites. Also reduce the amount of focus-jumping by keeping the focus on the disabled button. Also change the focus of the last provideBridgeDialog page to be the table of bridges. NVDA did not announce the focus when it was set to the dialog itself. - - - - - 6 changed files: - browser/components/torpreferences/content/connectionPane.xhtml - browser/components/torpreferences/content/loxInviteDialog.js - browser/components/torpreferences/content/loxInviteDialog.xhtml - browser/components/torpreferences/content/provideBridgeDialog.js - browser/components/torpreferences/content/provideBridgeDialog.xhtml - browser/components/torpreferences/content/torPreferences.css Changes: ===================================== browser/components/torpreferences/content/connectionPane.xhtml ===================================== @@ -48,7 +48,7 @@ class="network-status-label" data-l10n-id="tor-connection-internet-status-label" ></html:span> - <img alt="" class="network-status-loading-icon" /> + <img alt="" class="network-status-loading-icon tor-loading-icon" /> <html:span class="network-status-result"></html:span> </html:div> <html:button ===================================== browser/components/torpreferences/content/loxInviteDialog.js ===================================== @@ -62,12 +62,12 @@ const gLoxInvites = { this._remainingInvitesEl = document.getElementById( "lox-invite-dialog-remaining" ); + this._generateArea = document.getElementById( + "lox-invite-dialog-generate-area" + ); this._generateButton = document.getElementById( "lox-invite-dialog-generate-button" ); - this._connectingEl = document.getElementById( - "lox-invite-dialog-connecting" - ); this._errorEl = document.getElementById("lox-invite-dialog-error-message"); this._inviteListEl = document.getElementById("lox-invite-dialog-list"); @@ -237,20 +237,46 @@ const gLoxInvites = { _setGenerating(isGenerating) { this._generating = isGenerating; this._updateGenerateButtonState(); - this._connectingEl.classList.toggle("show-connecting", isGenerating); + this._generateArea.classList.toggle("show-connecting", isGenerating); }, + /** + * Whether the generate button is disabled. + * + * @type {boolean} + */ + _generateDisabled: false, /** * Update the state of the generate button. */ _updateGenerateButtonState() { - this._generateButton.disabled = this._generating || !this._remainingInvites; + const disabled = this._generating || !this._remainingInvites; + this._generateDisabled = disabled; + // When generating we use "aria-disabled" rather than the "disabled" + // attribute so that the button can remain focusable whilst we generate + // invites. + // NOTE: When we generate the invite the focus will move to the invite list, + // so it should be safe to make the button non-focusable in this case. + const spoofDisabled = this._generating; + this._generateButton.disabled = disabled && !spoofDisabled; + this._generateButton.classList.toggle( + "spoof-button-disabled", + spoofDisabled + ); + if (spoofDisabled) { + this._generateButton.setAttribute("aria-disabled", "true"); + } else { + this._generateButton.removeAttribute("aria-disabled"); + } }, /** * Start generating a new invite. */ _generateNewInvite() { + if (this._generateDisabled) { + return; + } if (this._generating) { console.error("Already generating an invite"); return; @@ -258,15 +284,13 @@ const gLoxInvites = { this._setGenerating(true); // Clear the previous error. this._updateGenerateError(null); - // Move focus from the button to the connecting element, since button is - // now disabled. - this._connectingEl.focus(); - let lostFocus = false; + let moveFocus = false; Lox.generateInvite(this._loxId) .finally(() => { - // Fetch whether the connecting label still has focus before we hide it. - lostFocus = this._connectingEl.contains(document.activeElement); + // Fetch whether the generate button has focus before we potentially + // disable it. + moveFocus = this._generateButton.contains(document.activeElement); this._setGenerating(false); }) .then( @@ -279,7 +303,7 @@ const gLoxInvites = { this._inviteListEl.selectedIndex = 0; } - if (lostFocus) { + if (moveFocus) { // Move focus to the new invite before we hide the "Connecting" // message. this._inviteListEl.focus(); @@ -295,12 +319,6 @@ const gLoxInvites = { this._updateGenerateError("generic"); break; } - - if (lostFocus) { - // Move focus back to the button before we hide the "Connecting" - // message. - this._generateButton.focus(); - } } ); }, @@ -315,7 +333,7 @@ const gLoxInvites = { // First clear the existing error. this._errorEl.removeAttribute("data-l10n-id"); this._errorEl.textContent = ""; - this._errorEl.classList.toggle("show-error", !!type); + this._generateArea.classList.toggle("show-error", !!type); if (!type) { return; ===================================== browser/components/torpreferences/content/loxInviteDialog.xhtml ===================================== @@ -40,10 +40,14 @@ id="lox-invite-dialog-error-message" role="alert" ></html:span> + <img + id="lox-invite-dialog-loading-icon" + class="tor-loading-icon" + alt="" + /> <html:span id="lox-invite-dialog-connecting" role="alert" - tabindex="0" data-l10n-id="lox-invite-dialog-connecting" ></html:span> </html:div> ===================================== browser/components/torpreferences/content/provideBridgeDialog.js ===================================== @@ -84,13 +84,19 @@ const gProvideBridgeDialog = { this._dialog = document.getElementById("user-provide-bridge-dialog"); this._acceptButton = this._dialog.getButton("accept"); + + // Inject our stylesheet into the shadow root so that the accept button can + // take the spoof-button-disabled styling. + const styleLink = document.createElement("link"); + styleLink.rel = "stylesheet"; + styleLink.href = + "chrome://browser/content/torpreferences/torPreferences.css"; + this._dialog.shadowRoot.append(styleLink); + this._textarea = document.getElementById("user-provide-bridge-textarea"); this._errorEl = document.getElementById( "user-provide-bridge-error-message" ); - this._connectingEl = document.getElementById( - "user-provide-bridge-connecting" - ); this._resultDescription = document.getElementById( "user-provide-result-description" ); @@ -152,13 +158,16 @@ const gProvideBridgeDialog = { * Reset focus position in the dialog. */ takeFocus() { - if (this._page === "entry") { - this._textarea.focus(); - } else { - // Move focus to the <xul:window> element. - // In particular, we do not want to keep the focus on the (same) accept - // button (with now different text). - document.documentElement.focus(); + switch (this._page) { + case "entry": + this._textarea.focus(); + break; + case "result": + // Move focus to the table. + // In particular, we do not want to keep the focus on the (same) accept + // button (with now different text). + this._bridgeGrid.focus(); + break; } }, @@ -193,12 +202,27 @@ const gProvideBridgeDialog = { } }, + /** + * Whether the dialog accept button is disabled. + * + * @type {boolean} + */ + _acceptDisabled: false, /** * Callback for whenever the accept button's might need to be disabled. */ updateAcceptDisabled() { - this._acceptButton.disabled = + const disabled = this._page === "entry" && (this.isEmpty() || this._loxLoading); + this._acceptDisabled = disabled; + // Spoof the button to look and act as if it is disabled, but still allow + // keyboard focus so the user can sit on this button whilst we are loading. + this._acceptButton.classList.toggle("spoof-button-disabled", disabled); + if (disabled) { + this._acceptButton.setAttribute("aria-disabled", "true"); + } else { + this._acceptButton.removeAttribute("aria-disabled"); + } }, /** @@ -217,16 +241,7 @@ const gProvideBridgeDialog = { setLoxLoading(isLoading) { this._loxLoading = isLoading; this._textarea.readOnly = isLoading; - this._connectingEl.classList.toggle("show-connecting", isLoading); - if ( - isLoading && - this._acceptButton.contains( - this._acceptButton.getRootNode().activeElement - ) - ) { - // Move focus to the alert before we disable the button. - this._connectingEl.focus(); - } + this._dialog.classList.toggle("show-connecting", isLoading); this.updateAcceptDisabled(); }, @@ -236,6 +251,12 @@ const gProvideBridgeDialog = { * @param {Event} event - The dialogaccept event. */ onDialogAccept(event) { + if (this._acceptDisabled) { + // Prevent closing. + event.preventDefault(); + return; + } + if (this._page === "result") { this._result.accepted = true; // Continue to close the dialog. @@ -313,14 +334,11 @@ const gProvideBridgeDialog = { this._errorEl.textContent = ""; if (error) { this._textarea.setAttribute("aria-invalid", "true"); - // Move focus back to the text area, likely away from the Next button or - // the "Connecting..." alert. - this._textarea.focus(); } else { this._textarea.removeAttribute("aria-invalid"); } this._textarea.classList.toggle("invalid-input", !!error); - this._errorEl.classList.toggle("show-error", !!error); + this._dialog.classList.toggle("show-error", !!error); if (!error) { return; ===================================== browser/components/torpreferences/content/provideBridgeDialog.xhtml ===================================== @@ -51,10 +51,14 @@ role="alert" aria-live="assertive" ></html:span> + <img + id="user-provide-bridge-loading-icon" + class="tor-loading-icon" + alt="" + /> <html:span id="user-provide-bridge-connecting" role="alert" - tabindex="0" data-l10n-id="user-provide-bridge-dialog-connecting" ></html:span> </html:div> @@ -70,6 +74,8 @@ id="user-provide-bridge-grid-display" class="tor-bridges-grid" role="table" + tabindex="0" + aria-labelledby="user-provide-result-description" ></html:div> <html:template id="user-provide-bridge-row-template"> <html:div class="tor-bridges-grid-row" role="row"> ===================================== browser/components/torpreferences/content/torPreferences.css ===================================== @@ -14,6 +14,24 @@ button.spoof-button-disabled { pointer-events: none; } +.tor-loading-icon { + width: 16px; + height: 16px; + content: image-set( + url("chrome://global/skin/icons/tor-light-loading.png"), + url("chrome://global/skin/icons/tor-light-loading@2x.png") 2x + ); +} + +@media (prefers-color-scheme: dark) { + .tor-loading-icon { + content: image-set( + url("chrome://global/skin/icons/tor-dark-loading.png"), + url("chrome://global/skin/icons/tor-dark-loading@2x.png") 2x + ); + } +} + /* Status */ #network-status-internet-area { @@ -81,21 +99,6 @@ button.spoof-button-disabled { .network-status-loading-icon { margin-inline-end: 0.5em; - width: 16px; - height: 16px; - content: image-set( - url("chrome://global/skin/icons/tor-light-loading.png"), - url("chrome://global/skin/icons/tor-light-loading@2x.png") 2x - ); -} - -@media (prefers-color-scheme: dark) { - .network-status-loading-icon { - content: image-set( - url("chrome://global/skin/icons/tor-dark-loading.png"), - url("chrome://global/skin/icons/tor-dark-loading@2x.png") 2x - ); - } } #network-status-internet-area:not(.status-loading) .network-status-loading-icon { @@ -900,6 +903,8 @@ dialog#torPreferences-requestBridge-dialog > hbox { #lox-invite-dialog-message-area { grid-area: message; justify-self: end; + display: flex; + align-items: center; } #lox-invite-dialog-message-area::after { @@ -911,19 +916,29 @@ dialog#torPreferences-requestBridge-dialog > hbox { color: var(--in-content-error-text-color); } -#lox-invite-dialog-error-message:not(.show-error) { +#lox-invite-dialog-generate-area:not(.show-error) #lox-invite-dialog-error-message { display: none; } #lox-invite-dialog-connecting { color: var(--text-color-deemphasized); - /* TODO: Add spinner ::before */ + /* Gap with #user-provide-bridge-loading-icon. */ + margin-inline-start: 0.5em; } -#lox-invite-dialog-connecting:not(.show-connecting) { +#lox-invite-dialog-generate-area:not(.show-connecting) #lox-invite-dialog-connecting { display: none; } +#lox-invite-dialog-loading-icon { + flex: 0 0 auto; +} + +#lox-invite-dialog-generate-area:not(.show-connecting) #lox-invite-dialog-loading-icon { + /* Use width:0 to effectively hide, but still occupy vertical space. */ + width: 0; +} + #lox-invite-dialog-list-label { font-weight: 700; } @@ -1019,6 +1034,8 @@ groupbox#torPreferences-bridges-group textarea { flex: 0 0 auto; margin-block: 8px 12px; align-self: end; + display: flex; + align-items: center; } #user-provide-bridge-message-area::after { @@ -1035,19 +1052,29 @@ groupbox#torPreferences-bridges-group textarea { color: var(--in-content-error-text-color); } -#user-provide-bridge-error-message.not(.show-error) { +#user-provide-bridge-dialog:not(.show-error) #user-provide-bridge-error-message { display: none; } #user-provide-bridge-connecting { color: var(--text-color-deemphasized); - /* TODO: Add spinner ::before */ + /* Gap with #user-provide-bridge-loading-icon. */ + margin-inline-start: 0.5em; } -#user-provide-bridge-connecting:not(.show-connecting) { +#user-provide-bridge-dialog:not(.show-connecting) #user-provide-bridge-connecting { display: none; } +#user-provide-bridge-loading-icon { + flex: 0 0 auto; +} + +#user-provide-bridge-dialog:not(.show-connecting) #user-provide-bridge-loading-icon { + /* Use width:0 to effectively hide, but still occupy vertical space. */ + width: 0; +} + #user-provide-bridge-result-page { flex: 1 1 0; min-height: 0; @@ -1065,6 +1092,11 @@ groupbox#torPreferences-bridges-group textarea { margin-block: 8px; } +#user-provide-bridge-grid-display:focus-visible { + outline: var(--in-content-focus-outline); + outline-offset: var(--in-content-focus-outline-offset); +} + /* Connection settings dialog */ #torPreferences-connection-dialog label { /* Do not wrap the labels. */ View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/00e009d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/00e009d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] Bug 41127: Update default browser_release_date for nightly
by boklm (@boklm) 18 Apr '24

18 Apr '24
boklm pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: e47404c6 by Nicolas Vigier at 2024-04-17T21:17:49+02:00 Bug 41127: Update default browser_release_date for nightly In nightly builds, when a date cannot be extracted from `var/torbrowser_version` (for example when doing a testbuild), we set a default date. However `firefox-android` fails to build when the date from `MOZ_BUILD_DATE` (which is based on `var/browser_release_date`) is too old. So we change the default date to something more recent. - - - - - 1 changed file: - rbm.conf Changes: ===================================== rbm.conf ===================================== @@ -256,7 +256,7 @@ targets: IF (matches = c("var/torbrowser_version").match('^tbb-nightly\.(\d\d\d\d)\.(\d\d)\.(\d\d)$')); GET matches.0 _ "/" _ matches.1 _ "/" _ matches.2 _ " 01:01:01"; ELSE; - GET "2000/01/01 01:01:01"; + GET "2024/01/01 01:01:01"; END -%] max_torbrowser_incremental_from: 2 View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 17 Apr '24

17 Apr '24
Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: f710da91 by clairehurst at 2024-04-17T22:07:23+00:00 fixup! Implement Android-native Connection Assist UI - - - - - 2 changed files: - fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt Changes: ===================================== fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -816,10 +816,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIn final override fun onBackPressed() { supportFragmentManager.primaryNavigationFragment?.childFragmentManager?.fragments?.forEach { - if (it is HomeFragment){ - finish() - return - } if (it is UserInteractionHandler && it.onBackPressed()) { return } ===================================== fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -61,6 +61,7 @@ import mozilla.components.feature.top.sites.TopSitesProviderConfig import mozilla.components.lib.state.ext.consumeFlow import mozilla.components.lib.state.ext.consumeFrom import mozilla.components.service.glean.private.NoExtras +import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged import org.mozilla.fenix.BuildConfig @@ -122,7 +123,7 @@ import java.lang.ref.WeakReference import kotlin.math.min @Suppress("TooManyFunctions", "LargeClass") -class HomeFragment : Fragment() { +class HomeFragment : Fragment(), UserInteractionHandler { private val args by navArgs<HomeFragmentArgs>() @VisibleForTesting @@ -1016,4 +1017,9 @@ class HomeFragment : Fragment() { // Elevation for undo toasts internal const val TOAST_ELEVATION = 80f } + + override fun onBackPressed(): Boolean { + requireActivity().finish() + return true + } } View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/f71… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/f71… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] fixup! Bug 2176: Rebrand Firefox to TorBrowser
by richard (@richard) 17 Apr '24

17 Apr '24
richard pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: b12ce2e6 by Dan Ballard at 2024-04-17T20:59:19+00:00 fixup! Bug 2176: Rebrand Firefox to TorBrowser bug 42504: Add tor project forums to bookmarks - - - - - 1 changed file: - browser/base/content/default-bookmarks.html Changes: ===================================== browser/base/content/default-bookmarks.html ===================================== @@ -19,6 +19,7 @@ <DT><A HREF="http://rzuwtpc4wb3xdzrj3yeajsvm3fkq4vbeubm2tdxaqruzzzgs5dwemlad.onion/" ICON="@onion_icon@">Tor Support portal - Get help</A> <DT><A HREF="about:manual" ICON="@onion_icon@">Tor Browser Manual</A> <DT><A HREF="http://xmrhfasfg5suueegrnc4gsgyi2tyclcy5oz7f5drnrodmdtob6t2ioyd.onion/" ICON="@onion_icon@">Tor Community - Get Involved</A> + <DT><A HREF="http://v236xhqtyullodhf26szyjepvkbv6iitrhjgrqj4avaoukebkk6n6syd.onion/" ICON="@onion_icon@">Tor Project Forum</A></DT> <DT><A HREF="https://donate.torproject.org/" ICON="@onion_icon@">Donate - Keep Tor Strong</A> <DT><A HREF="http://yq5jjvr7drkjrelzhut7kgclfuro65jjlivyzfmxiq2kyv5lickrl4qd.onion/" ICON="@onion_icon@">Circumvent Censorship, Get Bridges</A> </DL><p> View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/b12ce2e… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/b12ce2e… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Implement Android-native Connection Assist UI
by Dan Ballard (@dan) 17 Apr '24

17 Apr '24
Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: ef43762d by clairehurst at 2024-04-17T21:46:35+00:00 fixup! Implement Android-native Connection Assist UI - - - - - 1 changed file: - fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml Changes: ===================================== fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml ===================================== @@ -81,7 +81,7 @@ android:layout_marginTop="24dp" android:paddingHorizontal="24dp" android:text="@string/connection_assist_tor_connect_title" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" android:textSize="22sp" app:layout_constraintTop_toBottomOf="@id/tor_connect_image" /> @@ -93,7 +93,7 @@ android:paddingHorizontal="24dp" android:paddingVertical="16dp" android:text="@string/preferences_tor_network_settings_explanation" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" android:textSize="14sp" app:layout_constraintTop_toBottomOf="@id/title_large_text_view" /> @@ -104,7 +104,7 @@ android:paddingHorizontal="24dp" android:paddingVertical="8dp" android:text="@string/connection_assist_always_connect_automatically_toggle_description" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" app:layout_constraintTop_toBottomOf="@id/title_description" /> <TextView @@ -114,7 +114,7 @@ android:paddingHorizontal="24dp" android:layout_marginTop="24dp" android:text="@string/connection_assist_unblock_the_internet_in_country_or_region" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/title_description" /> @@ -126,7 +126,7 @@ android:layout_marginStart="24dp" android:layout_marginTop="8dp" android:layout_marginEnd="24dp" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" android:tooltipText="@string/connection_assist_share_my_location_country_or_region" android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" @@ -158,7 +158,7 @@ android:minWidth="360dp" android:text="@string/tor_bootstrap_connect" android:textAllCaps="false" - android:textColor="#FBFBFE" + android:textColor="@color/photonLightGrey05" android:textSize="14sp" android:textStyle="bold" app:layout_constraintBottom_toTopOf="@id/tor_bootstrap_button_2" @@ -177,7 +177,7 @@ android:minWidth="360dp" android:text="@string/connection_assist_configure_connection_button" android:textAllCaps="false" - android:textColor="#15141A" + android:textColor="@color/photonDarkGrey90" android:textSize="14sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/ef4… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/ef4… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Add Tor integration and UI
by Dan Ballard (@dan) 17 Apr '24

17 Apr '24
Dan Ballard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: 8cc03c8e by Dan Ballard at 2024-04-17T14:08:42-07:00 fixup! Add Tor integration and UI Bug 42486: Fixing controller use of TorSettings so cleanupSettings doesn&#39;t reject partial states - - - - - 1 changed file: - fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt Changes: ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt ===================================== @@ -88,15 +88,21 @@ class TorControllerGV( return getTorIntegration().getSettings() } + + // Bridges Enabled is a cache variable. The TorController interface we are locked into at the + // moment to support the TAS backend calls setting `bridgesEnabled = true` and setting + // the bridge type seperately so to support that, + // while at the same time it being invalid states to not submit them together to the TorSettings + // backend where TorSettings.sys.mjs's #cleanupSettings will remove a lone bridgeEnabled + // we thus have to hold it here to support the UI but not submit to the backend until + // bridgeTransport is also set (below) + private var _bridgesEnabled: Boolean? = null override var bridgesEnabled: Boolean get() { - return getTorSettings()?.bridgesEnabled ?: false + return _bridgesEnabled ?: getTorSettings()?.bridgesEnabled ?: false } set(value) { - getTorSettings()?.let { - it.bridgesEnabled = value - getTorIntegration().setSettings(it, true, true) - } + _bridgesEnabled = value } @@ -119,9 +125,13 @@ class TorControllerGV( } set(value) { getTorSettings()?.let { + it.bridgesEnabled = true if (value == TorBridgeTransportConfig.USER_PROVIDED) { - it.bridgesSource = BridgeSource.BuiltIn + // NOOP: all settings will be set in call to set userProvidedBridges and submited + // at the same time to clear TorSettings.sys.mjs #cleanupSettings + return } else { + it.bridgesSource = BridgeSource.BuiltIn val bbt: BridgeBuiltinType = when (value) { TorBridgeTransportConfig.BUILTIN_OBFS4 -> BridgeBuiltinType.Obfs4 TorBridgeTransportConfig.BUILTIN_MEEK_AZURE -> BridgeBuiltinType.MeekAzure @@ -135,12 +145,16 @@ class TorControllerGV( } + // Currently the UI takes a user provided string and sets this in one step so there is where we + // actually set it.bridgesSource = BridgeSource.UserProvided, not above, as TorSettings.sys.mjs #cleanupSettings + // could reject BridgeSource.UserProvided with no bridge strings override var userProvidedBridges: String? get() { return getTorSettings()?.bridgeBridgeStrings?.joinToString("\r\n") } set(value) { getTorSettings()?.let { + it.bridgesSource = BridgeSource.UserProvided it.bridgeBridgeStrings = value?.split("\r\n")?.toTypedArray() ?: arrayOf<String>() getTorIntegration().setSettings(it, true, true) } View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/8cc… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/8cc… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.10.0esr-13.5-1] 3 commits: Add purple tor version of the loading APNG.
by richard (@richard) 17 Apr '24

17 Apr '24
richard pushed to branch tor-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: e992fb9d by Henry Wilkes at 2024-04-17T20:39:07+00:00 Add purple tor version of the loading APNG. - - - - - 3cd48ad5 by Henry Wilkes at 2024-04-17T20:39:07+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 40843: Add a &quot;testing&quot; state to the internet status. Bug 41383: Improved accessibility of the network status areas by managing focus and making the status an aria-live area so that changes are announced without requiring focus. Also re-arranged the markup to ensure the &quot;Connection&quot; overview and network status areas are not part of search results. Also moved the &quot;Tor network&quot; status onto a new line: 1. This improved navigation with a screen reader. 2. Ensures that the &quot;Tor network&quot; status does not jump horizontally during a test. 3. Ensures that each status area does not take up too much horizontal space so that the minimum page width can reduce. E.g. the &quot;Tor network&quot; area regularly took up more than 50% of the available width, and these may be wider depending on the locale. - - - - - d1c78659 by Henry Wilkes at 2024-04-17T20:39:07+00:00 fixup! Tor Browser strings Bug 42457: Add a &quot;testing&quot; state to the internet status area. - - - - - 10 changed files: - browser/components/torpreferences/content/connectionPane.js - browser/components/torpreferences/content/connectionPane.xhtml - browser/components/torpreferences/content/torPreferences.css - browser/locales/en-US/browser/tor-browser.ftl - toolkit/themes/shared/desktop-jar.inc.mn - + toolkit/themes/shared/icons/tor-dark-loading.png - + toolkit/themes/shared/icons/tor-dark-loading(a)2x.png - + toolkit/themes/shared/icons/tor-light-loading.png - + toolkit/themes/shared/icons/tor-light-loading(a)2x.png - + tools/torbrowser/generate_tor_loading_png.py Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -5,7 +5,8 @@ "use strict"; -/* global Services, gSubDialog */ +/* import-globals-from /browser/components/preferences/preferences.js */ +/* import-globals-from /browser/components/preferences/search.js */ const { setTimeout, clearTimeout } = ChromeUtils.import( "resource://gre/modules/Timer.jsm" @@ -90,12 +91,6 @@ const Lox = { }; */ -const InternetStatus = Object.freeze({ - Unknown: 0, - Online: 1, - Offline: -1, -}); - /** * Make changes to TorSettings and save them. * @@ -2283,6 +2278,168 @@ const gBridgeSettings = { }, }; +/** + * Area to show the internet and tor network connection status. + */ +const gNetworkStatus = { + /** + * Initialize the area. + */ + init() { + this._internetAreaEl = document.getElementById( + "network-status-internet-area" + ); + this._internetResultEl = this._internetAreaEl.querySelector( + ".network-status-result" + ); + this._internetTestButton = document.getElementById( + "network-status-internet-test-button" + ); + this._internetTestButton.addEventListener("click", () => { + this._startInternetTest(); + }); + + this._torAreaEl = document.getElementById("network-status-tor-area"); + this._torResultEl = this._torAreaEl.querySelector(".network-status-result"); + this._torConnectButton = document.getElementById( + "network-status-tor-connect-button" + ); + this._torConnectButton.addEventListener("click", () => { + TorConnect.openTorConnect({ beginBootstrap: true }); + }); + + this._updateInternetStatus("unknown"); + this._updateTorConnectionStatus(); + + Services.obs.addObserver(this, TorConnectTopics.StateChange); + }, + + /** + * Un-initialize the area. + */ + deinint() { + Services.obs.removeObserver(this, TorConnectTopics.StateChange); + }, + + observe(subject, topic, data) { + switch (topic) { + // triggered when tor connect state changes and we may + // need to update the messagebox + case TorConnectTopics.StateChange: { + this._updateTorConnectionStatus(); + break; + } + } + }, + + /** + * Whether the test should be disabled. + * + * @type {boolean} + */ + _internetTestDisabled: false, + /** + * Start the internet test. + */ + async _startInternetTest() { + if (this._internetTestDisabled) { + return; + } + this._internetTestDisabled = true; + // We use "aria-disabled" rather than the "disabled" attribute so that the + // button can remain focusable during the test. + this._internetTestButton.setAttribute("aria-disabled", "true"); + this._internetTestButton.classList.add("spoof-button-disabled"); + try { + this._updateInternetStatus("testing"); + const mrpc = new MoatRPC(); + let status = null; + try { + await mrpc.init(); + status = await mrpc.testInternetConnection(); + } catch (err) { + console.log("Error while checking the Internet connection", err); + } finally { + mrpc.uninit(); + } + if (status) { + this._updateInternetStatus(status.successful ? "online" : "offline"); + } else { + this._updateInternetStatus("unknown"); + } + } finally { + this._internetTestButton.removeAttribute("aria-disabled"); + this._internetTestButton.classList.remove("spoof-button-disabled"); + this._internetTestDisabled = false; + } + }, + + /** + * Update the shown internet status. + * + * @param {string} stateName - The name of the state to show. + */ + _updateInternetStatus(stateName) { + let l10nId; + switch (stateName) { + case "testing": + l10nId = "tor-connection-internet-status-testing"; + break; + case "offline": + l10nId = "tor-connection-internet-status-offline"; + break; + case "online": + l10nId = "tor-connection-internet-status-online"; + break; + } + if (l10nId) { + this._internetResultEl.setAttribute("data-l10n-id", l10nId); + } else { + this._internetResultEl.removeAttribute("data-l10n-id"); + this._internetResultEl.textContent = ""; + } + + this._internetAreaEl.classList.toggle( + "status-loading", + stateName === "testing" + ); + this._internetAreaEl.classList.toggle( + "status-offline", + stateName === "offline" + ); + }, + + /** + * Update the shown Tor connection status. + */ + _updateTorConnectionStatus() { + const buttonHadFocus = this._torConnectButton.contains( + document.activeElement + ); + const isBootstrapped = TorConnect.state === TorConnectState.Bootstrapped; + const isBlocked = !isBootstrapped && TorConnect.potentiallyBlocked; + let l10nId; + if (isBootstrapped) { + l10nId = "tor-connection-network-status-connected"; + } else if (isBlocked) { + l10nId = "tor-connection-network-status-blocked"; + } else { + l10nId = "tor-connection-network-status-not-connected"; + } + + document.l10n.setAttributes(this._torResultEl, l10nId); + this._torAreaEl.classList.toggle("status-connected", isBootstrapped); + this._torAreaEl.classList.toggle("status-blocked", isBlocked); + if (isBootstrapped && buttonHadFocus) { + // Button has become hidden and will loose focus. Most likely this has + // happened because the user clicked the button to open about:torconnect. + // Since this is near the top of the page, we move focus to the search + // input (for when the user returns). + gSearchResultsPane.searchInput.focus(); + } + }, +}; + /* Connection Pane @@ -2304,8 +2461,6 @@ const gConnectionPane = (function () { // cached frequently accessed DOM elements _enableQuickstartCheckbox: null, - _internetStatus: InternetStatus.Unknown, - // populate xul with strings and cache the relevant elements _populateXUL() { // saves tor settings to disk when navigate away from about:preferences @@ -2321,80 +2476,6 @@ const gConnectionPane = (function () { } }); - // Internet and Tor status - const internetStatus = document.getElementById( - "torPreferences-status-internet" - ); - const internetResult = internetStatus.querySelector( - ".torPreferences-status-result" - ); - const internetTest = document.getElementById( - "torPreferences-status-internet-test" - ); - internetTest.addEventListener("click", () => { - this.onInternetTest(); - }); - - const torConnectStatus = document.getElementById( - "torPreferences-status-tor-connect" - ); - const torConnectResult = torConnectStatus.querySelector( - ".torPreferences-status-result" - ); - const torConnectButton = document.getElementById( - "torPreferences-status-tor-connect-button" - ); - torConnectButton.addEventListener("click", () => { - TorConnect.openTorConnect({ beginBootstrap: true }); - }); - - this._populateStatus = () => { - let internetId; - switch (this._internetStatus) { - case InternetStatus.Online: - internetStatus.classList.remove("offline"); - internetId = "tor-connection-internet-status-online"; - break; - case InternetStatus.Offline: - internetStatus.classList.add("offline"); - internetId = "tor-connection-internet-status-offline"; - break; - case InternetStatus.Unknown: - default: - internetStatus.classList.remove("offline"); - break; - } - if (internetId) { - document.l10n.setAttributes(internetResult, internetId); - internetResult.hidden = false; - } else { - internetResult.hidden = true; - } - - let connectId; - // FIXME: What about the TorConnectState.Disabled state? - if (TorConnect.state === TorConnectState.Bootstrapped) { - torConnectStatus.classList.add("connected"); - torConnectStatus.classList.remove("blocked"); - connectId = "tor-connection-network-status-connected"; - // NOTE: If the button is focused when we hide it, the focus may be - // lost. But we don't have an obvious place to put the focus instead. - torConnectButton.hidden = true; - } else { - torConnectStatus.classList.remove("connected"); - torConnectStatus.classList.toggle( - "blocked", - TorConnect.potentiallyBlocked - ); - connectId = TorConnect.potentiallyBlocked - ? "tor-connection-network-status-blocked" - : "tor-connection-network-status-not-connected"; - torConnectButton.hidden = false; - } - document.l10n.setAttributes(torConnectResult, connectId); - }; - this._populateStatus(); - // Quickstart this._enableQuickstartCheckbox = document.getElementById( "torPreferences-quickstart-toggle" @@ -2514,6 +2595,7 @@ const gConnectionPane = (function () { init() { gBridgeSettings.init(); + gNetworkStatus.init(); TorSettings.initializedPromise.then(() => this._populateXUL()); @@ -2526,6 +2608,7 @@ const gConnectionPane = (function () { uninit() { gBridgeSettings.uninit(); + gNetworkStatus.uninit(); // unregister our observer topics Services.obs.removeObserver(this, TorSettingsTopics.SettingsChanged); @@ -2554,36 +2637,12 @@ const gConnectionPane = (function () { // triggered when tor connect state changes and we may // need to update the messagebox case TorConnectTopics.StateChange: { - this.onStateChange(); + this._showAutoconfiguration(); break; } } }, - async onInternetTest() { - const mrpc = new MoatRPC(); - let status = null; - try { - await mrpc.init(); - status = await mrpc.testInternetConnection(); - } catch (err) { - console.log("Error while checking the Internet connection", err); - } finally { - mrpc.uninit(); - } - if (status) { - this._internetStatus = status.successful - ? InternetStatus.Online - : InternetStatus.Offline; - this._populateStatus(); - } - }, - - onStateChange() { - this._populateStatus(); - this._showAutoconfiguration(); - }, - onAdvancedSettings() { gSubDialog.open( "chrome://browser/content/torpreferences/connectionSettingsDialog.xhtml", ===================================== browser/components/torpreferences/content/connectionPane.xhtml ===================================== @@ -5,16 +5,13 @@ src="chrome://browser/content/torpreferences/connectionPane.js" /> <html:template id="template-paneConnection"> - <hbox + <vbox id="torPreferencesCategory" class="subcategory" data-category="paneConnection" hidden="true" > <html:h1 data-l10n-id="tor-connection-settings-heading"></html:h1> - </hbox> - - <groupbox data-category="paneConnection" hidden="true"> <description flex="1"> <html:span data-l10n-id="tor-connection-overview" @@ -28,46 +25,61 @@ data-l10n-id="tor-connection-browser-learn-more-link" /> </description> - </groupbox> - - <groupbox - id="torPreferences-status-group" - data-category="paneConnection" - hidden="true" - > - <hbox id="torPreferences-status-box"> - <hbox - id="torPreferences-status-internet" - class="torPreferences-status-grouping" + <!-- Keep within #torPreferencesCategory so this won't appear in search + - results. --> + <html:div + id="network-status-internet-area" + class="network-status-area" + role="group" + aria-labelledby="network-status-internet-area-label" + > + <html:img alt="" class="network-status-icon" /> + <!-- Use an aria-live area to announce "Internet: Online" or + - "Internet: Offline". We only expect this to change when triggered by + - the user clicking the "Test" button, so shouldn't occur unexpectedly. + --> + <html:div + class="network-status-live-area" + aria-live="polite" + aria-atomic="true" > - <image class="torPreferences-status-icon" /> <html:span - class="torPreferences-status-name" + id="network-status-internet-area-label" + class="network-status-label" data-l10n-id="tor-connection-internet-status-label" ></html:span> - <html:span class="torPreferences-status-result"></html:span> - <html:button - id="torPreferences-status-internet-test" - data-l10n-id="tor-connection-internet-status-test-button" - ></html:button> - </hbox> - <hbox - id="torPreferences-status-tor-connect" - class="torPreferences-status-grouping" - > - <image class="torPreferences-status-icon" /> - <html:span - class="torPreferences-status-name" - data-l10n-id="tor-connection-network-status-label" - ></html:span> - <html:span class="torPreferences-status-result"></html:span> - <html:button - id="torPreferences-status-tor-connect-button" - data-l10n-id="tor-connection-network-status-connect-button" - ></html:button> - </hbox> - </hbox> - </groupbox> + <img alt="" class="network-status-loading-icon" /> + <html:span class="network-status-result"></html:span> + </html:div> + <html:button + id="network-status-internet-test-button" + data-l10n-id="tor-connection-internet-status-test-button" + ></html:button> + </html:div> + <html:div + id="network-status-tor-area" + class="network-status-area" + role="group" + aria-labelledby="network-status-tor-area-label" + > + <html:img alt="" class="network-status-icon" /> + <!-- NOTE: Unlike #network-status-internet-area, we do not wrap the label + - and status ("Tor network: Not connected", etc) in an aria-live area. + - This is not likely to change whilst this page has focus. + - Moreover, the status is already present in the torconnect status bar + - in the window tab bar. --> + <html:span + id="network-status-tor-area-label" + class="network-status-label" + data-l10n-id="tor-connection-network-status-label" + ></html:span> + <html:span class="network-status-result"></html:span> + <html:button + id="network-status-tor-connect-button" + data-l10n-id="tor-connection-network-status-connect-button" + ></html:button> + </html:div> + </vbox> <!-- Quickstart --> <groupbox data-category="paneConnection" hidden="true"> ===================================== browser/components/torpreferences/content/torPreferences.css ===================================== @@ -5,25 +5,36 @@ list-style-image: url("chrome://global/content/torconnect/tor-connect.svg"); } +/* Make a button appear disabled, whilst still allowing it to keep keyboard + * focus. */ +button.spoof-button-disabled { + /* Borrow the :disabled rule from common-shared.css */ + opacity: 0.4; + /* Also ensure it does not get hover or active styling. */ + pointer-events: none; +} + /* Status */ -#torPreferences-status-box { - display: flex; - align-items: center; - gap: 32px; +#network-status-internet-area { + margin-block: 16px; +} + +#network-status-tor-area { + margin-block: 0 32px; } -.torPreferences-status-grouping { +.network-status-area { display: flex; align-items: center; white-space: nowrap; } -.torPreferences-status-grouping > * { +.network-status-area > * { flex: 0 0 auto; } -.torPreferences-status-icon { +.network-status-icon { width: 18px; height: 18px; margin-inline-end: 8px; @@ -32,42 +43,74 @@ stroke: currentColor; } -#torPreferences-status-internet .torPreferences-status-icon { - list-style-image: url("chrome://browser/content/torpreferences/network.svg"); +#network-status-internet-area .network-status-icon { + content: url("chrome://browser/content/torpreferences/network.svg"); } -#torPreferences-status-tor-connect .torPreferences-status-icon { - list-style-image: url("chrome://global/content/torconnect/tor-connect-broken.svg"); +#network-status-internet-area.status-offline .network-status-icon { + content: url("chrome://browser/content/torpreferences/network-broken.svg"); } -.torPreferences-status-name { - font-weight: bold; - margin-inline-end: 0.75em; +#network-status-tor-area .network-status-icon { + content: url("chrome://global/content/torconnect/tor-connect.svg"); } -.torPreferences-status-result { - margin-inline-end: 8px; +#network-status-tor-area:not(.status-connected) .network-status-icon { + content: url("chrome://global/content/torconnect/tor-connect-broken.svg"); } -#torPreferences-status-internet.offline .torPreferences-status-icon { - list-style-image: url("chrome://browser/content/torpreferences/network-broken.svg"); +#network-status-tor-area.status-blocked .network-status-icon { + /* Same as .tor-connect-status-potentially-blocked. */ + stroke: #c50042; } -#torPreferences-status-tor-connect.connected .torPreferences-status-icon { - list-style-image: url("chrome://global/content/torconnect/tor-connect.svg"); +@media (prefers-color-scheme: dark) { + #network-status-tor-area.status-blocked .network-status-icon { + stroke: #ff9aa2; + } } -#torPreferences-status-tor-connect.blocked .torPreferences-status-icon { - /* Same as .tor-connect-status-potentially-blocked. */ - stroke: #c50042; +.network-status-live-area { + display: contents; +} + +.network-status-label { + font-weight: bold; + margin-inline-end: 0.75em; +} + +.network-status-loading-icon { + margin-inline-end: 0.5em; + width: 16px; + height: 16px; + content: image-set( + url("chrome://global/skin/icons/tor-light-loading.png"), + url("chrome://global/skin/icons/tor-light-loading@2x.png") 2x + ); } @media (prefers-color-scheme: dark) { - #torPreferences-status-tor-connect.blocked .torPreferences-status-icon { - stroke: #ff9aa2; + .network-status-loading-icon { + content: image-set( + url("chrome://global/skin/icons/tor-dark-loading.png"), + url("chrome://global/skin/icons/tor-dark-loading@2x.png") 2x + ); } } +#network-status-internet-area:not(.status-loading) .network-status-loading-icon { + display: none; +} + +.network-status-result:not(:empty) { + margin-inline-end: 0.75em; +} + +#network-status-tor-area.status-connected #network-status-tor-connect-button { + /* Hide button when already connected. */ + display: none; +} + /* Bridge settings */ .tor-focusable-heading:focus-visible { ===================================== browser/locales/en-US/browser/tor-browser.ftl ===================================== @@ -65,6 +65,9 @@ tor-connection-internet-status-label = Internet: # Here "Test" is a verb, as in "test the internet connection". # Uses sentence case in English (US). tor-connection-internet-status-test-button = Test +# Shown when testing the internet status. +# Uses sentence case in English (US). +tor-connection-internet-status-testing = Testing… # Shown when the user is connected to the internet. # Uses sentence case in English (US). tor-connection-internet-status-online = Online ===================================== toolkit/themes/shared/desktop-jar.inc.mn ===================================== @@ -86,6 +86,10 @@ skin/classic/global/icons/link.svg (../../shared/icons/link.svg) skin/classic/global/icons/loading.png (../../shared/icons/loading.png) skin/classic/global/icons/loading(a)2x.png (../../shared/icons/loading(a)2x.png) + skin/classic/global/icons/tor-light-loading.png (../../shared/icons/tor-light-loading.png) + skin/classic/global/icons/tor-light-loading(a)2x.png (../../shared/icons/tor-light-loading(a)2x.png) + skin/classic/global/icons/tor-dark-loading.png (../../shared/icons/tor-dark-loading.png) + skin/classic/global/icons/tor-dark-loading(a)2x.png (../../shared/icons/tor-dark-loading(a)2x.png) skin/classic/global/icons/more.svg (../../shared/icons/more.svg) skin/classic/global/icons/open-in-new.svg (../../shared/icons/open-in-new.svg) skin/classic/global/icons/page-portrait.svg (../../shared/icons/page-portrait.svg) ===================================== toolkit/themes/shared/icons/tor-dark-loading.png ===================================== Binary files /dev/null and b/toolkit/themes/shared/icons/tor-dark-loading.png differ ===================================== toolkit/themes/shared/icons/tor-dark-loading(a)2x.png ===================================== Binary files /dev/null and b/toolkit/themes/shared/icons/tor-dark-loading(a)2x.png differ ===================================== toolkit/themes/shared/icons/tor-light-loading.png ===================================== Binary files /dev/null and b/toolkit/themes/shared/icons/tor-light-loading.png differ ===================================== toolkit/themes/shared/icons/tor-light-loading(a)2x.png ===================================== Binary files /dev/null and b/toolkit/themes/shared/icons/tor-light-loading(a)2x.png differ ===================================== tools/torbrowser/generate_tor_loading_png.py ===================================== @@ -0,0 +1,74 @@ +""" +Script to convert the loading.png and loading(a)2x.png blue spinners to purple +spinners for Tor Browser, for both the light and dark themes. +""" + +import argparse +import colorsys +import os + +from PIL import ExifTags, Image, ImageFilter + +parser = argparse.ArgumentParser(description="Convert the loading APNG to be purple.") +parser.add_argument("loading_png", help="The loading png to convert") +parser.add_argument( + "--light", required=True, help="The name of the light-theme purple output image" +) +parser.add_argument( + "--dark", required=True, help="The name of the dark-theme purple output image" +) + +parsed_args = parser.parse_args() + +orig_im = Image.open(parsed_args.loading_png) + + +def filter_to_light_theme(r, g, b): + h, s, v = colorsys.rgb_to_hsv(r, g, b) + # Convert from HSV 0.58, 1.0, 255 (start of the circle) + # to --purple-60 #8000d7 HSV 0.766, 1.0, 215 + h = 0.766 + v = v * 215 / 255 + return colorsys.hsv_to_rgb(h, s, v) + + +def filter_to_dark_theme(r, g, b): + h, s, v = colorsys.rgb_to_hsv(r, g, b) + # Convert from HSV 0.58, 1.0, 255 (start of the circle) + # to --purple-30 #c069ff HSV 0.766, 0.59, 255 + h = 0.766 + s = s * 0.59 / 1.0 + return colorsys.hsv_to_rgb(h, s, v) + + +filt_light = ImageFilter.Color3DLUT.generate(65, filter_to_light_theme) +filt_dark = ImageFilter.Color3DLUT.generate(65, filter_to_dark_theme) + +transformed_light = [] +transformed_dark = [] +duration = orig_im.info["duration"] + +# Transform each APNG frame individually. +for frame in range(orig_im.n_frames): + orig_im.seek(frame) + transformed_light.append(orig_im.filter(filt_light)) + transformed_dark.append(orig_im.filter(filt_dark)) + +exif = Image.Exif() +exif[ExifTags.Base.ImageDescription] = f"Generated by {os.path.basename(__file__)}" + +transformed_light[0].save( + parsed_args.light, + save_all=True, + append_images=transformed_light[1:], + duration=duration, + exif=exif, +) + +transformed_dark[0].save( + parsed_args.dark, + save_all=True, + append_images=transformed_dark[1:], + duration=duration, + exif=exif, +) View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/3cabcf… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/3cabcf… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-115.10.0esr-13.5-1] fixup! Bug 41918: Option to reuse last window size when letterboxing is enabled.
by richard (@richard) 17 Apr '24

17 Apr '24
richard pushed to branch mullvad-browser-115.10.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser Commits: fee38504 by hackademix at 2024-04-17T20:15:58+00:00 fixup! Bug 41918: Option to reuse last window size when letterboxing is enabled. Bug 42500: Fix restored window size after startup maximization - - - - - 2 changed files: - browser/components/BrowserGlue.sys.mjs - toolkit/xre/nsAppRunner.cpp Changes: ===================================== browser/components/BrowserGlue.sys.mjs ===================================== @@ -1581,6 +1581,13 @@ BrowserGlue.prototype = { return; } + // We don't want to mess up with RFP new window / letterboxing machinery. + if ( + Services.prefs.getBoolPref("privacy.resistFingerprinting", false) + ) { + return; + } + let store = Services.xulStore; let getValue = attr => store.getValue(AppConstants.BROWSER_CHROME_URL, "main-window", attr); ===================================== toolkit/xre/nsAppRunner.cpp ===================================== @@ -287,6 +287,7 @@ static const char kPrefThemeId[] = "extensions.activeThemeID"; static const char kPrefBrowserStartupBlankWindow[] = "browser.startup.blankWindow"; static const char kPrefPreXulSkeletonUI[] = "browser.startup.preXulSkeletonUI"; +static const char kPrefResistFingerprinting[] = "privacy.resistFingerprinting"; #endif // defined(XP_WIN) #if defined(MOZ_WIDGET_GTK) @@ -2260,6 +2261,7 @@ static void ReflectSkeletonUIPrefToRegistry(const char* aPref, void* aData) { bool shouldBeEnabled = Preferences::GetBool(kPrefPreXulSkeletonUI, false) && Preferences::GetBool(kPrefBrowserStartupBlankWindow, false) && + !Preferences::GetBool(kPrefResistFingerprinting, false) && LookAndFeel::DrawInTitlebar(); if (shouldBeEnabled && Preferences::HasUserValue(kPrefThemeId)) { nsCString themeId; View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fee… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fee… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • ...
  • 803
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.