tbb-commits
Threads by month
- ----- 2025 -----
- 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
August 2021
- 3 participants
- 589 discussions

[tor-browser-build/master] Bug 40333: Add a temporary ff91esr target in rbm.conf
by sysrqb@torproject.org 03 Aug '21
by sysrqb@torproject.org 03 Aug '21
03 Aug '21
commit b78195061f1b8142ec28ef280efb8c72ec58983e
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Jul 8 16:47:24 2021 +0200
Bug 40333: Add a temporary ff91esr target in rbm.conf
---
projects/cbindgen/config | 2 +-
projects/clang/build | 2 +-
projects/clang/config | 6 +++---
projects/node/config | 2 +-
projects/rust/build | 4 ++--
projects/rust/config | 8 +++++---
rbm.conf | 11 +++++++++++
7 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/projects/cbindgen/config b/projects/cbindgen/config
index 125d0e4..6b7695e 100644
--- a/projects/cbindgen/config
+++ b/projects/cbindgen/config
@@ -13,7 +13,7 @@ var:
use_container: 1
targets:
- android:
+ ff91esr:
var:
cbindgen_version: 0.19.0
cbindgen_hash: d9e490ce8b836194595bd30611253a7028059da2
diff --git a/projects/clang/build b/projects/clang/build
index 05a93dc..608d80c 100644
--- a/projects/clang/build
+++ b/projects/clang/build
@@ -25,7 +25,7 @@ export LLVM_HOME=$(pwd)
mkdir build
cd build
# XXX: remove duplicated parts while fixing tor-browser-build#40048
-[% IF ! c("var/android") %]
+[% IF ! c("var/ff91esr") %]
cmake .. -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir \
-DCMAKE_BUILD_TYPE:STRING=Release \
[% IF c("var/rlbox") -%]-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly \[% END -%]
diff --git a/projects/clang/config b/projects/clang/config
index 2d12335..3ce6d97 100644
--- a/projects/clang/config
+++ b/projects/clang/config
@@ -8,7 +8,7 @@ var:
use_container: 1
targets:
- android:
+ ff91esr:
var:
llvm_version: '[% pc("llvm-project", "version") %]'
@@ -32,7 +32,7 @@ input_files:
name: cmake
- project: clang-source
name: clang-source
- enable: '[% ! c("var/android") %]'
+ enable: '[% ! c("var/ff91esr") %]'
- project: llvm-project
name: clang-source
- enable: '[% c("var/android") %]'
+ enable: '[% c("var/ff91esr") %]'
diff --git a/projects/node/config b/projects/node/config
index 87de822..30fce8d 100644
--- a/projects/node/config
+++ b/projects/node/config
@@ -8,7 +8,7 @@ var:
use_container: 1
targets:
- android:
+ ff91esr:
var:
node_version: 10.23.1
node_hash: 88aa16f5af79615b183ca55ed81393763169e75d1fb96013cf1831895c6cedfa
diff --git a/projects/rust/build b/projects/rust/build
index 9609758..d4061eb 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -4,7 +4,7 @@ distdir=/var/tmp/dist/[% project %]
mkdir -p $distdir
tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %]
export PATH="/var/tmp/dist/cmake/bin:$PATH"
-[% IF c("var/android") %]
+[% IF c("var/ff91esr") %]
tar -C /var/tmp/dist -xf [% c('input_files_by_name/ninja') %]
export PATH=/var/tmp/dist/ninja:$PATH
[% END %]
@@ -40,7 +40,7 @@ mkdir /var/tmp/build
tar -C /var/tmp/build -xf [% c('input_files_by_name/rust') %]
cd /var/tmp/build/rustc-[% c('version') %]-src
-[% IF ! c("var/android") %]
+[% IF ! c("var/ff91esr") %]
# LLVM has reproducibility issues when optimizing bitcode, which we need to
# patch. See: #32053 for more details.
cd src/llvm-project
diff --git a/projects/rust/config b/projects/rust/config
index b6e22d7..05d33b2 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -9,10 +9,12 @@ var:
use_container: 1
targets:
- android:
+ ff91esr:
var:
current_version: 1.52.0
previous_version: 1.51.0
+ android:
+ var:
arch_deps:
- libssl-dev
- pkg-config
@@ -81,7 +83,7 @@ input_files:
name: cmake
- project: ninja
name: ninja
- enable: '[% c("var/android") %]'
+ enable: '[% c("var/ff91esr") %]'
- project: '[% c("var/compiler") %]'
name: '[% c("var/compiler") %]'
- URL: 'https://static.rust-lang.org/dist/rustc-[% c("var/current_version") %]-src.tar.gz'
@@ -98,4 +100,4 @@ input_files:
enable: '[% c("var/windows-i686") %]'
- filename: 43909.patch
name: 43909
- enable: '[% ! c("var/android") %]'
+ enable: '[% ! c("var/ff91esr") %]'
diff --git a/rbm.conf b/rbm.conf
index f54655e..408f295 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -264,9 +264,17 @@ targets:
- zip
- unzip
+ # Temporary target for the switch to firefox91. We use it to switch each
+ # platform separately to firefox91, and we should remove it once all
+ # platforms have been moved to it.
+ ff91esr:
+ var:
+ ff91esr: 1
+
torbrowser-android-armv7:
- android-armv7
- android
+ - ff91esr
android-armv7:
arch: armv7
var:
@@ -278,6 +286,7 @@ targets:
torbrowser-android-x86:
- android-x86
- android
+ - ff91esr
android-x86:
arch: x86
var:
@@ -289,6 +298,7 @@ targets:
torbrowser-android-x86_64:
- android-x86_64
- android
+ - ff91esr
android-x86_64:
arch: x86_64
var:
@@ -300,6 +310,7 @@ targets:
torbrowser-android-aarch64:
- android-aarch64
- android
+ - ff91esr
android-aarch64:
arch: aarch64
var:
1
0

[tor-browser-build/master] Bug 40331: Update components for mozilla91: application-services part
by sysrqb@torproject.org 03 Aug '21
by sysrqb@torproject.org 03 Aug '21
03 Aug '21
commit d41e3248f38a7e9760688ba568956c445c760f53
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Jul 12 18:31:14 2021 +0200
Bug 40331: Update components for mozilla91: application-services part
---
...niverse-of-known-types-in-an-ordered-BTre.patch | 51 ----------------------
projects/application-services/build | 9 ----
projects/application-services/config | 9 ++--
projects/nss/config | 8 ++--
4 files changed, 8 insertions(+), 69 deletions(-)
diff --git a/projects/application-services/0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch b/projects/application-services/0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch
deleted file mode 100644
index 947b2f6..0000000
--- a/projects/application-services/0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 4b9826025ac3242580efd7549d9b55d4466112e3 Mon Sep 17 00:00:00 2001
-From: Matthew Finkel <sysrqb(a)torproject.org>
-Date: Wed, 28 Apr 2021 18:38:47 +0000
-Subject: [PATCH] Store the universe of known types in an ordered BTreeSet
- (#374)
-
-The set of types is used in multiple places during FFI creation. When
-the data structure does not guarantee the order of elements, such as
-HashSet, the resulting generated source code is not deterministic. Using
-a BTreeSet resolves this issue by providing a well-defined element order
-over which the the set may be iterated.
----
- uniffi_bindgen/src/interface/types/mod.rs | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/uniffi_bindgen/src/interface/types/mod.rs b/uniffi_bindgen/src/interface/types/mod.rs
-index c4b0094..670b4bb 100644
---- a/uniffi_bindgen/src/interface/types/mod.rs
-+++ b/uniffi_bindgen/src/interface/types/mod.rs
-@@ -21,7 +21,7 @@
- //! about how these API-level types map into the lower-level types of the FFI layer as represented
- //! by the [`ffi::FFIType`] enum, but that's a detail that is invisible to end users.
-
--use std::{collections::hash_map::Entry, collections::HashMap, collections::HashSet};
-+use std::{collections::hash_map::Entry, collections::BTreeSet, collections::HashMap};
-
- use anyhow::{bail, Result};
-
-@@ -35,7 +35,7 @@ pub(super) use resolver::{resolve_builtin_type, TypeResolver};
- /// Represents all the different high-level types that can be used in a component interface.
- /// At this level we identify user-defined types by name, without knowing any details
- /// of their internal structure apart from what type of thing they are (record, enum, etc).
--#[derive(Debug, Clone, Eq, PartialEq, Hash)]
-+#[derive(Debug, Clone, Eq, PartialEq, Hash, Ord, PartialOrd)]
- pub enum Type {
- // Primitive types.
- UInt8,
-@@ -159,8 +159,8 @@ impl Into<FFIType> for &Type {
- pub(crate) struct TypeUniverse {
- // Named type definitions (including aliases).
- type_definitions: HashMap<String, Type>,
-- // All the types in the universe, by canonical type name.
-- all_known_types: HashSet<Type>,
-+ // All the types in the universe, by canonical type name, in a well-defined order.
-+ all_known_types: BTreeSet<Type>,
- }
-
- impl TypeUniverse {
---
-2.25.1
-
diff --git a/projects/application-services/build b/projects/application-services/build
index ec0aea3..c6e52ad 100644
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -49,15 +49,6 @@ directory = "/var/tmp/build/application-services/vendor"
offline=true
EOF
-# Bug 40293: Patch vendored uniffi_bindgen.
-pushd /var/tmp/build/application-services/vendor/
-patch -p1 < $rootdir/0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch
-# Update the expected checksum in the vendored source.
-sed -i \
- 's/e39e61458d0d28c2b3425852c8a55625cc185ce806fbc7c0c6682f8cc93dec8d/0909e5214eedf1f2e709909176b1cbda39887002b26388535c3bc551fb04da1b/' \
- uniffi_bindgen/.cargo-checksum.json
-popd
-
# Move NSS and SQLCipher to the right place
# XXX: Maybe merge with the loop above.
archs="armv7 aarch64 x86 x86_64"
diff --git a/projects/application-services/config b/projects/application-services/config
index 3b05d85..22bfa06 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
-version: 77.0.2
-git_hash: dd09c25f14dbf45f1637ed8dca2d1e5ff668479f
+version: 79.0.0
+git_hash: 89ea9cfa6eaa0763d17ec9aa04098839d028004c
git_url: https://github.com/mozilla/application-services
git_submodule: 1
@@ -80,18 +80,17 @@ input_files:
enable: '[% !c("var/fetch_gradle_dependencies") %]'
# Use `make cargo_vendor-application-services` to re-generate the vendor tarball
- URL: https://people.torproject.org/~boklm/mirrors/sources/application-services-v… c('version') %].tar.bz2
- sha256sum: 313c1e9b164ce9905eafe29a913edb617379e6d153ce28fa751d9f544e6e87c8
+ sha256sum: 386f0f94452f4a6185e9db094a157c67684c259b38e6f6d62805eaed30f20e58
- filename: no-git.patch
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: target.patch
- filename: gen_gradle_deps_file.sh
enable: '[% c("var/fetch_gradle_dependencies") %]'
- - filename: 0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch
steps:
list_toolchain_updates:
- git_hash: 'v77.0.2'
+ git_hash: 'v79.0.0'
input_files: []
var:
container:
diff --git a/projects/nss/config b/projects/nss/config
index fb84009..0224dca 100644
--- a/projects/nss/config
+++ b/projects/nss/config
@@ -1,9 +1,9 @@
# vim: filetype=yaml sw=2
-filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
+filename: '[% project %]-[% c("version") %]-with-nspr-[% c("nspr_version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
# The required versions for application-services can be found at the respective
# commit in libs/build-all.sh
-version: 3.59
-nspr_version: 4.29
+version: 3.65
+nspr_version: 4.30
var:
container:
use_container: 1
@@ -19,7 +19,7 @@ input_files:
project: ninja
- URL: 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_[% c("version") | replace("\\.", "_") %]_RTM/src/nss-[% c("version") %]-with-nspr-[% c("nspr_version") %].tar.gz'
name: nss
- sha256sum: 2e2c09c17b1c9f43a2f0a5d83a30a712bff3016d2b7cf5a3dd904847292607ae
+ sha256sum: 5da275c751d0a4f624089d4589ae68b0dfc9cb77bc846ef903fb819fbf678976
- filename: configure.patch
- filename: config.patch
- filename: bug_13028.patch
1
0

03 Aug '21
commit be34ce69f64803dcce5c36916183eaf9836c3b2b
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Thu Jul 8 16:49:11 2021 +0200
Bug 40332: Update rust to 1.53.0
---
projects/rust/build | 7 +++
projects/rust/config | 9 +++-
projects/rust/fix-build-1.53.0.patch | 88 ++++++++++++++++++++++++++++++++++++
3 files changed, 102 insertions(+), 2 deletions(-)
diff --git a/projects/rust/build b/projects/rust/build
index d4061eb..3d68e61 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -46,6 +46,13 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
cd src/llvm-project
patch -p1 < $rootdir/[% c('input_files_by_name/43909') %]
cd ../../
+[% ELSE -%]
+ # Patches for fixing:
+ # https://github.com/rust-lang/rust/issues/86436
+ # https://github.com/rust-lang/rust/pull/86568
+ # https://github.com/rust-lang/rust/issues/86999
+ # This can be removed when updating to >= 1.54.0.
+ patch -p1 < $rootdir/fix-build-1.53.0.patch
[% END %]
[% IF c("var/windows-i686") %]
diff --git a/projects/rust/config b/projects/rust/config
index 05d33b2..55bf544 100644
--- a/projects/rust/config
+++ b/projects/rust/config
@@ -11,8 +11,8 @@ var:
targets:
ff91esr:
var:
- current_version: 1.52.0
- previous_version: 1.51.0
+ current_version: 1.53.0
+ previous_version: 1.52.0
android:
var:
arch_deps:
@@ -101,3 +101,8 @@ input_files:
- filename: 43909.patch
name: 43909
enable: '[% ! c("var/ff91esr") %]'
+
+ # Fix for https://github.com/rust-lang/rust/issues/86436
+ # Taken from https://github.com/rust-lang/rust/pull/86568 (merged it 1.54.0)
+ - filename: fix-build-1.53.0.patch
+ enable: '[% c("var/ff91esr") %]'
diff --git a/projects/rust/fix-build-1.53.0.patch b/projects/rust/fix-build-1.53.0.patch
new file mode 100644
index 0000000..4b4f092
--- /dev/null
+++ b/projects/rust/fix-build-1.53.0.patch
@@ -0,0 +1,88 @@
+commit 601d24810e89efd42f7cd69d4a7ccecd4e35364d
+Author: Eric Huss <eric(a)huss.org>
+Date: Tue Jun 22 22:10:25 2021 -0700
+
+ Don't dist miri on stable or beta.
+
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index 71ed0af4a7c..e0c33f73577 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -1171,6 +1171,9 @@ impl Step for Miri {
+ }
+
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
++ if !builder.build.unstable_features() {
++ return None;
++ }
+ let compiler = self.compiler;
+ let target = self.target;
+ assert!(builder.config.extended);
+
+
+commit 6aa79a34d87252deaae11e75663e5740a22f14ea
+Author: Eric Huss <eric(a)huss.org>
+Date: Wed Jun 23 07:03:42 2021 -0700
+
+ Comment and include rust-analyzer.
+
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index e0c33f73577..19895baf08f 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -1072,6 +1072,12 @@ impl Step for RustAnalyzer {
+ }
+
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
++ // This prevents rust-analyzer from being built for "dist" or "install"
++ // on the stable/beta channels. It is a nightly-only tool and should
++ // not be included.
++ if !builder.build.unstable_features() {
++ return None;
++ }
+ let compiler = self.compiler;
+ let target = self.target;
+ assert!(builder.config.extended);
+@@ -1171,6 +1177,9 @@ impl Step for Miri {
+ }
+
+ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
++ // This prevents miri from being built for "dist" or "install"
++ // on the stable/beta channels. It is a nightly-only tool and should
++ // not be included.
+ if !builder.build.unstable_features() {
+ return None;
+ }
+
+
+ Disable rust-analyzer
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index cff1ec843ff..3767b0387a0 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -482,7 +482,6 @@ impl<'a> Builder<'a> {
+ install::Std,
+ install::Cargo,
+ install::Rls,
+- install::RustAnalyzer,
+ install::Rustfmt,
+ install::RustDemangler,
+ install::Clippy,
+diff --git a/src/bootstrap/install.rs b/src/bootstrap/install.rs
+index 13ee909afd5..a38fc9e95eb 100644
+--- a/src/bootstrap/install.rs
++++ b/src/bootstrap/install.rs
+@@ -164,12 +164,6 @@ install!((self, builder, _config),
+ );
+ }
+ };
+- RustAnalyzer, "rust-analyzer", Self::should_build(_config), only_hosts: true, {
+- let tarball = builder
+- .ensure(dist::RustAnalyzer { compiler: self.compiler, target: self.target })
+- .expect("missing rust-analyzer");
+- install_sh(builder, "rust-analyzer", self.compiler.stage, Some(self.target), &tarball);
+- };
+ Clippy, "clippy", Self::should_build(_config), only_hosts: true, {
+ let tarball = builder.ensure(dist::Clippy { compiler: self.compiler, target: self.target });
+ install_sh(builder, "clippy", self.compiler.stage, Some(self.target), &tarball);
1
0

[tor-browser-build/master] Bug 40331: Update components for mozilla91: glean part
by sysrqb@torproject.org 03 Aug '21
by sysrqb@torproject.org 03 Aug '21
03 Aug '21
commit 4113f79391312252678bb85f8dc160c45fb30307
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Jul 12 18:33:55 2021 +0200
Bug 40331: Update components for mozilla91: glean part
---
projects/glean/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/glean/config b/projects/glean/config
index 577199f..a1f08e4 100644
--- a/projects/glean/config
+++ b/projects/glean/config
@@ -11,7 +11,7 @@ src: |
steps:
create_glean_deps_tarball:
git_url: ''
- version: 3.2.0
+ version: 3.4.0
filename: 'glean-wheels-[% c("version") %].tar.xz'
build_log: '-'
var:
1
0

[Git][tpo/applications/fenix][tor-browser-91.0.0b5-11.0-1] 10 commits: Bug 40002: Add GitLab CI
by Matthew Finkel (@sysrqb) 03 Aug '21
by Matthew Finkel (@sysrqb) 03 Aug '21
03 Aug '21
Matthew Finkel pushed to branch tor-browser-91.0.0b5-11.0-1 at The Tor Project / Applications / fenix
Commits:
435ef6b2 by Matthew Finkel at 2021-07-29T10:52:28+02:00
Bug 40002: Add GitLab CI
Pin CI builds to runners with 32GB of RAM to avoid OOM conditions.
- - - - -
1ba03ae5 by Matthew Finkel at 2021-07-29T10:52:29+02:00
Rename as Tor Browser
Bug 40020: Change applicationId
Bug 40020: Change app name
Bug 40020: Change deeplink scheme
Bug 40020: Change App icons
Bug 40073: Use correct branding on About page
Bug 40088: Use Tor Browser logo in migration screen
- - - - -
488e4d37 by Matthew Finkel at 2021-07-29T10:52:31+02:00
Disable features and functionality
Bug 33594: Disable data collection by default (Glean)
Bug 40019: Adjust is disabled on Release when data collection is disabled
Bug 34338: Disable the crash reporter
Bug 40014: Neuter Google Advertising ID
Bug 40018: Disable Push service
Bug 40034: Disable PWA onboading
Bug 40072: Disable Tracking Protection
Bug 40061: Do not show "Send to device" in sharing menu
Bug 40109: Reduce requested permissions
Exclude LOCATION and NETWORK_STATE
- - - - -
d08d8b96 by Georg Koppen at 2021-07-29T10:52:33+02:00
Modify build system
Bug 40083: Make locale ordering in BuildConfig deterministic
Bug 40042: Add option do overwrite timestamp in extension version
Bug 40059: Use MOZ_BUILD_DATE for versionCode
At the same time we adapt MOZ_BUILD_DATE to our needs where it is
actually used and not in tor-browser-build. This gives us more
flexibility. See: tor-browser-build#40084.
Bug 40067: Fix reproducibility issue in classes2.dex
We make sure our MOZ_BUILD_DATE gets used as a source for showing date
related information on the Fenix about page.
Bug 40071: Show only supported locales
Bug 40064: Use Gecko Beta for Nightly and Debug variants
Bug 40123: Allow building the instrumented tests apks for variants other than debug
This allows to specify the variant of the instrumented tests via
a `testBuildType` gradle argument. It also applies a workaround for
a R8 issue from https://issuetracker.google.com/issues/140851070.
Bug 40143: Use deterministic date in Test apk
The build config was using Date() when generating the Test apk's
versionName.
- - - - -
5263d401 by Matthew Finkel at 2021-07-29T10:52:35+02:00
Add Tor integration and UI
Bug 40001: Start Tor as part of the Fenix initialization
Bug 40028: Implement Tor Service controller
Bug 40028: Integrate Tor Controller into HomeFragment
Bug 40028: Implement Tor connect and logger screens
Bug 40028: Implement Tor Onboarding
Bug 40028: Implement new home screen
Bug 40028: Define bootstrapping events and Quick Start
Bug 40041: Implement Tor Network Settings
Bug 40041: Integrate Tor Network Settings
Bug 40179: Show Snowflake bridge option on Release
- - - - -
e9c6256d by Alex Catarineu at 2021-07-29T10:52:36+02:00
Modify UI/UX
Bug 40015: Modify Home menu
Bug 40016: Hide unwanted Settings
Bug 40016: Modify Default toolbar menu
Bug 40016: Add Donate settings button
Bug 40016: Move Allow Screenshots under Advanced
Bug 40016: Don't install WebCompat webext
Bug 40016: Don't onboard Search Suggestions
Bug 40094: Do not use MasterPasswordTipProvider in HomeFragment
Bug 40095: Hide "Sign in to sync" in bookmarks
Bug 40031: Hide Mozilla-specific items on About page
Bug 40032: Set usesCleartextTraffic as false
Bug 40063: Do not sort search engines alphabetically
Bug 34378: Port external helper app prompting
With the corresponding android-components patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.
Bug 34403: Disable Normal mode by default
Bug 40087: Implement a switch for english locale spoofing
Bug 40144: Hide Download Manager
Bug 40141: Hide EME site permission
Bug 40166: Hide "Normal" tab (again) and Sync tab in TabTray
Bug 40167: Hide "Save to Collection" in menu
Bug 40172: Find the Quit button
- - - - -
948c8c4b by Alex Catarineu at 2021-07-29T10:52:38+02:00
Modify Add-on support
Bug 40030: Install HTTPS Everywhere and NoScript addons on startup
HTTPS Everywhere is installed as a builtin extension and NoScript as
a regular AMO addon. To avoid unnecessary I/O we only install NoScript
the first time, and rely on the browser addon updating mechanism for
keeping up with new versions. This is the same behaviour that was
implemented in the Fennec-based Tor Browser, where it was installed
as a "distribution addon", which also only occurred once.
Bug 40062: HTTPS Everywhere is not shown as installed
Also 40070: Consider storing the list of recommended addons
This implements our own AddonsProvider, which loads the list of
available addons from assets instead of fetching it from an
endpoint. In this list, we replace https-everywhere by
our https-everywhere-eff, so that the EFF one is shown as installed
in the addons list and the AMO one is not displayed.
Also, we hide the uninstall button for builtin addons.
Bug 40058: Hide option for disallowing addon in private mode
- - - - -
a5588bc1 by Matthew Finkel at 2021-07-29T10:52:40+02:00
Add Security Level UI
Bug 40026: Implement Security Level settings
Bug 40026: Integrate Security Level settings
- - - - -
63c54871 by Matthew Finkel at 2021-07-29T10:52:42+02:00
Bug 40165: Announce v2 onion service deprecation on about:tor
- - - - -
a0debdae by HackerNCoder at 2021-07-29T10:52:43+02:00
Bug 40177: Hide Tor icons in settings
- - - - -
30 changed files:
- + .gitlab-ci.yml
- app/build.gradle
- app/proguard-rules.pro
- app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt
- − app/src/beta/res/drawable/ic_launcher_foreground.xml
- app/src/beta/res/mipmap-hdpi/ic_launcher.png
- app/src/beta/res/mipmap-mdpi/ic_launcher.png
- app/src/beta/res/mipmap-xhdpi/ic_launcher.png
- app/src/beta/res/mipmap-xxhdpi/ic_launcher.png
- app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png
- app/src/beta/res/values/static_strings.xml
- app/src/beta/res/xml/shortcuts.xml
- − app/src/debug/res/drawable/ic_launcher_foreground.xml
- app/src/debug/res/xml/shortcuts.xml
- app/src/main/AndroidManifest.xml
- + app/src/main/assets/allowed_addons.json
- app/src/main/java/org/mozilla/fenix/FenixApplication.kt
- app/src/main/java/org/mozilla/fenix/HomeActivity.kt
- app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt
- app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
- app/src/main/java/org/mozilla/fenix/components/Analytics.kt
- app/src/main/java/org/mozilla/fenix/components/Components.kt
- app/src/main/java/org/mozilla/fenix/components/Core.kt
- + app/src/main/java/org/mozilla/fenix/components/TorAddonCollectionProvider.kt
- + app/src/main/java/org/mozilla/fenix/components/TorBrowserFeatures.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt
- app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt
- app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
- app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/d4b06e8e1580…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/d4b06e8e1580…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/android-components][android-components-91.0.8-11.0-1] 12 commits: Bug 40005: Modify Default toolbar menu
by Matthew Finkel (@sysrqb) 03 Aug '21
by Matthew Finkel (@sysrqb) 03 Aug '21
03 Aug '21
Matthew Finkel pushed to branch android-components-91.0.8-11.0-1 at The Tor Project / Applications / android-components
Commits:
a3e4f167 by Matthew Finkel at 2021-07-29T11:08:42+02:00
Bug 40005: Modify Default toolbar menu
- - - - -
86ae994e by Alex Catarineu at 2021-07-29T11:08:45+02:00
Bug 40007: Port external helper app prompting
Together with the corresponding fenix patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.
- - - - -
90177cdd by Alex Catarineu at 2021-07-29T11:08:47+02:00
Bug 40002: Ensure system download manager is not used
- - - - -
9251c19e by Alex Catarineu at 2021-07-29T11:08:49+02:00
Bug 40009: Change the default search engines
This matches the search engines from desktop, that is:
DDG as the default, then YouTube, Google, DDGOnion,
Startpage, Twitter, Wikipedia and Yahoo.
Bug 40062: Update DuckDuckGo onion search plugin
- - - - -
2abe6207 by Alex Catarineu at 2021-07-29T11:08:50+02:00
Modify Addon support
Bug 40011: Hide option for disallowing addons in private mode
Bug 40016: Allow inheriting from AddonCollectionProvider
This will allow implementing our own AddonsProvider in fenix.
- - - - -
e7ee2512 by Georg Koppen at 2021-07-29T11:08:52+02:00
Bug 40013: Add option do overwrite timestamp in extension version
- - - - -
38a51d2b by Alex Catarineu at 2021-07-29T11:08:53+02:00
Bug 40015: Port padlock states for .onion services
- - - - -
3a8d4b97 by Alex Catarineu at 2021-07-29T11:08:55+02:00
Bug 40021: Force telemetry=false in Fennec settings migration
- - - - -
1e3a79d6 by Alex Catarineu at 2021-07-29T11:08:57+02:00
Bug 40022: Migrate Tor security level from Fennec
- - - - -
ce30f866 by Matthew Finkel at 2021-07-29T11:08:59+02:00
Modify Tracking Protection configuration
Bug 40020: Disable third-party cookies
Bug 40024: Disable tracking protection by default
- - - - -
e5d7f12b by Matthew Finkel at 2021-07-29T11:09:00+02:00
Bug 40023: Stop PrivateNotificationService
- - - - -
2c171770 by Matthew Finkel at 2021-07-29T11:09:02+02:00
Add support for new GeckoView interfaces
Bug 40006: Expose Security Level interface
Bug 40019: Expose spoofEnglish pref
Bug 34439: Isolate Icon loader on Android
- - - - -
30 changed files:
- build.gradle
- components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/fetch/GeckoViewFetchClient.kt
- components/browser/icons/src/main/java/mozilla/components/browser/icons/loader/HttpIconLoader.kt
- components/browser/menu/src/main/java/mozilla/components/browser/menu/WebExtensionBrowserMenuBuilder.kt
- + components/browser/search/src/main/assets/searchplugins/ddg-onion.xml
- + components/browser/search/src/main/assets/searchplugins/startpage.xml
- + components/browser/search/src/main/assets/searchplugins/yahoo.xml
- components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/DisplayToolbar.kt
- components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/SiteSecurityIconView.kt
- components/browser/toolbar/src/main/res/drawable/mozac_ic_site_security.xml
- components/browser/toolbar/src/main/res/values/attrs_browser_toolbar.xml
- components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineSession.kt
- components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt
- components/concept/fetch/src/main/java/mozilla/components/concept/fetch/Request.kt
- components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt
- components/feature/addons/src/main/java/mozilla/components/feature/addons/amo/AddonCollectionProvider.kt
- components/feature/addons/src/main/res/layout/mozac_feature_addons_fragment_dialog_addon_installed.xml
- components/feature/app-links/build.gradle
- components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksFeature.kt
- components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt
- components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt
- components/feature/downloads/build.gradle
- components/feature/downloads/src/main/java/mozilla/components/feature/downloads/AbstractFetchDownloadService.kt
- components/feature/downloads/src/main/java/mozilla/components/feature/downloads/DownloadsFeature.kt
- components/feature/privatemode/src/main/java/mozilla/components/feature/privatemode/notification/PrivateNotificationFeature.kt
- components/feature/search/src/main/assets/search/list.json
- components/feature/search/src/main/assets/searchplugins/ddg.xml
- components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/ToolbarPresenter.kt
- components/support/ktx/src/main/java/mozilla/components/support/ktx/android/content/Context.kt
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/android-components/-/compare…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/android-components/-/compare…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[tor-browser/tor-browser-78.12.0esr-11.0-1] Merge remote-tracking branch 'richardgl/40547_rev' into tor-browser-78.12.0esr-11.0-1
by sysrqb@torproject.org 02 Aug '21
by sysrqb@torproject.org 02 Aug '21
02 Aug '21
commit 9f2339d6efc64317406bc6e49093461dd9123a4c
Merge: d54c4f1cf20e b3a4fa8c7cdc
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon Aug 2 23:16:01 2021 +0000
Merge remote-tracking branch 'richardgl/40547_rev' into tor-browser-78.12.0esr-11.0-1
browser/base/content/aboutNetError.js | 4 +-
browser/base/content/browser.js | 65 +++++++++-------
browser/base/content/browser.xhtml | 1 +
browser/base/content/utilityOverlay.js | 8 ++
.../alpha/content/identity-icons-brand.svg | 26 +------
browser/branding/alpha/content/jar.mn | 1 +
browser/branding/alpha/content/tor-styles.css | 13 ++++
.../nightly/content/identity-icons-brand.svg | 30 +-------
browser/branding/nightly/content/jar.mn | 1 +
browser/branding/nightly/content/tor-styles.css | 13 ++++
.../official/content/identity-icons-brand.svg | 32 +-------
browser/branding/official/content/jar.mn | 1 +
browser/branding/official/content/tor-styles.css | 14 ++++
browser/branding/tor-styles.inc.css | 87 ++++++++++++++++++++++
browser/components/BrowserGlue.jsm | 2 +-
browser/components/sessionstore/SessionStore.jsm | 12 ---
browser/components/torconnect/TorConnectParent.jsm | 12 ++-
.../torconnect/content/aboutTorConnect.css | 24 +++---
.../torconnect/content/aboutTorConnect.js | 39 +++++++---
.../torconnect/content/torBootstrapUrlbar.js | 6 +-
.../torconnect/content/torconnect-urlbar.css | 36 ++++-----
.../torconnect/content/torconnect-urlbar.inc.xhtml | 1 -
.../torpreferences/content/torPreferences.css | 16 ++--
browser/modules/TorConnect.jsm | 78 +++++++++++--------
browser/modules/TorStrings.jsm | 5 ++
.../shared/identity-block/identity-block.inc.css | 16 +---
26 files changed, 321 insertions(+), 222 deletions(-)
1
0

[tor-browser/tor-browser-78.12.0esr-11.0-1] fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
by sysrqb@torproject.org 02 Aug '21
by sysrqb@torproject.org 02 Aug '21
02 Aug '21
commit 440c7b66b634be7a2eebf9984c0e71c78aba1695
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon Aug 2 23:17:52 2021 +0000
fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
---
browser/modules/TorConnect.jsm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/modules/TorConnect.jsm b/browser/modules/TorConnect.jsm
index ddf658b1462a..bd5c998a6063 100644
--- a/browser/modules/TorConnect.jsm
+++ b/browser/modules/TorConnect.jsm
@@ -472,7 +472,7 @@ const TorConnect = (() => {
return v;
}
// about:tor as safe fallback
- console.log(`TorConnect: setURIsToLoad() received unknown variant '${JSON.stringify(v)}'`);
+ console.log(`TorConnect: getURIsToLoad() received unknown variant '${JSON.stringify(v)}'`);
return ["about:tor"];
})(uriVariant);
1
0

[tor-browser/tor-browser-78.12.0esr-11.0-1] fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
by sysrqb@torproject.org 02 Aug '21
by sysrqb@torproject.org 02 Aug '21
02 Aug '21
commit b3a4fa8c7cdc5c2c013376b3a34458efa342479c
Author: Richard Pospesel <richard(a)torproject.org>
Date: Thu Jul 29 17:57:39 2021 +0200
fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
---
browser/base/content/aboutNetError.js | 4 +-
browser/base/content/browser.js | 65 +++++++++-------
browser/base/content/browser.xhtml | 1 +
browser/base/content/utilityOverlay.js | 8 ++
.../alpha/content/identity-icons-brand.svg | 26 +------
browser/branding/alpha/content/jar.mn | 1 +
browser/branding/alpha/content/tor-styles.css | 13 ++++
.../nightly/content/identity-icons-brand.svg | 30 +-------
browser/branding/nightly/content/jar.mn | 1 +
browser/branding/nightly/content/tor-styles.css | 13 ++++
.../official/content/identity-icons-brand.svg | 32 +-------
browser/branding/official/content/jar.mn | 1 +
browser/branding/official/content/tor-styles.css | 14 ++++
browser/branding/tor-styles.inc.css | 87 ++++++++++++++++++++++
browser/components/BrowserGlue.jsm | 2 +-
browser/components/sessionstore/SessionStore.jsm | 12 ---
browser/components/torconnect/TorConnectParent.jsm | 12 ++-
.../torconnect/content/aboutTorConnect.css | 24 +++---
.../torconnect/content/aboutTorConnect.js | 39 +++++++---
.../torconnect/content/torBootstrapUrlbar.js | 6 +-
.../torconnect/content/torconnect-urlbar.css | 36 ++++-----
.../torconnect/content/torconnect-urlbar.inc.xhtml | 1 -
.../torpreferences/content/torPreferences.css | 16 ++--
browser/modules/TorConnect.jsm | 78 +++++++++++--------
browser/modules/TorStrings.jsm | 5 ++
.../shared/identity-block/identity-block.inc.css | 16 +---
26 files changed, 321 insertions(+), 222 deletions(-)
diff --git a/browser/base/content/aboutNetError.js b/browser/base/content/aboutNetError.js
index 6844154e16e3..32bd5576de3e 100644
--- a/browser/base/content/aboutNetError.js
+++ b/browser/base/content/aboutNetError.js
@@ -202,7 +202,9 @@ async function initPage() {
(err === "proxyConnectFailure") &&
(await RPMSendQuery("ShouldShowTorConnect"))
) {
- document.location.replace("about:torconnect");
+ // pass orginal destination as redirect param
+ const encodedRedirect = encodeURIComponent(document.location.href);
+ document.location.replace(`about:torconnect?redirect=${encodedRedirect}`);
}
// List of error pages with an illustration.
let illustratedErrors = [
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 996ef6dcdd7f..37d67f7680af 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -2494,37 +2494,48 @@ var gBrowserInit = {
let uri = window.arguments[0];
let defaultArgs = BrowserHandler.defaultArgs;
- if (TorConnect.shouldShowTorConnect) {
- TorConnect.setURIsToLoad(uri);
- return "about:torconnect";
- }
-
- // If the given URI is different from the homepage, we want to load it.
- if (uri != defaultArgs) {
- AboutNewTab.noteNonDefaultStartup();
+ // figure out which URI to actually load (or a Promise to get the uri)
+ uri = ((uri) => {
+ // If the given URI is different from the homepage, we want to load it.
+ if (uri != defaultArgs) {
+ AboutNewTab.noteNonDefaultStartup();
+
+ if (uri instanceof Ci.nsIArray) {
+ // Transform the nsIArray of nsISupportsString's into a JS Array of
+ // JS strings.
+ return Array.from(
+ uri.enumerate(Ci.nsISupportsString),
+ supportStr => supportStr.data
+ );
+ } else if (uri instanceof Ci.nsISupportsString) {
+ return uri.data;
+ }
+ return uri;
+ }
- if (uri instanceof Ci.nsIArray) {
- // Transform the nsIArray of nsISupportsString's into a JS Array of
- // JS strings.
- return Array.from(
- uri.enumerate(Ci.nsISupportsString),
- supportStr => supportStr.data
- );
- } else if (uri instanceof Ci.nsISupportsString) {
- return uri.data;
+ // The URI appears to be the the homepage. We want to load it only if
+ // session restore isn't about to override the homepage.
+ let willOverride = SessionStartup.willOverrideHomepage;
+ if (typeof willOverride == "boolean") {
+ return willOverride ? null : uri;
}
- return uri;
- }
+ return willOverride.then(willOverrideHomepage =>
+ willOverrideHomepage ? null : uri
+ );
+ })(uri);
- // The URI appears to be the the homepage. We want to load it only if
- // session restore isn't about to override the homepage.
- let willOverride = SessionStartup.willOverrideHomepage;
- if (typeof willOverride == "boolean") {
- return willOverride ? null : uri;
+ // if using TorConnect, convert these uris to redirects
+ if (TorConnect.shouldShowTorConnect) {
+ return Promise.resolve(uri).then((uri) => {
+ if (uri == null) {
+ uri = [];
+ }
+
+ uri = TorConnect.getURIsToLoad(uri);
+ return uri;
+ });
}
- return willOverride.then(willOverrideHomepage =>
- willOverrideHomepage ? null : uri
- );
+ return uri;
})());
},
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 032db1967c69..134ab8e087e1 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -10,6 +10,7 @@
override rules using selectors with the same specificity. This applies to
both "content" and "skin" packages, which bug 1385444 will unify later. -->
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
+<?xml-stylesheet href="chrome://branding/content/tor-styles.css" type="text/css"?>
<!-- While these stylesheets are defined in Toolkit, they are only used in the
main browser window, so we can load them here. Bug 1474241 is on file to
diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index eb13d5a3435c..0b3bdde4b5d4 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -20,6 +20,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
ExtensionSettingsStore: "resource://gre/modules/ExtensionSettingsStore.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
ShellService: "resource:///modules/ShellService.jsm",
+ TorConnect: "resource:///modules/TorConnect.jsm",
});
XPCOMUtils.defineLazyGetter(this, "ReferrerInfo", () =>
@@ -335,6 +336,13 @@ function openUILinkIn(
aPostData,
aReferrerInfo
) {
+
+ // make sure users are not faced with the scary red 'tor isn't working' screen
+ // if they navigate to about:tor before bootstrapped
+ if (url === "about:tor" && TorConnect.shouldShowTorConnect) {
+ url = `about:torconnect?redirect=${encodeURIComponent("about:tor")}`;
+ }
+
var params;
if (arguments.length == 3 && typeof arguments[2] == "object") {
diff --git a/browser/branding/alpha/content/identity-icons-brand.svg b/browser/branding/alpha/content/identity-icons-brand.svg
index 9bfa43842e2d..30cd52ba5c51 100644
--- a/browser/branding/alpha/content/identity-icons-brand.svg
+++ b/browser/branding/alpha/content/identity-icons-brand.svg
@@ -1,25 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <linearGradient x1="50%" y1="3.27248873%" x2="50%" y2="97.1599968%" id="linearGradient-1">
- <stop stop-color="#00FEFF" offset="0%"></stop>
- <stop stop-color="#0BE67D" offset="100%"></stop>
- </linearGradient>
- <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-2"></path>
- <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-3">
- <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
- <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
- <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
- </filter>
- </defs>
- <g id="Alpha" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g>
- <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
- <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
- <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
- <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
- <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
- </g>
- </g>
- </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="M12.0246161,21.8174863 L12.0246161,20.3628098 C16.6324777,20.3495038 20.3634751,16.6108555 20.3634751,11.9996673 C20.3634751,7.38881189 16.6324777,3.65016355 12.0246161,3.63685757 L12.0246161,2.18218107 C17.4358264,2.1958197 21.8178189,6.58546322 21.8178189,11.9996673 C21.8178189,17.4142042 17.4358264,21.8041803 12.0246161,21.8174863 L12.0246161,21.8174863 Z M12.0246161,16.7259522 C14.623607,16.7123136 16.7272828,14.6023175 16.7272828,11.9996673 C16.7272828,9.39734991 14.623607,7.28735377 12.0246161,7.27371516 L12.0246161,5.81937131 C15.4272884,5.8326773 18.1819593,8.59400123 18.1819593,11.9996673 C18.1819593,15.4056661 15.4272884,18.1669901 12.0246161,18.1802961 L12.0246161,16.7259522 Z M12.0246161,9.45556355 C13.4187503,9.46886953 14.5454344,10.6022066 14.5454344,11.9996673 C14.5454344,13.3974608 13.4187503,14.5307978 12.0246161,14.5441038 L12.0246161,9.45556355 Z M0,11.9996673 C0,18.6273771 5.37229031,24 12,24 C18
.6273771,24 24,18.6273771 24,11.9996673 C24,5.37229031 18.6273771,0 12,0 C5.37229031,0 0,5.37229031 0,11.9996673 Z"/>
</svg>
\ No newline at end of file
diff --git a/browser/branding/alpha/content/jar.mn b/browser/branding/alpha/content/jar.mn
index de166fe3636f..5dd066c27f9c 100644
--- a/browser/branding/alpha/content/jar.mn
+++ b/browser/branding/alpha/content/jar.mn
@@ -20,3 +20,4 @@ browser.jar:
content/branding/identity-icons-brand.svg
content/branding/aboutDialog.css
content/branding/horizontal-lockup.svg
+* content/branding/tor-styles.css
diff --git a/browser/branding/alpha/content/tor-styles.css b/browser/branding/alpha/content/tor-styles.css
new file mode 100644
index 000000000000..14c1915ef871
--- /dev/null
+++ b/browser/branding/alpha/content/tor-styles.css
@@ -0,0 +1,13 @@
+%include ../../tor-styles.inc.css
+
+/* default theme*/
+:root,
+/* light theme*/
+:root:-moz-lwtheme-darktext {
+ --tor-branding-color: var(--teal-70);
+}
+
+/* dark theme */
+:root:-moz-lwtheme-brighttext {
+ --tor-branding-color: var(--teal-60);
+}
\ No newline at end of file
diff --git a/browser/branding/nightly/content/identity-icons-brand.svg b/browser/branding/nightly/content/identity-icons-brand.svg
index fc1d9c997aeb..30cd52ba5c51 100644
--- a/browser/branding/nightly/content/identity-icons-brand.svg
+++ b/browser/branding/nightly/content/identity-icons-brand.svg
@@ -1,29 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-1">
- <stop stop-color="#00E1E8" offset="0%"></stop>
- <stop stop-color="#3500FF" offset="100%"></stop>
- </linearGradient>
- <linearGradient x1="25.1281738%" y1="5.44281006%" x2="54.3792725%" y2="100%" id="linearGradient-2">
- <stop stop-color="#00E1E8" offset="0%"></stop>
- <stop stop-color="#3500FF" offset="100%"></stop>
- </linearGradient>
- <path d="M25,25 C152.50841,25 255.874399,127.979815 255.874399,255.011855 C255.874399,382.043895 152.50841,485.02371 25,485.02371 L25,25 Z" id="path-3"></path>
- <filter x="-20.8%" y="-8.7%" width="134.7%" height="117.4%" filterUnits="objectBoundingBox" id="filter-4">
- <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
- <feGaussianBlur stdDeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
- <feColorMatrix values="0 0 0 0 0.0872579578 0 0 0 0 0.00490370801 0 0 0 0 0.234933036 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
- </filter>
- </defs>
- <g id="Nightly" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g>
- <circle id="background" fill-opacity="0.9" fill="#030004" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
- <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384044,2.842170
94e-14 256,2.84217094e-14 C114.60886,2.84217094e-14 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
- <g id="half" transform="translate(140.437200, 255.011855) scale(-1, 1) translate(-140.437200, -255.011855) ">
- <use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
- <use fill="url(#linearGradient-2)" fill-rule="evenodd" xlink:href="#path-3"></use>
- </g>
- </g>
- </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="M12.0246161,21.8174863 L12.0246161,20.3628098 C16.6324777,20.3495038 20.3634751,16.6108555 20.3634751,11.9996673 C20.3634751,7.38881189 16.6324777,3.65016355 12.0246161,3.63685757 L12.0246161,2.18218107 C17.4358264,2.1958197 21.8178189,6.58546322 21.8178189,11.9996673 C21.8178189,17.4142042 17.4358264,21.8041803 12.0246161,21.8174863 L12.0246161,21.8174863 Z M12.0246161,16.7259522 C14.623607,16.7123136 16.7272828,14.6023175 16.7272828,11.9996673 C16.7272828,9.39734991 14.623607,7.28735377 12.0246161,7.27371516 L12.0246161,5.81937131 C15.4272884,5.8326773 18.1819593,8.59400123 18.1819593,11.9996673 C18.1819593,15.4056661 15.4272884,18.1669901 12.0246161,18.1802961 L12.0246161,16.7259522 Z M12.0246161,9.45556355 C13.4187503,9.46886953 14.5454344,10.6022066 14.5454344,11.9996673 C14.5454344,13.3974608 13.4187503,14.5307978 12.0246161,14.5441038 L12.0246161,9.45556355 Z M0,11.9996673 C0,18.6273771 5.37229031,24 12,24 C18
.6273771,24 24,18.6273771 24,11.9996673 C24,5.37229031 18.6273771,0 12,0 C5.37229031,0 0,5.37229031 0,11.9996673 Z"/>
</svg>
\ No newline at end of file
diff --git a/browser/branding/nightly/content/jar.mn b/browser/branding/nightly/content/jar.mn
index de166fe3636f..5dd066c27f9c 100644
--- a/browser/branding/nightly/content/jar.mn
+++ b/browser/branding/nightly/content/jar.mn
@@ -20,3 +20,4 @@ browser.jar:
content/branding/identity-icons-brand.svg
content/branding/aboutDialog.css
content/branding/horizontal-lockup.svg
+* content/branding/tor-styles.css
diff --git a/browser/branding/nightly/content/tor-styles.css b/browser/branding/nightly/content/tor-styles.css
new file mode 100644
index 000000000000..52e1761e5459
--- /dev/null
+++ b/browser/branding/nightly/content/tor-styles.css
@@ -0,0 +1,13 @@
+%include ../../tor-styles.inc.css
+
+/* default theme*/
+:root,
+/* light theme*/
+:root:-moz-lwtheme-darktext {
+ --tor-branding-color: var(--blue-60);
+}
+
+/* dark theme */
+:root:-moz-lwtheme-brighttext {
+ --tor-branding-color: var(--blue-40);
+}
\ No newline at end of file
diff --git a/browser/branding/official/content/identity-icons-brand.svg b/browser/branding/official/content/identity-icons-brand.svg
index 62472ad1826e..30cd52ba5c51 100644
--- a/browser/branding/official/content/identity-icons-brand.svg
+++ b/browser/branding/official/content/identity-icons-brand.svg
@@ -1,31 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="512px" height="512px" viewBox="-17 -17 546 546" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs>
- <linearGradient x1="50%" y1="100%" x2="50%" y2="0%" id="linearGradient-1">
- <stop stop-color="#420C5D" offset="0%"></stop>
- <stop stop-color="#951AD1" offset="100%"></stop>
- </linearGradient>
- <path d="M25,29 C152.577777,29 256,131.974508 256,259 C256,386.025492 152.577777,489 25,489 L25,29 Z" id="path-2"></path>
- <filter x="-18.2%" y="-7.4%" width="129.4%" height="114.8%" filterUnits="objectBoundingBox" id="filter-3">
- <feOffset dx="-8" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
- <feGaussianBlur stdDeviation="10" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
- <feColorMatrix values="0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0 0.250980392 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
- </filter>
- </defs>
- <g id="Assets" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="icon_512x512">
- <g id="Group">
- <g id="tb_icon/Stable">
- <g id="Stable">
- <circle id="background" fill="#F2E4FF" fill-rule="nonzero" cx="256" cy="256" r="246"></circle>
- <path d="M256.525143,465.439707 L256.525143,434.406609 C354.826191,434.122748 434.420802,354.364917 434.420802,255.992903 C434.420802,157.627987 354.826191,77.8701558 256.525143,77.5862948 L256.525143,46.5531962 C371.964296,46.8441537 465.446804,140.489882 465.446804,255.992903 C465.446804,371.503022 371.964296,465.155846 256.525143,465.439707 Z M256.525143,356.820314 C311.970283,356.529356 356.8487,311.516106 356.8487,255.992903 C356.8487,200.476798 311.970283,155.463547 256.525143,155.17259 L256.525143,124.146588 C329.115485,124.430449 387.881799,183.338693 387.881799,255.992903 C387.881799,328.654211 329.115485,387.562455 256.525143,387.846316 L256.525143,356.820314 Z M256.525143,201.718689 C286.266674,202.00255 310.3026,226.180407 310.3026,255.992903 C310.3026,285.812497 286.266674,309.990353 256.525143,310.274214 L256.525143,201.718689 Z M0,255.992903 C0,397.384044 114.60886,512 256,512 C397.384044,512 512,397.384044 512,255.992903 C512,114.60886 397.384
044,0 256,0 C114.60886,0 0,114.60886 0,255.992903 Z" id="center" fill="url(#linearGradient-1)"></path>
- <g id="half" transform="translate(140.500000, 259.000000) scale(-1, 1) translate(-140.500000, -259.000000) ">
- <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
- <use fill="url(#linearGradient-1)" fill-rule="evenodd" xlink:href="#path-2"></use>
- </g>
- </g>
- </g>
- </g>
- </g>
- </g>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="M12.0246161,21.8174863 L12.0246161,20.3628098 C16.6324777,20.3495038 20.3634751,16.6108555 20.3634751,11.9996673 C20.3634751,7.38881189 16.6324777,3.65016355 12.0246161,3.63685757 L12.0246161,2.18218107 C17.4358264,2.1958197 21.8178189,6.58546322 21.8178189,11.9996673 C21.8178189,17.4142042 17.4358264,21.8041803 12.0246161,21.8174863 L12.0246161,21.8174863 Z M12.0246161,16.7259522 C14.623607,16.7123136 16.7272828,14.6023175 16.7272828,11.9996673 C16.7272828,9.39734991 14.623607,7.28735377 12.0246161,7.27371516 L12.0246161,5.81937131 C15.4272884,5.8326773 18.1819593,8.59400123 18.1819593,11.9996673 C18.1819593,15.4056661 15.4272884,18.1669901 12.0246161,18.1802961 L12.0246161,16.7259522 Z M12.0246161,9.45556355 C13.4187503,9.46886953 14.5454344,10.6022066 14.5454344,11.9996673 C14.5454344,13.3974608 13.4187503,14.5307978 12.0246161,14.5441038 L12.0246161,9.45556355 Z M0,11.9996673 C0,18.6273771 5.37229031,24 12,24 C18
.6273771,24 24,18.6273771 24,11.9996673 C24,5.37229031 18.6273771,0 12,0 C5.37229031,0 0,5.37229031 0,11.9996673 Z"/>
</svg>
\ No newline at end of file
diff --git a/browser/branding/official/content/jar.mn b/browser/branding/official/content/jar.mn
index de166fe3636f..5dd066c27f9c 100644
--- a/browser/branding/official/content/jar.mn
+++ b/browser/branding/official/content/jar.mn
@@ -20,3 +20,4 @@ browser.jar:
content/branding/identity-icons-brand.svg
content/branding/aboutDialog.css
content/branding/horizontal-lockup.svg
+* content/branding/tor-styles.css
diff --git a/browser/branding/official/content/tor-styles.css b/browser/branding/official/content/tor-styles.css
new file mode 100644
index 000000000000..e4ccb5c767a9
--- /dev/null
+++ b/browser/branding/official/content/tor-styles.css
@@ -0,0 +1,14 @@
+%include ../../tor-styles.inc.css
+
+/* default theme*/
+:root,
+/* light theme*/
+:root:-moz-lwtheme-darktext {
+ --tor-branding-color: var(--purple-60);
+}
+
+/* dark theme */
+:root:-moz-lwtheme-brighttext {
+ --tor-branding-color: var(--purple-30);
+}
+
diff --git a/browser/branding/tor-styles.inc.css b/browser/branding/tor-styles.inc.css
new file mode 100644
index 000000000000..55dc9b6238b3
--- /dev/null
+++ b/browser/branding/tor-styles.inc.css
@@ -0,0 +1,87 @@
+:root {
+ /* photon colors, not all of them are available for whatever reason
+ in firefox, so here they are */
+
+ --magenta-50: #ff1ad9;
+ --magenta-60: #ed00b5;
+ --magenta-70: #b5007f;
+ --magenta-80: #7d004f;
+ --magenta-90: #440027;
+
+ --purple-30: #c069ff;
+ --purple-40: #ad3bff;
+ --purple-50: #9400ff;
+ --purple-60: #8000d7;
+ --purple-70: #6200a4;
+ --purple-80: #440071;
+ --purple-90: #25003e;
+
+ --blue-40: #45a1ff;
+ --blue-50: #0a84ff;
+ --blue-50-a30: rgba(10, 132, 255, 0.3);
+ --blue-60: #0060df;
+ --blue-70: #003eaa;
+ --blue-80: #002275;
+ --blue-90: #000f40;
+
+ --teal-50: #00feff;
+ --teal-60: #00c8d7;
+ --teal-70: #008ea4;
+ --teal-80: #005a71;
+ --teal-90: #002d3e;
+
+ --green-50: #30e60b;
+ --green-60: #12bc00;
+ --green-70: #058b00;
+ --green-80: #006504;
+ --green-90: #003706;
+
+ --yellow-50: #ffe900;
+ --yellow-60: #d7b600;
+ --yellow-70: #a47f00;
+ --yellow-80: #715100;
+ --yellow-90: #3e2800;
+
+ --red-50: #ff0039;
+ --red-60: #d70022;
+ --red-70: #a4000f;
+ --red-80: #5a0002;
+ --red-90: #3e0200;
+
+ --orange-50: #ff9400;
+ --orange-60: #d76e00;
+ --orange-70: #a44900;
+ --orange-80: #712b00;
+ --orange-90: #3e1300;
+
+ --grey-10: #f9f9fa;
+ --grey-10-a10: rgba(249, 249, 250, 0.1);
+ --grey-10-a20: rgba(249, 249, 250, 0.2);
+ --grey-10-a40: rgba(249, 249, 250, 0.4);
+ --grey-10-a60: rgba(249, 249, 250, 0.6);
+ --grey-10-a80: rgba(249, 249, 250, 0.8);
+ --grey-20: #ededf0;
+ --grey-30: #d7d7db;
+ --grey-40: #b1b1b3;
+ --grey-50: #737373;
+ --grey-60: #4a4a4f;
+ --grey-70: #38383d;
+ --grey-80: #2a2a2e;
+ --grey-90: #0c0c0d;
+ --grey-90-a05: rgba(12, 12, 13, 0.05);
+ --grey-90-a10: rgba(12, 12, 13, 0.1);
+ --grey-90-a20: rgba(12, 12, 13, 0.2);
+ --grey-90-a30: rgba(12, 12, 13, 0.3);
+ --grey-90-a40: rgba(12, 12, 13, 0.4);
+ --grey-90-a50: rgba(12, 12, 13, 0.5);
+ --grey-90-a60: rgba(12, 12, 13, 0.6);
+ --grey-90-a70: rgba(12, 12, 13, 0.7);
+ --grey-90-a80: rgba(12, 12, 13, 0.8);
+ --grey-90-a90: rgba(12, 12, 13, 0.9);
+
+ --ink-70: #363959;
+ --ink-80: #202340;
+ --ink-90: #0f1126;
+
+ --white-100: #ffffff;
+}
\ No newline at end of file
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index cb77f4d82a3e..aae76c7be6bc 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -514,7 +514,7 @@ let JSWINDOWACTORS = {
},
},
- matches: ["about:torconnect"],
+ matches: ["about:torconnect","about:torconnect?*"],
},
Translation: {
diff --git a/browser/components/sessionstore/SessionStore.jsm b/browser/components/sessionstore/SessionStore.jsm
index 2d66422abf58..bf9919041f6b 100644
--- a/browser/components/sessionstore/SessionStore.jsm
+++ b/browser/components/sessionstore/SessionStore.jsm
@@ -1892,23 +1892,11 @@ var SessionStoreInternal = {
}, "browser-delayed-startup-finished");
});
- let bootstrapPromise = new Promise(resolve => {
- if (TorProtocolService.isBootstrapDone() || !TorProtocolService.ownsTorDaemon) {
- resolve();
- } else {
- Services.obs.addObserver(function obs(subject, topic) {
- Services.obs.removeObserver(obs, topic);
- resolve();
- }, "torconnect:bootstrap-complete");
- }
- });
-
// We are ready for initialization as soon as the session file has been
// read from disk and the initial window's delayed startup has finished.
this._promiseReadyForInitialization = Promise.all([
promise,
SessionStartup.onceInitialized,
- bootstrapPromise,
]);
}
diff --git a/browser/components/torconnect/TorConnectParent.jsm b/browser/components/torconnect/TorConnectParent.jsm
index 3937bf3ebcf8..792f2af10ea6 100644
--- a/browser/components/torconnect/TorConnectParent.jsm
+++ b/browser/components/torconnect/TorConnectParent.jsm
@@ -25,6 +25,8 @@ class TorConnectParent extends JSWindowActorParent {
this.state = {
State: TorConnect.state,
+ StateChanged: false,
+ Exit: false,
ErrorMessage: TorConnect.errorMessage,
ErrorDetails: TorConnect.errorDetails,
BootstrapProgress: TorConnect.bootstrapProgress,
@@ -45,9 +47,11 @@ class TorConnectParent extends JSWindowActorParent {
// update our state struct based on received torconnect topics and forward on
// to aboutTorConnect.js
+ self.state.StateChanged = false;
switch(aTopic) {
case TorConnectTopics.StateChange: {
self.state.State = obj.state;
+ self.state.StateChanged = true;
// clear any previous error information if we are bootstrapping
if (self.state.State === TorConnectState.Bootstrapping) {
self.state.ErrorMessage = null;
@@ -62,12 +66,12 @@ class TorConnectParent extends JSWindowActorParent {
break;
}
case TorConnectTopics.BootstrapComplete: {
- // tells about:torconnect pages to close themselves
+ // tells about:torconnect pages to close or redirect themselves
// this flag will only be set if an about:torconnect page
// reaches the Bootstrapped state, so if a user
// navigates to about:torconnect manually after bootstrap, the page
// will not auto-close on them
- self.state.Close = true;
+ self.state.Exit = true;
break;
}
case TorConnectTopics.BootstrapError: {
@@ -130,6 +134,10 @@ class TorConnectParent extends JSWindowActorParent {
break;
case "torconnect:get-init-args":
// called on AboutTorConnect.init(), pass down all state data it needs to init
+
+ // pretend this is a state transition on init
+ // so we always get fresh UI
+ this.state.StateChanged = true;
return {
TorStrings: TorStrings,
TorConnectState: TorConnectState,
diff --git a/browser/components/torconnect/content/aboutTorConnect.css b/browser/components/torconnect/content/aboutTorConnect.css
index a70904ca0b28..3bdc6ff22192 100644
--- a/browser/components/torconnect/content/aboutTorConnect.css
+++ b/browser/components/torconnect/content/aboutTorConnect.css
@@ -1,8 +1,8 @@
/* Copyright (c) 2021, The Tor Project, Inc. */
-
@import url("chrome://browser/skin/error-pages.css");
+@import url("chrome://branding/content/tor-styles.css");
:root {
--onion-opacity: 1;
@@ -13,20 +13,20 @@
/* override firefox's default blue focus coloring */
:focus {
outline: none!important;
- box-shadow: 0 0 0 3px #CD8CED !important;
- border: 1px #59316B solid !important;
+ box-shadow: 0 0 0 3px var(--purple-30) !important;
+ border: 1px var(--purple-80) solid !important;
}
@media (prefers-color-scheme: dark)
{
:focus {
- box-shadow: 0 0 0 3px #8C689E !important;
+ box-shadow: 0 0 0 3px var(--purple-50)!important;
}
}
/* override firefox's default blue border on hover */
input[type="checkbox"]:not(:disabled):hover {
- border-color: #59316B;
+ border-color: var(--purple-70);
}
/* fix checkbox visibility when dark mode enabled */
@@ -35,11 +35,15 @@ input[type="checkbox"]:checked {
}
#connectButton {
- background-color: #7D4698;
+ background-color: var(--purple-60);
}
#connectButton:hover {
- background-color: #59316B;
+ background-color: var(--purple-70);
+}
+
+#connectButton:active {
+ background-color: var(--purple-80);
}
#progressBackground {
@@ -111,8 +115,8 @@ input[type="checkbox"]:checked {
/* tooltip content (any content could go here) */
#copyLogTooltipText {
- background-color: #30E60B;
- color: #003706;
+ background-color: var(--green-50);
+ color: var(--green-90);
border-radius: 2px;
padding: 4px;
line-height: 13px;
@@ -129,7 +133,7 @@ input[type="checkbox"]:checked {
margin-left: -4px;
border-width: 4px;
border-style: solid;
- border-color: #30E60B transparent transparent transparent;
+ border-color: var(--green-50) transparent transparent transparent;
}
body {
diff --git a/browser/components/torconnect/content/aboutTorConnect.js b/browser/components/torconnect/content/aboutTorConnect.js
index 8b269d2fc82b..4eed3cf6a5c3 100644
--- a/browser/components/torconnect/content/aboutTorConnect.js
+++ b/browser/components/torconnect/content/aboutTorConnect.js
@@ -47,6 +47,10 @@ class AboutTorConnect {
advancedButton: document.querySelector(this.selectors.buttons.advanced),
})
+ // a redirect url can be passed as a query parameter for the page to
+ // forward us to once bootstrap completes (otherwise the window will just close)
+ redirect = null
+
beginBootstrap() {
this.hide(this.elements.connectButton);
this.show(this.elements.cancelButton);
@@ -100,10 +104,6 @@ class AboutTorConnect {
// calls update_$state()
this[`update_${state.State}`](state);
-
- if (state.ShowCopyLog) {
- this.showCopyLog();
- }
this.elements.quickstartCheckbox.checked = state.QuickStartEnabled;
}
@@ -137,7 +137,9 @@ class AboutTorConnect {
this.elements.connectButton.textContent = TorStrings.torConnect.torConnectButton;
}
this.show(this.elements.connectButton);
- this.elements.connectButton.focus();
+ if (state.StateChanged) {
+ this.elements.connectButton.focus();
+ }
this.show(this.elements.advancedButton);
this.hide(this.elements.cancelButton);
}
@@ -160,7 +162,9 @@ class AboutTorConnect {
this.hide(this.elements.connectButton);
this.hide(this.elements.advancedButton);
this.show(this.elements.cancelButton);
- this.elements.cancelButton.focus();
+ if (state.StateChanged) {
+ this.elements.cancelButton.focus();
+ }
}
update_Error(state) {
@@ -190,9 +194,15 @@ class AboutTorConnect {
this.hide(this.elements.advancedButton);
this.hide(this.elements.cancelButton);
- // only close the window if directed
- if (state.Close) {
- window.close();
+ // only exit about:torconnect if TorConnectParent directs us to
+ if (state.Exit) {
+ if (this.redirect) {
+ // first try to forward to final destination
+ document.location = this.redirect;
+ } else {
+ // or else close the window
+ window.close();
+ }
}
}
@@ -201,7 +211,7 @@ class AboutTorConnect {
// it isn't in use (eg using tor-launcher or system tor)
}
- async initElements(direction, quickstart) {
+ async initElements(direction) {
document.documentElement.setAttribute("dir", direction);
@@ -220,13 +230,12 @@ class AboutTorConnect {
// hide tooltip after X ms
const TOOLTIP_TIMEOUT = 2000;
- this.copyLogTimeoutId = setTimeout(function() {
+ this.copyLogTimeoutId = setTimeout(() => {
this.elements.copyLogTooltipText.style.visibility = "hidden";
this.copyLogTimeoutId = 0;
}, TOOLTIP_TIMEOUT);
});
- this.elements.quickstartCheckbox.checked = quickstart
this.elements.quickstartCheckbox.addEventListener("change", () => {
const quickstart = this.elements.quickstartCheckbox.checked;
RPMSendAsyncMessage("torconnect:set-quickstart", quickstart);
@@ -269,6 +278,12 @@ class AboutTorConnect {
}
async init() {
+ // see if a user has a final destination after bootstrapping
+ let params = new URLSearchParams(new URL(document.location.href).search);
+ if (params.has("redirect")) {
+ const encodedRedirect = params.get("redirect");
+ this.redirect = decodeURIComponent(encodedRedirect);
+ }
let args = await RPMSendQuery("torconnect:get-init-args");
diff --git a/browser/components/torconnect/content/torBootstrapUrlbar.js b/browser/components/torconnect/content/torBootstrapUrlbar.js
index e4fd6f5ab910..7843b80be8b9 100644
--- a/browser/components/torconnect/content/torBootstrapUrlbar.js
+++ b/browser/components/torconnect/content/torBootstrapUrlbar.js
@@ -28,7 +28,8 @@ var TorBootstrapUrlbar = {
case TorConnectState.Error:
case TorConnectState.FatalError: {
this.elements.torConnectBox.removeAttribute("hidden");
- this.elements.torConnectLabel.textContent = TorStrings.torConnect.offline;
+ this.elements.torConnectLabel.textContent =
+ TorStrings.torConnect.torNotConnectedConcise;
this.elements.inputContainer.setAttribute("torconnect", "offline");
break;
}
@@ -74,6 +75,9 @@ var TorBootstrapUrlbar = {
torConnectLabel: browser.ownerGlobal.document.querySelector(this.selectors.torConnect.label),
inputContainer: gURLBar._inputContainer,
})
+ this.elements.torConnectBox.addEventListener("click", () => {
+ window.openTrustedLinkIn("about:torconnect", "tab");
+ });
Services.obs.addObserver(this, TorConnectTopics.StateChange);
this.observing = true;
this.updateTorConnectBox(TorConnect.state);
diff --git a/browser/components/torconnect/content/torconnect-urlbar.css b/browser/components/torconnect/content/torconnect-urlbar.css
index db2f1069b22b..5aabcffedbd0 100644
--- a/browser/components/torconnect/content/torconnect-urlbar.css
+++ b/browser/components/torconnect/content/torconnect-urlbar.css
@@ -3,41 +3,33 @@
*/
hbox.urlbar-page-action#torconnect-box {
display: -moz-inline-box!important;
- margin: 0 6px;
height: 28px;
}
-/* disable the button-like default css */
-hbox.urlbar-page-action#torconnect-box:hover,
-hbox.urlbar-page-action#torconnect-box:active {
- background-color: inherit!important;
-}
label#torconnect-label {
line-height: 28px;
margin: 0;
opacity: 0.6;
+ padding: 0 0.5em;
}
/* set appropriate sizes for the non-standard ui densities */
-:root[uidensity=compact] {
- hbox.urlbar-page-action#torconnect-box {
- margin: 0 4px;
- height: 24px;
- }
- label#torconnect-label {
- line-height: 24px;
- }
+:root[uidensity=compact] hbox.urlbar-page-action#torconnect-box {
+ height: 24px;
+}
+:root[uidensity=compact] label#torconnect-label {
+ line-height: 24px;
+}
+
+
+:root[uidensity=touch] hbox.urlbar-page-action#torconnect-box {
+ height: 30px;
}
-:root[uidensity=touch] {
- hbox.urlbar-page-action#torconnect-box {
- margin: 0 7px;
- height: 30px;
- }
- label#torconnect-label {
- line-height: 30px;
- }
+:root[uidensity=touch] label#torconnect-label {
+ line-height: 30px;
}
+
/* hide when hidden attribute is set */
hbox.urlbar-page-action#torconnect-box[hidden="true"],
/* hide when user is typing in URL bar */
diff --git a/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml b/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml
index bdf9d8f0df00..60e985a72691 100644
--- a/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml
+++ b/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml
@@ -4,7 +4,6 @@
class="urlbar-icon-wrapper urlbar-page-action"
role="status"
hidden="true">
- <image id="torconnect-button" role="presentation"/>
<hbox id="torconnect-container">
<label id="torconnect-label"/>
</hbox>
diff --git a/browser/components/torpreferences/content/torPreferences.css b/browser/components/torpreferences/content/torPreferences.css
index f125936dac74..47b8ff18e0af 100644
--- a/browser/components/torpreferences/content/torPreferences.css
+++ b/browser/components/torpreferences/content/torPreferences.css
@@ -1,3 +1,5 @@
+@import url("chrome://branding/content/tor-styles.css");
+
#category-tor > .category-icon {
list-style-image: url("chrome://browser/content/torpreferences/torPreferencesIcon.svg");
}
@@ -24,8 +26,8 @@
}
#torPreferences-connectMessageBox.warning {
- background-color: var(--yellow-50);
- color: var(--yellow-90);
+ background-color: var(--purple-50);
+ color: white;
}
#torPreferences-connectMessageBox table {
@@ -61,8 +63,8 @@
#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-icon
{
- mask: url("chrome://global/skin/icons/warning.svg");
- background-color: black;
+ mask: url("chrome://browser/skin/onion.svg");
+ background-color: white;
}
#torPreferences-connectMessageBox-message {
@@ -108,16 +110,16 @@
}
#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button {
- background-color: var(--yellow-60);
+ background-color: var(--purple-70);
}
#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:hover {
- background-color: var(--yellow-70);
+ background-color: var(--purple-80);
color: white!important;
}
#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:active {
- background-color: var(--yellow-80);
+ background-color: var(--purple-90);
color: white!important;
}
diff --git a/browser/modules/TorConnect.jsm b/browser/modules/TorConnect.jsm
index 5d2b826cfa10..ddf658b1462a 100644
--- a/browser/modules/TorConnect.jsm
+++ b/browser/modules/TorConnect.jsm
@@ -159,26 +159,24 @@ const TorConnect = (() => {
_errorMessage: null,
_errorDetails: null,
_logHasWarningOrError: false,
- // init to about:tor as fallback in case setURIsToLoad is somehow never called
- _urisToLoad: ["about:tor"],
/* These functions are called after transitioning to a new state */
_transitionCallbacks: Object.freeze(new Map([
/* Initial is never transitioned to */
[TorConnectState.Initial, null],
/* Configuring */
- [TorConnectState.Configuring, (self) => {
+ [TorConnectState.Configuring, (self, prevState) => {
// TODO move this to the transition function
- if (this._state === TorConnectState.Bootstrapping) {
+ if (prevState === TorConnectState.Bootstrapping) {
TorProtocolService.torStopBootstrap();
}
}],
/* AutoConfiguring */
- [TorConnectState.AutoConfiguring, (self) => {
+ [TorConnectState.AutoConfiguring, (self, prevState) => {
}],
/* Bootstrapping */
- [TorConnectState.Bootstrapping, (self) => {
+ [TorConnectState.Bootstrapping, (self, prevState) => {
let error = TorProtocolService.connect();
if (error) {
self.onError(error.message, error.details);
@@ -187,20 +185,12 @@ const TorConnect = (() => {
}
}],
/* Bootstrapped */
- [TorConnectState.Bootstrapped, (self) => {
- // open home page(s) in new tabs
- const win = BrowserWindowTracker.getTopWindow()
-
- let location="tab";
- for (const uri of self._urisToLoad) {
- win.openTrustedLinkIn(uri, location);
- // open subsequent tabs behind first tab
- location = "tabshifted";
- }
+ [TorConnectState.Bootstrapped, (self,prevState) => {
+ // notify observers of bootstrap completion
Services.obs.notifyObservers(null, TorConnectTopics.BootstrapComplete);
}],
/* Error */
- [TorConnectState.Error, (self, errorMessage, errorDetails, fatal) => {
+ [TorConnectState.Error, (self, prevState, errorMessage, errorDetails, fatal) => {
self._errorMessage = errorMessage;
self._errorDetails = errorDetails;
@@ -212,31 +202,32 @@ const TorConnect = (() => {
}
}],
/* FatalError */
- [TorConnectState.FatalError, (self) => {
+ [TorConnectState.FatalError, (self, prevState) => {
Services.obs.notifyObservers(null, TorConnectTopics.FatalError);
}],
/* Disabled */
- [TorConnectState.Disabled, (self) => {
+ [TorConnectState.Disabled, (self, prevState) => {
}],
])),
_changeState: function(newState, ...args) {
- const oldState = this._state;
+ const prevState = this._state;
// ensure this is a valid state transition
- if (!TorConnectStateTransitions.get(oldState)?.includes(newState)) {
- throw Error(`TorConnect: Attempted invalid state transition from ${oldState} to ${newState}`);
+ if (!TorConnectStateTransitions.get(prevState)?.includes(newState)) {
+ throw Error(`TorConnect: Attempted invalid state transition from ${prevState} to ${newState}`);
}
- console.log(`TorConnect: transitioning state from ${oldState} to ${newState}`);
-
- // call our transition function and forward any args
- this._transitionCallbacks.get(newState)(this, ...args);
+ console.log(`TorConnect: transitioning state from ${prevState} to ${newState}`);
- // finally, set our new state
+ // set our new state first so that state transitions can themselves trigger
+ // a state transition
this._state = newState;
+ // call our transition function and forward any args
+ this._transitionCallbacks.get(newState)(this, prevState, ...args);
+
Services.obs.notifyObservers({state: newState}, TorConnectTopics.StateChange);
},
@@ -456,10 +447,12 @@ const TorConnect = (() => {
},
// called from browser.js on browser startup, passed in either the user's homepage(s)
- // or uris passed via command-line
- setURIsToLoad: function(uriVariant) {
+ // or uris passed via command-line; we want to replace them with about:torconnect uris
+ // which redirect after bootstrapping
+ getURIsToLoad: function(uriVariant) {
// convert the object we get from browser.js
- let uris = ((v) => {
+ let uriStrings = ((v) => {
+ // an interop array
if (v instanceof Ci.nsIArray) {
// Transform the nsIArray of nsISupportsString's into a JS Array of
// JS strings.
@@ -467,17 +460,38 @@ const TorConnect = (() => {
v.enumerate(Ci.nsISupportsString),
supportStr => supportStr.data
);
+ // an interop string
} else if (v instanceof Ci.nsISupportsString) {
return [v.data];
+ // a js string
} else if (typeof v === "string") {
return v.split("|");
+ // a js array of js strings
+ } else if (Array.isArray(v) &&
+ v.reduce((allStrings, entry) => {return allStrings && (typeof entry === "string");}, true)) {
+ return v;
}
// about:tor as safe fallback
+ console.log(`TorConnect: setURIsToLoad() received unknown variant '${JSON.stringify(v)}'`);
return ["about:tor"];
})(uriVariant);
- console.log(`TorConnect: will load after bootstrap => ${uris.join(", ")}`);
- this._urisToLoad = uris;
+ // will attempt to convert user-supplied string to a uri, fallback to about:tor if cannot convert
+ // to valid uri object
+ let uriStringToUri = (uriString) => {
+ let uri = Services.uriFixup.createFixupURI(uriString, 0);
+ return uri ? uri : Services.io.newURI("about:tor");
+ };
+ let uris = uriStrings.map(uriStringToUri);
+
+ // assume we have a valid uri and generate an about:torconnect redirect uri
+ let uriToRedirectUri = (uri) => {
+ return`about:torconnect?redirect=${encodeURIComponent(uri.spec)}`;
+ };
+ let redirectUris = uris.map(uriToRedirectUri);
+
+ console.log(`TorConnect: will load after bootstrap => [${uris.map((uri) => {return uri.spec;}).join(", ")}]`);
+ return redirectUris;
},
};
retval.init();
diff --git a/browser/modules/TorStrings.jsm b/browser/modules/TorStrings.jsm
index 6eeb2ea06a04..d8b9e9d9a399 100644
--- a/browser/modules/TorStrings.jsm
+++ b/browser/modules/TorStrings.jsm
@@ -396,6 +396,11 @@ var TorStrings = {
"Establishing a Connection"
),
+ torNotConnectedConcise: getStringNet(
+ "torConnect.notConnectedConcise",
+ "Not Connected"
+ ),
+
torConnectingConcise: getStringNet(
"torConnect.connectingConcise",
"Connecting…"
diff --git a/browser/themes/shared/identity-block/identity-block.inc.css b/browser/themes/shared/identity-block/identity-block.inc.css
index 936ab00d2080..ce8a2b44e60a 100644
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -61,19 +61,9 @@
-moz-outline-radius: var(--toolbarbutton-border-radius);
}
-%ifdef MOZ_OFFICIAL_BRANDING
#identity-box[pageproxystate="valid"].chromeUI > #identity-icon-label {
- color: #420C5D;
-}
-
-toolbar[brighttext] #identity-box[pageproxystate="valid"].chromeUI > #identity-icon-label {
- color: #CC80FF;
-}
-%endif
-
-#identity-box[pageproxystate="valid"].chromeUI > #identity-icon-label,
-.urlbar-label {
- opacity: .6;
+ color: var(--tor-branding-color);
+ opacity: 1;
}
#identity-icon-label {
@@ -132,6 +122,8 @@ toolbar[brighttext] #identity-box[pageproxystate="valid"].chromeUI > #identity-i
#identity-box[pageproxystate="valid"].chromeUI > #identity-icon {
list-style-image: url(chrome://branding/content/identity-icons-brand.svg);
+ fill: var(--tor-branding-color);
+ fill-opacity: 1;
}
#urlbar:not(.searchButton) > #urlbar-input-container > #identity-box[pageproxystate="invalid"] > #identity-icon {
1
0