tbb-commits
Threads by month
- ----- 2025 -----
- 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
- 1 participants
- 18726 discussions

[tor-browser/tor-browser-89.0-10.5-1] Bug 40025: Remove Mozilla add-on install permissions
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 9418ae31b445c03ec60dfc3b0aae66f9300b60dc
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon Jul 27 18:12:55 2020 +0200
Bug 40025: Remove Mozilla add-on install permissions
---
browser/app/permissions | 5 -----
1 file changed, 5 deletions(-)
diff --git a/browser/app/permissions b/browser/app/permissions
index 4938bd1e22e5..5c4c302f5ba5 100644
--- a/browser/app/permissions
+++ b/browser/app/permissions
@@ -11,11 +11,6 @@
origin uitour 1 https://3g2upl4pq6kufc4m.onion
origin uitour 1 about:tor
-# XPInstall
-origin install 1 https://addons.mozilla.org
-
# Remote troubleshooting
origin remote-troubleshooting 1 https://support.mozilla.org
-# addon install
-origin install 1 https://fpn.firefox.com
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40125: Expose Security Level pref in GeckoView
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit e50dbb3b46625e00fb0506d70639109c2abe34a8
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon Sep 14 02:52:28 2020 +0000
Bug 40125: Expose Security Level pref in GeckoView
---
mobile/android/geckoview/api.txt | 3 ++
.../mozilla/geckoview/GeckoRuntimeSettings.java | 33 ++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt
index 0d8eb309dcf4..36d6dd73a818 100644
--- a/mobile/android/geckoview/api.txt
+++ b/mobile/android/geckoview/api.txt
@@ -685,6 +685,7 @@ package org.mozilla.geckoview {
method @Nullable public GeckoRuntime getRuntime();
method @Nullable public Rect getScreenSizeOverride();
method @Nullable public RuntimeTelemetry.Delegate getTelemetryDelegate();
+ method public int getTorSecurityLevel();
method public boolean getUseMaxScreenDepth();
method public boolean getWebFontsEnabled();
method public boolean getWebManifestEnabled();
@@ -704,6 +705,7 @@ package org.mozilla.geckoview {
method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
+ method @NonNull public GeckoRuntimeSettings setTorSecurityLevel(int);
method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
field public static final int ALLOW_ALL = 0;
@@ -744,6 +746,7 @@ package org.mozilla.geckoview {
method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
method @NonNull public GeckoRuntimeSettings.Builder telemetryDelegate(@NonNull RuntimeTelemetry.Delegate);
+ method @NonNull public GeckoRuntimeSettings.Builder torSecurityLevel(int);
method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
method @NonNull public GeckoRuntimeSettings.Builder webFontsEnabled(boolean);
method @NonNull public GeckoRuntimeSettings.Builder webManifest(boolean);
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
index 7da945684ed6..5b9e823dc42c 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -472,6 +472,17 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
getSettings().setAllowInsecureConnections(level);
return this;
}
+
+ /**
+ * Set security level.
+ *
+ * @param level A value determining the security level. Default is 0.
+ * @return This Builder instance.
+ */
+ public @NonNull Builder torSecurityLevel(final int level) {
+ getSettings().mTorSecurityLevel.set(level);
+ return this;
+ }
}
private GeckoRuntime mRuntime;
@@ -528,6 +539,8 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
"dom.security.https_only_mode_pbm", false);
/* package */ final Pref<Integer> mProcessCount = new Pref<>(
"dom.ipc.processCount", BuildConfig.RELEASE_OR_BETA ? 1 : 2);
+ /* package */ final Pref<Integer> mTorSecurityLevel = new Pref<>(
+ "extensions.torbutton.security_slider", 4);
/* package */ int mPreferredColorScheme = COLOR_SCHEME_SYSTEM;
@@ -1255,6 +1268,26 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
return this;
}
+ /**
+ * Gets the current security level.
+ *
+ * @return current security protection level
+ */
+ public int getTorSecurityLevel() {
+ return mTorSecurityLevel.get();
+ }
+
+ /**
+ * Sets the Tor Security Level.
+ *
+ * @param level security protection level
+ * @return This GeckoRuntimeSettings instance.
+ */
+ public @NonNull GeckoRuntimeSettings setTorSecurityLevel(final int level) {
+ mTorSecurityLevel.commit(level);
+ return this;
+ }
+
@Override // Parcelable
public void writeToParcel(final Parcel out, final int flags) {
super.writeToParcel(out, flags);
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40002: Remove about:ion
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 2920102695541b70a891f8ee391bd6588bd08504
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Aug 14 09:06:33 2020 -0400
Bug 40002: Remove about:ion
Firefox Ion (previously Firefox Pioneer) is an opt-in program in which people
volunteer to participate in studies that collect detailed, sensitive data about
how they use their browser.
---
browser/components/about/AboutRedirector.cpp | 2 --
browser/components/about/components.conf | 1 -
2 files changed, 3 deletions(-)
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index 6e79b6d6e94b..e0ab735612e5 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -126,8 +126,6 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
- {"ion", "chrome://browser/content/ion.html",
- nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
#ifdef TOR_BROWSER_UPDATE
{"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index 17fecfd9a1fb..dd27a8b2c443 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -14,7 +14,6 @@ pages = [
'loginsimportreport',
'newinstall',
'newtab',
- 'ion',
'pocket-home',
'pocket-saved',
'pocket-signup',
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40091: Load HTTPS Everywhere as a builtin addon in desktop
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 2c4a9093bb460dc8a4ba9abe8e16514b76e26669
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Sep 4 12:34:35 2020 +0200
Bug 40091: Load HTTPS Everywhere as a builtin addon in desktop
This loads HTTPS Everywhere as a builtin addon from a hardcoded
resource:// URI in desktop. It also ensures that the non-builtin
HTTPS Everywhere addon is always uninstalled on browser startup.
The reason of making this desktop-only is that there are some issues
when installing a builtin extension from geckoview side, making
the extension not available on first startup. So, at least for
now we handle the Fenix case separately. See #40118 for a followup
for investigating these.
---
browser/components/BrowserGlue.jsm | 37 ++++++++++++++++++++++
toolkit/components/extensions/Extension.jsm | 10 ++++--
.../mozapps/extensions/internal/XPIProvider.jsm | 13 ++++++++
3 files changed, 57 insertions(+), 3 deletions(-)
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index bf14d06f9c1d..cac1f2e0a8c4 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -43,6 +43,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
DownloadsViewableInternally:
"resource:///modules/DownloadsViewableInternally.jsm",
E10SUtils: "resource://gre/modules/E10SUtils.jsm",
+ ExtensionData: "resource://gre/modules/Extension.jsm",
ExtensionsUI: "resource:///modules/ExtensionsUI.jsm",
FeatureGate: "resource://featuregates/FeatureGate.jsm",
FirefoxMonitor: "resource:///modules/FirefoxMonitor.jsm",
@@ -118,6 +119,13 @@ XPCOMUtils.defineLazyServiceGetters(this, {
PushService: ["@mozilla.org/push/Service;1", "nsIPushService"],
});
+XPCOMUtils.defineLazyServiceGetters(this, {
+ resProto: [
+ "@mozilla.org/network/protocol;1?name=resource",
+ "nsISubstitutingProtocolHandler",
+ ],
+});
+
const PREF_PDFJS_ISDEFAULT_CACHE_STATE = "pdfjs.enabledCache.state";
/**
@@ -1388,6 +1396,35 @@ BrowserGlue.prototype = {
"resource://builtin-themes/alpenglow/"
);
+ // Install https-everywhere builtin addon if needed.
+ (async () => {
+ const HTTPS_EVERYWHERE_ID = "https-everywhere-eff(a)eff.org";
+ const HTTPS_EVERYWHERE_BUILTIN_URL =
+ "resource://torbutton/content/extensions/https-everywhere/";
+ // This does something similar as GeckoViewWebExtension.jsm: it tries
+ // to load the manifest to retrieve the version of the builtin and
+ // compares it to the currently installed one to see whether we need
+ // to install or not. Here we delegate that to
+ // AddonManager.maybeInstallBuiltinAddon.
+ try {
+ const resolvedURI = Services.io.newURI(
+ resProto.resolveURI(Services.io.newURI(HTTPS_EVERYWHERE_BUILTIN_URL))
+ );
+ const extensionData = new ExtensionData(resolvedURI);
+ const manifest = await extensionData.loadManifest();
+
+ await AddonManager.maybeInstallBuiltinAddon(
+ HTTPS_EVERYWHERE_ID,
+ manifest.version,
+ HTTPS_EVERYWHERE_BUILTIN_URL
+ );
+ } catch (e) {
+ const log = Log.repository.getLogger("HttpsEverywhereBuiltinLoader");
+ log.addAppender(new Log.ConsoleAppender(new Log.BasicFormatter()));
+ log.error("Could not install https-everywhere extension", e);
+ }
+ })();
+
if (AppConstants.MOZ_NORMANDY) {
Normandy.init();
}
diff --git a/toolkit/components/extensions/Extension.jsm b/toolkit/components/extensions/Extension.jsm
index ae2bf4ce646f..fb390131c172 100644
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -212,6 +212,7 @@ const LOGGER_ID_BASE = "addons.webextension.";
const UUID_MAP_PREF = "extensions.webextensions.uuids";
const LEAVE_STORAGE_PREF = "extensions.webextensions.keepStorageOnUninstall";
const LEAVE_UUID_PREF = "extensions.webextensions.keepUuidOnUninstall";
+const PERSISTENT_EXTENSIONS = new Set(["https-everywhere-eff(a)eff.org"]);
const COMMENT_REGEXP = new RegExp(
String.raw`
@@ -358,7 +359,8 @@ var ExtensionAddonObserver = {
);
}
- if (!Services.prefs.getBoolPref(LEAVE_STORAGE_PREF, false)) {
+ if (!Services.prefs.getBoolPref(LEAVE_STORAGE_PREF, false) &&
+ !PERSISTENT_EXTENSIONS.has(addon.id)) {
// Clear browser.storage.local backends.
AsyncShutdown.profileChangeTeardown.addBlocker(
`Clear Extension Storage ${addon.id} (File Backend)`,
@@ -406,7 +408,8 @@ var ExtensionAddonObserver = {
ExtensionPermissions.removeAll(addon.id);
- if (!Services.prefs.getBoolPref(LEAVE_UUID_PREF, false)) {
+ if (!Services.prefs.getBoolPref(LEAVE_UUID_PREF, false) &&
+ !PERSISTENT_EXTENSIONS.has(addon.id)) {
// Clear the entry in the UUID map
UUIDMap.remove(addon.id);
}
@@ -2594,7 +2597,8 @@ class Extension extends ExtensionData {
);
} else if (
this.startupReason === "ADDON_INSTALL" &&
- !Services.prefs.getBoolPref(LEAVE_STORAGE_PREF, false)
+ !Services.prefs.getBoolPref(LEAVE_STORAGE_PREF, false) &&
+ !PERSISTENT_EXTENSIONS.has(this.id)
) {
// If the extension has been just installed, set it as migrated,
// because there will not be any data to migrate.
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index ddf6f0049054..d4858412e486 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -1501,6 +1501,19 @@ var XPIStates = {
continue;
}
+ // Uninstall HTTPS Everywhere if it is installed in the user profile.
+ if (
+ id === "https-everywhere-eff(a)eff.org" &&
+ loc.name === KEY_APP_PROFILE
+ ) {
+ logger.debug(
+ "Uninstalling the HTTPS Everywhere extension from user profile."
+ );
+ loc.installer.uninstallAddon(id);
+ changed = true;
+ continue;
+ }
+
let xpiState = loc.get(id);
if (!xpiState) {
// If the location is not supported for sideloading, skip new
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40073: Disable remote Public Suffix List fetching
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 14f1284cdcdf8095944516a2f17d53cb9ee2b50d
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu Aug 13 11:05:03 2020 +0200
Bug 40073: Disable remote Public Suffix List fetching
In https://bugzilla.mozilla.org/show_bug.cgi?id=1563246 Firefox implemented
fetching the Public Suffix List via RemoteSettings and replacing the default
one at runtime, which we do not want.
---
browser/components/BrowserGlue.jsm | 5 -----
1 file changed, 5 deletions(-)
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 83ee86fc79cf..bf14d06f9c1d 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -68,7 +68,6 @@ XPCOMUtils.defineLazyModuleGetters(this, {
PluralForm: "resource://gre/modules/PluralForm.jsm",
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm",
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm",
- PublicSuffixList: "resource://gre/modules/netwerk-dns/PublicSuffixList.jsm",
RemoteSettings: "resource://services-settings/remote-settings.js",
RemoteSecuritySettings:
"resource://gre/modules/psm/RemoteSecuritySettings.jsm",
@@ -2647,10 +2646,6 @@ BrowserGlue.prototype = {
this._addBreachesSyncHandler();
},
- () => {
- PublicSuffixList.init();
- },
-
() => {
RemoteSecuritySettings.init();
},
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40199: Avoid using system locale for intl.accept_languages in GeckoView
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit f9750e26a516fff1ec0358979cb5a53953ef839f
Author: Alex Catarineu <acat(a)torproject.org>
Date: Tue Oct 20 17:44:36 2020 +0200
Bug 40199: Avoid using system locale for intl.accept_languages in GeckoView
---
.../mozilla/geckoview/GeckoRuntimeSettings.java | 28 +++++++++++++---------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
index 5b9e823dc42c..2e3275f4da36 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -796,19 +796,25 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
private String computeAcceptLanguages() {
final ArrayList<String> locales = new ArrayList<String>();
- // Explicitly-set app prefs come first:
- if (mRequestedLocales != null) {
- for (final String locale : mRequestedLocales) {
- locales.add(locale.toLowerCase(Locale.ROOT));
- }
- }
- // OS prefs come second:
- for (final String locale : getDefaultLocales()) {
- final String localeLowerCase = locale.toLowerCase(Locale.ROOT);
- if (!locales.contains(localeLowerCase)) {
- locales.add(localeLowerCase);
+ // In Desktop, these are defined in the `intl.accept_languages` localized property.
+ // At some point we should probably use the same values here, but for now we use a simple
+ // strategy which will hopefully result in reasonable acceptLanguage values.
+ if (mRequestedLocales != null && mRequestedLocales.length > 0) {
+ String locale = mRequestedLocales[0].toLowerCase(Locale.ROOT);
+ // No need to include `en-us` twice.
+ if (!locale.equals("en-us")) {
+ locales.add(locale);
+ if (locale.contains("-")) {
+ String lang = locale.split("-")[0];
+ // No need to include `en` twice.
+ if (!lang.equals("en")) {
+ locales.add(lang);
+ }
+ }
}
}
+ locales.add("en-us");
+ locales.add("en");
return TextUtils.join(",", locales);
}
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40166: Disable security.certerrors.mitm.auto_enable_enterprise_roots
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit ec292aca98920e9f347a8a6084d6cef1dd939fe6
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Oct 9 12:55:35 2020 +0200
Bug 40166: Disable security.certerrors.mitm.auto_enable_enterprise_roots
---
browser/app/profile/000-tor-browser.js | 3 +++
browser/components/BrowserGlue.jsm | 14 ++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 0200e68b5ce1..ea1aaa704e8b 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -319,6 +319,9 @@ pref("security.enterprise_roots.enabled", false);
// Don't ping Mozilla for MitM detection, see bug 32321
pref("security.certerrors.mitm.priming.enabled", false);
+// Don't automatically enable enterprise roots, see bug 40166
+pref("security.certerrors.mitm.auto_enable_enterprise_roots", false);
+
// Disable the language pack signing check for now on macOS, see #31942
#ifdef XP_MACOSX
pref("extensions.langpacks.signatures.required", false);
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index cac1f2e0a8c4..86018ddfc67e 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -1371,6 +1371,20 @@ BrowserGlue.prototype = {
// handle any UI migration
this._migrateUI();
+ // Clear possibly auto enabled enterprise_roots prefs (see bug 40166)
+ if (
+ !Services.prefs.getBoolPref(
+ "security.certerrors.mitm.auto_enable_enterprise_roots"
+ ) &&
+ Services.prefs.getBoolPref(
+ "security.enterprise_roots.auto-enabled",
+ false
+ )
+ ) {
+ Services.prefs.clearUserPref("security.enterprise_roots.enabled");
+ Services.prefs.clearUserPref("security.enterprise_roots.auto-enabled");
+ }
+
if (!Services.prefs.prefHasUserValue(PREF_PDFJS_ISDEFAULT_CACHE_STATE)) {
PdfJs.checkIsDefault(this._isNewProfile);
}
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 30605: Honor privacy.spoof_english in Android
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 4c7bbdc496b2cb939640e811a2f38e6ad1c0ae55
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Oct 16 10:45:17 2020 +0200
Bug 30605: Honor privacy.spoof_english in Android
This checks `privacy.spoof_english` whenever `setLocales` is
called from Fenix side and sets `intl.accept_languages`
accordingly.
---
mobile/android/components/geckoview/GeckoViewStartup.jsm | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mobile/android/components/geckoview/GeckoViewStartup.jsm b/mobile/android/components/geckoview/GeckoViewStartup.jsm
index 3603c3743fa1..b73a5f4f0978 100644
--- a/mobile/android/components/geckoview/GeckoViewStartup.jsm
+++ b/mobile/android/components/geckoview/GeckoViewStartup.jsm
@@ -17,6 +17,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
EventDispatcher: "resource://gre/modules/Messaging.jsm",
Preferences: "resource://gre/modules/Preferences.jsm",
Services: "resource://gre/modules/Services.jsm",
+ RFPHelper: "resource://gre/modules/RFPHelper.jsm",
});
const { debug, warn } = GeckoViewUtils.initLogging("Startup");
@@ -252,6 +253,10 @@ class GeckoViewStartup {
if (aData.requestedLocales) {
Services.locale.requestedLocales = aData.requestedLocales;
}
+ RFPHelper._handleSpoofEnglishChanged();
+ if (Services.prefs.getIntPref("privacy.spoof_english", 0) === 2) {
+ break;
+ }
const pls = Cc["@mozilla.org/pref-localizedstring;1"].createInstance(
Ci.nsIPrefLocalizedString
);
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40198: Expose privacy.spoof_english pref in GeckoView
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit b820bd342a00e9e215e4bda0fb48971778f4a6f6
Author: Alex Catarineu <acat(a)torproject.org>
Date: Sun Oct 18 17:06:04 2020 +0200
Bug 40198: Expose privacy.spoof_english pref in GeckoView
---
mobile/android/geckoview/api.txt | 3 ++
.../mozilla/geckoview/GeckoRuntimeSettings.java | 33 ++++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/mobile/android/geckoview/api.txt b/mobile/android/geckoview/api.txt
index 36d6dd73a818..199428e13563 100644
--- a/mobile/android/geckoview/api.txt
+++ b/mobile/android/geckoview/api.txt
@@ -684,6 +684,7 @@ package org.mozilla.geckoview {
method public boolean getRemoteDebuggingEnabled();
method @Nullable public GeckoRuntime getRuntime();
method @Nullable public Rect getScreenSizeOverride();
+ method public boolean getSpoofEnglish();
method @Nullable public RuntimeTelemetry.Delegate getTelemetryDelegate();
method public int getTorSecurityLevel();
method public boolean getUseMaxScreenDepth();
@@ -705,6 +706,7 @@ package org.mozilla.geckoview {
method @NonNull public GeckoRuntimeSettings setLoginAutofillEnabled(boolean);
method @NonNull public GeckoRuntimeSettings setPreferredColorScheme(int);
method @NonNull public GeckoRuntimeSettings setRemoteDebuggingEnabled(boolean);
+ method @NonNull public GeckoRuntimeSettings setSpoofEnglish(boolean);
method @NonNull public GeckoRuntimeSettings setTorSecurityLevel(int);
method @NonNull public GeckoRuntimeSettings setWebFontsEnabled(boolean);
method @NonNull public GeckoRuntimeSettings setWebManifestEnabled(boolean);
@@ -745,6 +747,7 @@ package org.mozilla.geckoview {
method @NonNull public GeckoRuntimeSettings.Builder preferredColorScheme(int);
method @NonNull public GeckoRuntimeSettings.Builder remoteDebuggingEnabled(boolean);
method @NonNull public GeckoRuntimeSettings.Builder screenSizeOverride(int, int);
+ method @NonNull public GeckoRuntimeSettings.Builder spoofEnglish(boolean);
method @NonNull public GeckoRuntimeSettings.Builder telemetryDelegate(@NonNull RuntimeTelemetry.Delegate);
method @NonNull public GeckoRuntimeSettings.Builder torSecurityLevel(int);
method @NonNull public GeckoRuntimeSettings.Builder useMaxScreenDepth(boolean);
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
index 2e3275f4da36..1f94c3b14fd0 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -483,6 +483,17 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
getSettings().mTorSecurityLevel.set(level);
return this;
}
+
+ /**
+ * Sets whether we should spoof locale to English for webpages.
+ *
+ * @param flag True if we should spoof locale to English for webpages, false otherwise.
+ * @return This Builder instance.
+ */
+ public @NonNull Builder spoofEnglish(final boolean flag) {
+ getSettings().mSpoofEnglish.set(flag ? 2 : 1);
+ return this;
+ }
}
private GeckoRuntime mRuntime;
@@ -541,6 +552,8 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
"dom.ipc.processCount", BuildConfig.RELEASE_OR_BETA ? 1 : 2);
/* package */ final Pref<Integer> mTorSecurityLevel = new Pref<>(
"extensions.torbutton.security_slider", 4);
+ /* package */ final Pref<Integer> mSpoofEnglish = new Pref<>(
+ "privacy.spoof_english", 0);
/* package */ int mPreferredColorScheme = COLOR_SCHEME_SYSTEM;
@@ -1294,6 +1307,26 @@ public final class GeckoRuntimeSettings extends RuntimeSettings {
return this;
}
+ /**
+ * Get whether we should spoof locale to English for webpages.
+ *
+ * @return Whether we should spoof locale to English for webpages.
+ */
+ public boolean getSpoofEnglish() {
+ return mSpoofEnglish.get() == 2;
+ }
+
+ /**
+ * Set whether we should spoof locale to English for webpages.
+ *
+ * @param flag A flag determining whether we should locale to English for webpages.
+ * @return This GeckoRuntimeSettings instance.
+ */
+ public @NonNull GeckoRuntimeSettings setSpoofEnglish(final boolean flag) {
+ mSpoofEnglish.commit(flag ? 2 : 1);
+ return this;
+ }
+
@Override // Parcelable
public void writeToParcel(final Parcel out, final int flags) {
super.writeToParcel(out, flags);
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40171: Make WebRequest and GeckoWebExecutor First-Party aware
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit eb9755a33175f191034ce11bc2162574a2080984
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Nov 4 15:58:22 2020 +0100
Bug 40171: Make WebRequest and GeckoWebExecutor First-Party aware
---
.../main/java/org/mozilla/geckoview/WebRequest.java | 18 ++++++++++++++++++
widget/android/WebExecutorSupport.cpp | 10 ++++++++++
2 files changed, 28 insertions(+)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebRequest.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebRequest.java
index d1d6e06b7396..4e17bc034edb 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebRequest.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebRequest.java
@@ -51,6 +51,11 @@ public class WebRequest extends WebMessage {
*/
public final @Nullable String referrer;
+ /**
+ * The value of the origin of this request.
+ */
+ public final @Nullable String origin;
+
@Retention(RetentionPolicy.SOURCE)
@IntDef({CACHE_MODE_DEFAULT, CACHE_MODE_NO_STORE,
CACHE_MODE_RELOAD, CACHE_MODE_NO_CACHE,
@@ -112,6 +117,7 @@ public class WebRequest extends WebMessage {
method = builder.mMethod;
cacheMode = builder.mCacheMode;
referrer = builder.mReferrer;
+ origin = builder.mOrigin;
if (builder.mBody != null) {
body = builder.mBody.asReadOnlyBuffer();
@@ -128,6 +134,7 @@ public class WebRequest extends WebMessage {
/* package */ String mMethod = "GET";
/* package */ int mCacheMode = CACHE_MODE_DEFAULT;
/* package */ String mReferrer;
+ /* package */ String mOrigin;
/**
* Construct a Builder instance with the specified URI.
@@ -226,6 +233,17 @@ public class WebRequest extends WebMessage {
return this;
}
+ /**
+ * Set the origin URI.
+ *
+ * @param origin A URI String
+ * @return This Builder instance.
+ */
+ public @NonNull Builder origin(final @Nullable String origin) {
+ mOrigin = origin;
+ return this;
+ }
+
/**
* @return A {@link WebRequest} constructed with the values from this Builder instance.
*/
diff --git a/widget/android/WebExecutorSupport.cpp b/widget/android/WebExecutorSupport.cpp
index 99e7de95a0fb..bbdcc8f36bd6 100644
--- a/widget/android/WebExecutorSupport.cpp
+++ b/widget/android/WebExecutorSupport.cpp
@@ -393,6 +393,16 @@ nsresult WebExecutorSupport::CreateStreamLoader(
MOZ_ASSERT(cookieJarSettings);
nsCOMPtr<nsILoadInfo> loadInfo = channel->LoadInfo();
+
+ RefPtr<nsIURI> originUri;
+ const auto origin = req->Origin();
+ if (origin) {
+ rv = NS_NewURI(getter_AddRefs(originUri), origin->ToString());
+ NS_ENSURE_SUCCESS(rv, NS_ERROR_MALFORMED_URI);
+ OriginAttributes attrs = loadInfo->GetOriginAttributes();
+ attrs.SetFirstPartyDomain(true, originUri);
+ loadInfo->SetOriginAttributes(attrs);
+ }
loadInfo->SetCookieJarSettings(cookieJarSettings);
// setup http/https specific things
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40309: Avoid using regional OS locales
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 291df87248587c60520f123ee821ebe7aa6e7178
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Jan 27 11:28:05 2021 +0100
Bug 40309: Avoid using regional OS locales
Only use regional OS locales if the pref
`intl.regional_prefs.use_os_locales` is set to true.
---
intl/locale/LocaleService.cpp | 25 -------------------------
1 file changed, 25 deletions(-)
diff --git a/intl/locale/LocaleService.cpp b/intl/locale/LocaleService.cpp
index 022d41cab2e2..ac001ee98991 100644
--- a/intl/locale/LocaleService.cpp
+++ b/intl/locale/LocaleService.cpp
@@ -452,31 +452,6 @@ LocaleService::GetRegionalPrefsLocales(nsTArray<nsCString>& aRetVal) {
OSPreferences::GetInstance()->GetRegionalPrefsLocales(aRetVal))) {
return NS_OK;
}
-
- // If we fail to retrieve them, return the app locales.
- GetAppLocalesAsBCP47(aRetVal);
- return NS_OK;
- }
-
- // Otherwise, fetch OS Regional Preferences locales and compare the first one
- // to the app locale. If the language subtag matches, we can safely use
- // the OS Regional Preferences locale.
- //
- // This facilitates scenarios such as Firefox in "en-US" and User sets
- // regional prefs to "en-GB".
- nsAutoCString appLocale;
- AutoTArray<nsCString, 10> regionalPrefsLocales;
- LocaleService::GetInstance()->GetAppLocaleAsBCP47(appLocale);
-
- if (NS_FAILED(OSPreferences::GetInstance()->GetRegionalPrefsLocales(
- regionalPrefsLocales))) {
- GetAppLocalesAsBCP47(aRetVal);
- return NS_OK;
- }
-
- if (LocaleService::LanguagesMatch(appLocale, regionalPrefsLocales[0])) {
- aRetVal = regionalPrefsLocales.Clone();
- return NS_OK;
}
// Otherwise use the app locales.
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40432: Prevent probing installed applications
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 7a87069d5b98fdfbf131e2c34f10ed45b2583ea8
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 18:09:09 2021 +0000
Bug 40432: Prevent probing installed applications
---
.../exthandler/nsExternalHelperAppService.cpp | 30 ++++++++++++++++++----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index e46df70429c2..d5851413011a 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -1049,8 +1049,33 @@ nsresult nsExternalHelperAppService::GetFileTokenForPath(
//////////////////////////////////////////////////////////////////////////////////////////////////////
// begin external protocol service default implementation...
//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+static const char kExternalProtocolPrefPrefix[] =
+ "network.protocol-handler.external.";
+static const char kExternalProtocolDefaultPref[] =
+ "network.protocol-handler.external-default";
+
NS_IMETHODIMP nsExternalHelperAppService::ExternalProtocolHandlerExists(
const char* aProtocolScheme, bool* aHandlerExists) {
+
+ // Replicate the same check performed in LoadURI.
+ // Deny load if the prefs say to do so
+ nsAutoCString externalPref(kExternalProtocolPrefPrefix);
+ externalPref += aProtocolScheme;
+ bool allowLoad = false;
+ *aHandlerExists = false;
+ if (NS_FAILED(Preferences::GetBool(externalPref.get(), &allowLoad))) {
+ // no scheme-specific value, check the default
+ if (NS_FAILED(
+ Preferences::GetBool(kExternalProtocolDefaultPref, &allowLoad))) {
+ return NS_OK; // missing default pref
+ }
+ }
+
+ if (!allowLoad) {
+ return NS_OK; // explicitly denied
+ }
+
nsCOMPtr<nsIHandlerInfo> handlerInfo;
nsresult rv = GetProtocolHandlerInfo(nsDependentCString(aProtocolScheme),
getter_AddRefs(handlerInfo));
@@ -1093,11 +1118,6 @@ NS_IMETHODIMP nsExternalHelperAppService::IsExposedProtocol(
return NS_OK;
}
-static const char kExternalProtocolPrefPrefix[] =
- "network.protocol-handler.external.";
-static const char kExternalProtocolDefaultPref[] =
- "network.protocol-handler.external-default";
-
NS_IMETHODIMP
nsExternalHelperAppService::LoadURI(nsIURI* aURI,
nsIPrincipal* aTriggeringPrincipal,
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 40069: Add helpers for message passing with extensions
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 32e8286c502896f365f16fddc318d4436ad71c6c
Author: Alex Catarineu <acat(a)torproject.org>
Date: Sun Aug 2 19:12:25 2020 +0200
Bug 40069: Add helpers for message passing with extensions
---
toolkit/components/extensions/ExtensionParent.jsm | 47 +++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/toolkit/components/extensions/ExtensionParent.jsm b/toolkit/components/extensions/ExtensionParent.jsm
index 97d1609aa3d8..17b95898d995 100644
--- a/toolkit/components/extensions/ExtensionParent.jsm
+++ b/toolkit/components/extensions/ExtensionParent.jsm
@@ -263,6 +263,8 @@ const ProxyMessenger = {
/** @type Map<number, ParentPort> */
ports: new Map(),
+ _torRuntimeMessageListeners: [],
+
init() {
this.conduit = new BroadcastConduit(ProxyMessenger, {
id: "ProxyMessenger",
@@ -328,6 +330,10 @@ const ProxyMessenger = {
},
async recvRuntimeMessage(arg, { sender }) {
+ // We need to listen to some extension messages in Tor Browser
+ for (const listener of this._torRuntimeMessageListeners) {
+ listener(arg);
+ }
arg.firstResponse = true;
let kind = await this.normalizeArgs(arg, sender);
let result = await this.conduit.castRuntimeMessage(kind, arg);
@@ -1873,6 +1879,45 @@ for (let name of StartupCache.STORE_NAMES) {
StartupCache[name] = new CacheStore(name);
}
+async function torSendExtensionMessage(extensionId, message) {
+ // This should broadcast the message to all children "conduits"
+ // listening for a "RuntimeMessage". Those children conduits
+ // will either be extension background pages or other extension
+ // pages listening to browser.runtime.onMessage.
+ const result = await ProxyMessenger.conduit.castRuntimeMessage("messenger", {
+ extensionId,
+ holder: new StructuredCloneHolder(message),
+ firstResponse: true,
+ sender: {
+ id: extensionId,
+ envType: "addon_child",
+ },
+ });
+ return result
+ ? result.value
+ : Promise.reject({ message: ERROR_NO_RECEIVERS });
+}
+
+async function torWaitForExtensionMessage(extensionId, checker) {
+ return new Promise(resolve => {
+ const msgListener = msg => {
+ try {
+ if (msg && msg.extensionId === extensionId) {
+ const deserialized = msg.holder.deserialize({});
+ if (checker(deserialized)) {
+ const idx = ProxyMessenger._torRuntimeMessageListeners.indexOf(
+ msgListener
+ );
+ ProxyMessenger._torRuntimeMessageListeners.splice(idx, 1);
+ resolve(deserialized);
+ }
+ }
+ } catch (e) {}
+ };
+ ProxyMessenger._torRuntimeMessageListeners.push(msgListener);
+ });
+}
+
var ExtensionParent = {
GlobalManager,
HiddenExtensionPage,
@@ -1884,6 +1929,8 @@ var ExtensionParent = {
promiseExtensionViewLoaded,
watchExtensionProxyContextLoad,
DebugUtils,
+ torSendExtensionMessage,
+ torWaitForExtensionMessage,
};
// browserPaintedPromise and browserStartupPromise are promises that
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 12620: TorBrowser regression tests
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 3b83e58bcddcd44ad960e2eaa95b045c4419bb5d
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Aug 27 16:25:00 2014 -0700
Bug 12620: TorBrowser regression tests
Regression tests for Bug #2950: Make Permissions Manager memory-only
Regression tests for TB4: Tor Browser's Firefox preference overrides.
Note: many more functional tests could be made here
Regression tests for #2874: Block Components.interfaces from content
Bug 18923: Add a script to run all Tor Browser specific tests
Regression tests for Bug #16441: Suppress "Reset Tor Browser" prompt.
---
run-tbb-tests | 66 +++++++++++++++++++++++++++++++++++
tbb-tests-ignore.txt | 13 +++++++
tbb-tests/browser.ini | 5 +++
tbb-tests/browser_tor_TB4.js | 35 +++++++++++++++++++
tbb-tests/browser_tor_bug2950.js | 74 ++++++++++++++++++++++++++++++++++++++++
tbb-tests/mochitest.ini | 3 ++
tbb-tests/moz.build | 9 +++++
tbb-tests/test_tor_bug2874.html | 25 ++++++++++++++
toolkit/toolkit.mozbuild | 3 +-
9 files changed, 232 insertions(+), 1 deletion(-)
diff --git a/run-tbb-tests b/run-tbb-tests
new file mode 100755
index 000000000000..bc09839f9f05
--- /dev/null
+++ b/run-tbb-tests
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+# This script runs all the Mochitest tests that have been added or
+# modified since the last ffxbld commit.
+#
+# It does not currently run XPCShell tests. We should change this if we
+# start using this type or other types of tests.
+#
+# The logs of the tests are stored in the tbb-tests.log file.
+# Ignored tests are listed in the tbb-tests-ignore.txt file.
+#
+# https://trac.torproject.org/projects/tor/ticket/18923
+
+IFS=$'\n'
+
+if [ -n "$USE_TESTS_LIST" ] && [ -f tbb-tests-list.txt ]
+then
+ echo "Using tests list from file tbb-tests-list.txt"
+ tests=($(cat tbb-tests-list.txt))
+else
+ ffxbld_commit=$(git log -500 --format='oneline' | grep "TB3: Tor Browser's official .mozconfigs." \
+ | head -1 | cut -d ' ' -f 1)
+
+ tests=($(git diff --name-status "$ffxbld_commit" HEAD | \
+ grep -e '^[AM].*/test_[^/]\+\.\(html\|xul\)$' \
+ -e '^[AM].*/browser_[^/]\+\.js$' \
+ | sed 's/^[AM]\s\+//'))
+fi
+
+echo 'The following tests will be run:'
+for i in "${!tests[@]}"
+do
+ if [ -z "$USE_TESTS_LIST" ] \
+ && grep -q "^${tests[$i]}$" tbb-tests-ignore.txt
+ then
+ unset "tests[$i]"
+ continue
+ fi
+ echo "- ${tests[$i]}"
+done
+
+if [ -n "$WRITE_TESTS_LIST" ]
+then
+ rm -f tbb-tests-list.txt
+ for i in "${!tests[@]}"
+ do
+ echo "${tests[$i]}" >> tbb-tests-list.txt
+ done
+ exit 0
+fi
+
+rm -f tbb-tests.log
+echo $'\n''Starting tests'
+# We need `security.nocertdb = false` because of #18087. That pref is
+# forced to have the same value as `browser.privatebrowsing.autostart` in
+# torbutton, so we just set `browser.privatebrowsing.autostart=false` here.
+./mach mochitest --log-tbpl tbb-tests.log \
+ --setpref network.file.path_blacklist='' \
+ --setpref extensions.torbutton.use_nontor_proxy=true \
+ --setpref browser.privatebrowsing.autostart=false \
+ "${tests[@]}"
+
+echo "*************************"
+echo "*************************"
+echo "Summary of failed tests:"
+grep --color=never TEST-UNEXPECTED-FAIL tbb-tests.log
diff --git a/tbb-tests-ignore.txt b/tbb-tests-ignore.txt
new file mode 100644
index 000000000000..ee3927a9e7c4
--- /dev/null
+++ b/tbb-tests-ignore.txt
@@ -0,0 +1,13 @@
+browser/extensions/onboarding/test/browser/browser_onboarding_accessibility.js
+browser/extensions/onboarding/test/browser/browser_onboarding_keyboard.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_2.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_3.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_4.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_5.js
+browser/extensions/onboarding/test/browser/browser_onboarding_notification_click_auto_complete_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_select_default_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_skip_tour.js
+browser/extensions/onboarding/test/browser/browser_onboarding_tours.js
+browser/extensions/onboarding/test/browser/browser_onboarding_tourset.js
+browser/extensions/onboarding/test/browser/browser_onboarding_uitour.js
diff --git a/tbb-tests/browser.ini b/tbb-tests/browser.ini
new file mode 100644
index 000000000000..f481660f1417
--- /dev/null
+++ b/tbb-tests/browser.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+
+[browser_tor_bug2950.js]
+[browser_tor_omnibox.js]
+[browser_tor_TB4.js]
diff --git a/tbb-tests/browser_tor_TB4.js b/tbb-tests/browser_tor_TB4.js
new file mode 100644
index 000000000000..8bb12f360e5e
--- /dev/null
+++ b/tbb-tests/browser_tor_TB4.js
@@ -0,0 +1,35 @@
+// # Test for TB4: Tor Browser's Firefox preference overrides
+// This is a minimal test to check whether the 000-tor-browser.js
+// pref overrides are being used at all or not. More comprehensive
+// pref tests are maintained in the tor-browser-bundle-testsuite project.
+
+function test() {
+
+let expectedPrefs = [
+ // Homepage
+ ["browser.startup.homepage", "about:tor"],
+
+ // Disable the "Refresh" prompt that is displayed for stale profiles.
+ ["browser.disableResetPrompt", true],
+
+ // Version placeholder
+ ["torbrowser.version", "dev-build"],
+ ];
+
+let getPref = function (prefName) {
+ let type = Services.prefs.getPrefType(prefName);
+ if (type === Services.prefs.PREF_INT) return Services.prefs.getIntPref(prefName);
+ if (type === Services.prefs.PREF_BOOL) return Services.prefs.getBoolPref(prefName);
+ if (type === Services.prefs.PREF_STRING) return Services.prefs.getCharPref(prefName);
+ // Something went wrong.
+ throw new Error("Can't access pref " + prefName);
+};
+
+let testPref = function([key, expectedValue]) {
+ let foundValue = getPref(key);
+ is(foundValue, expectedValue, "Pref '" + key + "' should be '" + expectedValue +"'.");
+};
+
+expectedPrefs.map(testPref);
+
+} // end function test()
diff --git a/tbb-tests/browser_tor_bug2950.js b/tbb-tests/browser_tor_bug2950.js
new file mode 100644
index 000000000000..16e41344a3c4
--- /dev/null
+++ b/tbb-tests/browser_tor_bug2950.js
@@ -0,0 +1,74 @@
+// # Regression tests for tor Bug #2950, Make Permissions Manager memory-only
+// Ensures that permissions.sqlite file in profile directory is not written to,
+// even when we write a value to Firefox's permissions database.
+
+// The requisite test() function.
+function test() {
+
+// Needed because of asynchronous part later in the test.
+waitForExplicitFinish();
+
+// Shortcut
+let Ci = Components.interfaces;
+
+// ## utility functions
+
+// __principal(spec)__.
+// Creates a principal instance from a spec
+// (string address such as "https://www.torproject.org").
+let principal = spec => Services.scriptSecurityManager.createContentPrincipalFromOrigin(spec);
+
+// __setPermission(spec, key, value)__.
+// Sets the site permission of type key to value, for the site located at address spec.
+let setPermission = (spec, key, value) => SitePermissions.setForPrincipal(principal(spec), key, value);
+
+// __getPermission(spec, key)__.
+// Reads the site permission value for permission type key, for the site
+// located at address spec.
+let getPermission = (spec, key) => SitePermissions.getForPrincipal(principal(spec), key);
+
+// __profileDirPath__.
+// The Firefox Profile directory. Expected location of various persistent files.
+let profileDirPath = Services.dirsvc.get("ProfD", Components.interfaces.nsIFile).path;
+
+// __fileInProfile(fileName)__.
+// Returns an nsIFile instance corresponding to a file in the Profile directory.
+let fileInProfile = fileName => FileUtils.File(profileDirPath + "/" + fileName);
+
+// ## Now let's run the test.
+
+let SITE = "https://www.torproject.org",
+ KEY = "popup";
+
+let permissionsFile = fileInProfile("permissions.sqlite"),
+ lastModifiedTime = null,
+ newModifiedTime = null;
+if (permissionsFile.exists()) {
+ lastModifiedTime = permissionsFile.lastModifiedTime;
+}
+// Read the original value of the permission.
+let originalValue = getPermission(SITE, KEY);
+
+// We need to delay by at least 1000 ms, because that's the granularity
+// of file time stamps, it seems.
+window.setTimeout(
+ function () {
+ // Set the permission to a new value.
+ setPermission(SITE, KEY, SitePermissions.BLOCK);
+ // Now read back the permission value again.
+ let newReadValue = getPermission(SITE, KEY);
+ // Compare to confirm that the permission
+ // value was successfully changed.
+ Assert.notDeepEqual(originalValue, newReadValue, "Set a value in permissions db (perhaps in memory).");
+ // If file existed or now exists, get the current time stamp.
+ if (permissionsFile.exists()) {
+ newModifiedTime = permissionsFile.lastModifiedTime;
+ }
+ // If file was created or modified since we began this test,
+ // then permissions db is not memory only. Complain!
+ is(lastModifiedTime, newModifiedTime, "Don't write to permissions.sqlite file on disk.");
+ // We are done with the test.
+ finish();
+ }, 1100);
+
+} // test()
diff --git a/tbb-tests/mochitest.ini b/tbb-tests/mochitest.ini
new file mode 100644
index 000000000000..cc5172733bbe
--- /dev/null
+++ b/tbb-tests/mochitest.ini
@@ -0,0 +1,3 @@
+[DEFAULT]
+
+[test_tor_bug2874.html]
diff --git a/tbb-tests/moz.build b/tbb-tests/moz.build
new file mode 100644
index 000000000000..01db60b9c28a
--- /dev/null
+++ b/tbb-tests/moz.build
@@ -0,0 +1,9 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MOCHITEST_MANIFESTS += ["mochitest.ini"]
+
+BROWSER_CHROME_MANIFESTS += ["browser.ini"]
diff --git a/tbb-tests/test_tor_bug2874.html b/tbb-tests/test_tor_bug2874.html
new file mode 100644
index 000000000000..c0a956e9f687
--- /dev/null
+++ b/tbb-tests/test_tor_bug2874.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Tor bug
+https://trac.torproject.org/projects/tor/ticket/2874
+-->
+<head>
+ <meta charset="utf-8">
+ <title>Test for Tor Bug 2874</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript">
+ is(typeof Components, 'undefined', "The global window object should not expose a Components property to untrusted content.");
+ </script>
+</head>
+<body>
+<a target="_blank" href="https://trac.torproject.org/projects/tor/ticket/2874">Tor Bug 2874</a>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>
diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild
index bfa04334b3e7..4cddb622218c 100644
--- a/toolkit/toolkit.mozbuild
+++ b/toolkit/toolkit.mozbuild
@@ -96,7 +96,8 @@ if CONFIG['MOZ_WEBRTC'] and CONFIG['COMPILE_ENVIRONMENT']:
]
if CONFIG['ENABLE_TESTS']:
- DIRS += ['/testing/specialpowers']
+ DIRS += ['/testing/specialpowers',
+ '/tbb-tests']
DIRS += [
'/testing/gtest',
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 28044: Integrate Tor Launcher into tor-browser
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 256ca894ec18f297ba6bc0beb94ef848d11cbdb9
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 26 10:07:17 2019 -0500
Bug 28044: Integrate Tor Launcher into tor-browser
Build and package Tor Launcher as part of the browser (similar to
how pdfjs is handled).
If a Tor Launcher extension is present in the user's profile, it is
removed.
---
browser/extensions/moz.build | 3 +++
browser/installer/package-manifest.in | 5 +++++
toolkit/mozapps/extensions/internal/XPIProvider.jsm | 10 ++++++++++
3 files changed, 18 insertions(+)
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index 269dcb2a32d6..9daae31eca43 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -12,3 +12,6 @@ DIRS += [
"report-site-issue",
"pictureinpicture",
]
+
+if not CONFIG["TOR_BROWSER_DISABLE_TOR_LAUNCHER"]:
+ DIRS += ["tor-launcher"]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 5d1810c4ecd3..20b3ca4971e3 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -253,6 +253,11 @@
@RESPATH@/browser/chrome/browser.manifest
@RESPATH@/chrome/pdfjs.manifest
@RESPATH@/chrome/pdfjs/*
+#ifndef TOR_BROWSER_DISABLE_TOR_LAUNCHER
+@RESPATH@/browser/chrome/torlauncher.manifest
+@RESPATH@/browser/chrome/torlauncher/*
+@RESPATH@/browser/@PREF_DIR@/torlauncher-prefs.js
+#endif
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index 0599e221ed1e..bec6e27388ac 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -1472,6 +1472,16 @@ var XPIStates = {
for (let [id, file] of loc.readAddons()) {
knownIds.delete(id);
+ // Since it is now part of the browser, uninstall the Tor Launcher
+ // extension. This will remove the Tor Launcher .xpi from user
+ // profiles on macOS.
+ if (id === "tor-launcher(a)torproject.org") {
+ logger.debug("Uninstalling the Tor Launcher extension.");
+ loc.installer.uninstallAddon(id);
+ changed = true;
+ continue;
+ }
+
let xpiState = loc.get(id);
if (!xpiState) {
// If the location is not supported for sideloading, skip new
1
0

[tor-browser/tor-browser-89.0-10.5-1] TB3: Tor Browser's official .mozconfigs.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit c33fa4506a5e31e257ba6561e09b66f75764b72a
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon May 6 15:51:06 2013 -0700
TB3: Tor Browser's official .mozconfigs.
Also:
Bug #9829.1: new .mozconfig file for the new cross-compiler and ESR24
Changes needed to build Mac in 64bit
Bug 10715: Enable Webgl for mingw-w64 again.
Disable ICU when cross-compiling; clean-up.
Bug 15773: Enable ICU on OS X
Bug 15990: Don't build the sandbox with mingw-w64
Bug 12761: Switch to ESR 38 for OS X
Updating .mozconfig-asan
Bug 12516: Compile hardenend Tor Browser with -fwrapv
Bug 18331: Switch to Mozilla's toolchain for building Tor Browser for OS X
Bug 17858: Cannot create incremental MARs for hardened builds.
Define HOST_CFLAGS, etc. to avoid compiling programs such as mbsdiff
(which is part of mar-tools and is not distributed to end-users) with
ASan.
Bug 13419: Add back ICU for Windows
Bug 21239: Use GTK2 for ESR52 Linux builds
Bug 23025: Add hardening flags for macOS
Bug 24478: Enable debug assertions and tests in our ASan builds
--enable-proxy-bypass-protection
Bug 27597: ASan build option in tor-browser-build is broken
Bug 27623 - Export MOZILLA_OFFICIAL during desktop builds
This fixes a problem where some preferences had the wrong default value.
Also see bug 27472 where we made a similar fix for Android.
Bug 30463: Explicitly disable MOZ_TELEMETRY_REPORTING
Bug 31450: Set proper BINDGEN_CFLAGS for ASan builds
Add an --enable-tor-browser-data-outside-app-dir configure option
Add --with-tor-browser-version configure option
Bug 21849: Don't allow SSL key logging.
Bug 31457: disable per-installation profiles
The dedicated profiles (per-installation) feature does not interact
well with our bundled profiles on Linux and Windows, and it also causes
multiple profiles to be created on macOS under TorBrowser-Data.
Bug 31935: Disable profile downgrade protection.
Since Tor Browser does not support more than one profile, disable
the prompt and associated code that offers to create one when a
version downgrade situation is detected.
Bug 32493: Disable MOZ_SERVICES_HEALTHREPORT
Bug 25741 - TBA: Disable features at compile-time
MOZ_NATIVE_DEVICES for casting and the media player
MOZ_TELEMETRY_REPORTING for telemetry
MOZ_DATA_REPORTING for all data reporting preferences (crashreport, telemetry, geo)
Bug 25741 - TBA: Add default configure options in dedicated file
Define MOZ_ANDROID_NETWORK_STATE and MOZ_ANDROID_LOCATION
Bug 29859: Disable HLS support for now
Add --disable-tor-launcher build option
Add --enable-tor-browser-update build option
Bug 33734: Set MOZ_NORMANDY to False
Bug 33851: Omit Parental Controls.
Bug 40061: Omit the Windows default browser agent from the build
Bug 40252: Add --enable-rust-simd to our tor-browser mozconfig files
---
.mozconfig | 39 ++++++++++++++++++++++++
.mozconfig-android | 36 ++++++++++++++++++++++
.mozconfig-asan | 44 +++++++++++++++++++++++++++
.mozconfig-mac | 56 +++++++++++++++++++++++++++++++++++
.mozconfig-mingw | 31 +++++++++++++++++++
browser/base/moz.build | 3 ++
browser/installer/Makefile.in | 8 +++++
browser/moz.configure | 8 ++---
build/moz.configure/old.configure | 5 ++++
mobile/android/confvars.sh | 9 ++++++
mobile/android/geckoview/build.gradle | 1 +
mobile/android/moz.configure | 22 ++++++++++++--
mobile/android/torbrowser.configure | 30 +++++++++++++++++++
old-configure.in | 49 ++++++++++++++++++++++++++++++
security/moz.build | 2 +-
security/nss/lib/ssl/Makefile | 2 +-
toolkit/modules/AppConstants.jsm | 15 ++++++++++
toolkit/modules/moz.build | 3 ++
18 files changed, 355 insertions(+), 8 deletions(-)
diff --git a/.mozconfig b/.mozconfig
new file mode 100755
index 000000000000..18cd1f9b6487
--- /dev/null
+++ b/.mozconfig
@@ -0,0 +1,39 @@
+. $topsrcdir/browser/config/mozconfig
+
+# This mozconfig file is not used in official Tor Browser builds.
+# It is only intended to be used when doing incremental Linux builds
+# during development. The platform-specific mozconfig configuration
+# files used in official Tor Browser releases can be found in the
+# tor-browser-build repo:
+# https://gitweb.torproject.org/builders/tor-browser-build.git/
+# under:
+# tor-browser-build/projects/firefox/mozconfig-$OS-$ARCH
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Let's support GTK3 for ESR60
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+
+ac_add_options --disable-tor-launcher
+ac_add_options --with-tor-browser-version=dev-build
+ac_add_options --disable-tor-browser-update
diff --git a/.mozconfig-android b/.mozconfig-android
new file mode 100755
index 000000000000..50015ec615ef
--- /dev/null
+++ b/.mozconfig-android
@@ -0,0 +1,36 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm-linux-androideabi
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Android
+ac_add_options --enable-application=mobile/android
+ac_add_options --target=arm-linux-androideabi
+ac_add_options --with-android-ndk="$NDK_BASE" #Enter the android ndk location(ndk r17b)
+ac_add_options --with-android-sdk="$SDK_BASE" #Enter the android sdk location
+ac_add_options --with-branding=mobile/android/branding/alpha
+
+# Use Mozilla's Clang blobs
+CC="$HOME/.mozbuild/clang/bin/clang"
+CXX="$HOME/.mozbuild/clang/bin/clang++"
+
+#enable ccache to set amount of cache assigned for build.
+ac_add_options --with-ccache
+
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-rust-debug
+
+ac_add_options --disable-updater
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-asan b/.mozconfig-asan
new file mode 100644
index 000000000000..bad7ea022c9f
--- /dev/null
+++ b/.mozconfig-asan
@@ -0,0 +1,44 @@
+. $topsrcdir/browser/config/mozconfig
+
+export CFLAGS="-fsanitize=address -Dxmalloc=myxmalloc"
+export CXXFLAGS="-fsanitize=address -Dxmalloc=myxmalloc"
+# We need to add -ldl explicitely due to bug 1213698
+export LDFLAGS="-fsanitize=address -ldl"
+
+# Define HOST_CFLAGS, etc. to avoid compiling programs such as mbsdiff
+# (which is part of mar-tools and is not distributed to end-users) with
+# ASan. See bug 17858.
+export HOST_CFLAGS=""
+export HOST_CXXFLAGS=""
+export HOST_LDFLAGS="-ldl"
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+export BINDGEN_CFLAGS='--gcc-toolchain=/var/tmp/dist/gcc'
+
+ac_add_options --enable-address-sanitizer
+ac_add_options --disable-jemalloc
+ac_add_options --disable-elf-hack
+
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-official-branding
+
+# Let's support GTK3 for ESR60
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+ac_add_options --enable-tor-browser-update
+
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+ac_add_options --enable-tests
+ac_add_options --enable-debug
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-mac b/.mozconfig-mac
new file mode 100644
index 000000000000..26e2b6b92fdb
--- /dev/null
+++ b/.mozconfig-mac
@@ -0,0 +1,56 @@
+# ld needs libLTO.so from llvm
+mk_add_options "export LD_LIBRARY_PATH=$topsrcdir/clang/lib"
+
+CROSS_CCTOOLS_PATH=$topsrcdir/cctools
+CROSS_SYSROOT=$topsrcdir/MacOSX10.7.sdk
+CROSS_PRIVATE_FRAMEWORKS=$CROSS_SYSROOT/System/Library/PrivateFrameworks
+HARDENING_FLAGS="-Werror=format -Werror=format-security -fstack-protector-strong -D_FORTIFY_SOURCE=2"
+FLAGS="-target x86_64-apple-darwin10 -mlinker-version=136 -B $CROSS_CCTOOLS_PATH/bin -isysroot $CROSS_SYSROOT $HARDENING_FLAGS"
+
+export CC="$topsrcdir/clang/bin/clang $FLAGS"
+export CXX="$topsrcdir/clang/bin/clang++ $FLAGS"
+export CPP="$topsrcdir/clang/bin/clang $FLAGS -E"
+export LLVMCONFIG=$topsrcdir/clang/bin/llvm-config
+export LDFLAGS="-Wl,-syslibroot,$CROSS_SYSROOT -Wl,-dead_strip -Wl,-pie"
+export TOOLCHAIN_PREFIX=$CROSS_CCTOOLS_PATH/bin/x86_64-apple-darwin10-
+#TODO: bug 1184202 - would be nice if these could be detected with TOOLCHAIN_PREFIX automatically
+export AR=${TOOLCHAIN_PREFIX}ar
+export RANLIB=${TOOLCHAIN_PREFIX}ranlib
+export STRIP=${TOOLCHAIN_PREFIX}strip
+export OTOOL=${TOOLCHAIN_PREFIX}otool
+export DSYMUTIL=$topsrcdir/clang/bin/llvm-dsymutil
+
+export HOST_CC="$topsrcdir/clang/bin/clang"
+export HOST_CXX="$topsrcdir/clang/bin/clang++"
+export HOST_CPP="$topsrcdir/clang/bin/clang -E"
+export HOST_CFLAGS="-g"
+export HOST_CXXFLAGS="-g"
+export HOST_LDFLAGS="-g"
+
+ac_add_options --target=x86_64-apple-darwin
+ac_add_options --with-macos-private-frameworks=$CROSS_PRIVATE_FRAMEWORKS
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-macos
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-application=browser
+ac_add_options --enable-strip
+ac_add_options --enable-official-branding
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --disable-debug
+
+ac_add_options --enable-tor-browser-data-outside-app-dir
+ac_add_options --enable-tor-browser-update
+
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-tests
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
new file mode 100644
index 000000000000..3ec6ff18a3e9
--- /dev/null
+++ b/.mozconfig-mingw
@@ -0,0 +1,31 @@
+CROSS_COMPILE=1
+
+ac_add_options --enable-application=browser
+ac_add_options --target=i686-w64-mingw32
+ac_add_options --with-toolchain-prefix=i686-w64-mingw32-
+ac_add_options --enable-default-toolkit=cairo-windows
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-mingw
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+ac_add_options --enable-rust-simd
+ac_add_options --enable-strip
+ac_add_options --enable-official-branding
+
+ac_add_options --enable-tor-browser-update
+ac_add_options --disable-bits-download
+
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+ac_add_options --disable-crashreporter
+ac_add_options --disable-maintenance-service
+ac_add_options --disable-webrtc
+ac_add_options --disable-parental-controls
+ac_add_options --disable-tests
+ac_add_options --enable-proxy-bypass-protection
+
+# Disable telemetry
+ac_add_options MOZ_TELEMETRY_REPORTING=
+ac_add_options --disable-default-browser-agent
diff --git a/browser/base/moz.build b/browser/base/moz.build
index 670edb73906b..d4266cc9c083 100644
--- a/browser/base/moz.build
+++ b/browser/base/moz.build
@@ -82,6 +82,9 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk", "cocoa"):
if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk"):
DEFINES["MENUBAR_CAN_AUTOHIDE"] = 1
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["TOR_BROWSER_UPDATE"] = 1
+
JAR_MANIFESTS += ["jar.mn"]
GeneratedFile(
diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in
index ad725c5114b0..4fa715669e8b 100644
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -82,6 +82,14 @@ endif
endif
endif
+ifdef TOR_BROWSER_DISABLE_TOR_LAUNCHER
+DEFINES += -DTOR_BROWSER_DISABLE_TOR_LAUNCHER
+endif
+
+ifdef TOR_BROWSER_UPDATE
+DEFINES += -DTOR_BROWSER_UPDATE
+endif
+
ifneq (,$(filter WINNT Darwin Android,$(OS_TARGET)))
DEFINES += -DMOZ_SHARED_MOZGLUE=1
endif
diff --git a/browser/moz.configure b/browser/moz.configure
index 8653bcbb165d..5a0b722b915e 100644
--- a/browser/moz.configure
+++ b/browser/moz.configure
@@ -5,11 +5,11 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
imply_option("MOZ_PLACES", True)
-imply_option("MOZ_SERVICES_HEALTHREPORT", True)
+imply_option("MOZ_SERVICES_HEALTHREPORT", False)
imply_option("MOZ_SERVICES_SYNC", True)
-imply_option("MOZ_DEDICATED_PROFILES", True)
-imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True)
-imply_option("MOZ_NORMANDY", True)
+imply_option("MOZ_DEDICATED_PROFILES", False)
+imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", False)
+imply_option("MOZ_NORMANDY", False)
with only_when(target_is_linux & compile_environment):
option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure
index 35ab75df3a14..95f4200d0973 100644
--- a/build/moz.configure/old.configure
+++ b/build/moz.configure/old.configure
@@ -119,6 +119,11 @@ def old_configure_options(*options):
"--with-user-appdir",
"--x-includes",
"--x-libraries",
+ # Tor additions.
+ "--with-tor-browser-version",
+ "--enable-tor-browser-update",
+ "--enable-tor-browser-data-outside-app-dir",
+ "--enable-tor-launcher",
)
def prepare_configure_options(host, target, all_options, *options):
# old-configure only supports the options listed in @old_configure_options
diff --git a/mobile/android/confvars.sh b/mobile/android/confvars.sh
index 70e13c85b258..b2670451ed91 100644
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -29,6 +29,15 @@ MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
MOZ_NO_SMART_CARDS=1
+# Adds MIME-type support for raw video
MOZ_RAW=1
MOZ_APP_ID={aa3c5121-dab2-40e2-81ca-7ea25febc110}
+
+### Tor Browser for Android ###
+
+# Disable telemetry at compile-time
+unset MOZ_TELEMETRY_REPORTING
+
+# Disable data reporting at compile-time
+unset MOZ_DATA_REPORTING
diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle
index ab3f41a4db46..05c9b7b3ae2c 100644
--- a/mobile/android/geckoview/build.gradle
+++ b/mobile/android/geckoview/build.gradle
@@ -93,6 +93,7 @@ android {
buildConfigField 'String', "MOZ_APP_DISPLAYNAME", "\"${mozconfig.substs.MOZ_APP_DISPLAYNAME}\"";
buildConfigField 'String', "MOZ_APP_UA_NAME", "\"${mozconfig.substs.MOZ_APP_UA_NAME}\"";
buildConfigField 'String', "MOZ_UPDATE_CHANNEL", "\"${mozconfig.substs.MOZ_UPDATE_CHANNEL}\"";
+ buildConfigField 'String', "TOR_BROWSER_VERSION", "\"${mozconfig.substs.TOR_BROWSER_VERSION}\"";
// MOZILLA_VERSION is oddly quoted from autoconf, but we don't have to handle it specially in Gradle.
buildConfigField 'String', "MOZILLA_VERSION", "\"${mozconfig.substs.MOZILLA_VERSION}\"";
diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure
index 72c1bd6d80bd..1486702697e1 100644
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -13,7 +13,7 @@ project_flag(
project_flag(
"MOZ_ANDROID_HLS_SUPPORT",
help="Enable HLS (HTTP Live Streaming) support (currently using the ExoPlayer library)",
- default=True,
+ default=False,
)
option(
@@ -46,10 +46,14 @@ project_flag(
)
imply_option("MOZ_NORMANDY", False)
-imply_option("MOZ_SERVICES_HEALTHREPORT", True)
imply_option("MOZ_ANDROID_HISTORY", True)
imply_option("--enable-small-chunk-size", True)
+# Comment this so we can imply |False| in torbrowser.configure
+# The Build system doesn't allow multiple imply_option()
+# calls with the same key.
+# imply_option("MOZ_SERVICES_HEALTHREPORT", True)
+
@depends(target)
def check_target(target):
@@ -65,6 +69,8 @@ def check_target(target):
)
+include("torbrowser.configure")
+
include("../../toolkit/moz.configure")
include("../../build/moz.configure/android-sdk.configure")
include("../../build/moz.configure/java.configure")
@@ -82,3 +88,15 @@ set_config(
"MOZ_ANDROID_FAT_AAR_ARCHITECTURES",
depends("MOZ_ANDROID_FAT_AAR_ARCHITECTURES")(lambda x: x),
)
+
+project_flag(
+ "MOZ_ANDROID_NETWORK_STATE",
+ help="Include permission for accessing WiFi/network state on Android",
+ default=False,
+)
+
+project_flag(
+ "MOZ_ANDROID_LOCATION",
+ help="Include permission for accessing fine and course-grain Location on Android",
+ default=False,
+)
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
new file mode 100644
index 000000000000..bcb725cae121
--- /dev/null
+++ b/mobile/android/torbrowser.configure
@@ -0,0 +1,30 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Set Tor Browser default config
+
+imply_option("MOZ_ANDROID_EXCLUDE_FONTS", False)
+
+# Disable uploading crash reports and dump files to an external server
+# This is still configured in old-configure. Uncomment when this moves
+# to the python config
+# imply_option("MOZ_CRASHREPORTER", False)
+
+# Disable uploading information about the browser configuration and
+# performance to an external server
+imply_option("MOZ_SERVICES_HEALTHREPORT", False)
+
+# Disable creating telemetry and data reports that are uploaded to an
+# external server
+# These aren't actually configure options. These are disabled in
+# confvars.sh, but they look like configure options so we'll document
+# them here, as well.
+# XXX: no confvars.sh here
+# imply_option("MOZ_TELEMETRY_REPORTING", False)
+# imply_option("MOZ_DATA_REPORTING", False)
+
+imply_option("MOZ_ANDROID_NETWORK_STATE", False)
+imply_option("MOZ_ANDROID_LOCATION", False)
diff --git a/old-configure.in b/old-configure.in
index a05ac13cd110..2b1faf6c0b82 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -1887,6 +1887,55 @@ if test -n "$MOZ_UPDATER"; then
AC_DEFINE(MOZ_UPDATER)
fi
+dnl ========================================================
+dnl Tor additions
+dnl ========================================================
+MOZ_ARG_WITH_STRING(tor-browser-version,
+[ --with-tor-browser-version=VERSION
+ Set Tor Browser version, e.g., 7.0a1],
+ TOR_BROWSER_VERSION="$withval")
+
+if test -z "$TOR_BROWSER_VERSION"; then
+ AC_MSG_ERROR([--with-tor-browser-version is required for Tor Browser.])
+fi
+
+MOZ_ARG_ENABLE_BOOL(tor-browser-update,
+[ --enable-tor-browser-update
+ Enable Tor Browser update],
+ TOR_BROWSER_UPDATE=1,
+ TOR_BROWSER_UPDATE= )
+
+if test -n "$TOR_BROWSER_UPDATE"; then
+ AC_DEFINE(TOR_BROWSER_UPDATE)
+fi
+
+MOZ_ARG_ENABLE_BOOL(tor-browser-data-outside-app-dir,
+[ --enable-tor-browser-data-outside-app-dir
+ Enable Tor Browser data outside of app directory],
+ TOR_BROWSER_DATA_OUTSIDE_APP_DIR=1,
+ TOR_BROWSER_DATA_OUTSIDE_APP_DIR= )
+
+if test -n "$TOR_BROWSER_DATA_OUTSIDE_APP_DIR"; then
+ AC_DEFINE(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+fi
+
+AC_DEFINE_UNQUOTED(TOR_BROWSER_VERSION,$TOR_BROWSER_VERSION)
+AC_DEFINE_UNQUOTED(TOR_BROWSER_VERSION_QUOTED,"$TOR_BROWSER_VERSION")
+AC_SUBST(TOR_BROWSER_UPDATE)
+AC_SUBST(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+
+MOZ_ARG_DISABLE_BOOL(tor-launcher,
+[ --disable-tor-launcher
+ Do not include Tor Launcher],
+ TOR_BROWSER_DISABLE_TOR_LAUNCHER=1,
+ TOR_BROWSER_DISABLE_TOR_LAUNCHER=)
+
+if test -n "$TOR_BROWSER_DISABLE_TOR_LAUNCHER"; then
+ AC_DEFINE(TOR_BROWSER_DISABLE_TOR_LAUNCHER)
+fi
+
+AC_SUBST(TOR_BROWSER_DISABLE_TOR_LAUNCHER)
+
dnl ========================================================
dnl parental controls (for Windows Vista)
dnl ========================================================
diff --git a/security/moz.build b/security/moz.build
index 18e50f9dcc37..8d0427525487 100644
--- a/security/moz.build
+++ b/security/moz.build
@@ -85,7 +85,7 @@ gyp_vars["nss_dist_obj_dir"] = "$PRODUCT_DIR/dist/bin"
gyp_vars["disable_tests"] = 1
gyp_vars["disable_dbm"] = 1
gyp_vars["disable_libpkix"] = 1
-gyp_vars["enable_sslkeylogfile"] = 1
+gyp_vars["enable_sslkeylogfile"] = 0
# pkg-config won't reliably find zlib on our builders, so just force it.
# System zlib is only used for modutil and signtool unless
# SSL zlib is enabled, which we are disabling immediately below this.
diff --git a/security/nss/lib/ssl/Makefile b/security/nss/lib/ssl/Makefile
index 8a8b06f4b508..90571bb3e256 100644
--- a/security/nss/lib/ssl/Makefile
+++ b/security/nss/lib/ssl/Makefile
@@ -41,7 +41,7 @@ endif
# Enable key logging by default in debug builds, but not opt builds.
# Logging still needs to be enabled at runtime through env vars.
-NSS_ALLOW_SSLKEYLOGFILE ?= $(if $(BUILD_OPT),0,1)
+NSS_ALLOW_SSLKEYLOGFILE ?= 0
ifeq (1,$(NSS_ALLOW_SSLKEYLOGFILE))
DEFINES += -DNSS_ALLOW_SSLKEYLOGFILE=1
endif
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index f181cf3904c8..022251d12332 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -340,6 +340,14 @@ this.AppConstants = Object.freeze({
MOZ_WIDGET_TOOLKIT: "@MOZ_WIDGET_TOOLKIT@",
ANDROID_PACKAGE_NAME: "@ANDROID_PACKAGE_NAME@",
+ TOR_BROWSER_VERSION: "@TOR_BROWSER_VERSION@",
+ TOR_BROWSER_DATA_OUTSIDE_APP_DIR:
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ true,
+#else
+ false,
+#endif
+
DEBUG_JS_MODULES: "@DEBUG_JS_MODULES@",
MOZ_BING_API_CLIENTID: "@MOZ_BING_API_CLIENTID@",
@@ -424,4 +432,11 @@ this.AppConstants = Object.freeze({
#else
false,
#endif
+
+ TOR_BROWSER_UPDATE:
+#ifdef TOR_BROWSER_UPDATE
+ true,
+#else
+ false,
+#endif
});
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
index 3626b9f83402..435e36552e94 100644
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -308,6 +308,9 @@ for var in (
if CONFIG[var]:
DEFINES[var] = True
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["TOR_BROWSER_UPDATE"] = 1
+
JAR_MANIFESTS += ["jar.mn"]
DEFINES["TOPOBJDIR"] = TOPOBJDIR
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 10760: Integrate TorButton to TorBrowser core
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit a72e439199d50bc117a1b0a7037de2ffd8569c53
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Feb 19 23:05:08 2020 +0100
Bug 10760: Integrate TorButton to TorBrowser core
Because of the non-restartless nature of Torbutton, it required
a two-stage installation process. On mobile, it was a problem,
because it was not loading when the user opened the browser for
the first time.
Moving it to tor-browser and making it a system extension allows it
to load when the user opens the browser for first time.
Additionally, this patch also fixes Bug 27611.
Bug 26321: New Circuit and New Identity menu items
Bug 14392: Make about:tor behave like other initial pages.
Bug 25013: Add torbutton as a tor-browser submodule
---
.gitmodules | 3 ++
browser/base/content/aboutDialog.xhtml | 38 +++++++++++------
browser/base/content/browser-doctype.inc | 6 +++
browser/base/content/browser-menubar.inc | 47 ++++++++++++++++++----
browser/base/content/browser-sets.inc | 2 +
browser/base/content/browser.js | 1 +
browser/base/content/browser.xhtml | 26 +++++++++++-
.../controlcenter/content/identityPanel.inc.xhtml | 44 ++++++++++++++++++++
browser/installer/package-manifest.in | 2 +
docshell/base/nsAboutRedirector.cpp | 6 ++-
docshell/build/components.conf | 1 +
mobile/android/installer/package-manifest.in | 4 ++
toolkit/moz.build | 1 +
.../mozapps/extensions/internal/XPIProvider.jsm | 9 +++++
toolkit/torproject/torbutton | 1 +
.../lib/environments/browser-window.js | 6 ++-
16 files changed, 172 insertions(+), 25 deletions(-)
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000000..2f03bd8e22df
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "toolkit/torproject/torbutton"]
+ path = toolkit/torproject/torbutton
+ url = https://git.torproject.org/torbutton.git
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
index 55c8b1c2c5f7..4eb122b0b2d8 100644
--- a/browser/base/content/aboutDialog.xhtml
+++ b/browser/base/content/aboutDialog.xhtml
@@ -7,11 +7,11 @@
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/aboutDialog.css" type="text/css"?>
<?xml-stylesheet href="chrome://branding/content/aboutDialog.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/aboutDialog.css" type="text/css"?>
+<!-- We need to include the localization DTDs until we migrate to Fluent -->
<!DOCTYPE window [
-#ifdef XP_MACOSX
#include browser-doctype.inc
-#endif
]>
<window xmlns:html="http://www.w3.org/1999/xhtml"
@@ -28,7 +28,7 @@
data-l10n-id="aboutDialog-title"
#endif
role="dialog"
- aria-describedby="version distribution distributionId communityDesc contributeDesc trademark"
+ aria-describedby="version distribution distributionId projectDesc helpDesc trademark trademarkTor"
>
#ifdef XP_MACOSX
#include macWindow.inc.xhtml
@@ -146,24 +146,36 @@
<label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-exp-creditsLink"/>
</description>
</vbox>
- <description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
- <label is="text-link" href="https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-…" data-l10n-name="community-mozillaLink"/>
- <label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-creditsLink"/>
+ <!-- Keep communityDesc and contributeDesc to avoid JS errors trying to hide them -->
+ <description class="text-blurb" id="communityDesc" data-l10n-id="community-2" hidden="true"></description>
+ <description class="text-blurb" id="contributeDesc" data-l10n-id="helpus" hidden="true"></description>
+ <description class="text-blurb" id="projectDesc">
+ &project.start;
+ <label is="text-link" href="https://www.torproject.org/">
+ &project.tpoLink;
+ </label>&project.end;
</description>
- <description class="text-blurb" id="contributeDesc" data-l10n-id="helpus">
- <label is="text-link" href="https://donate.mozilla.org/?utm_source=firefox&utm_medium=referral&…" data-l10n-name="helpus-donateLink"/>
- <label is="text-link" href="https://www.mozilla.org/contribute/?utm_source=firefox-browser&utm_medi…" data-l10n-name="helpus-getInvolvedLink"/>
+ <description class="text-blurb" id="helpDesc">
+ &help.start;
+ <label is="text-link" href="https://donate.torproject.org/">
+ &help.donateLink;
+ </label>
+ &help.or;
+ <label is="text-link" href="https://community.torproject.org/">
+ &help.getInvolvedLink;
+ </label>&help.end;
</description>
</vbox>
</vbox>
</hbox>
<vbox id="bottomBox">
- <hbox pack="center">
- <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
- <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&utm_medium=…" data-l10n-id="bottomLinks-privacy"/>
+ <hbox id="newBottom" pack="center" position="1">
+ <label is="text-link" class="bottom-link" href="https://support.torproject.org/">&bottomLinks.questions;</label>
+ <label is="text-link" class="bottom-link" href="https://community.torproject.org/relay/">&bottomLinks.grow;</label>
+ <label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license">&bottomLinks.license;</label>
</hbox>
<description id="trademark" data-l10n-id="trademarkInfo"></description>
+ <description id="trademarkTor">&tor.TrademarkStatement;</description>
</vbox>
</vbox>
diff --git a/browser/base/content/browser-doctype.inc b/browser/base/content/browser-doctype.inc
index c3b70f6b259b..882de4cbd053 100644
--- a/browser/base/content/browser-doctype.inc
+++ b/browser/base/content/browser-doctype.inc
@@ -10,3 +10,9 @@
%placesDTD;
<!ENTITY % syncBrandDTD SYSTEM "chrome://browser/locale/syncBrand.dtd">
%syncBrandDTD;
+<!ENTITY % torbuttonDTD SYSTEM "chrome://torbutton/locale/torbutton.dtd">
+%torbuttonDTD;
+<!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
+%aboutTorDTD;
+<!ENTITY % aboutDialogDTD SYSTEM "chrome://torbutton/locale/aboutDialog.dtd">
+%aboutDialogDTD;
diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc
index a7189c2feab9..edc0314926bd 100644
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -38,6 +38,18 @@
command="Tools:NonFissionWindow"
accesskey="s" label="New Non-Fission Window"/>
#endif
+ <menuseparator/>
+ <menuitem id="menu_newIdentity"
+ accesskey="&torbutton.context_menu.new_identity_key;"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <menuitem id="menu_newCircuit"
+ accesskey="&torbutton.context_menu.new_circuit_key;"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
+ <menuseparator/>
<menuitem id="menu_openLocation"
hidden="true"
command="Browser:OpenLocation"
@@ -466,19 +478,37 @@
<menupopup id="menu_HelpPopup" onpopupshowing="buildHelpMenu();">
<!-- Note: Items under here are cloned to the AppMenu Help submenu. The cloned items
have their strings defined by appmenu-data-l10n-id. -->
- <menuitem id="menu_openHelp"
+#ifdef MOZ_UPDATER
+ <menuitem id="checkForUpdates"
+ data-l10n-id="menu-help-check-for-update"
+ appmenu-data-l10n-id="appmenu-help-check-for-update"
+ class="menuitem-iconic"
+ oncommand="openAboutDialog();"/>
+#endif
+ <!-- dummy elements to avoid 'getElementById' errors -->
+ <box id="feedbackPage"/>
+ <box id="helpSafeMode"/>
+ <box id="menu_HelpPopup_reportPhishingtoolmenu"/>
+ <box id="menu_HelpPopup_reportPhishingErrortoolmenu"/>
+ <!-- Add Tor Browser manual link -->
+ <menuitem id="torBrowserUserManual"
+ oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.locale.requestedLocale, {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});"
+ label="&aboutTor.torbrowser_user_manual.label;"
+ accesskey="&aboutTor.torbrowser_user_manual.accesskey;"/>
+ <!-- Bug 18905: Hide unused help menu items -->
+ <!-- <menuitem id="menu_openHelp"
oncommand="openHelpLink('firefox-help')"
data-l10n-id="menu-get-help"
appmenu-data-l10n-id="appmenu-get-help"
#ifdef XP_MACOSX
- key="key_openHelpMac"/>
+ key="key_openHelpMac"/> -->
#else
- />
+ /> -->
#endif
- <menuitem id="feedbackPage"
+ <!-- <menuitem id="feedbackPage"
oncommand="openFeedbackPage()"
data-l10n-id="menu-help-feedback-page"
- appmenu-data-l10n-id="appmenu-help-feedback-page"/>
+ appmenu-data-l10n-id="appmenu-help-feedback-page"/> -->
<menuitem id="helpSafeMode"
oncommand="safeModeRestart();"
data-l10n-id="menu-help-enter-troubleshoot-mode2"
@@ -493,17 +523,18 @@
appmenu-data-l10n-id="appmenu-help-report-site-issue"
hidden="true"/>
<menuitem id="menu_HelpPopup_reportPhishingtoolmenu"
+ <!-- <menuitem id="menu_HelpPopup_reportPhishingtoolmenu"
disabled="true"
oncommand="openUILink(gSafeBrowsing.getReportURL('Phish'), event, {triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({})});"
hidden="true"
data-l10n-id="menu-help-report-deceptive-site"
- appmenu-data-l10n-id="appmenu-help-report-deceptive-site"/>
- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
+ appmenu-data-l10n-id="appmenu-help-report-deceptive-site"/> -->
+ <!-- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
disabled="true"
oncommand="ReportFalseDeceptiveSite();"
data-l10n-id="menu-help-not-deceptive"
appmenu-data-l10n-id="appmenu-help-not-deceptive"
- hidden="true"/>
+ hidden="true"/> -->
<menuseparator id="aboutSeparator"/>
<menuitem id="aboutName"
oncommand="openAboutDialog();"
diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc
index acab2d3be5d8..ee3f5917979b 100644
--- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc
@@ -383,4 +383,6 @@
data-l10n-id="hide-other-apps-shortcut"
modifiers="accel,alt"/>
#endif
+ <key id="torbutton-new-identity-key" modifiers="accel shift" key="U" oncommand="torbutton_new_identity()"/>
+ <key id="torbutton-new-circuit-key" modifiers="accel shift" key="L" oncommand="torbutton_new_circuit()"/>
</keyset>
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 16168e5db4ba..618848f2e2f5 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -673,6 +673,7 @@ var gPageIcons = {
};
var gInitialPages = [
+ "about:tor",
"about:blank",
"about:newtab",
"about:home",
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index e8a8c4074092..668bbb15fdfe 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -29,6 +29,8 @@
<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/tor-circuit-display.css" type="text/css"?>
+<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
# All DTD information is stored in a separate file so that it can be shared by
# hiddenWindowMac.xhtml.
@@ -106,11 +108,18 @@
Services.scriptloader.loadSubScript("chrome://browser/content/places/places-menupopup.js", this);
Services.scriptloader.loadSubScript("chrome://browser/content/search/autocomplete-popup.js", this);
Services.scriptloader.loadSubScript("chrome://browser/content/search/searchbar.js", this);
+ Services.scriptloader.loadSubScript("chrome://torbutton/content/tor-circuit-display.js", this);
+ Services.scriptloader.loadSubScript("chrome://torbutton/content/torbutton.js", this);
window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
window.onclose = WindowIsClosing;
+ //onLoad Handler
+ try {
+ window.addEventListener("load", torbutton_init, false);
+ } catch (e) {}
+
window.addEventListener("MozBeforeInitialXULLayout",
gBrowserInit.onBeforeInitialXULLayout.bind(gBrowserInit), { once: true });
@@ -780,7 +789,8 @@
class="subviewbutton subviewbutton-iconic"
label="&newPrivateWindow.label;"
key="key_privatebrowsing"
- command="Tools:PrivateBrowsing"/>
+ command="Tools:PrivateBrowsing"
+ hidden="true"/>
#ifdef NIGHTLY_BUILD
<toolbarbutton id="appMenu-fission-window-button"
class="subviewbutton subviewbutton-iconic"
@@ -796,7 +806,19 @@
<toolbarbutton id="appMenuRestoreLastSession"
label="&appMenuHistory.restoreSession.label;"
class="subviewbutton subviewbutton-iconic"
- command="Browser:RestoreLastSession"/>
+ command="Browser:RestoreLastSession"
+ hidden="true"/>
+ <toolbarseparator/>
+ <toolbarbutton id="appMenuNewIdentity"
+ class="subviewbutton subviewbutton-iconic"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <toolbarbutton id="appMenuNewCircuit"
+ class="subviewbutton subviewbutton-iconic"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
<toolbarseparator/>
<toolbaritem id="appMenu-zoom-controls" class="toolbaritem-combined-buttons" closemenu="none">
<!-- Use a spacer, because panel sizing code gets confused when using CSS methods. -->
diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml
index 8875b2ac8d0b..f600693d22c9 100644
--- a/browser/components/controlcenter/content/identityPanel.inc.xhtml
+++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml
@@ -89,6 +89,50 @@
oncommand="gIdentityHandler.showSecuritySubView();"/>
</hbox>
+ <!-- Circuit display section -->
+ <hbox id="circuit-display-container" class="identity-popup-section">
+ <vbox id="circuit-display-content" flex="1" role="group"
+ aria-labelledby="circuit-display-headline">
+ <hbox id="circuit-display-header" align="center">
+ <label id="circuit-display-headline"
+ role="heading" aria-level="2">&torbutton.circuit_display.title;</label>
+ </hbox>
+ <html:ul id="circuit-display-nodes" dir="auto"/>
+ </vbox>
+ <vbox id="circuit-reload-content" flex="1">
+ <html:button id="circuit-reload-button"
+ onclick="torbutton_new_circuit()">&torbutton.circuit_display.new_circuit;</html:button>
+ <hbox id="circuit-guard-note-container"/>
+ </vbox>
+ </hbox>
+
+ <!-- Permissions Section -->
+ <hbox class="identity-popup-section"
+ when-connection="not-secure secure secure-ev secure-cert-user-overridden file extension cert-error-page https-only-error-page">
+ <vbox id="identity-popup-permissions-content" flex="1" role="group"
+ aria-labelledby="identity-popup-permissions-headline">
+ <hbox id="identity-popup-permissions-header" align="center">
+ <label id="identity-popup-permissions-headline"
+ role="heading" aria-level="2"
+ data-l10n-id="identity-permissions"/>
+ </hbox>
+ <vbox id="identity-popup-permission-list">
+ <vbox id="identity-popup-permission-list-default-anchor" class="identity-popup-permission-list-anchor"/>
+ <vbox class="identity-popup-permission-list-anchor" anchorfor="3rdPartyStorage">
+ <vbox id="identity-popup-storage-access-permission-list-header">
+ <hbox align="center" role="group">
+ <image class="identity-popup-permission-icon storage-access-icon"/>
+ <label data-l10n-id="identity-permissions-storage-access-header" class="identity-popup-permission-header-label"/>
+ </hbox>
+ <description id="identity-popup-storage-access-permission-list-hint" data-l10n-id="identity-permissions-storage-access-hint"></description>
+ </vbox>
+ </vbox>
+ </vbox>
+ <description id="identity-popup-permission-reload-hint" data-l10n-id="identity-permissions-reload-hint"></description>
+ <description id="identity-popup-permission-empty-hint" data-l10n-id="identity-permissions-empty"></description>
+ </vbox>
+ </hbox>
+
<!-- Clear Site Data Button -->
<vbox hidden="true"
id="identity-popup-clear-sitedata-footer"
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 20b3ca4971e3..ac3d45997668 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -258,6 +258,8 @@
@RESPATH@/browser/chrome/torlauncher/*
@RESPATH@/browser/@PREF_DIR@/torlauncher-prefs.js
#endif
+@RESPATH@/chrome/torbutton.manifest
+@RESPATH@/chrome/torbutton/*
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
index c8b53ff5a13e..f088441fa53c 100644
--- a/docshell/base/nsAboutRedirector.cpp
+++ b/docshell/base/nsAboutRedirector.cpp
@@ -155,7 +155,11 @@ static const RedirEntry kRedirMap[] = {
{"crashcontent", "about:blank",
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
nsIAboutModule::URI_CAN_LOAD_IN_CHILD |
- nsIAboutModule::URI_MUST_LOAD_IN_CHILD}};
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD},
+ {"tor", "chrome://torbutton/content/aboutTor/aboutTor.xhtml",
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::ALLOW_SCRIPT}};
static const int kRedirTotal = mozilla::ArrayLength(kRedirMap);
NS_IMETHODIMP
diff --git a/docshell/build/components.conf b/docshell/build/components.conf
index 99a6fd962268..2206799743c8 100644
--- a/docshell/build/components.conf
+++ b/docshell/build/components.conf
@@ -29,6 +29,7 @@ about_pages = [
'srcdoc',
'support',
'telemetry',
+ 'tor',
'url-classifier',
'webrtc',
]
diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
index c30f426c2129..8af288f1810a 100644
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -132,6 +132,10 @@
@BINPATH@/chrome/devtools@JAREXT@
@BINPATH@/chrome/devtools.manifest
+; Torbutton
+@BINPATH@/chrome/torbutton@JAREXT@
+@BINPATH@/chrome/torbutton.manifest
+
; [Default Preferences]
; All the pref files must be part of base to prevent migration bugs
#ifndef MOZ_ANDROID_FAT_AAR_ARCHITECTURES
diff --git a/toolkit/moz.build b/toolkit/moz.build
index 14f4638b693e..4edccfac6d62 100644
--- a/toolkit/moz.build
+++ b/toolkit/moz.build
@@ -22,6 +22,7 @@ DIRS += [
"mozapps/preferences",
"profile",
"themes",
+ "torproject/torbutton",
]
if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["MOZ_DEFAULT_BROWSER_AGENT"]:
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index bec6e27388ac..a6e020ecd4c9 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -1472,6 +1472,15 @@ var XPIStates = {
for (let [id, file] of loc.readAddons()) {
knownIds.delete(id);
+ // Uninstall torbutton if it is installed in the user profile
+ if (id === "torbutton(a)torproject.org" &&
+ loc.name === KEY_APP_PROFILE) {
+ logger.debug("Uninstalling torbutton from user profile.");
+ loc.installer.uninstallAddon(id);
+ changed = true;
+ continue;
+ }
+
// Since it is now part of the browser, uninstall the Tor Launcher
// extension. This will remove the Tor Launcher .xpi from user
// profiles on macOS.
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
new file mode 160000
index 000000000000..5264bddf8bc7
--- /dev/null
+++ b/toolkit/torproject/torbutton
@@ -0,0 +1 @@
+Subproject commit 5264bddf8bc71cbb4e88921b55e7b95fa4522b69
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
index 76e03f2d49bb..2ff107b553b2 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
@@ -75,7 +75,11 @@ function getGlobalScriptIncludes(scriptPath) {
"browser/components/search/content/"
)
.replace("chrome://browser/content/", "browser/base/content/")
- .replace("chrome://global/content/", "toolkit/content/");
+ .replace("chrome://global/content/", "toolkit/content/")
+ .replace(
+ "chrome://torbutton/content/",
+ "toolkit/torproject/torbutton/chrome/content/"
+ );
for (let mapping of Object.getOwnPropertyNames(MAPPINGS)) {
if (sourceFile.includes(mapping)) {
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 13028: Prevent potential proxy bypass cases.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 04cd97935f085c8e7489d795cca6eee0ee4041ef
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Mon Sep 29 14:30:19 2014 -0700
Bug 13028: Prevent potential proxy bypass cases.
It looks like these cases should only be invoked in the NSS command line
tools, and not the browser, but I decided to patch them anyway because there
literally is a maze of network function pointers being passed around, and it's
very hard to tell if some random code might not pass in the proper proxied
versions of the networking code here by accident.
---
security/nss/lib/certhigh/ocsp.c | 8 ++++++++
.../lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c | 21 +++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/security/nss/lib/certhigh/ocsp.c b/security/nss/lib/certhigh/ocsp.c
index cea8456606bf..86fa971cfbef 100644
--- a/security/nss/lib/certhigh/ocsp.c
+++ b/security/nss/lib/certhigh/ocsp.c
@@ -2932,6 +2932,14 @@ ocsp_ConnectToHost(const char *host, PRUint16 port)
PRNetAddr addr;
char *netdbbuf = NULL;
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted OSCP direct connect to %s, port %u\n", host,
+ port);
+ goto loser;
+#endif
+
sock = PR_NewTCPSocket();
if (sock == NULL)
goto loser;
diff --git a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
index e8698376b5be..85791d84a932 100644
--- a/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
+++ b/security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
@@ -1334,6 +1334,13 @@ pkix_pl_Socket_Create(
plContext),
PKIX_COULDNOTCREATESOCKETOBJECT);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct socket connect\n");
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
+
socket->isServer = isServer;
socket->timeout = timeout;
socket->clientSock = NULL;
@@ -1433,6 +1440,13 @@ pkix_pl_Socket_CreateByName(
localCopyName = PL_strdup(serverName);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct connect to %s\n", serverName);
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
+
sepPtr = strchr(localCopyName, ':');
/* First strip off the portnum, if present, from the end of the name */
if (sepPtr) {
@@ -1582,6 +1596,13 @@ pkix_pl_Socket_CreateByHostAndPort(
PKIX_ENTER(SOCKET, "pkix_pl_Socket_CreateByHostAndPort");
PKIX_NULLCHECK_THREE(hostname, pStatus, pSocket);
+ // XXX: Do we need a unittest ifdef here? We don't want to break the tests, but
+ // we want to ensure nothing can ever hit this code in production.
+#if 1
+ printf("Tor Browser BUG: Attempted pkix direct connect to %s, port %u\n", hostname,
+ portnum);
+ PKIX_ERROR(PKIX_PRNEWTCPSOCKETFAILED);
+#endif
prstatus = PR_GetHostByName(hostname, buf, sizeof(buf), &hostent);
1
0

[tor-browser/tor-browser-89.0-10.5-1] Add TorStrings module for localization
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 2fa7d2e7b605b2ae405abbdccbc930cd19cca3fa
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Jul 24 21:15:20 2020 +0200
Add TorStrings module for localization
---
browser/modules/TorStrings.jsm | 490 +++++++++++++++++++++++++++++++++++++++++
browser/modules/moz.build | 1 +
2 files changed, 491 insertions(+)
diff --git a/browser/modules/TorStrings.jsm b/browser/modules/TorStrings.jsm
new file mode 100644
index 000000000000..e8a8d37ae373
--- /dev/null
+++ b/browser/modules/TorStrings.jsm
@@ -0,0 +1,490 @@
+"use strict";
+
+var EXPORTED_SYMBOLS = ["TorStrings"];
+
+const { XPCOMUtils } = ChromeUtils.import(
+ "resource://gre/modules/XPCOMUtils.jsm"
+);
+const { Services } = ChromeUtils.import(
+ "resource://gre/modules/Services.jsm"
+);
+const { getLocale } = ChromeUtils.import(
+ "resource://torbutton/modules/utils.js"
+);
+
+XPCOMUtils.defineLazyGlobalGetters(this, ["DOMParser"]);
+XPCOMUtils.defineLazyGetter(this, "domParser", () => {
+ const parser = new DOMParser();
+ parser.forceEnableDTD();
+ return parser;
+});
+
+/*
+ Tor DTD String Bundle
+
+ DTD strings loaded from torbutton/tor-launcher, but provide a fallback in case they aren't available
+*/
+class TorDTDStringBundle {
+ constructor(aBundleURLs, aPrefix) {
+ let locations = [];
+ for (const [index, url] of aBundleURLs.entries()) {
+ locations.push(`<!ENTITY % dtd_${index} SYSTEM "${url}">%dtd_${index};`);
+ }
+ this._locations = locations;
+ this._prefix = aPrefix;
+ }
+
+ // copied from testing/marionette/l10n.js
+ localizeEntity(urls, id) {
+ // Use the DOM parser to resolve the entity and extract its real value
+ let header = `<?xml version="1.0"?><!DOCTYPE elem [${this._locations.join(
+ ""
+ )}]>`;
+ let elem = `<elem id="elementID">&${id};</elem>`;
+ let doc = domParser.parseFromString(header + elem, "text/xml");
+ let element = doc.querySelector("elem[id='elementID']");
+
+ if (element === null) {
+ throw new Error(`Entity with id='${id}' hasn't been found`);
+ }
+
+ return element.textContent;
+ }
+
+ getString(key, fallback) {
+ if (key) {
+ try {
+ return this.localizeEntity(this._bundleURLs, `${this._prefix}${key}`);
+ } catch (e) {}
+ }
+
+ // on failure, assign the fallback if it exists
+ if (fallback) {
+ return fallback;
+ }
+ // otherwise return string key
+ return `$(${key})`;
+ }
+}
+
+/*
+ Tor Property String Bundle
+
+ Property strings loaded from torbutton/tor-launcher, but provide a fallback in case they aren't available
+*/
+class TorPropertyStringBundle {
+ constructor(aBundleURL, aPrefix) {
+ try {
+ this._bundle = Services.strings.createBundle(aBundleURL);
+ } catch (e) {}
+
+ this._prefix = aPrefix;
+ }
+
+ getString(key, fallback) {
+ if (key) {
+ try {
+ return this._bundle.GetStringFromName(`${this._prefix}${key}`);
+ } catch (e) {}
+ }
+
+ // on failure, assign the fallback if it exists
+ if (fallback) {
+ return fallback;
+ }
+ // otherwise return string key
+ return `$(${key})`;
+ }
+}
+
+/*
+ Security Level Strings
+*/
+var TorStrings = {
+ /*
+ Tor Browser Security Level Strings
+ */
+ securityLevel: (function() {
+ let tsb = new TorDTDStringBundle(
+ ["chrome://torbutton/locale/torbutton.dtd"],
+ "torbutton.prefs.sec_"
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ // read localized strings from torbutton; but use hard-coded en-US strings as fallbacks in case of error
+ let retval = {
+ securityLevel: getString("caption", "Security Level"),
+ customWarning: getString("custom_warning", "Custom"),
+ overview: getString(
+ "overview",
+ "Disable certain web features that can be used to attack your security and anonymity."
+ ),
+ standard: {
+ level: getString("standard_label", "Standard"),
+ tooltip: getString("standard_tooltip", "Security Level : Standard"),
+ summary: getString(
+ "standard_description",
+ "All Tor Browser and website features are enabled."
+ ),
+ },
+ safer: {
+ level: getString("safer_label", "Safer"),
+ tooltip: getString("safer_tooltip", "Security Level : Safer"),
+ summary: getString(
+ "safer_description",
+ "Disables website features that are often dangerous, causing some sites to lose functionality."
+ ),
+ description1: getString(
+ "js_on_https_sites_only",
+ "JavaScript is disabled on non-HTTPS sites."
+ ),
+ description2: getString(
+ "limit_typography",
+ "Some fonts and math symbols are disabled."
+ ),
+ description3: getString(
+ "click_to_play_media",
+ "Audio and video (HTML5 media), and WebGL are click-to-play."
+ ),
+ },
+ safest: {
+ level: getString("safest_label", "Safest"),
+ tooltip: getString("safest_tooltip", "Security Level : Safest"),
+ summary: getString(
+ "safest_description",
+ "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts."
+ ),
+ description1: getString(
+ "js_disabled",
+ "JavaScript is disabled by default on all sites."
+ ),
+ description2: getString(
+ "limit_graphics_and_typography",
+ "Some fonts, icons, math symbols, and images are disabled."
+ ),
+ description3: getString(
+ "click_to_play_media",
+ "Audio and video (HTML5 media), and WebGL are click-to-play."
+ ),
+ },
+ custom: {
+ summary: getString(
+ "custom_summary",
+ "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels."
+ ),
+ },
+ learnMore: getString("learn_more_label", "Learn more"),
+ learnMoreURL: `https://tb-manual.torproject.org/${getLocale()}/security-settings/`,
+ restoreDefaults: getString("restore_defaults", "Restore Defaults"),
+ advancedSecuritySettings: getString(
+ "advanced_security_settings",
+ "Advanced Security Settings\u2026"
+ ),
+ };
+ return retval;
+ })() /* Security Level Strings */,
+
+ /*
+ Tor about:preferences#tor Strings
+ */
+ settings: (function() {
+ let tsb = new TorDTDStringBundle(
+ ["chrome://torlauncher/locale/network-settings.dtd"],
+ ""
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ let retval = {
+ categoryTitle: getString("torPreferences.categoryTitle", "Tor"),
+ torPreferencesHeading: getString(
+ "torPreferences.torSettings",
+ "Tor Settings"
+ ),
+ torPreferencesDescription: getString(
+ "torPreferences.torSettingsDescription",
+ "Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world."
+ ),
+ learnMore: getString("torPreferences.learnMore", "Learn More"),
+ bridgesHeading: getString("torPreferences.bridges", "Bridges"),
+ bridgesDescription: getString(
+ "torPreferences.bridgesDescription",
+ "Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another."
+ ),
+ useBridge: getString("torPreferences.useBridge", "Use a bridge"),
+ selectBridge: getString(
+ "torsettings.useBridges.default",
+ "Select a bridge"
+ ),
+ requestBridgeFromTorProject: getString(
+ "torsettings.useBridges.bridgeDB",
+ "Request a bridge from torproject.org"
+ ),
+ requestNewBridge: getString(
+ "torPreferences.requestNewBridge",
+ "Request a New Bridge\u2026"
+ ),
+ provideBridge: getString(
+ "torPreferences.provideBridge",
+ "Provide a bridge"
+ ),
+ provideBridgeDirections: getString(
+ "torsettings.useBridges.label",
+ "Enter bridge information from a trusted source."
+ ),
+ provideBridgePlaceholder: getString(
+ "torsettings.useBridges.placeholder",
+ "type address:port (one per line)"
+ ),
+ advancedHeading: getString("torPreferences.advanced", "Advanced"),
+ advancedDescription: getString(
+ "torPreferences.advancedDescription",
+ "Configure how Tor Browser connects to the internet."
+ ),
+ useLocalProxy: getString("torsettings.useProxy.checkbox", "I use a proxy to connect to the Internet"),
+ proxyType: getString("torsettings.useProxy.type", "Proxy Type"),
+ proxyTypeSOCKS4: getString("torsettings.useProxy.type.socks4", "SOCKS4"),
+ proxyTypeSOCKS5: getString("torsettings.useProxy.type.socks5", "SOCKS5"),
+ proxyTypeHTTP: getString("torsettings.useProxy.type.http", "HTTP/HTTPS"),
+ proxyAddress: getString("torsettings.useProxy.address", "Address"),
+ proxyAddressPlaceholder: getString(
+ "torsettings.useProxy.address.placeholder",
+ "IP address or hostname"
+ ),
+ proxyPort: getString("torsettings.useProxy.port", "Port"),
+ proxyUsername: getString("torsettings.useProxy.username", "Username"),
+ proxyPassword: getString("torsettings.useProxy.password", "Password"),
+ proxyUsernamePasswordPlaceholder: getString(
+ "torsettings.optional",
+ "Optional"
+ ),
+ useFirewall: getString(
+ "torsettings.firewall.checkbox",
+ "This computer goes through a firewall that only allows connections to certain ports"
+ ),
+ allowedPorts: getString(
+ "torsettings.firewall.allowedPorts",
+ "Allowed Ports"
+ ),
+ allowedPortsPlaceholder: getString(
+ "torPreferences.firewallPortsPlaceholder",
+ "Comma-seperated values"
+ ),
+ requestBridgeDialogTitle: getString(
+ "torPreferences.requestBridgeDialogTitle",
+ "Request Bridge"
+ ),
+ submitCaptcha: getString(
+ "torsettings.useBridges.captchaSubmit",
+ "Submit"
+ ),
+ contactingBridgeDB: getString(
+ "torPreferences.requestBridgeDialogWaitPrompt",
+ "Contacting BridgeDB. Please Wait."
+ ),
+ solveTheCaptcha: getString(
+ "torPreferences.requestBridgeDialogSolvePrompt",
+ "Solve the CAPTCHA to request a bridge."
+ ),
+ captchaTextboxPlaceholder: getString(
+ "torsettings.useBridges.captchaSolution.placeholder",
+ "Enter the characters from the image"
+ ),
+ incorrectCaptcha: getString(
+ "torPreferences.requestBridgeErrorBadSolution",
+ "The solution is not correct. Please try again."
+ ),
+ showTorDaemonLogs: getString(
+ "torPreferences.viewTorLogs",
+ "View the Tor logs."
+ ),
+ showLogs: getString("torPreferences.viewLogs", "View Logs\u2026"),
+ torLogDialogTitle: getString(
+ "torPreferences.torLogsDialogTitle",
+ "Tor Logs"
+ ),
+ copyLog: getString("torsettings.copyLog", "Copy Tor Log to Clipboard"),
+
+ learnMoreTorBrowserURL: `https://tb-manual.torproject.org/${getLocale()}/about/`,
+ learnMoreBridgesURL: `https://tb-manual.torproject.org/${getLocale()}/bridges/`,
+ learnMoreNetworkSettingsURL: `about:blank`,
+ };
+
+ return retval;
+ })() /* Tor Network Settings Strings */,
+
+ /*
+ Tor Onion Services Strings, e.g., for the authentication prompt.
+ */
+ onionServices: (function() {
+ let tsb = new TorPropertyStringBundle(
+ "chrome://torbutton/locale/torbutton.properties",
+ "onionServices."
+ );
+ let getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ const kProblemLoadingSiteFallback = "Problem Loading Onionsite";
+ const kLongDescFallback = "Details: %S";
+
+ let retval = {
+ learnMore: getString("learnMore", "Learn more"),
+ learnMoreURL: `https://support.torproject.org/${getLocale()}/onionservices/client-auth/`,
+ errorPage: {
+ browser: getString("errorPage.browser", "Browser"),
+ network: getString("errorPage.network", "Network"),
+ onionSite: getString("errorPage.onionSite", "Onionsite"),
+ },
+ descNotFound: { // Tor SOCKS error 0xF0
+ pageTitle: getString("descNotFound.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("descNotFound.header", "Onionsite Not Found"),
+ longDescription: getString("descNotFound.longDescription", kLongDescFallback),
+ },
+ descInvalid: { // Tor SOCKS error 0xF1
+ pageTitle: getString("descInvalid.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("descInvalid.header", "Onionsite Cannot Be Reached"),
+ longDescription: getString("descInvalid.longDescription", kLongDescFallback),
+ },
+ introFailed: { // Tor SOCKS error 0xF2
+ pageTitle: getString("introFailed.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("introFailed.header", "Onionsite Has Disconnected"),
+ longDescription: getString("introFailed.longDescription", kLongDescFallback),
+ },
+ rendezvousFailed: { // Tor SOCKS error 0xF3
+ pageTitle: getString("rendezvousFailed.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("rendezvousFailed.header", "Unable to Connect to Onionsite"),
+ longDescription: getString("rendezvousFailed.longDescription", kLongDescFallback),
+ },
+ clientAuthMissing: { // Tor SOCKS error 0xF4
+ pageTitle: getString("clientAuthMissing.pageTitle", "Authorization Required"),
+ header: getString("clientAuthMissing.header", "Onionsite Requires Authentication"),
+ longDescription: getString("clientAuthMissing.longDescription", kLongDescFallback),
+ },
+ clientAuthIncorrect: { // Tor SOCKS error 0xF5
+ pageTitle: getString("clientAuthIncorrect.pageTitle", "Authorization Failed"),
+ header: getString("clientAuthIncorrect.header", "Onionsite Authentication Failed"),
+ longDescription: getString("clientAuthIncorrect.longDescription", kLongDescFallback),
+ },
+ badAddress: { // Tor SOCKS error 0xF6
+ pageTitle: getString("badAddress.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("badAddress.header", "Invalid Onionsite Address"),
+ longDescription: getString("badAddress.longDescription", kLongDescFallback),
+ },
+ introTimedOut: { // Tor SOCKS error 0xF7
+ pageTitle: getString("introTimedOut.pageTitle", kProblemLoadingSiteFallback),
+ header: getString("introTimedOut.header", "Onionsite Circuit Creation Timed Out"),
+ longDescription: getString("introTimedOut.longDescription", kLongDescFallback),
+ },
+ authPrompt: {
+ description:
+ getString("authPrompt.description2", "%S is requesting that you authenticate."),
+ keyPlaceholder: getString("authPrompt.keyPlaceholder", "Enter your key"),
+ done: getString("authPrompt.done", "Done"),
+ doneAccessKey: getString("authPrompt.doneAccessKey", "d"),
+ invalidKey: getString("authPrompt.invalidKey", "Invalid key"),
+ failedToSetKey:
+ getString("authPrompt.failedToSetKey", "Failed to set key"),
+ },
+ authPreferences: {
+ header: getString("authPreferences.header", "Onion Services Authentication"),
+ overview: getString("authPreferences.overview", "Some onion services require that you identify yourself with a key"),
+ savedKeys: getString("authPreferences.savedKeys", "Saved Keys"),
+ dialogTitle: getString("authPreferences.dialogTitle", "Onion Services Keys"),
+ dialogIntro: getString("authPreferences.dialogIntro", "Keys for the following onionsites are stored on your computer"),
+ onionSite: getString("authPreferences.onionSite", "Onionsite"),
+ onionKey: getString("authPreferences.onionKey", "Key"),
+ remove: getString("authPreferences.remove", "Remove"),
+ removeAll: getString("authPreferences.removeAll", "Remove All"),
+ failedToGetKeys: getString("authPreferences.failedToGetKeys", "Failed to get keys"),
+ failedToRemoveKey: getString("authPreferences.failedToRemoveKey", "Failed to remove key"),
+ },
+ };
+
+ return retval;
+ })() /* Tor Onion Services Strings */,
+
+ /*
+ OnionLocation
+ */
+ onionLocation: (function() {
+ const tsb = new TorPropertyStringBundle(
+ ["chrome://torbutton/locale/torbutton.properties"],
+ "onionLocation."
+ );
+ const getString = function(key, fallback) {
+ return tsb.getString(key, fallback);
+ };
+
+ const retval = {
+ alwaysPrioritize: getString(
+ "alwaysPrioritize",
+ "Always Prioritize Onionsites"
+ ),
+ alwaysPrioritizeAccessKey: getString("alwaysPrioritizeAccessKey", "a"),
+ notNow: getString("notNow", "Not Now"),
+ notNowAccessKey: getString("notNowAccessKey", "n"),
+ description: getString(
+ "description",
+ "Website publishers can protect users by adding a security layer. This prevents eavesdroppers from knowing that you are the one visiting that website."
+ ),
+ tryThis: getString("tryThis", "Try this: Onionsite"),
+ onionAvailable: getString("onionAvailable", "Onionsite available"),
+ learnMore: getString("learnMore", "Learn more"),
+ learnMoreURL: `https://tb-manual.torproject.org/${getLocale()}/onion-services/`,
+ always: getString("always", "Always"),
+ askEverytime: getString("askEverytime", "Ask you every time"),
+ prioritizeOnionsDescription: getString(
+ "prioritizeOnionsDescription",
+ "Prioritize onionsites when they are available."
+ ),
+ onionServicesTitle: getString("onionServicesTitle", "Onion Services"),
+ };
+
+ return retval;
+ })() /* OnionLocation */,
+
+ /*
+ Tor Deamon Configuration Key Strings
+ */
+
+ // TODO: proper camel case
+ configKeys: {
+ /* Bridge Conf Settings */
+ useBridges: "UseBridges",
+ bridgeList: "Bridge",
+ /* Proxy Conf Strings */
+ socks4Proxy: "Socks4Proxy",
+ socks5Proxy: "Socks5Proxy",
+ socks5ProxyUsername: "Socks5ProxyUsername",
+ socks5ProxyPassword: "Socks5ProxyPassword",
+ httpsProxy: "HTTPSProxy",
+ httpsProxyAuthenticator: "HTTPSProxyAuthenticator",
+ /* Firewall Conf Strings */
+ reachableAddresses: "ReachableAddresses",
+
+ /* BridgeDB Strings */
+ clientTransportPlugin: "ClientTransportPlugin",
+ },
+
+ /*
+ about:config preference keys
+ */
+
+ preferenceKeys: {
+ defaultBridgeType: "extensions.torlauncher.default_bridge_type",
+ recommendedBridgeType:
+ "extensions.torlauncher.default_bridge_recommended_type",
+ },
+
+ /*
+ about:config preference branches
+ */
+ preferenceBranches: {
+ defaultBridge: "extensions.torlauncher.default_bridge.",
+ bridgeDBBridges: "extensions.torlauncher.bridgedb_bridge.",
+ },
+};
diff --git a/browser/modules/moz.build b/browser/modules/moz.build
index b069f1b641f7..3774c12f4ef0 100644
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -152,6 +152,7 @@ EXTRA_JS_MODULES += [
"TabsList.jsm",
"TabUnloader.jsm",
"ThemeVariableMap.jsm",
+ "TorStrings.jsm",
"TransientPrefs.jsm",
"webrtcUI.jsm",
"ZoomUI.jsm",
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 12974: Disable NTLM and Negotiate HTTP Auth
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 678c05bf17db3e57bd2427d5cffa9fffddea3a41
Author: Mike Perry <mikeperry-git(a)torproject.org>
Date: Wed Aug 27 15:19:10 2014 -0700
Bug 12974: Disable NTLM and Negotiate HTTP Auth
This is technically an embargoed Mozilla bug, so I probably shouldn't provide
too many details.
Suffice to say that NTLM and Negotiate auth are bad for Tor users, and I doubt
very many (or any of them) actually need it.
The Mozilla bug is https://bugzilla.mozilla.org/show_bug.cgi?id=1046421
---
extensions/auth/nsHttpNegotiateAuth.cpp | 4 ++++
netwerk/protocol/http/nsHttpNTLMAuth.cpp | 3 +++
2 files changed, 7 insertions(+)
diff --git a/extensions/auth/nsHttpNegotiateAuth.cpp b/extensions/auth/nsHttpNegotiateAuth.cpp
index 00d089163156..e83347188ff2 100644
--- a/extensions/auth/nsHttpNegotiateAuth.cpp
+++ b/extensions/auth/nsHttpNegotiateAuth.cpp
@@ -154,6 +154,10 @@ nsHttpNegotiateAuth::ChallengeReceived(nsIHttpAuthenticableChannel* authChannel,
nsIAuthModule* rawModule = (nsIAuthModule*)*continuationState;
*identityInvalid = false;
+
+ /* Always fail Negotiate auth for Tor Browser. We don't need it. */
+ return NS_ERROR_ABORT;
+
if (rawModule) {
return NS_OK;
}
diff --git a/netwerk/protocol/http/nsHttpNTLMAuth.cpp b/netwerk/protocol/http/nsHttpNTLMAuth.cpp
index 0a30de051014..891aaadfd758 100644
--- a/netwerk/protocol/http/nsHttpNTLMAuth.cpp
+++ b/netwerk/protocol/http/nsHttpNTLMAuth.cpp
@@ -168,6 +168,9 @@ nsHttpNTLMAuth::ChallengeReceived(nsIHttpAuthenticableChannel* channel,
*identityInvalid = false;
+ /* Always fail Negotiate auth for Tor Browser. We don't need it. */
+ return NS_ERROR_ABORT;
+
// Start a new auth sequence if the challenge is exactly "NTLM".
// If native NTLM auth apis are available and enabled through prefs,
// try to use them.
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 16439: Remove screencasting code
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 392252e6cf26cbd2d512a06acd697290e63024ec
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Jun 24 11:01:11 2015 -0400
Bug 16439: Remove screencasting code
We avoid including the screencasting code on mobile (it got ripped out
for desktop in bug 1393582) by simply excluding the related JS modules
from Tor Browser.
---
toolkit/modules/moz.build | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
index 435e36552e94..92dffe2ffe01 100644
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -263,10 +263,11 @@ if "Android" != CONFIG["OS_TARGET"]:
]
else:
DEFINES["ANDROID"] = True
- EXTRA_JS_MODULES += [
- "secondscreen/RokuApp.jsm",
- "secondscreen/SimpleServiceDiscovery.jsm",
- ]
+ if not CONFIG["TOR_BROWSER_VERSION"]:
+ EXTRA_JS_MODULES += [
+ "secondscreen/RokuApp.jsm",
+ "secondscreen/SimpleServiceDiscovery.jsm",
+ ]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 14631: Improve profile access error messages.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 3a855e0b3ead03368cceeb7a813d2b56c16d3e2b
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Feb 24 13:50:23 2015 -0500
Bug 14631: Improve profile access error messages.
Instead of always reporting that the profile is locked, display specific
messages for "access denied" and "read-only file system".
To allow for localization, get profile-related error strings from Torbutton.
Use app display name ("Tor Browser") in profile-related error alerts.
---
.../mozapps/profile/profileSelection.properties | 5 +
toolkit/profile/nsToolkitProfileService.cpp | 57 +++++++-
toolkit/profile/nsToolkitProfileService.h | 13 +-
toolkit/xre/nsAppRunner.cpp | 157 ++++++++++++++++++---
4 files changed, 208 insertions(+), 24 deletions(-)
diff --git a/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
index d326083202b2..aa38bda24347 100644
--- a/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
+++ b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
@@ -12,6 +12,11 @@ restartMessageUnlocker=%S is already running, but is not responding. The old %S
restartMessageNoUnlockerMac=A copy of %S is already open. Only one copy of %S can be open at a time.
restartMessageUnlockerMac=A copy of %S is already open. The running copy of %S will quit in order to open this one.
+# LOCALIZATION NOTE (profileProblemTitle, profileReadOnly, profileReadOnlyMac, profileAccessDenied): Messages displayed when the browser profile cannot be accessed or written to. %S is the application name.
+profileProblemTitle=%S Profile Problem
+profileReadOnly=You cannot run %S from a read-only file system. Please copy %S to another location before trying to use it.
+profileReadOnlyMac=You cannot run %S from a read-only file system. Please copy %S to your Desktop or Applications folder before trying to use it.
+profileAccessDenied=%S does not have permission to access the profile. Please adjust your file system permissions and try again.
# Profile manager
# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
profileTooltip=Profile: ‘%S’ — Path: ‘%S’
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index b80291179219..90eb336cb3d2 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -1159,9 +1159,10 @@ nsToolkitProfileService::SelectStartupProfile(
}
bool wasDefault;
+ ProfileStatus profileStatus;
nsresult rv =
SelectStartupProfile(&argc, argv.get(), aIsResetting, aRootDir, aLocalDir,
- aProfile, aDidCreate, &wasDefault);
+ aProfile, aDidCreate, &wasDefault, profileStatus);
// Since we were called outside of the normal startup path complete any
// startup tasks.
@@ -1194,7 +1195,8 @@ nsToolkitProfileService::SelectStartupProfile(
nsresult nsToolkitProfileService::SelectStartupProfile(
int* aArgc, char* aArgv[], bool aIsResetting, nsIFile** aRootDir,
nsIFile** aLocalDir, nsIToolkitProfile** aProfile, bool* aDidCreate,
- bool* aWasDefaultSelection) {
+ bool* aWasDefaultSelection, ProfileStatus& aProfileStatus) {
+ aProfileStatus = PROFILE_STATUS_OK;
if (mStartupProfileSelected) {
return NS_ERROR_ALREADY_INITIALIZED;
}
@@ -1288,6 +1290,13 @@ nsresult nsToolkitProfileService::SelectStartupProfile(
rv = XRE_GetFileFromPath(arg, getter_AddRefs(lf));
NS_ENSURE_SUCCESS(rv, rv);
+ aProfileStatus = CheckProfileWriteAccess(lf);
+ if (PROFILE_STATUS_OK != aProfileStatus) {
+ NS_ADDREF(*aRootDir = lf);
+ NS_ADDREF(*aLocalDir = lf);
+ return NS_ERROR_FAILURE;
+ }
+
// Make sure that the profile path exists and it's a directory.
bool exists;
rv = lf->Exists(&exists);
@@ -2081,3 +2090,47 @@ nsresult XRE_GetFileFromPath(const char* aPath, nsIFile** aResult) {
# error Platform-specific logic needed here.
#endif
}
+
+// Check for write permission to the profile directory by trying to create a
+// new file (after ensuring that no file with the same name exists).
+ProfileStatus nsToolkitProfileService::CheckProfileWriteAccess(
+ nsIFile* aProfileDir) {
+#if defined(XP_UNIX)
+ constexpr auto writeTestFileName = u".parentwritetest"_ns;
+#else
+ constexpr auto writeTestFileName = u"parent.writetest"_ns;
+#endif
+
+ nsCOMPtr<nsIFile> writeTestFile;
+ nsresult rv = aProfileDir->Clone(getter_AddRefs(writeTestFile));
+ if (NS_SUCCEEDED(rv)) rv = writeTestFile->Append(writeTestFileName);
+
+ if (NS_SUCCEEDED(rv)) {
+ bool doesExist = false;
+ rv = writeTestFile->Exists(&doesExist);
+ if (NS_SUCCEEDED(rv) && doesExist) rv = writeTestFile->Remove(true);
+ }
+
+ if (NS_SUCCEEDED(rv)) {
+ rv = writeTestFile->Create(nsIFile::NORMAL_FILE_TYPE, 0666);
+ (void)writeTestFile->Remove(true);
+ }
+
+ ProfileStatus status =
+ NS_SUCCEEDED(rv) ? PROFILE_STATUS_OK : PROFILE_STATUS_OTHER_ERROR;
+ if (NS_ERROR_FILE_ACCESS_DENIED == rv)
+ status = PROFILE_STATUS_ACCESS_DENIED;
+ else if (NS_ERROR_FILE_READ_ONLY == rv)
+ status = PROFILE_STATUS_READ_ONLY;
+
+ return status;
+}
+
+ProfileStatus nsToolkitProfileService::CheckProfileWriteAccess(
+ nsIToolkitProfile* aProfile) {
+ nsCOMPtr<nsIFile> profileDir;
+ nsresult rv = aProfile->GetRootDir(getter_AddRefs(profileDir));
+ if (NS_FAILED(rv)) return PROFILE_STATUS_OTHER_ERROR;
+
+ return CheckProfileWriteAccess(profileDir);
+}
diff --git a/toolkit/profile/nsToolkitProfileService.h b/toolkit/profile/nsToolkitProfileService.h
index 6b68c019ca52..aa92b9a27b64 100644
--- a/toolkit/profile/nsToolkitProfileService.h
+++ b/toolkit/profile/nsToolkitProfileService.h
@@ -16,6 +16,14 @@
#include "nsProfileLock.h"
#include "nsINIParser.h"
+enum ProfileStatus {
+ PROFILE_STATUS_OK,
+ PROFILE_STATUS_ACCESS_DENIED,
+ PROFILE_STATUS_READ_ONLY,
+ PROFILE_STATUS_IS_LOCKED,
+ PROFILE_STATUS_OTHER_ERROR
+};
+
class nsToolkitProfile final
: public nsIToolkitProfile,
public mozilla::LinkedListElement<RefPtr<nsToolkitProfile>> {
@@ -80,10 +88,13 @@ class nsToolkitProfileService final : public nsIToolkitProfileService {
nsresult SelectStartupProfile(int* aArgc, char* aArgv[], bool aIsResetting,
nsIFile** aRootDir, nsIFile** aLocalDir,
nsIToolkitProfile** aProfile, bool* aDidCreate,
- bool* aWasDefaultSelection);
+ bool* aWasDefaultSelection,
+ ProfileStatus& aProfileStatus);
nsresult CreateResetProfile(nsIToolkitProfile** aNewProfile);
nsresult ApplyResetProfile(nsIToolkitProfile* aOldProfile);
void CompleteStartup();
+ static ProfileStatus CheckProfileWriteAccess(nsIToolkitProfile* aProfile);
+ static ProfileStatus CheckProfileWriteAccess(nsIFile* aProfileDir);
private:
friend class nsToolkitProfile;
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index affe01689afd..1e2e01592f1a 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -2268,6 +2268,91 @@ nsresult LaunchChild(bool aBlankCommandLine, bool aTryExec) {
return NS_ERROR_LAUNCHED_CHILD_PROCESS;
}
+static nsresult GetOverrideStringBundleForLocale(nsIStringBundleService* aSBS,
+ const char* aTorbuttonURI,
+ const char* aLocale,
+ nsIStringBundle** aResult) {
+ NS_ENSURE_ARG(aSBS);
+ NS_ENSURE_ARG(aTorbuttonURI);
+ NS_ENSURE_ARG(aLocale);
+ NS_ENSURE_ARG(aResult);
+
+ const char* kFormatStr =
+ "jar:%s!/chrome/torbutton/locale/%s/torbutton.properties";
+ nsPrintfCString strBundleURL(kFormatStr, aTorbuttonURI, aLocale);
+ nsresult rv = aSBS->CreateBundle(strBundleURL.get(), aResult);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ // To ensure that we have a valid string bundle, try to retrieve a string
+ // that we know exists.
+ nsAutoString val;
+ rv = (*aResult)->GetStringFromName("profileProblemTitle", val);
+ if (!NS_SUCCEEDED(rv)) *aResult = nullptr; // No good. Discard it.
+
+ return rv;
+}
+
+static void GetOverrideStringBundle(nsIStringBundleService* aSBS,
+ nsIStringBundle** aResult) {
+ if (!aSBS || !aResult) return;
+
+ *aResult = nullptr;
+
+ // Build Torbutton file URI string by starting from GREDir.
+ RefPtr<nsXREDirProvider> dirProvider = nsXREDirProvider::GetSingleton();
+ if (!dirProvider) return;
+
+ nsCOMPtr<nsIFile> greDir = dirProvider->GetGREDir();
+ if (!greDir) return;
+
+ // Create file URI, extract as string, and append omni.ja relative path.
+ nsCOMPtr<nsIURI> uri;
+ nsAutoCString uriString;
+ if (NS_FAILED(NS_NewFileURI(getter_AddRefs(uri), greDir)) ||
+ NS_FAILED(uri->GetSpec(uriString))) {
+ return;
+ }
+
+ uriString.Append("omni.ja");
+
+ nsAutoCString userAgentLocale;
+ if (!NS_SUCCEEDED(
+ Preferences::GetCString("intl.locale.requested", userAgentLocale))) {
+ return;
+ }
+
+ nsresult rv = GetOverrideStringBundleForLocale(
+ aSBS, uriString.get(), userAgentLocale.get(), aResult);
+ if (NS_FAILED(rv)) {
+ // Try again using base locale, e.g., "en" vs. "en-US".
+ int16_t offset = userAgentLocale.FindChar('-', 1);
+ if (offset > 0) {
+ nsAutoCString shortLocale(Substring(userAgentLocale, 0, offset));
+ rv = GetOverrideStringBundleForLocale(aSBS, uriString.get(),
+ shortLocale.get(), aResult);
+ }
+ }
+}
+
+static nsresult GetFormattedString(nsIStringBundle* aOverrideBundle,
+ nsIStringBundle* aMainBundle,
+ const char* aName,
+ const nsTArray<nsString>& aParams,
+ nsAString& aResult) {
+ NS_ENSURE_ARG(aName);
+
+ nsresult rv = NS_ERROR_FAILURE;
+ if (aOverrideBundle) {
+ rv = aOverrideBundle->FormatStringFromName(aName, aParams, aResult);
+ }
+
+ // If string was not found in override bundle, use main (browser) bundle.
+ if (NS_FAILED(rv) && aMainBundle)
+ rv = aMainBundle->FormatStringFromName(aName, aParams, aResult);
+
+ return rv;
+}
+
static const char kProfileProperties[] =
"chrome://mozapps/locale/profile/profileSelection.properties";
@@ -2333,7 +2418,7 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
sbs->CreateBundle(kProfileProperties, getter_AddRefs(sb));
NS_ENSURE_TRUE_LOG(sbs, NS_ERROR_FAILURE);
- NS_ConvertUTF8toUTF16 appName(gAppData->name);
+ NS_ConvertUTF8toUTF16 appName(MOZ_APP_DISPLAYNAME);
AutoTArray<nsString, 2> params = {appName, appName};
// profileMissing
@@ -2355,11 +2440,12 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
}
}
-static ReturnAbortOnError ProfileLockedDialog(nsIFile* aProfileDir,
- nsIFile* aProfileLocalDir,
- nsIProfileUnlocker* aUnlocker,
- nsINativeAppSupport* aNative,
- nsIProfileLock** aResult) {
+static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
+ nsIFile* aProfileLocalDir,
+ ProfileStatus aStatus,
+ nsIProfileUnlocker* aUnlocker,
+ nsINativeAppSupport* aNative,
+ nsIProfileLock** aResult) {
nsresult rv;
bool exists;
@@ -2387,24 +2473,39 @@ static ReturnAbortOnError ProfileLockedDialog(nsIFile* aProfileDir,
sbs->CreateBundle(kProfileProperties, getter_AddRefs(sb));
NS_ENSURE_TRUE_LOG(sbs, NS_ERROR_FAILURE);
- NS_ConvertUTF8toUTF16 appName(gAppData->name);
+ nsCOMPtr<nsIStringBundle> overrideSB;
+ GetOverrideStringBundle(sbs, getter_AddRefs(overrideSB));
+
+ NS_ConvertUTF8toUTF16 appName(MOZ_APP_DISPLAYNAME);
AutoTArray<nsString, 3> params = {appName, appName, appName};
nsAutoString killMessage;
#ifndef XP_MACOSX
- rv = sb->FormatStringFromName(
- aUnlocker ? "restartMessageUnlocker" : "restartMessageNoUnlocker2",
- params, killMessage);
+ static const char kRestartUnlocker[] = "restartMessageUnlocker";
+ static const char kRestartNoUnlocker[] = "restartMessageNoUnlocker2";
+ static const char kReadOnly[] = "profileReadOnly";
#else
- rv = sb->FormatStringFromName(
- aUnlocker ? "restartMessageUnlockerMac" : "restartMessageNoUnlockerMac",
- params, killMessage);
-#endif
+ static const char kRestartUnlocker[] = "restartMessageUnlockerMac";
+ static const char kRestartNoUnlocker[] = "restartMessageNoUnlockerMac";
+ static const char kReadOnly[] = "profileReadOnlyMac";
+#endif
+ static const char kAccessDenied[] = "profileAccessDenied";
+
+ const char* errorKey = aUnlocker ? kRestartUnlocker : kRestartNoUnlocker;
+ if (PROFILE_STATUS_READ_ONLY == aStatus)
+ errorKey = kReadOnly;
+ else if (PROFILE_STATUS_ACCESS_DENIED == aStatus)
+ errorKey = kAccessDenied;
+ rv = GetFormattedString(overrideSB, sb, errorKey, params, killMessage);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
+ const char* titleKey = ((PROFILE_STATUS_READ_ONLY == aStatus) ||
+ (PROFILE_STATUS_ACCESS_DENIED == aStatus))
+ ? "profileProblemTitle"
+ : "restartTitle";
params.SetLength(1);
nsAutoString killTitle;
- rv = sb->FormatStringFromName("restartTitle", params, killTitle);
+ rv = sb->FormatStringFromName(titleKey, params, killTitle);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
#ifdef MOZ_BACKGROUNDTASKS
@@ -2564,6 +2665,13 @@ static nsCOMPtr<nsIToolkitProfile> gResetOldProfile;
static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
nsIFile* aLocalDir, nsIToolkitProfile* aProfile,
nsIProfileLock** aResult) {
+ ProfileStatus status =
+ (aProfile ? nsToolkitProfileService::CheckProfileWriteAccess(aProfile)
+ : nsToolkitProfileService::CheckProfileWriteAccess(aRootDir));
+ if (PROFILE_STATUS_OK != status)
+ return ProfileErrorDialog(aRootDir, aLocalDir, status, nullptr, aNative,
+ aResult);
+
// If you close Firefox and very quickly reopen it, the old Firefox may
// still be closing down. Rather than immediately showing the
// "Firefox is running but is not responding" message, we spend a few
@@ -2590,7 +2698,8 @@ static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
} while (TimeStamp::Now() - start <
TimeDuration::FromSeconds(kLockRetrySeconds));
- return ProfileLockedDialog(aRootDir, aLocalDir, unlocker, aNative, aResult);
+ return ProfileErrorDialog(aRootDir, aLocalDir, PROFILE_STATUS_IS_LOCKED,
+ unlocker, aNative, aResult);
}
// Pick a profile. We need to end up with a profile root dir, local dir and
@@ -2605,7 +2714,8 @@ static nsresult LockProfile(nsINativeAppSupport* aNative, nsIFile* aRootDir,
static nsresult SelectProfile(nsToolkitProfileService* aProfileSvc,
nsINativeAppSupport* aNative, nsIFile** aRootDir,
nsIFile** aLocalDir, nsIToolkitProfile** aProfile,
- bool* aWasDefaultSelection) {
+ bool* aWasDefaultSelection,
+ nsIProfileLock** aResult) {
StartupTimeline::Record(StartupTimeline::SELECT_PROFILE);
nsresult rv;
@@ -2651,9 +2761,14 @@ static nsresult SelectProfile(nsToolkitProfileService* aProfileSvc,
// Ask the profile manager to select the profile directories to use.
bool didCreate = false;
- rv = aProfileSvc->SelectStartupProfile(&gArgc, gArgv, gDoProfileReset,
- aRootDir, aLocalDir, aProfile,
- &didCreate, aWasDefaultSelection);
+ ProfileStatus profileStatus = PROFILE_STATUS_OK;
+ rv = aProfileSvc->SelectStartupProfile(
+ &gArgc, gArgv, gDoProfileReset, aRootDir, aLocalDir, aProfile, &didCreate,
+ aWasDefaultSelection, profileStatus);
+ if (PROFILE_STATUS_OK != profileStatus) {
+ return ProfileErrorDialog(*aRootDir, *aLocalDir, profileStatus, nullptr,
+ aNative, aResult);
+ }
if (rv == NS_ERROR_SHOW_PROFILE_MANAGER) {
return ShowProfileManager(aProfileSvc, aNative);
@@ -4558,7 +4673,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
nsCOMPtr<nsIToolkitProfile> profile;
rv = SelectProfile(mProfileSvc, mNativeApp, getter_AddRefs(mProfD),
getter_AddRefs(mProfLD), getter_AddRefs(profile),
- &wasDefaultSelection);
+ &wasDefaultSelection, getter_AddRefs(mProfileLock));
if (rv == NS_ERROR_LAUNCHED_CHILD_PROCESS || rv == NS_ERROR_ABORT) {
*aExitFlag = true;
return 0;
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 9173: Change the default Firefox profile directory to be TBB-relative.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 17bbdb8fc4cb0601c454c6d4087a6e5045ee752f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Oct 18 15:20:06 2013 -0400
Bug 9173: Change the default Firefox profile directory to be TBB-relative.
This should eliminate our need to rely on a wrapper script that
sets /Users/arthur and launches Firefox with -profile.
---
toolkit/profile/nsToolkitProfileService.cpp | 5 +-
toolkit/xre/nsAppRunner.cpp | 2 +-
toolkit/xre/nsConsoleWriter.cpp | 2 +-
toolkit/xre/nsXREDirProvider.cpp | 149 ++++++----------------------
toolkit/xre/nsXREDirProvider.h | 16 +--
xpcom/io/nsAppFileLocationProvider.cpp | 97 +++++++-----------
6 files changed, 84 insertions(+), 187 deletions(-)
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
index 7391b79d4102..b80291179219 100644
--- a/toolkit/profile/nsToolkitProfileService.cpp
+++ b/toolkit/profile/nsToolkitProfileService.cpp
@@ -724,10 +724,11 @@ nsresult nsToolkitProfileService::Init() {
NS_ASSERTION(gDirServiceProvider, "No dirserviceprovider!");
nsresult rv;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(mAppData));
+ rv = gDirServiceProvider->GetUserAppDataDirectory(getter_AddRefs(mAppData));
NS_ENSURE_SUCCESS(rv, rv);
- rv = nsXREDirProvider::GetUserLocalDataDirectory(getter_AddRefs(mTempData));
+ rv =
+ gDirServiceProvider->GetUserLocalDataDirectory(getter_AddRefs(mTempData));
NS_ENSURE_SUCCESS(rv, rv);
rv = mAppData->Clone(getter_AddRefs(mProfileDBFile));
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 3a9928cee452..affe01689afd 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -3705,7 +3705,7 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
if ((mAppData->flags & NS_XRE_ENABLE_CRASH_REPORTER) &&
NS_SUCCEEDED(CrashReporter::SetExceptionHandler(xreBinDirectory))) {
nsCOMPtr<nsIFile> file;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(file));
+ rv = mDirProvider.GetUserAppDataDirectory(getter_AddRefs(file));
if (NS_SUCCEEDED(rv)) {
CrashReporter::SetUserAppDataDirectory(file);
}
diff --git a/toolkit/xre/nsConsoleWriter.cpp b/toolkit/xre/nsConsoleWriter.cpp
index d89ea3bde31d..4a9a6d28034a 100644
--- a/toolkit/xre/nsConsoleWriter.cpp
+++ b/toolkit/xre/nsConsoleWriter.cpp
@@ -29,7 +29,7 @@ void WriteConsoleLog() {
} else {
if (!gLogConsoleErrors) return;
- rv = nsXREDirProvider::GetUserAppDataDirectory(getter_AddRefs(lfile));
+ rv = gDirServiceProvider->GetUserAppDataDirectory(getter_AddRefs(lfile));
if (NS_FAILED(rv)) return;
lfile->AppendNative("console.log"_ns);
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index 1fae1b0c8feb..5cc6f0c86f27 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -32,6 +32,7 @@
#include "nsArrayEnumerator.h"
#include "nsEnumeratorUtils.h"
#include "nsReadableUtils.h"
+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR
#include "SpecialSystemDirectory.h"
@@ -255,9 +256,6 @@ nsresult nsXREDirProvider::GetUserProfilesRootDir(nsIFile** aResult) {
nsresult rv = GetUserDataDirectory(getter_AddRefs(file), false);
if (NS_SUCCEEDED(rv)) {
-#if !defined(XP_UNIX) || defined(XP_MACOSX)
- rv = file->AppendNative("Profiles"_ns);
-#endif
// We must create the profile directory here if it does not exist.
nsresult tmp = EnsureDirectoryExists(file);
if (NS_FAILED(tmp)) {
@@ -273,9 +271,6 @@ nsresult nsXREDirProvider::GetUserProfilesLocalDir(nsIFile** aResult) {
nsresult rv = GetUserDataDirectory(getter_AddRefs(file), true);
if (NS_SUCCEEDED(rv)) {
-#if !defined(XP_UNIX) || defined(XP_MACOSX)
- rv = file->AppendNative("Profiles"_ns);
-#endif
// We must create the profile directory here if it does not exist.
nsresult tmp = EnsureDirectoryExists(file);
if (NS_FAILED(tmp)) {
@@ -1379,7 +1374,7 @@ nsresult nsXREDirProvider::SetUserDataProfileDirectory(nsCOMPtr<nsIFile>& aFile,
nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
bool aLocal) {
// Copied from nsAppFileLocationProvider (more or less)
- nsresult rv;
+ NS_ENSURE_ARG_POINTER(aFile);
nsCOMPtr<nsIFile> localDir;
if (aLocal && gDataDirHomeLocal) {
@@ -1389,80 +1384,39 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
return gDataDirHome->Clone(aFile);
}
-#if defined(XP_MACOSX)
- FSRef fsRef;
- OSType folderType;
- if (aLocal) {
- folderType = kCachedDataFolderType;
- } else {
-# ifdef MOZ_THUNDERBIRD
- folderType = kDomainLibraryFolderType;
-# else
- folderType = kApplicationSupportFolderType;
-# endif
- }
- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef);
- NS_ENSURE_FALSE(err, NS_ERROR_FAILURE);
-
- rv = NS_NewNativeLocalFile(""_ns, true, getter_AddRefs(localDir));
+ nsresult rv = GetAppDir()->Clone(getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsILocalFileMac> dirFileMac = do_QueryInterface(localDir);
- NS_ENSURE_TRUE(dirFileMac, NS_ERROR_UNEXPECTED);
-
- rv = dirFileMac->InitWithFSRef(&fsRef);
- NS_ENSURE_SUCCESS(rv, rv);
+ int levelsToRemove = 1; // In FF21+, appDir points to browser subdirectory.
+#if defined(XP_MACOSX)
+ levelsToRemove += 2;
+#endif
+ while (localDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ rv = localDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
- localDir = dirFileMac;
-#elif defined(XP_IOS)
- nsAutoCString userDir;
- if (GetUIKitDirectory(aLocal, userDir)) {
- rv = NS_NewNativeLocalFile(userDir, true, getter_AddRefs(localDir));
- } else {
- rv = NS_ERROR_FAILURE;
- }
- NS_ENSURE_SUCCESS(rv, rv);
-#elif defined(XP_WIN)
- nsString path;
- if (aLocal) {
- rv = GetShellFolderPath(FOLDERID_LocalAppData, path);
- if (NS_FAILED(rv)) rv = GetRegWindowsAppDataFolder(aLocal, path);
- }
- if (!aLocal || NS_FAILED(rv)) {
- rv = GetShellFolderPath(FOLDERID_RoamingAppData, path);
- if (NS_FAILED(rv)) {
- if (!aLocal) rv = GetRegWindowsAppDataFolder(aLocal, path);
- }
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = localDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ localDir = parentDir;
+ if (didRemove) --levelsToRemove;
}
- NS_ENSURE_SUCCESS(rv, rv);
- rv = NS_NewLocalFile(path, true, getter_AddRefs(localDir));
-#elif defined(XP_UNIX)
- const char* homeDir = getenv("HOME");
- if (!homeDir || !*homeDir) return NS_ERROR_FAILURE;
+ if (!localDir) return NS_ERROR_FAILURE;
-# ifdef ANDROID /* We want (ProfD == ProfLD) on Android. */
- aLocal = false;
-# endif
+ rv = localDir->AppendRelativeNativePath("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
+ "Data" XPCOM_FILE_PATH_SEPARATOR
+ "Browser"_ns);
+ NS_ENSURE_SUCCESS(rv, rv);
if (aLocal) {
- // If $XDG_CACHE_HOME is defined use it, otherwise use $HOME/.cache.
- const char* cacheHome = getenv("XDG_CACHE_HOME");
- if (cacheHome && *cacheHome) {
- rv = NS_NewNativeLocalFile(nsDependentCString(cacheHome), true,
- getter_AddRefs(localDir));
- } else {
- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
- getter_AddRefs(localDir));
- if (NS_SUCCEEDED(rv)) rv = localDir->AppendNative(".cache"_ns);
- }
- } else {
- rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
- getter_AddRefs(localDir));
+ rv = localDir->AppendNative("Caches"_ns);
+ NS_ENSURE_SUCCESS(rv, rv);
}
-#else
-# error "Don't know how to get product dir on your platform"
-#endif
NS_IF_ADDREF(*aFile = localDir);
return rv;
@@ -1645,39 +1599,23 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
}
nsAutoCString profile;
- nsAutoCString appName;
- nsAutoCString vendor;
if (gAppData->profile) {
profile = gAppData->profile;
- } else {
- appName = gAppData->name;
- vendor = gAppData->vendor;
}
- nsresult rv = NS_OK;
+ nsresult rv = NS_ERROR_FAILURE;
#if defined(XP_MACOSX)
if (!profile.IsEmpty()) {
rv = AppendProfileString(aFile, profile.get());
- } else {
- // Note that MacOS ignores the vendor when creating the profile hierarchy -
- // all application preferences directories live alongside one another in
- // ~/Library/Application Support/
- rv = aFile->AppendNative(appName);
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#elif defined(XP_WIN)
if (!profile.IsEmpty()) {
rv = AppendProfileString(aFile, profile.get());
- } else {
- if (!vendor.IsEmpty()) {
- rv = aFile->AppendNative(vendor);
- NS_ENSURE_SUCCESS(rv, rv);
- }
- rv = aFile->AppendNative(appName);
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#elif defined(ANDROID)
// The directory used for storing profiles
@@ -1687,11 +1625,6 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
rv = aFile->AppendNative(nsDependentCString("mozilla"));
NS_ENSURE_SUCCESS(rv, rv);
#elif defined(XP_UNIX)
- nsAutoCString folder;
- // Make it hidden (by starting with "."), except when local (the
- // profile is already under ~/.cache or XDG_CACHE_HOME).
- if (!aLocal) folder.Assign('.');
-
if (!profile.IsEmpty()) {
// Skip any leading path characters
const char* profileStart = profile.get();
@@ -1699,32 +1632,16 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
// On the off chance that someone wanted their folder to be hidden don't
// let it become ".."
- if (*profileStart == '.' && !aLocal) profileStart++;
+ if (*profileStart == '.') profileStart++;
+ // Make it hidden (by starting with ".").
+ nsAutoCString folder(".");
folder.Append(profileStart);
ToLowerCase(folder);
rv = AppendProfileString(aFile, folder.BeginReading());
- } else {
- if (!vendor.IsEmpty()) {
- folder.Append(vendor);
- ToLowerCase(folder);
-
- rv = aFile->AppendNative(folder);
- NS_ENSURE_SUCCESS(rv, rv);
-
- folder.Truncate();
- }
-
- // This can be the case in tests.
- if (!appName.IsEmpty()) {
- folder.Append(appName);
- ToLowerCase(folder);
-
- rv = aFile->AppendNative(folder);
- }
+ NS_ENSURE_SUCCESS(rv, rv);
}
- NS_ENSURE_SUCCESS(rv, rv);
#else
# error "Don't know how to get profile path on your platform"
diff --git a/toolkit/xre/nsXREDirProvider.h b/toolkit/xre/nsXREDirProvider.h
index e28a4fef5bc6..acea2e689821 100644
--- a/toolkit/xre/nsXREDirProvider.h
+++ b/toolkit/xre/nsXREDirProvider.h
@@ -63,15 +63,19 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
void DoShutdown();
- static nsresult GetUserAppDataDirectory(nsIFile** aFile) {
+ nsresult GetUserAppDataDirectory(nsIFile** aFile) {
return GetUserDataDirectory(aFile, false);
}
- static nsresult GetUserLocalDataDirectory(nsIFile** aFile) {
+ nsresult GetUserLocalDataDirectory(nsIFile** aFile) {
return GetUserDataDirectory(aFile, true);
}
// GetUserDataDirectory gets the profile path from gAppData.
- static nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal);
+
+ // This function now calls GetAppDir(), so it cannot be static anymore.
+ // The same happens with all the functions (in)directly calling this one (the
+ // rest of Get*Directory functions in this file)
+ nsresult GetUserDataDirectory(nsIFile** aFile, bool aLocal);
/* make sure you clone it, if you need to do stuff to it */
nsIFile* GetGREDir() { return mGREDir; }
@@ -112,9 +116,9 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
protected:
nsresult GetFilesInternal(const char* aProperty,
nsISimpleEnumerator** aResult);
- static nsresult GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal);
- static nsresult GetSysUserExtensionsDirectory(nsIFile** aFile);
- static nsresult GetSysUserExtensionsDevDirectory(nsIFile** aFile);
+ nsresult GetUserDataDirectoryHome(nsIFile** aFile, bool aLocal);
+ nsresult GetSysUserExtensionsDirectory(nsIFile** aFile);
+ nsresult GetSysUserExtensionsDevDirectory(nsIFile** aFile);
#if defined(XP_UNIX) || defined(XP_MACOSX)
static nsresult GetSystemExtensionsDirectory(nsIFile** aFile);
#endif
diff --git a/xpcom/io/nsAppFileLocationProvider.cpp b/xpcom/io/nsAppFileLocationProvider.cpp
index ef974f99048f..2bbcee92aedb 100644
--- a/xpcom/io/nsAppFileLocationProvider.cpp
+++ b/xpcom/io/nsAppFileLocationProvider.cpp
@@ -15,6 +15,7 @@
#include "nsSimpleEnumerator.h"
#include "prenv.h"
#include "nsCRT.h"
+#include "nsXPCOMPrivate.h" // for XPCOM_FILE_PATH_SEPARATOR
#if defined(MOZ_WIDGET_COCOA)
# include <Carbon/Carbon.h>
# include "nsILocalFileMac.h"
@@ -233,9 +234,8 @@ nsresult nsAppFileLocationProvider::CloneMozBinDirectory(nsIFile** aLocalFile) {
// GetProductDirectory - Gets the directory which contains the application data
// folder
//
-// UNIX : ~/.mozilla/
-// WIN : <Application Data folder on user's machine>\Mozilla
-// Mac : :Documents:Mozilla:
+// UNIX and WIN : <App Folder>/TorBrowser/Data/Browser
+// Mac : <App Folder>/../../TorBrowser/Data/Browser
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool aLocal) {
@@ -247,49 +247,45 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool exists;
nsCOMPtr<nsIFile> localDir;
-#if defined(MOZ_WIDGET_COCOA)
- FSRef fsRef;
- OSType folderType =
- aLocal ? (OSType)kCachedDataFolderType : (OSType)kDomainLibraryFolderType;
- OSErr err = ::FSFindFolder(kUserDomain, folderType, kCreateFolder, &fsRef);
- if (err) {
- return NS_ERROR_FAILURE;
+ rv = CloneMozBinDirectory(getter_AddRefs(localDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ int levelsToRemove = 1; // In FF21+, bin dir points to browser subdirectory.
+#if defined(XP_MACOSX)
+ levelsToRemove += 2;
+#endif
+ while (localDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ rv = localDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
+
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = localDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ localDir = parentDir;
+
+ if (didRemove) {
+ --levelsToRemove;
+ }
}
- NS_NewLocalFile(u""_ns, true, getter_AddRefs(localDir));
+
if (!localDir) {
return NS_ERROR_FAILURE;
}
- nsCOMPtr<nsILocalFileMac> localDirMac(do_QueryInterface(localDir));
- rv = localDirMac->InitWithFSRef(&fsRef);
- if (NS_FAILED(rv)) {
- return rv;
- }
-#elif defined(XP_WIN)
- nsCOMPtr<nsIProperties> directoryService =
- do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
- if (NS_FAILED(rv)) {
- return rv;
- }
- const char* prop = aLocal ? NS_WIN_LOCAL_APPDATA_DIR : NS_WIN_APPDATA_DIR;
- rv = directoryService->Get(prop, NS_GET_IID(nsIFile),
- getter_AddRefs(localDir));
- if (NS_FAILED(rv)) {
- return rv;
- }
-#elif defined(XP_UNIX)
- rv = NS_NewNativeLocalFile(nsDependentCString(PR_GetEnv("HOME")), true,
- getter_AddRefs(localDir));
- if (NS_FAILED(rv)) {
- return rv;
- }
-#else
-# error dont_know_how_to_get_product_dir_on_your_platform
-#endif
- rv = localDir->AppendRelativeNativePath(DEFAULT_PRODUCT_DIR);
- if (NS_FAILED(rv)) {
- return rv;
+ rv = localDir->AppendRelativeNativePath("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
+ "Data" XPCOM_FILE_PATH_SEPARATOR
+ "Browser"_ns);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ if (aLocal) {
+ rv = localDir->AppendNative("Caches"_ns);
+ NS_ENSURE_SUCCESS(rv, rv);
}
+
rv = localDir->Exists(&exists);
if (NS_SUCCEEDED(rv) && !exists) {
@@ -308,10 +304,6 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
//----------------------------------------------------------------------------------------
// GetDefaultUserProfileRoot - Gets the directory which contains each user
// profile dir
-//
-// UNIX : ~/.mozilla/
-// WIN : <Application Data folder on user's machine>\Mozilla\Profiles
-// Mac : :Documents:Mozilla:Profiles:
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetDefaultUserProfileRoot(
nsIFile** aLocalFile, bool aLocal) {
@@ -327,23 +319,6 @@ nsresult nsAppFileLocationProvider::GetDefaultUserProfileRoot(
return rv;
}
-#if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN)
- // These 3 platforms share this part of the path - do them as one
- rv = localDir->AppendRelativeNativePath("Profiles"_ns);
- if (NS_FAILED(rv)) {
- return rv;
- }
-
- bool exists;
- rv = localDir->Exists(&exists);
- if (NS_SUCCEEDED(rv) && !exists) {
- rv = localDir->Create(nsIFile::DIRECTORY_TYPE, 0775);
- }
- if (NS_FAILED(rv)) {
- return rv;
- }
-#endif
-
localDir.forget(aLocalFile);
return rv;
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 13252: Do not store data in the app bundle
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit a9d5a659e6d67a84797aea4c0740ea871eb8e0bf
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Mar 18 14:20:02 2016 -0400
Bug 13252: Do not store data in the app bundle
When --enable-tor-browser-data-outside-app-dir is enabled,
all user data is stored in a directory named
TorBrowser-Data which is located next to the application directory.
Display an informative error message if the TorBrowser-Data
directory cannot be created due to an "access denied" or a
"read only volume" error.
On Mac OS, add support for the --invisible command line option which
is used by the meek-http-helper to avoid showing an icon for the
helper browser on the dock.
---
toolkit/xre/nsAppRunner.cpp | 73 +++++++++++++++---
toolkit/xre/nsXREDirProvider.cpp | 43 +++++------
toolkit/xre/nsXREDirProvider.h | 6 ++
xpcom/io/TorFileUtils.cpp | 133 +++++++++++++++++++++++++++++++++
xpcom/io/TorFileUtils.h | 32 ++++++++
xpcom/io/moz.build | 5 ++
xpcom/io/nsAppFileLocationProvider.cpp | 53 ++++++-------
7 files changed, 278 insertions(+), 67 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 1e2e01592f1a..3e691ce85f1f 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -2440,6 +2440,8 @@ static nsresult ProfileMissingDialog(nsINativeAppSupport* aNative) {
}
}
+// If aUnlocker is NULL, it is also OK for the following arguments to be NULL:
+// aProfileDir, aProfileLocalDir, aResult.
static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
nsIFile* aProfileLocalDir,
ProfileStatus aStatus,
@@ -2448,17 +2450,19 @@ static ReturnAbortOnError ProfileErrorDialog(nsIFile* aProfileDir,
nsIProfileLock** aResult) {
nsresult rv;
- bool exists;
- aProfileDir->Exists(&exists);
- if (!exists) {
- return ProfileMissingDialog(aNative);
+ if (aProfileDir) {
+ bool exists;
+ aProfileDir->Exists(&exists);
+ if (!exists) {
+ return ProfileMissingDialog(aNative);
+ }
}
ScopedXPCOMStartup xpcom;
rv = xpcom.Initialize();
NS_ENSURE_SUCCESS(rv, rv);
- mozilla::Telemetry::WriteFailedProfileLock(aProfileDir);
+ if (aProfileDir) mozilla::Telemetry::WriteFailedProfileLock(aProfileDir);
rv = xpcom.SetWindowCreator(aNative);
NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE);
@@ -2658,6 +2662,23 @@ static ReturnAbortOnError ShowProfileManager(
return LaunchChild(false, true);
}
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+static ProfileStatus CheckTorBrowserDataWriteAccess(nsIFile* aAppDir) {
+ // Check whether we can write to the directory that will contain
+ // TorBrowser-Data.
+ nsCOMPtr<nsIFile> tbDataDir;
+ RefPtr<nsXREDirProvider> dirProvider = nsXREDirProvider::GetSingleton();
+ if (!dirProvider) return PROFILE_STATUS_OTHER_ERROR;
+ nsresult rv =
+ dirProvider->GetTorBrowserUserDataDir(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, PROFILE_STATUS_OTHER_ERROR);
+ nsCOMPtr<nsIFile> tbDataDirParent;
+ rv = tbDataDir->GetParent(getter_AddRefs(tbDataDirParent));
+ NS_ENSURE_SUCCESS(rv, PROFILE_STATUS_OTHER_ERROR);
+ return nsToolkitProfileService::CheckProfileWriteAccess(tbDataDirParent);
+}
+#endif
+
static bool gDoMigration = false;
static bool gDoProfileReset = false;
static nsCOMPtr<nsIToolkitProfile> gResetOldProfile;
@@ -3701,6 +3722,14 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
if (PR_GetEnv("XRE_MAIN_BREAK")) NS_BREAK();
#endif
+#if defined(XP_MACOSX) && defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+ bool hideDockIcon = (CheckArg("invisible") == ARG_FOUND);
+ if (hideDockIcon) {
+ ProcessSerialNumber psn = {0, kCurrentProcess};
+ TransformProcessType(&psn, kProcessTransformToBackgroundApplication);
+ }
+#endif
+
IncreaseDescriptorLimits();
#ifdef USE_GLX_TEST
@@ -4657,7 +4686,34 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
}
#endif
+#if (defined(MOZ_UPDATER) && !defined(MOZ_WIDGET_ANDROID)) || \
+ defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR)
+ nsCOMPtr<nsIFile> exeFile, exeDir;
+ bool persistent;
+ rv = mDirProvider.GetFile(XRE_EXECUTABLE_FILE, &persistent,
+ getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, 1);
+ rv = exeFile->GetParent(getter_AddRefs(exeDir));
+ NS_ENSURE_SUCCESS(rv, 1);
+#endif
+
rv = NS_NewToolkitProfileService(getter_AddRefs(mProfileSvc));
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ if (NS_FAILED(rv)) {
+ // NS_NewToolkitProfileService() returns a generic NS_ERROR_FAILURE error
+ // if creation of the TorBrowser-Data directory fails due to access denied
+ // or because of a read-only disk volume. Do an extra check here to detect
+ // these errors so we can display an informative error message.
+ ProfileStatus status = CheckTorBrowserDataWriteAccess(exeDir);
+ if ((PROFILE_STATUS_ACCESS_DENIED == status) ||
+ (PROFILE_STATUS_READ_ONLY == status)) {
+ ProfileErrorDialog(nullptr, nullptr, status, nullptr, mNativeApp,
+ nullptr);
+ return 1;
+ }
+ }
+#endif
+
if (rv == NS_ERROR_FILE_ACCESS_DENIED) {
PR_fprintf(PR_STDERR,
"Error: Access was denied while trying to open files in "
@@ -4727,7 +4783,6 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
if (ShouldProcessUpdates(mDirProvider)) {
// Check for and process any available updates
nsCOMPtr<nsIFile> updRoot;
- bool persistent;
rv = mDirProvider.GetFile(XRE_UPDATE_ROOT_DIR, &persistent,
getter_AddRefs(updRoot));
// XRE_UPDATE_ROOT_DIR may fail. Fallback to appDir if failed
@@ -4763,12 +4818,6 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
if (CheckArg("test-process-updates")) {
SaveToEnv("MOZ_TEST_PROCESS_UPDATES=1");
}
- nsCOMPtr<nsIFile> exeFile, exeDir;
- rv = mDirProvider.GetFile(XRE_EXECUTABLE_FILE, &persistent,
- getter_AddRefs(exeFile));
- NS_ENSURE_SUCCESS(rv, 1);
- rv = exeFile->GetParent(getter_AddRefs(exeDir));
- NS_ENSURE_SUCCESS(rv, 1);
ProcessUpdates(mDirProvider.GetGREDir(), exeDir, updRoot, gRestartArgc,
gRestartArgv, mAppData->version);
if (EnvHasValue("MOZ_TEST_PROCESS_UPDATES")) {
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index 5cc6f0c86f27..d8e1d56ab435 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -57,6 +57,8 @@
# include "nsIPK11Token.h"
#endif
+#include "TorFileUtils.h"
+
#include <stdlib.h>
#ifdef XP_WIN
@@ -1384,34 +1386,18 @@ nsresult nsXREDirProvider::GetUserDataDirectoryHome(nsIFile** aFile,
return gDataDirHome->Clone(aFile);
}
- nsresult rv = GetAppDir()->Clone(getter_AddRefs(localDir));
+ nsresult rv = GetTorBrowserUserDataDir(getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- int levelsToRemove = 1; // In FF21+, appDir points to browser subdirectory.
-#if defined(XP_MACOSX)
- levelsToRemove += 2;
-#endif
- while (localDir && (levelsToRemove > 0)) {
- // When crawling up the hierarchy, components named "." do not count.
- nsAutoCString removedName;
- rv = localDir->GetNativeLeafName(removedName);
- NS_ENSURE_SUCCESS(rv, rv);
- bool didRemove = !removedName.Equals(".");
-
- // Remove a directory component.
- nsCOMPtr<nsIFile> parentDir;
- rv = localDir->GetParent(getter_AddRefs(parentDir));
- NS_ENSURE_SUCCESS(rv, rv);
- localDir = parentDir;
- if (didRemove) --levelsToRemove;
- }
-
- if (!localDir) return NS_ERROR_FAILURE;
-
- rv = localDir->AppendRelativeNativePath("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
- "Data" XPCOM_FILE_PATH_SEPARATOR
+#if !defined(ANDROID)
+# ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ rv = localDir->AppendNative("Browser"_ns);
+# else
+ rv = localDir->AppendRelativeNativePath("Data" XPCOM_FILE_PATH_SEPARATOR
"Browser"_ns);
+# endif
NS_ENSURE_SUCCESS(rv, rv);
+#endif
if (aLocal) {
rv = localDir->AppendNative("Caches"_ns);
@@ -1517,6 +1503,15 @@ nsresult nsXREDirProvider::GetUserDataDirectory(nsIFile** aFile, bool aLocal) {
return NS_OK;
}
+nsresult nsXREDirProvider::GetTorBrowserUserDataDir(nsIFile** aFile) {
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> exeFile;
+ bool per = false;
+ nsresult rv = GetFile(XRE_EXECUTABLE_FILE, &per, getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+ return TorBrowser_GetUserDataDir(exeFile, aFile);
+}
+
nsresult nsXREDirProvider::EnsureDirectoryExists(nsIFile* aDirectory) {
nsresult rv = aDirectory->Create(nsIFile::DIRECTORY_TYPE, 0700);
diff --git a/toolkit/xre/nsXREDirProvider.h b/toolkit/xre/nsXREDirProvider.h
index acea2e689821..98ef4ad770ea 100644
--- a/toolkit/xre/nsXREDirProvider.h
+++ b/toolkit/xre/nsXREDirProvider.h
@@ -113,6 +113,12 @@ class nsXREDirProvider final : public nsIDirectoryServiceProvider2,
*/
nsresult GetProfileDir(nsIFile** aResult);
+ /**
+ * Get the TorBrowser user data directory by calling the
+ * TorBrowser_GetUserDataDir() utility function.
+ */
+ nsresult GetTorBrowserUserDataDir(nsIFile** aFile);
+
protected:
nsresult GetFilesInternal(const char* aProperty,
nsISimpleEnumerator** aResult);
diff --git a/xpcom/io/TorFileUtils.cpp b/xpcom/io/TorFileUtils.cpp
new file mode 100644
index 000000000000..6bd03f1f7fed
--- /dev/null
+++ b/xpcom/io/TorFileUtils.cpp
@@ -0,0 +1,133 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "TorFileUtils.h"
+#include "nsString.h"
+#ifdef MOZ_WIDGET_COCOA
+# include <Carbon/Carbon.h>
+# include "nsILocalFileMac.h"
+#endif
+
+static nsresult GetAppRootDir(nsIFile* aExeFile, nsIFile** aFile);
+
+//-----------------------------------------------------------------------------
+nsresult TorBrowser_GetUserDataDir(nsIFile* aExeFile, nsIFile** aFile) {
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> tbDataDir;
+
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ nsAutoCString tbDataLeafName("TorBrowser-Data"_ns);
+ nsCOMPtr<nsIFile> appRootDir;
+ nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(appRootDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+# ifndef XP_MACOSX
+ // On all platforms except Mac OS, we always operate in a "portable" mode
+ // where the TorBrowser-Data directory is located next to the application.
+ rv = appRootDir->GetParent(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+# else
+ // For Mac OS, determine whether we should store user data in the OS's
+ // standard location (i.e., under ~/Library/Application Support). We use
+ // the OS location if (1) the application is installed in a directory whose
+ // path contains "/Applications" or (2) the TorBrowser-Data directory does
+ // not exist and cannot be created (which probably means we lack write
+ // permission to the directory that contains the application).
+ nsAutoString appRootPath;
+ rv = appRootDir->GetPath(appRootPath);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool useOSLocation =
+ (appRootPath.Find("/Applications", true /* ignore case */) >= 0);
+ if (!useOSLocation) {
+ // We hope to use the portable (aka side-by-side) approach, but before we
+ // commit to that, let's ensure that we can create the TorBrowser-Data
+ // directory. If it already exists, we will try to use it; if not and we
+ // fail to create it, we will switch to ~/Library/Application Support.
+ rv = appRootDir->GetParent(getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool exists = false;
+ rv = tbDataDir->Exists(&exists);
+ if (NS_SUCCEEDED(rv) && !exists)
+ rv = tbDataDir->Create(nsIFile::DIRECTORY_TYPE, 0700);
+ useOSLocation = NS_FAILED(rv);
+ }
+
+ if (useOSLocation) {
+ // We are using ~/Library/Application Support/TorBrowser-Data. We do not
+ // need to create that directory here because the code in nsXREDirProvider
+ // will do so (and the user should always have write permission for
+ // ~/Library/Application Support; if they do not we have no more options).
+ FSRef fsRef;
+ OSErr err = ::FSFindFolder(kUserDomain, kApplicationSupportFolderType,
+ kCreateFolder, &fsRef);
+ NS_ENSURE_FALSE(err, NS_ERROR_FAILURE);
+ // To convert the FSRef returned by FSFindFolder() into an nsIFile that
+ // points to ~/Library/Application Support, we first create an empty
+ // nsIFile object (no path) and then use InitWithFSRef() to set the
+ // path.
+ rv = NS_NewNativeLocalFile(""_ns, true, getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ nsCOMPtr<nsILocalFileMac> dirFileMac = do_QueryInterface(tbDataDir);
+ if (!dirFileMac) return NS_ERROR_UNEXPECTED;
+ rv = dirFileMac->InitWithFSRef(&fsRef);
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative(tbDataLeafName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
+# endif
+
+#elif defined(ANDROID)
+ // Tor Browser Android stores data in the app home directory.
+ const char* homeDir = getenv("HOME");
+ if (!homeDir || !*homeDir) return NS_ERROR_FAILURE;
+ nsresult rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true,
+ getter_AddRefs(tbDataDir));
+#else
+ // User data is embedded within the application directory (i.e.,
+ // TOR_BROWSER_DATA_OUTSIDE_APP_DIR is not defined).
+ nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(tbDataDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = tbDataDir->AppendNative("TorBrowser"_ns);
+ NS_ENSURE_SUCCESS(rv, rv);
+#endif
+
+ tbDataDir.forget(aFile);
+ return NS_OK;
+}
+
+static nsresult GetAppRootDir(nsIFile* aExeFile, nsIFile** aFile) {
+ NS_ENSURE_ARG_POINTER(aExeFile);
+ NS_ENSURE_ARG_POINTER(aFile);
+ nsCOMPtr<nsIFile> appRootDir = aExeFile;
+
+ int levelsToRemove = 1; // Remove firefox (the executable file).
+#if defined(XP_MACOSX)
+ levelsToRemove += 2; // On Mac OS, we must also remove Contents/MacOS.
+#endif
+ while (appRootDir && (levelsToRemove > 0)) {
+ // When crawling up the hierarchy, components named "." do not count.
+ nsAutoCString removedName;
+ nsresult rv = appRootDir->GetNativeLeafName(removedName);
+ NS_ENSURE_SUCCESS(rv, rv);
+ bool didRemove = !removedName.Equals(".");
+
+ // Remove a directory component.
+ nsCOMPtr<nsIFile> parentDir;
+ rv = appRootDir->GetParent(getter_AddRefs(parentDir));
+ NS_ENSURE_SUCCESS(rv, rv);
+ appRootDir = parentDir;
+
+ if (didRemove) --levelsToRemove;
+ }
+
+ if (!appRootDir) return NS_ERROR_FAILURE;
+
+ appRootDir.forget(aFile);
+ return NS_OK;
+}
diff --git a/xpcom/io/TorFileUtils.h b/xpcom/io/TorFileUtils.h
new file mode 100644
index 000000000000..31e70a7e0d3a
--- /dev/null
+++ b/xpcom/io/TorFileUtils.h
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef TorFileUtils_h__
+#define TorFileUtils_h__
+
+#include "nsIFile.h"
+
+/**
+ * TorBrowser_GetUserDataDir
+ *
+ * Retrieve the Tor Browser user data directory.
+ * When built with --enable-tor-browser-data-outside-app-dir, the directory
+ * is next to the application directory, except on Mac OS where it may be
+ * there or it may be at ~/Library/Application Support/TorBrowser-Data (the
+ * latter location is used if the .app bundle is in a directory whose path
+ * contains /Applications or if we lack write access to the directory that
+ * contains the .app).
+ * When built without --enable-tor-browser-data-outside-app-dir, this
+ * directory is TorBrowser.app/TorBrowser.
+ *
+ * @param aExeFile The firefox executable.
+ * @param aFile Out parameter that is set to the Tor Browser user data
+ * directory.
+ * @return NS_OK on success. Error otherwise.
+ */
+extern nsresult TorBrowser_GetUserDataDir(nsIFile* aExeFile, nsIFile** aFile);
+
+#endif // !TorFileUtils_h__
diff --git a/xpcom/io/moz.build b/xpcom/io/moz.build
index d28c426e7bd7..af7b5be04f6e 100644
--- a/xpcom/io/moz.build
+++ b/xpcom/io/moz.build
@@ -86,6 +86,7 @@ EXPORTS += [
"nsUnicharInputStream.h",
"nsWildCard.h",
"SpecialSystemDirectory.h",
+ "TorFileUtils.h",
]
EXPORTS.mozilla += [
@@ -137,6 +138,10 @@ UNIFIED_SOURCES += [
"SpecialSystemDirectory.cpp",
]
+SOURCES += [
+ "TorFileUtils.cpp",
+]
+
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
SOURCES += [
"CocoaFileUtils.mm",
diff --git a/xpcom/io/nsAppFileLocationProvider.cpp b/xpcom/io/nsAppFileLocationProvider.cpp
index 2bbcee92aedb..66f6940beff6 100644
--- a/xpcom/io/nsAppFileLocationProvider.cpp
+++ b/xpcom/io/nsAppFileLocationProvider.cpp
@@ -28,6 +28,8 @@
# include <sys/param.h>
#endif
+#include "TorFileUtils.h"
+
// WARNING: These hard coded names need to go away. They need to
// come from localizable resources
@@ -234,8 +236,14 @@ nsresult nsAppFileLocationProvider::CloneMozBinDirectory(nsIFile** aLocalFile) {
// GetProductDirectory - Gets the directory which contains the application data
// folder
//
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+// UNIX and WIN : <App Folder>/../TorBrowser-Data/Browser
+// Mac : <App Folder>/../../../TorBrowser-Data/Browser OR
+// ~/Library/Application Support/TorBrowser-Data/Browser
+#else
// UNIX and WIN : <App Folder>/TorBrowser/Data/Browser
// Mac : <App Folder>/../../TorBrowser/Data/Browser
+#endif
//----------------------------------------------------------------------------------------
nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
bool aLocal) {
@@ -243,42 +251,25 @@ nsresult nsAppFileLocationProvider::GetProductDirectory(nsIFile** aLocalFile,
return NS_ERROR_INVALID_ARG;
}
- nsresult rv;
+ nsresult rv = NS_ERROR_UNEXPECTED;
bool exists;
- nsCOMPtr<nsIFile> localDir;
+ nsCOMPtr<nsIFile> localDir, exeFile;
- rv = CloneMozBinDirectory(getter_AddRefs(localDir));
+ nsCOMPtr<nsIProperties> directoryService(
+ do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = directoryService->Get(XRE_EXECUTABLE_FILE, NS_GET_IID(nsIFile),
+ getter_AddRefs(exeFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = TorBrowser_GetUserDataDir(exeFile, getter_AddRefs(localDir));
NS_ENSURE_SUCCESS(rv, rv);
- int levelsToRemove = 1; // In FF21+, bin dir points to browser subdirectory.
-#if defined(XP_MACOSX)
- levelsToRemove += 2;
-#endif
- while (localDir && (levelsToRemove > 0)) {
- // When crawling up the hierarchy, components named "." do not count.
- nsAutoCString removedName;
- rv = localDir->GetNativeLeafName(removedName);
- NS_ENSURE_SUCCESS(rv, rv);
- bool didRemove = !removedName.Equals(".");
-
- // Remove a directory component.
- nsCOMPtr<nsIFile> parentDir;
- rv = localDir->GetParent(getter_AddRefs(parentDir));
- NS_ENSURE_SUCCESS(rv, rv);
- localDir = parentDir;
-
- if (didRemove) {
- --levelsToRemove;
- }
- }
-
- if (!localDir) {
- return NS_ERROR_FAILURE;
- }
-
- rv = localDir->AppendRelativeNativePath("TorBrowser" XPCOM_FILE_PATH_SEPARATOR
- "Data" XPCOM_FILE_PATH_SEPARATOR
+#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+ rv = localDir->AppendNative("Browser"_ns);
+#else
+ rv = localDir->AppendRelativeNativePath("Data" XPCOM_FILE_PATH_SEPARATOR
"Browser"_ns);
+#endif
NS_ENSURE_SUCCESS(rv, rv);
if (aLocal) {
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 16620: Clear window.name when no referrer sent
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit f0e76b2b2708f8195eb0efe0214b63a12ea76c13
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Oct 30 14:28:13 2015 -0400
Bug 16620: Clear window.name when no referrer sent
Convert JS implementation (within Torbutton) to a C++ browser patch.
---
docshell/base/nsDocShell.cpp | 60 +++++++
docshell/test/mochitest/mochitest.ini | 5 +
docshell/test/mochitest/test_tor_bug16620.html | 211 +++++++++++++++++++++++++
docshell/test/mochitest/tor_bug16620.html | 51 ++++++
docshell/test/mochitest/tor_bug16620_form.html | 51 ++++++
modules/libpref/init/StaticPrefList.yaml | 2 +-
6 files changed, 379 insertions(+), 1 deletion(-)
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index d99ddc3181cf..e17aaf44c378 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -7916,11 +7916,71 @@ nsresult nsDocShell::CreateContentViewer(const nsACString& aContentType,
aOpenedChannel->GetURI(getter_AddRefs(mLoadingURI));
}
FirePageHideNotification(!mSavingOldViewer);
+
if (mIsBeingDestroyed) {
// Force to stop the newly created orphaned viewer.
viewer->Stop();
return NS_ERROR_DOCSHELL_DYING;
}
+
+ // Tor bug 16620: Clear window.name of top-level documents if
+ // there is no referrer. We make an exception for new windows,
+ // e.g., window.open(url, "MyName").
+ bool isNewWindowTarget = false;
+ nsCOMPtr<nsIPropertyBag2> props(do_QueryInterface(aRequest, &rv));
+ if (props) {
+ props->GetPropertyAsBool(u"docshell.newWindowTarget"_ns,
+ &isNewWindowTarget);
+ }
+
+ if (!isNewWindowTarget) {
+ nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(aOpenedChannel));
+ nsCOMPtr<nsIURI> httpReferrer;
+ if (httpChannel) {
+ nsCOMPtr<nsIReferrerInfo> referrerInfo;
+ rv = httpChannel->GetReferrerInfo(getter_AddRefs(referrerInfo));
+ NS_ENSURE_SUCCESS(rv, rv);
+ if (referrerInfo) {
+ // We want GetComputedReferrer() instead of GetOriginalReferrer(), since
+ // the former takes into consideration referrer policy, protocol
+ // whitelisting...
+ httpReferrer = referrerInfo->GetComputedReferrer();
+ }
+ }
+
+ bool isTopFrame = mBrowsingContext->IsTop();
+
+#ifdef DEBUG_WINDOW_NAME
+ printf("DOCSHELL %p CreateContentViewer - possibly clearing window.name:\n",
+ this);
+ printf(" current window.name: \"%s\"\n",
+ NS_ConvertUTF16toUTF8(mName).get());
+
+ nsAutoCString curSpec, loadingSpec;
+ if (this->mCurrentURI) mCurrentURI->GetSpec(curSpec);
+ if (mLoadingURI) mLoadingURI->GetSpec(loadingSpec);
+ printf(" current URI: %s\n", curSpec.get());
+ printf(" loading URI: %s\n", loadingSpec.get());
+ printf(" is top document: %s\n", isTopFrame ? "Yes" : "No");
+
+ if (!httpReferrer) {
+ printf(" referrer: None\n");
+ } else {
+ nsAutoCString refSpec;
+ httpReferrer->GetSpec(refSpec);
+ printf(" referrer: %s\n", refSpec.get());
+ }
+#endif
+
+ bool clearName = isTopFrame && !httpReferrer;
+ if (clearName) SetName(u""_ns);
+
+#ifdef DEBUG_WINDOW_NAME
+ printf(" action taken: %s window.name\n",
+ clearName ? "Cleared" : "Preserved");
+#endif
+ }
+
mLoadingURI = nullptr;
// Set mFiredUnloadEvent = false so that the unload handler for the
diff --git a/docshell/test/mochitest/mochitest.ini b/docshell/test/mochitest/mochitest.ini
index cea63f080117..efc991ef1eee 100644
--- a/docshell/test/mochitest/mochitest.ini
+++ b/docshell/test/mochitest/mochitest.ini
@@ -53,6 +53,10 @@ support-files =
start_historyframe.html
url1_historyframe.html
url2_historyframe.html
+ tor_bug16620.html
+ tor_bug16620_form.html
+prefs =
+ gfx.font_rendering.fallback.async=false
[test_anchor_scroll_after_document_open.html]
[test_bfcache_plus_hash.html]
@@ -120,6 +124,7 @@ support-files =
[test_framedhistoryframes.html]
support-files = file_framedhistoryframes.html
[test_pushState_after_document_open.html]
+[test_tor_bug16620.html]
[test_navigate_after_pagehide.html]
[test_redirect_history.html]
support-files =
diff --git a/docshell/test/mochitest/test_tor_bug16620.html b/docshell/test/mochitest/test_tor_bug16620.html
new file mode 100644
index 000000000000..46fff5a04711
--- /dev/null
+++ b/docshell/test/mochitest/test_tor_bug16620.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<meta charset="utf-8">
+<head>
+ <title>Test for Tor Bug 16620 - Clear window.name when no referrer sent</title>
+ <script type="application/javascript"
+ src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+</head>
+<body>
+<a target="_blank" href="https://trac.torproject.org/projects/tor/ticket/16620">Tor Bug 16620</a>
+<script>
+// ## Test constants
+const kTestPath = "/tests/docshell/test/mochitest/";
+const kLinkFile = "tor_bug16620.html";
+const kFormFile = "tor_bug16620_form.html";
+const kBaseURL1 = "http://example.com";
+const kBaseURL1_https = "https://example.com";
+const kBaseURL2 = "http://example.net";
+const kSendReferrerPref = "network.http.sendRefererHeader";
+const kSendReferrerNever = 0;
+const kSendReferrerForUserAction = 1;
+const kSendReferrerAlways = 2;
+
+let gTests = [
+ // Test #1: Same domain; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #2: Same domain; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #3: Same domain; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #4: Different top-level domains; never send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerNever,
+ expectIsolation: true },
+
+ // Test #5: Different top-level domains; send referrer upon user action.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: false },
+
+ // Test #6: Different top-level domains; always send referrer.
+ { startURL: kBaseURL1, destURL: kBaseURL2,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+
+ // Test #7: https -> http transition.
+ { startURL: kBaseURL1_https, destURL: kBaseURL1,
+ referrerPref: kSendReferrerForUserAction,
+ expectIsolation: true },
+
+ // Test #8: Same domain, rel="noreferrer" on link.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerOnLink: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #9: Same domain, "no-referrer" meta tag in document.
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #10: Like test #9, but reset window.name during unload.
+ // (similar to http://www.thomasfrank.se/sessvarsTestPage1.html)
+ { startURL: kBaseURL1, destURL: kBaseURL1, noReferrerInMetaTag: true,
+ resetInUnload: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #11: Data URL as destination (no referrer).
+ { startURL: kBaseURL1,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: true },
+
+ // Test #12: Ensure that window.name is preserved when a dynamically loaded
+ // iframe is used to perform a form post (regression test for Tor bug 18168).
+ { startURL: kBaseURL1,
+ isFormTest: true,
+ referrerPref: kSendReferrerAlways,
+ expectIsolation: false },
+];
+
+let gCurTest = 0;
+let gCurWinName, gChildWin, gDataURL;
+
+// ## Utility functions
+function generateRandomName()
+{
+ // Generate a random 6 character string using 0-9 and a-z.
+ return ((1 + Math.random()).toString(36) + '000000').substr(2, 6);
+}
+
+function startNextTest() {
+ ++gCurTest;
+ if (gCurTest > gTests.length) {
+ SimpleTest.finish();
+ } else {
+ let curTest = gTests[gCurTest - 1];
+ if ("referrerPref" in curTest)
+ SpecialPowers.setIntPref(kSendReferrerPref, curTest.referrerPref);
+ else
+ SpecialPowers.setIntPref(kSendReferrerPref, kSendReferrerForUserAction);
+ gCurWinName = generateRandomName();
+ let url = curTest.startURL + kTestPath;
+ if (curTest.isFormTest === true) {
+ url += kFormFile + "?" + gCurWinName;
+ gChildWin = window.open(url, undefined);
+ } else {
+ url += kLinkFile + "?firstDocLoaded";
+ gChildWin = window.open(url, gCurWinName);
+ }
+ }
+}
+
+// ## Add a message event listener.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.source !== gChildWin)
+ return;
+
+// console.log("parent received message:" + JSON.stringify(aEvent.data));
+
+ let proceedToNextTest = false;
+ let curTest = gTests[gCurTest - 1];
+ let state = aEvent.data.state;
+ let winName = aEvent.data.winName;
+ if ("firstDocLoaded" == state) {
+ // Process response from step one of the link-based tests.
+ let step1Passed = (winName === gCurWinName);
+ if (!step1Passed) {
+ ok(step1Passed, "Test #" + gCurTest +
+ " - first document's name matches window.open parameter");
+ proceedToNextTest = true;
+ }
+
+ // Send an "openURL" message to the loaded document.
+ let url2 = (curTest.destURL)
+ ? curTest.destURL + kTestPath + kLinkFile + "?secondDocLoaded"
+ : gDataURL;
+ let noReferrerOnLink = (curTest.noReferrerOnLink === true);
+ let noReferrerInMetaTag = (curTest.noReferrerInMetaTag === true);
+ let resetInUnload = (curTest.resetInUnload === true);
+ aEvent.source.postMessage({ action: "openURL", url: url2,
+ noReferrerOnLink: noReferrerOnLink,
+ noReferrerInMetaTag: noReferrerInMetaTag,
+ resetInUnload: resetInUnload },
+ "*");
+ } else if ("secondDocLoaded" == state) {
+ // Process response from step two of the link-based tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - second document: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - second document: name was preserved");
+ }
+ proceedToNextTest = true;
+ } else if ("formPostDone" == state) {
+ // Process response from the form post tests.
+ if (curTest.expectIsolation) {
+ ok(winName === "",
+ "Test #" + gCurTest + " - iframe form post: name was cleared");
+ } else {
+ ok(winName === gCurWinName,
+ "Test #" + gCurTest + " - iframe form post: name was preserved");
+ }
+ proceedToNextTest = true;
+
+ }
+
+ if (proceedToNextTest) {
+ gChildWin.close();
+ startNextTest();
+ }
+ }, false);
+
+ SimpleTest.waitForExplicitFinish();
+
+ if (SpecialPowers.getBoolPref("security.nocertdb")) {
+ // Mochitests don't simulate https correctly with "security.nocertdb"
+ // enabled. See https://bugs.torproject.org/18087
+ ok(false, "Please disable the pref `security.nocertdb` before running this test.");
+ SimpleTest.finish();
+ } else {
+
+ // Read file contents, construct a data URL (used by some tests), and
+ // then start the first test.
+ let url = kTestPath + kLinkFile;
+ let xhr = new XMLHttpRequest();
+ xhr.open("GET", url);
+ xhr.onload = function() {
+ gDataURL = "data:text/html;charset=utf-8,"
+ + encodeURIComponent(this.responseText);
+ startNextTest();
+ }
+ xhr.send();
+ }
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620.html b/docshell/test/mochitest/tor_bug16620.html
new file mode 100644
index 000000000000..26b8e406bbff
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+<a id="link" href="">secondDoc</a>
+
+<script>
+// Extract test state from our query string, defaulting to
+// "secondDocLoaded" to support use of this HTML content within
+// a data URI (where query strings are not supported).
+let state = (location.search.length > 0) ? location.search.substr(1)
+ : "secondDocLoaded";
+
+// Notify the test driver.
+opener.postMessage({ state: state, winName: window.name }, "*");
+
+// Add a message event listener to process "openURL" actions.
+window.addEventListener("message", function(aEvent) {
+ if (aEvent.data.action == "openURL") {
+ if (aEvent.data.noReferrerInMetaTag) {
+ let metaElem = document.createElement("meta");
+ metaElem.name = "referrer";
+ metaElem.content = "no-referrer";
+ document.head.appendChild(metaElem);
+ }
+
+ let linkElem = document.getElementById("link");
+ linkElem.href = aEvent.data.url;
+ if (aEvent.data.noReferrerOnLink)
+ linkElem.rel = "noreferrer";
+
+ if (aEvent.data.resetInUnload) {
+ let tmpName = window.name;
+ window.addEventListener("unload", function() {
+ window.name = tmpName;
+ }, false);
+ }
+
+ linkElem.click();
+ }
+}, false);
+</script>
+</body>
+</html>
diff --git a/docshell/test/mochitest/tor_bug16620_form.html b/docshell/test/mochitest/tor_bug16620_form.html
new file mode 100644
index 000000000000..279f62e63fab
--- /dev/null
+++ b/docshell/test/mochitest/tor_bug16620_form.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+ Tor Bug 16620: Clear window.name when no referrer sent.
+ https://trac.torproject.org/projects/tor/ticket/16620
+
+ Regression test for bug 18168: iframe-based AJAX call opening in new tab
+-->
+<head>
+ <meta charset="UTF-8">
+ <title>Supporting Form-based Doc for Tor Bug 16620 Tests</title>
+</head>
+<body>
+
+<script>
+document.addEventListener("DOMContentLoaded", function () {
+ addPostTarget();
+}, false);
+
+
+function addPostTarget()
+{
+ let frameName = location.search.substr(1);
+ let form = document.getElementById("postform");
+ let iframe = document.createElement("iframe");
+ iframe.style.border = "1px solid red";
+ iframe.src = "about:blank";
+ form.target = iframe.name = iframe.id = frameName;
+ document.body.appendChild(iframe);
+
+ let didSubmit = false;
+ iframe.onload = function() {
+ if (!didSubmit) {
+ didSubmit = true;
+ let submitButton = document.getElementById("submitButton");
+ submitButton.click();
+ } else {
+ // Form submission complete. Report iframe's name to test driver.
+ opener.postMessage({ state: "formPostDone", winName: iframe.name }, "*");
+ }
+ };
+}
+
+</script>
+<form name="postform" id="postform"
+ action="data:text/plain;charset=utf-8,Hello%20world"
+ method="POST" enctype="multipart/form-data">
+ <input type="hidden" name="field1" value="value1"><br>
+ <input id="submitButton" type="submit" value="Post It">
+</body>
+</html>
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index b4b2dc76427c..1e43eef75add 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -10033,7 +10033,7 @@
- name: privacy.window.name.update.enabled
type: bool
- value: true
+ value: false
mirror: always
# By default, the network state isolation is not active when there is a proxy
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 18821: Disable libmdns for Android and Desktop
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 6c7612764c768516ea3989d9fc642d235f16ef98
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Apr 20 14:34:50 2016 +0000
Bug 18821: Disable libmdns for Android and Desktop
There should be no need to remove the OS X support introduced in
https://bugzilla.mozilla.org/show_bug.cgi?id=1225726 as enabling this
is governed by a preference (which is actually set to `false`). However,
we remove it at build time as well (defense in depth).
This is basically a backout of the relevant passages of
https://hg.mozilla.org/mozilla-central/rev/6bfb430de85d,
https://hg.mozilla.org/mozilla-central/rev/609b337bf7ab and
https://hg.mozilla.org/mozilla-central/rev/8e092ec5fbbd.
Fixed bug 21861 (Disable additional mDNS code to avoid proxy bypasses)
as well.
Mozilla removed the Presentation API piece of this patch in Bug 1697680.
---
netwerk/dns/mdns/libmdns/components.conf | 15 ---------------
netwerk/dns/mdns/libmdns/moz.build | 28 ----------------------------
2 files changed, 43 deletions(-)
diff --git a/netwerk/dns/mdns/libmdns/components.conf b/netwerk/dns/mdns/libmdns/components.conf
index 6e64140c820e..1b50dbf673a4 100644
--- a/netwerk/dns/mdns/libmdns/components.conf
+++ b/netwerk/dns/mdns/libmdns/components.conf
@@ -5,20 +5,5 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
Classes = [
- {
- 'cid': '{14a50f2b-7ff6-48a5-88e3-615fd111f5d3}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-info;1'],
- 'type': 'mozilla::net::nsDNSServiceInfo',
- 'headers': ['/netwerk/dns/mdns/libmdns/nsDNSServiceInfo.h'],
- },
]
-if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'cocoa':
- Classes += [
- {
- 'cid': '{f9346d98-f27a-4e89-b744-493843416480}',
- 'contract_ids': ['@mozilla.org/toolkit/components/mdnsresponder/dns-sd;1'],
- 'jsm': 'resource://gre/modules/DNSServiceDiscovery.jsm',
- 'constructor': 'nsDNSServiceDiscovery',
- },
- ]
diff --git a/netwerk/dns/mdns/libmdns/moz.build b/netwerk/dns/mdns/libmdns/moz.build
index f9c025fa823e..e6e70a6d803c 100644
--- a/netwerk/dns/mdns/libmdns/moz.build
+++ b/netwerk/dns/mdns/libmdns/moz.build
@@ -4,34 +4,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
- UNIFIED_SOURCES += [
- "MDNSResponderOperator.cpp",
- "MDNSResponderReply.cpp",
- "nsDNSServiceDiscovery.cpp",
- ]
-
- LOCAL_INCLUDES += [
- "/netwerk/base",
- ]
-
-else:
- EXTRA_JS_MODULES += [
- "DNSServiceDiscovery.jsm",
- "fallback/DataReader.jsm",
- "fallback/DataWriter.jsm",
- "fallback/DNSPacket.jsm",
- "fallback/DNSRecord.jsm",
- "fallback/DNSResourceRecord.jsm",
- "fallback/DNSTypes.jsm",
- "fallback/MulticastDNS.jsm",
- ]
-
- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
- EXTRA_JS_MODULES += [
- "MulticastDNSAndroid.jsm",
- ]
-
UNIFIED_SOURCES += [
"nsDNSServiceInfo.cpp",
]
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 19273: Avoid JavaScript patching of the external app helper dialog.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit da474e50b783d6357775ddfabcbad5e2b2f46f08
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jun 28 15:13:05 2016 -0400
Bug 19273: Avoid JavaScript patching of the external app helper dialog.
When handling an external URI or downloading a file, invoke Torbutton's
external app blocker component (which will present a download warning
dialog unless the user has checked the "Automatically download files
from now on" box).
For e10s compatibility, avoid using a modal dialog and instead use
a callback interface (nsIHelperAppWarningLauncher) to allow Torbutton
to indicate the user's desire to cancel or continue each request.
Other bugs fixed:
Bug 21766: Crash with e10s enabled while trying to download a file
Bug 21886: Download is stalled in non-e10s mode
Bug 22471: Downloading files via the PDF viewer download button is broken
Bug 22472: Fix FTP downloads when external helper app dialog is shown
Bug 22610: Avoid crashes when canceling external helper app downloads
Bug 22618: Downloading pdf file via file:/// is stalling
---
.../exthandler/nsExternalHelperAppService.cpp | 177 ++++++++++++++++++---
uriloader/exthandler/nsExternalHelperAppService.h | 3 +
.../exthandler/nsIExternalHelperAppService.idl | 47 ++++++
3 files changed, 209 insertions(+), 18 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index 47f626074dca..e46df70429c2 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -133,6 +133,9 @@ static const char NEVER_ASK_FOR_SAVE_TO_DISK_PREF[] =
static const char NEVER_ASK_FOR_OPEN_FILE_PREF[] =
"browser.helperApps.neverAsk.openFile";
+static const char WARNING_DIALOG_CONTRACT_ID[] =
+ "@torproject.org/torbutton-extAppBlocker;1";
+
// Helper functions for Content-Disposition headers
/**
@@ -405,6 +408,22 @@ static nsresult GetDownloadDirectory(nsIFile** _directory,
return NS_OK;
}
+static already_AddRefed<nsIInterfaceRequestor> GetDialogParentAux(
+ BrowsingContext* aBrowsingContext, nsIInterfaceRequestor* aWindowContext) {
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = aWindowContext;
+
+ if (!dialogParent && aBrowsingContext) {
+ dialogParent = do_QueryInterface(aBrowsingContext->GetDOMWindow());
+ }
+ if (!dialogParent && aBrowsingContext && XRE_IsParentProcess()) {
+ RefPtr<Element> element = aBrowsingContext->Top()->GetEmbedderElement();
+ if (element) {
+ dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
+ }
+ }
+ return dialogParent.forget();
+}
+
/**
* Structure for storing extension->type mappings.
* @see defaultMimeEntries
@@ -608,6 +627,96 @@ static const char* descriptionOverwriteExtensions[] = {
"avif", "pdf", "svg", "webp", "xml",
};
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// begin nsExternalLoadURIHandler class definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+class nsExternalLoadURIHandler final : public nsIHelperAppWarningLauncher {
+ public:
+ NS_DECL_THREADSAFE_ISUPPORTS
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
+
+ nsExternalLoadURIHandler(nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal,
+ BrowsingContext* aBrowsingContext,
+ bool aTriggeredExternally);
+
+ protected:
+ ~nsExternalLoadURIHandler();
+
+ nsCOMPtr<nsIHandlerInfo> mHandlerInfo;
+ nsCOMPtr<nsIURI> mURI;
+ nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
+ RefPtr<BrowsingContext> mBrowsingContext;
+ bool mTriggeredExternally;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
+};
+
+NS_IMPL_ADDREF(nsExternalLoadURIHandler)
+NS_IMPL_RELEASE(nsExternalLoadURIHandler)
+
+NS_INTERFACE_MAP_BEGIN(nsExternalLoadURIHandler)
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIHelperAppWarningLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
+NS_INTERFACE_MAP_END
+
+nsExternalLoadURIHandler::nsExternalLoadURIHandler(
+ nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal, BrowsingContext* aBrowsingContext,
+ bool aTriggeredExternally)
+ : mHandlerInfo(aHandlerInfo),
+ mURI(aURI),
+ mTriggeringPrincipal(aTriggeringPrincipal),
+ mBrowsingContext(aBrowsingContext),
+ mTriggeredExternally(aTriggeredExternally)
+
+{
+ nsresult rv = NS_OK;
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent =
+ GetDialogParentAux(aBrowsingContext, nullptr);
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+}
+
+nsExternalLoadURIHandler::~nsExternalLoadURIHandler() {}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::ContinueRequest() {
+ MOZ_ASSERT(mURI);
+ MOZ_ASSERT(mHandlerInfo);
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ nsresult rv = NS_OK;
+ nsCOMPtr<nsIContentDispatchChooser> chooser =
+ do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ return chooser->HandleURI(mHandlerInfo, mURI, mTriggeringPrincipal,
+ mBrowsingContext, mTriggeredExternally);
+}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::CancelRequest(nsresult aReason) {
+ NS_ENSURE_ARG(NS_FAILED(aReason));
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ return NS_OK;
+}
+
static StaticRefPtr<nsExternalHelperAppService> sExtHelperAppSvcSingleton;
/**
@@ -634,6 +743,9 @@ nsExternalHelperAppService::GetSingleton() {
return do_AddRef(sExtHelperAppSvcSingleton);
}
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// nsExternalHelperAppService definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
NS_IMPL_ISUPPORTS(nsExternalHelperAppService, nsIExternalHelperAppService,
nsPIExternalAppLauncher, nsIExternalProtocolService,
nsIMIMEService, nsIObserver, nsISupportsWeakReference)
@@ -1092,12 +1204,14 @@ nsExternalHelperAppService::LoadURI(nsIURI* aURI,
rv = GetProtocolHandlerInfo(scheme, getter_AddRefs(handler));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsIContentDispatchChooser> chooser =
- do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
- NS_ENSURE_SUCCESS(rv, rv);
+ RefPtr<nsExternalLoadURIHandler> h = new nsExternalLoadURIHandler(
+ handler, uri, aTriggeringPrincipal, aBrowsingContext,
+ aTriggeredExternally);
+ if (!h) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
- return chooser->HandleURI(handler, uri, aTriggeringPrincipal,
- aBrowsingContext, aTriggeredExternally);
+ return NS_OK;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1242,6 +1356,7 @@ NS_INTERFACE_MAP_BEGIN(nsExternalAppHandler)
NS_INTERFACE_MAP_ENTRY(nsIStreamListener)
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
NS_INTERFACE_MAP_ENTRY(nsIHelperAppLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
NS_INTERFACE_MAP_ENTRY(nsICancelable)
NS_INTERFACE_MAP_ENTRY(nsIBackgroundFileSaverObserver)
NS_INTERFACE_MAP_ENTRY(nsINamed)
@@ -1640,18 +1755,7 @@ void nsExternalAppHandler::MaybeApplyDecodingForExtension(
already_AddRefed<nsIInterfaceRequestor>
nsExternalAppHandler::GetDialogParent() {
- nsCOMPtr<nsIInterfaceRequestor> dialogParent = mWindowContext;
-
- if (!dialogParent && mBrowsingContext) {
- dialogParent = do_QueryInterface(mBrowsingContext->GetDOMWindow());
- }
- if (!dialogParent && mBrowsingContext && XRE_IsParentProcess()) {
- RefPtr<Element> element = mBrowsingContext->Top()->GetEmbedderElement();
- if (element) {
- dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
- }
- }
- return dialogParent.forget();
+ return GetDialogParentAux(mBrowsingContext, mWindowContext);
}
NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
@@ -1779,6 +1883,34 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
loadInfo->SetForceAllowDataURI(true);
}
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = GetDialogParent();
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsExternalAppHandler::ContinueRequest() {
+ nsAutoCString MIMEType;
+ if (mMimeInfo) {
+ mMimeInfo->GetMIMEType(MIMEType);
+ }
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
// now that the temp file is set up, find out if we need to invoke a dialog
// asking the user what they want us to do with this content...
@@ -1862,6 +1994,7 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
action = nsIMIMEInfo::saveToDisk;
}
+ nsresult rv = NS_OK;
if (alwaysAsk) {
// Display the dialog
mDialog = do_CreateInstance(NS_HELPERAPPLAUNCHERDLG_CONTRACTID, &rv);
@@ -1918,6 +2051,14 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
return NS_OK;
}
+NS_IMETHODIMP nsExternalAppHandler::CancelRequest(nsresult aReason) {
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
+ return Cancel(aReason);
+}
+
// Convert error info into proper message text and send OnStatusChange
// notification to the dialog progress listener or nsITransfer implementation.
void nsExternalAppHandler::SendStatusChange(ErrorType type, nsresult rv,
@@ -2595,7 +2736,7 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) {
}
// Break our reference cycle with the helper app dialog (set up in
- // OnStartRequest)
+ // ContinueRequest)
mDialog = nullptr;
mRequest = nullptr;
diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h
index 5735e73bcde7..6615b5388048 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.h
+++ b/uriloader/exthandler/nsExternalHelperAppService.h
@@ -219,6 +219,7 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
*/
class nsExternalAppHandler final : public nsIStreamListener,
public nsIHelperAppLauncher,
+ public nsIHelperAppWarningLauncher,
public nsIBackgroundFileSaverObserver,
public nsINamed {
public:
@@ -226,6 +227,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
NS_DECL_NSISTREAMLISTENER
NS_DECL_NSIREQUESTOBSERVER
NS_DECL_NSIHELPERAPPLAUNCHER
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
NS_DECL_NSICANCELABLE
NS_DECL_NSIBACKGROUNDFILESAVEROBSERVER
NS_DECL_NSINAMED
@@ -497,6 +499,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
nsCOMPtr<nsITransfer> mTransfer;
nsCOMPtr<nsIHelperAppLauncherDialog> mDialog;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
/**
diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl
index 657e15bc0742..ebdb1cdacf78 100644
--- a/uriloader/exthandler/nsIExternalHelperAppService.idl
+++ b/uriloader/exthandler/nsIExternalHelperAppService.idl
@@ -177,3 +177,50 @@ interface nsIHelperAppLauncher : nsICancelable
*/
readonly attribute uint64_t browsingContextId;
};
+
+/**
+ * nsIHelperAppWarningLauncher is implemented by two classes:
+ * nsExternalLoadURIHandler
+ * nsExternalAppHandler
+ */
+[scriptable, uuid(cffd508b-4aaf-43ad-99c6-671d35cbc558)]
+interface nsIHelperAppWarningLauncher : nsISupports
+{
+ /**
+ * Callback invoked by the external app warning dialog to continue the
+ * request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ */
+ void continueRequest();
+
+ /**
+ * Callback invoked by the external app warning dialog to cancel the request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ *
+ * @param aReason
+ * Pass a failure code to indicate the reason why this operation is
+ * being canceled. It is an error to pass a success code.
+ */
+ void cancelRequest(in nsresult aReason);
+};
+
+/**
+ * nsIHelperAppWarningDialog is implemented by Torbutton's external app
+ * blocker (src/components/external-app-blocker.js).
+ */
+[scriptable, uuid(f4899a3f-0df3-42cc-9db8-bdf599e5a208)]
+interface nsIHelperAppWarningDialog : nsISupports
+{
+ /**
+ * Possibly show a launch warning dialog (it will not be shown if the user
+ * has chosen to not see the warning again).
+ *
+ * @param aLauncher
+ * A nsIHelperAppWarningLauncher to be invoked after the user confirms
+ * or cancels the download.
+ * @param aWindowContext
+ * The window associated with the download.
+ */
+ void maybeShow(in nsIHelperAppWarningLauncher aLauncher,
+ in nsISupports aWindowContext);
+};
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit f4c1081f3e031ce19a4bb5232db89df967e7d483
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 21 10:40:26 2016 -0400
Bug 18800: Remove localhost DNS lookup in nsProfileLock.cpp
Instead of using the local computer's IP address within
symlink-based profile lock signatures, always use 127.0.0.1.
---
toolkit/profile/nsProfileLock.cpp | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/toolkit/profile/nsProfileLock.cpp b/toolkit/profile/nsProfileLock.cpp
index 8cbb67deb5d8..dee8b4c75b46 100644
--- a/toolkit/profile/nsProfileLock.cpp
+++ b/toolkit/profile/nsProfileLock.cpp
@@ -304,18 +304,17 @@ nsresult nsProfileLock::LockWithSymlink(nsIFile* aLockFile,
if (!mReplacedLockTime)
aLockFile->GetLastModifiedTimeOfLink(&mReplacedLockTime);
+ // For Tor Browser, avoid a DNS lookup here so the Tor network is not
+ // bypassed. Instead, always use 127.0.0.1 for the IP address portion
+ // of the lock signature, which may cause the browser to refuse to
+ // start in the rare event that all of the following conditions are met:
+ // 1. The browser profile is on a network file system.
+ // 2. The file system does not support fcntl() locking.
+ // 3. Tor Browser is run from two different computers at the same time.
+
struct in_addr inaddr;
inaddr.s_addr = htonl(INADDR_LOOPBACK);
- char hostname[256];
- PRStatus status = PR_GetSystemInfo(PR_SI_HOSTNAME, hostname, sizeof hostname);
- if (status == PR_SUCCESS) {
- char netdbbuf[PR_NETDB_BUF_SIZE];
- PRHostEnt hostent;
- status = PR_GetHostByName(hostname, netdbbuf, sizeof netdbbuf, &hostent);
- if (status == PR_SUCCESS) memcpy(&inaddr, hostent.h_addr, sizeof inaddr);
- }
-
mozilla::SmprintfPointer signature =
mozilla::Smprintf("%s:%s%lu", inet_ntoa(inaddr),
aHaveFcntlLock ? "+" : "", (unsigned long)getpid());
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 11641: change TBB directory structure to be more like Firefox's
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit e7f259ca7e80b8657eb396e8ba63fcf8b79015b4
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Apr 29 13:08:24 2014 -0400
Bug 11641: change TBB directory structure to be more like Firefox's
Unless the -osint command line flag is used, the browser now defaults
to the equivalent of -no-remote. There is a new -allow-remote flag that
may be used to restore the original (Firefox-like) default behavior.
---
toolkit/xre/nsAppRunner.cpp | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 3e691ce85f1f..1da27c99d493 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -1824,8 +1824,10 @@ static void DumpHelp() {
" --migration Start with migration wizard.\n"
" --ProfileManager Start with ProfileManager.\n"
#ifdef MOZ_HAS_REMOTE
- " --no-remote Do not accept or send remote commands; implies\n"
+ " --no-remote (default) Do not accept or send remote commands; "
+ "implies\n"
" --new-instance.\n"
+ " --allow-remote Accept and send remote commands.\n"
" --new-instance Open new instance, not a new window in running "
"instance.\n"
#endif
@@ -4076,16 +4078,25 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
gSafeMode);
#if defined(MOZ_HAS_REMOTE)
+ // In Tor Browser, remoting is disabled by default unless -osint is used.
+ bool allowRemote = (CheckArg("allow-remote") == ARG_FOUND);
+ bool isOsint = (CheckArg("osint", nullptr, CheckArgFlag::None) == ARG_FOUND);
+ if (!allowRemote && !isOsint) {
+ SaveToEnv("MOZ_NO_REMOTE=1");
+ }
// Handle --no-remote and --new-instance command line arguments. Setup
// the environment to better accommodate other components and various
// restart scenarios.
ar = CheckArg("no-remote");
- if (ar == ARG_FOUND || EnvHasValue("MOZ_NO_REMOTE")) {
+ if ((ar == ARG_FOUND) && allowRemote) {
+ PR_fprintf(PR_STDERR,
+ "Error: argument --no-remote is invalid when argument "
+ "--allow-remote is specified\n");
+ return 1;
+ }
+ if (EnvHasValue("MOZ_NO_REMOTE")) {
mDisableRemoteClient = true;
mDisableRemoteServer = true;
- if (!EnvHasValue("MOZ_NO_REMOTE")) {
- SaveToEnv("MOZ_NO_REMOTE=1");
- }
}
ar = CheckArg("new-instance");
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 21724: Make Firefox and Tor Browser distinct macOS apps
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 1aa509ffe9d38ea9b95d9603463ee9a6f6600043
Author: teor <teor2345(a)gmail.com>
Date: Mon Mar 13 23:06:23 2017 +1100
Bug 21724: Make Firefox and Tor Browser distinct macOS apps
When macOS opens a document or selects a default browser, it sometimes
uses the CFBundleSignature. Changing from the Firefox MOZB signature to
a different signature TORB allows macOS to distinguish between Firefox
and Tor Browser.
---
browser/app/Makefile.in | 2 +-
browser/app/macbuild/Contents/Info.plist.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 54d6b43fe126..8dd3a9a65661 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -102,5 +102,5 @@ ifdef MOZ_UPDATER
mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
endif
- printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo'
+ printf APPLTORB > '$(dist_dest)/Contents/PkgInfo'
endif
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index 0de109988e5e..07d914158563 100644
--- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -179,7 +179,7 @@
<key>CFBundleShortVersionString</key>
<string>@APP_VERSION@</string>
<key>CFBundleSignature</key>
- <string>MOZB</string>
+ <string>TORB</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 13379: Sign our MAR files.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 4252763cf4a23ad33f0225b69ade7cf99859c6b7
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Dec 17 16:37:11 2014 -0500
Bug 13379: Sign our MAR files.
Configure with --enable-verify-mar (when updating, require a valid
signature on the MAR file before it is applied).
Use the Tor Browser version instead of the Firefox version inside the
MAR file info block (necessary to prevent downgrade attacks).
Use NSS on all platforms for checking MAR signatures (instead of using
OS-native APIs, which Mozilla does on Mac OS and Windows). So that the
NSS and NSPR libraries the updater depends on can be found at runtime,
we add the firefox directory to the shared library search path on macOS.
On Linux, rpath is used by Mozilla to solve that problem, but that
approach won't work on macOS because the updater executable is copied
during the update process to a location that is under TorBrowser-Data,
and the location of TorBrowser-Data varies.
Also includes the fix for bug 18900.
---
.mozconfig | 1 +
.mozconfig-asan | 1 +
.mozconfig-mac | 1 +
.mozconfig-mingw | 1 +
modules/libmar/tool/mar.c | 6 +--
modules/libmar/tool/moz.build | 12 ++++--
modules/libmar/verify/moz.build | 14 +++---
.../mozapps/update/updater/updater-common.build | 26 +++++++++--
toolkit/mozapps/update/updater/updater.cpp | 25 +++++++----
toolkit/xre/moz.build | 3 ++
toolkit/xre/nsUpdateDriver.cpp | 50 ++++++++++++++++++++++
11 files changed, 115 insertions(+), 25 deletions(-)
diff --git a/.mozconfig b/.mozconfig
index 18cd1f9b6487..c50c57d410de 100755
--- a/.mozconfig
+++ b/.mozconfig
@@ -37,3 +37,4 @@ ac_add_options MOZ_TELEMETRY_REPORTING=
ac_add_options --disable-tor-launcher
ac_add_options --with-tor-browser-version=dev-build
ac_add_options --disable-tor-browser-update
+ac_add_options --enable-verify-mar
diff --git a/.mozconfig-asan b/.mozconfig-asan
index bad7ea022c9f..e42ff6c86bc5 100644
--- a/.mozconfig-asan
+++ b/.mozconfig-asan
@@ -29,6 +29,7 @@ ac_add_options --enable-official-branding
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-strip
ac_add_options --disable-install-strip
diff --git a/.mozconfig-mac b/.mozconfig-mac
index 26e2b6b92fdb..5b4624ef1f67 100644
--- a/.mozconfig-mac
+++ b/.mozconfig-mac
@@ -43,6 +43,7 @@ ac_add_options --disable-debug
ac_add_options --enable-tor-browser-data-outside-app-dir
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-crashreporter
ac_add_options --disable-webrtc
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
index 3ec6ff18a3e9..ce6ace1dad67 100644
--- a/.mozconfig-mingw
+++ b/.mozconfig-mingw
@@ -15,6 +15,7 @@ ac_add_options --enable-strip
ac_add_options --enable-official-branding
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-bits-download
# Let's make sure no preference is enabling either Adobe's or Google's CDM.
diff --git a/modules/libmar/tool/mar.c b/modules/libmar/tool/mar.c
index 0bf2cb4bd1d4..ea2b79924914 100644
--- a/modules/libmar/tool/mar.c
+++ b/modules/libmar/tool/mar.c
@@ -65,7 +65,7 @@ static void print_usage() {
"signed_input_archive.mar base_64_encoded_signature_file "
"changed_signed_output.mar\n");
printf("(i) is the index of the certificate to extract\n");
-# if defined(XP_MACOSX) || (defined(XP_WIN) && !defined(MAR_NSS))
+# if (defined(XP_MACOSX) || defined(XP_WIN)) && !defined(MAR_NSS)
printf("Verify a MAR file:\n");
printf(" mar [-C workingDir] -D DERFilePath -v signed_archive.mar\n");
printf(
@@ -149,7 +149,7 @@ int main(int argc, char** argv) {
memset((void*)certBuffers, 0, sizeof(certBuffers));
#endif
#if !defined(NO_SIGN_VERIFY) && \
- ((!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX))
+ (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
memset(DERFilePaths, 0, sizeof(DERFilePaths));
memset(fileSizes, 0, sizeof(fileSizes));
#endif
@@ -181,7 +181,7 @@ int main(int argc, char** argv) {
argc -= 2;
}
#if !defined(NO_SIGN_VERIFY)
-# if (!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX)
+# if (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
/* -D DERFilePath, also matches -D[index] DERFilePath
We allow an index for verifying to be symmetric
with the import and export command line arguments. */
diff --git a/modules/libmar/tool/moz.build b/modules/libmar/tool/moz.build
index a6d26c66a668..d6fa1677ddf1 100644
--- a/modules/libmar/tool/moz.build
+++ b/modules/libmar/tool/moz.build
@@ -43,15 +43,21 @@ if CONFIG["MOZ_BUILD_APP"] != "tools/update-packaging":
"verifymar",
]
+ if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["MAR_NSS"] = True
+
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
OS_LIBS += [
"ws2_32",
- "crypt32",
- "advapi32",
]
- elif CONFIG["OS_ARCH"] == "Darwin":
+ if not CONFIG["TOR_BROWSER_UPDATE"]:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+ elif CONFIG["OS_ARCH"] == "Darwin" and not CONFIG["TOR_BROWSER_UPDATE"]:
OS_LIBS += [
"-framework Security",
]
diff --git a/modules/libmar/verify/moz.build b/modules/libmar/verify/moz.build
index b07475655f0d..03718eee50b4 100644
--- a/modules/libmar/verify/moz.build
+++ b/modules/libmar/verify/moz.build
@@ -16,15 +16,12 @@ FORCE_STATIC_LIB = True
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
elif CONFIG["OS_ARCH"] == "Darwin":
- UNIFIED_SOURCES += [
- "MacVerifyCrypto.cpp",
- ]
- OS_LIBS += [
- "-framework Security",
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
]
else:
- DEFINES["MAR_NSS"] = True
- LOCAL_INCLUDES += ["../sign"]
USE_LIBS += [
"nspr",
"nss",
@@ -38,6 +35,9 @@ else:
"-Wl,-rpath=\\$$ORIGIN",
]
+DEFINES["MAR_NSS"] = True
+LOCAL_INCLUDES += ["../sign"]
+
LOCAL_INCLUDES += [
"../src",
]
diff --git a/toolkit/mozapps/update/updater/updater-common.build b/toolkit/mozapps/update/updater/updater-common.build
index 13926ea82046..c9ef02bbe291 100644
--- a/toolkit/mozapps/update/updater/updater-common.build
+++ b/toolkit/mozapps/update/updater/updater-common.build
@@ -4,6 +4,12 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+DEFINES["MAR_NSS"] = True
+
+link_with_nss = DEFINES["MAR_NSS"] or (
+ CONFIG["OS_ARCH"] == "Linux" and CONFIG["MOZ_VERIFY_MAR_SIGNATURE"]
+)
+
srcs = [
"archivereader.cpp",
"updater.cpp",
@@ -36,10 +42,14 @@ if CONFIG["OS_ARCH"] == "WINNT":
"ws2_32",
"shell32",
"shlwapi",
- "crypt32",
- "advapi32",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+
USE_LIBS += [
"bspatch",
"mar",
@@ -47,6 +57,13 @@ USE_LIBS += [
"xz-embedded",
]
+if link_with_nss:
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
+ ]
+
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
have_progressui = 1
srcs += [
@@ -61,9 +78,12 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
]
OS_LIBS += [
"-framework Cocoa",
- "-framework Security",
"-framework SystemConfiguration",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "-framework Security",
+ ]
UNIFIED_SOURCES += [
"/toolkit/xre/updaterfileutils_osx.mm",
]
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index d22233066157..ddbcdf5cc22a 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -110,9 +110,11 @@ struct UpdateServerThreadArgs {
# define stat64 stat
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
-# include "nss.h"
-# include "prerror.h"
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+# include "nss.h"
+# include "prerror.h"
+# endif
#endif
#include "crctable.h"
@@ -2732,8 +2734,13 @@ static void UpdateThreadFunc(void* param) {
if (ReadMARChannelIDs(updateSettingsPath, &MARStrings) != OK) {
rv = UPDATE_SETTINGS_FILE_CHANNEL;
} else {
+# ifdef TOR_BROWSER_UPDATE
+ const char* appVersion = TOR_BROWSER_VERSION_QUOTED;
+# else
+ const char* appVersion = MOZ_APP_VERSION;
+# endif
rv = gArchiveReader.VerifyProductInformation(
- MARStrings.MARChannelID.get(), MOZ_APP_VERSION);
+ MARStrings.MARChannelID.get(), appVersion);
}
}
}
@@ -2963,11 +2970,10 @@ int NS_main(int argc, NS_tchar** argv) {
}
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
- // On Windows and Mac we rely on native APIs to do verifications so we don't
- // need to initialize NSS at all there.
- // Otherwise, minimize the amount of NSS we depend on by avoiding all the NSS
- // databases.
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+ // If using NSS for signature verification, initialize NSS but minimize
+ // the portion we depend on by avoiding all of the NSS databases.
if (NSS_NoDB_Init(nullptr) != SECSuccess) {
PRErrorCode error = PR_GetError();
fprintf(stderr, "Could not initialize NSS: %s (%d)", PR_ErrorToName(error),
@@ -2975,6 +2981,7 @@ int NS_main(int argc, NS_tchar** argv) {
_exit(1);
}
#endif
+#endif
#ifdef XP_MACOSX
if (!isElevated) {
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
index cf5f7ac50093..f9fe777d8e20 100644
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -232,6 +232,9 @@ for var in ("APP_VERSION", "APP_ID"):
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["MAR_NSS"] = True
+
LOCAL_INCLUDES += [
"../../other-licenses/nsis/Contrib/CityHash/cityhash",
"../components/find",
diff --git a/toolkit/xre/nsUpdateDriver.cpp b/toolkit/xre/nsUpdateDriver.cpp
index fc4714f5ccb4..df78326be194 100644
--- a/toolkit/xre/nsUpdateDriver.cpp
+++ b/toolkit/xre/nsUpdateDriver.cpp
@@ -365,6 +365,42 @@ static nsresult GetUpdateDirFromAppDir(nsIFile* aAppDir, nsIFile** aResult) {
# endif
#endif
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+/**
+ * Ideally we would save and restore the original library path value after
+ * the updater finishes its work (and before firefox is re-launched).
+ * Doing so would avoid potential problems like the following bug:
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1434033
+ */
+/**
+ * Appends the specified path to the library path.
+ * This is used so that the updater can find libnss3.dylib and other
+ * shared libs.
+ *
+ * @param pathToAppend A new library path to prepend to the dynamic linker's
+ * search path.
+ */
+# include "prprf.h"
+# define PATH_SEPARATOR ":"
+# define LD_LIBRARY_PATH_ENVVAR_NAME "DYLD_LIBRARY_PATH"
+static void AppendToLibPath(const char* pathToAppend) {
+ char* pathValue = getenv(LD_LIBRARY_PATH_ENVVAR_NAME);
+ if (nullptr == pathValue || '\0' == *pathValue) {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s =
+ Smprintf("%s=%s", LD_LIBRARY_PATH_ENVVAR_NAME, pathToAppend).release();
+ PR_SetEnv(s);
+ } else {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s = Smprintf("%s=%s" PATH_SEPARATOR "%s", LD_LIBRARY_PATH_ENVVAR_NAME,
+ pathToAppend, pathValue)
+ .release();
+ PR_SetEnv(s);
+ }
+}
+#endif
+
/**
* Applies, switches, or stages an update.
*
@@ -611,6 +647,20 @@ static void ApplyUpdate(nsIFile* greDir, nsIFile* updateDir, nsIFile* appDir,
PR_SetEnv("MOZ_SAFE_MODE_RESTART=1");
}
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+ // On macOS, append the app directory to the shared library search path
+ // so the system can locate the shared libraries that are needed by the
+ // updater, e.g., libnss3.dylib).
+ nsAutoCString appPath;
+ nsresult rv2 = appDir->GetNativePath(appPath);
+ if (NS_SUCCEEDED(rv2)) {
+ AppendToLibPath(appPath.get());
+ } else {
+ LOG(("ApplyUpdate -- appDir->GetNativePath() failed (0x%x)\n", rv2));
+ }
+#endif
+
LOG(("spawning updater process [%s]\n", updaterPath.get()));
#ifdef DEBUG
dump_argv("ApplyUpdate updater", argv, argc);
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 19121: reinstate the update.xml hash check
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 021e5beabbade1dae094009ccfb245ffd3f6ea56
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Apr 23 15:22:57 2018 -0400
Bug 19121: reinstate the update.xml hash check
Revert most changes from Mozilla Bug 1373267 "Remove hashFunction and
hashValue attributes from nsIUpdatePatch and code related to these
attributes." Changes to the tests were not reverted; the tests have
been changed significantly and we do not run automated updater tests
for Tor Browser at this time.
Also partial revert of commit f1241db6986e4b54473a1ed870f7584c75d51122.
Revert the nsUpdateService.js changes from Mozilla Bug 862173 "don't
verify mar file hash when using mar signing to verify the mar file
(lessens main thread I/O)."
Changes to the tests were not reverted; the tests have been changed
significantly and we do not run automated updater tests for
Tor Browser at this time.
We kept the addition to the AppConstants API in case other JS code
references it in the future.
---
toolkit/modules/AppConstants.jsm | 7 ++++
toolkit/mozapps/update/UpdateService.jsm | 63 ++++++++++++++++++++++++++++-
toolkit/mozapps/update/UpdateTelemetry.jsm | 1 +
toolkit/mozapps/update/nsIUpdateService.idl | 11 +++++
4 files changed, 81 insertions(+), 1 deletion(-)
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index 022251d12332..6fb5f8bc6e2c 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -205,6 +205,13 @@ this.AppConstants = Object.freeze({
false,
#endif
+ MOZ_VERIFY_MAR_SIGNATURE:
+#ifdef MOZ_VERIFY_MAR_SIGNATURE
+ true,
+#else
+ false,
+#endif
+
MOZ_MAINTENANCE_SERVICE:
#ifdef MOZ_MAINTENANCE_SERVICE
true,
diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm
index c1d5d11bfbc2..8e435e270741 100644
--- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -943,6 +943,20 @@ function LOG(string) {
}
}
+/**
+ * Convert a string containing binary values to hex.
+ */
+function binaryToHex(input) {
+ var result = "";
+ for (var i = 0; i < input.length; ++i) {
+ var hex = input.charCodeAt(i).toString(16);
+ if (hex.length == 1)
+ hex = "0" + hex;
+ result += hex;
+ }
+ return result;
+}
+
/**
* Gets the specified directory at the specified hierarchy under the
* update root directory and creates it if it doesn't exist.
@@ -1962,6 +1976,8 @@ function UpdatePatch(patch) {
}
break;
case "finalURL":
+ case "hashFunction":
+ case "hashValue":
case "state":
case "type":
case "URL":
@@ -1981,6 +1997,8 @@ UpdatePatch.prototype = {
// over writing nsIUpdatePatch attributes.
_attrNames: [
"errorCode",
+ "hashFunction",
+ "hashValue",
"finalURL",
"selected",
"size",
@@ -1994,6 +2012,8 @@ UpdatePatch.prototype = {
*/
serialize: function UpdatePatch_serialize(updates) {
var patch = updates.createElementNS(URI_UPDATE_NS, "patch");
+ patch.setAttribute("hashFunction", this.hashFunction);
+ patch.setAttribute("hashValue", this.hashValue);
patch.setAttribute("size", this.size);
patch.setAttribute("type", this.type);
patch.setAttribute("URL", this.URL);
@@ -5109,7 +5129,42 @@ Downloader.prototype = {
}
LOG("Downloader:_verifyDownload downloaded size == expected size.");
- return true;
+ let fileStream = Cc["@mozilla.org/network/file-input-stream;1"].
+ createInstance(Ci.nsIFileInputStream);
+ fileStream.init(destination, FileUtils.MODE_RDONLY, FileUtils.PERMS_FILE, 0);
+
+ let digest;
+ try {
+ let hash = Cc["@mozilla.org/security/hash;1"].
+ createInstance(Ci.nsICryptoHash);
+ var hashFunction = Ci.nsICryptoHash[this._patch.hashFunction.toUpperCase()];
+ if (hashFunction == undefined) {
+ throw Cr.NS_ERROR_UNEXPECTED;
+ }
+ hash.init(hashFunction);
+ hash.updateFromStream(fileStream, -1);
+ // NOTE: For now, we assume that the format of _patch.hashValue is hex
+ // encoded binary (such as what is typically output by programs like
+ // sha1sum). In the future, this may change to base64 depending on how
+ // we choose to compute these hashes.
+ digest = binaryToHex(hash.finish(false));
+ } catch (e) {
+ LOG("Downloader:_verifyDownload - failed to compute hash of the " +
+ "downloaded update archive");
+ digest = "";
+ }
+
+ fileStream.close();
+
+ if (digest == this._patch.hashValue.toLowerCase()) {
+ LOG("Downloader:_verifyDownload hashes match.");
+ return true;
+ }
+
+ LOG("Downloader:_verifyDownload hashes do not match. ");
+ AUSTLMY.pingDownloadCode(this.isCompleteUpdate,
+ AUSTLMY.DWNLD_ERR_VERIFY_NO_HASH_MATCH);
+ return false;
},
/**
@@ -5695,6 +5750,9 @@ Downloader.prototype = {
" is higher than patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_LARGER
@@ -5713,6 +5771,9 @@ Downloader.prototype = {
" is not equal to expected patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_NOT_EQUAL
diff --git a/toolkit/mozapps/update/UpdateTelemetry.jsm b/toolkit/mozapps/update/UpdateTelemetry.jsm
index dae76e09acd0..df5b8917970e 100644
--- a/toolkit/mozapps/update/UpdateTelemetry.jsm
+++ b/toolkit/mozapps/update/UpdateTelemetry.jsm
@@ -192,6 +192,7 @@ var AUSTLMY = {
DWNLD_ERR_VERIFY_NO_REQUEST: 13,
DWNLD_ERR_VERIFY_PATCH_SIZE_NOT_EQUAL: 14,
DWNLD_ERR_WRITE_FAILURE: 15,
+ DWNLD_ERR_VERIFY_NO_HASH_MATCH: 16,
// Temporary failure code to see if there are failures without an update phase
DWNLD_UNKNOWN_PHASE_ERR_WRITE_FAILURE: 40,
diff --git a/toolkit/mozapps/update/nsIUpdateService.idl b/toolkit/mozapps/update/nsIUpdateService.idl
index 9a39c987e337..e1cfef0021fb 100644
--- a/toolkit/mozapps/update/nsIUpdateService.idl
+++ b/toolkit/mozapps/update/nsIUpdateService.idl
@@ -39,6 +39,17 @@ interface nsIUpdatePatch : nsISupports
*/
attribute AString finalURL;
+ /**
+ * The hash function to use when determining this file's integrity
+ */
+ attribute AString hashFunction;
+
+ /**
+ * The value of the hash function named above that should be computed if
+ * this file is not corrupt.
+ */
+ attribute AString hashValue;
+
/**
* The size of this file, in bytes.
*/
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 23104: Add a default line height compensation
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 2bd4c633497575a521a1a048339e72f0cf3ed7a6
Author: Igor Oliveira <igor.oliveira(a)posteo.net>
Date: Sun Dec 10 18:16:59 2017 -0200
Bug 23104: Add a default line height compensation
Many fonts have issues with their vertical metrics. they
are used to influence the height of ascenders and depth
of descenders. Gecko uses it to calculate the line height
(font height + ascender + descender), however because of
that idiosyncratic behavior across multiple operating
systems, it can be used to identify the user's OS.
The solution proposed in the patch uses a default factor
to be multiplied with the font size, simulating the concept
of ascender and descender. This way all operating
systems will have the same line height only and only if the
frame is outside the chrome.
---
layout/generic/ReflowInput.cpp | 19 +++++++++---
layout/generic/test/mochitest.ini | 1 +
layout/generic/test/test_tor_bug23104.html | 50 ++++++++++++++++++++++++++++++
3 files changed, 65 insertions(+), 5 deletions(-)
diff --git a/layout/generic/ReflowInput.cpp b/layout/generic/ReflowInput.cpp
index a9d3ff48505a..2bdc1ce37de9 100644
--- a/layout/generic/ReflowInput.cpp
+++ b/layout/generic/ReflowInput.cpp
@@ -31,6 +31,7 @@
#include "mozilla/SVGUtils.h"
#include "mozilla/dom/HTMLInputElement.h"
#include "nsGridContainerFrame.h"
+#include "nsContentUtils.h"
using namespace mozilla;
using namespace mozilla::css;
@@ -2647,7 +2648,8 @@ void ReflowInput::CalculateBlockSideMargins() {
// For risk management, we use preference to control the behavior, and
// eNoExternalLeading is the old behavior.
-static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
+static nscoord GetNormalLineHeight(nsIContent* aContent,
+ nsFontMetrics* aFontMetrics) {
MOZ_ASSERT(nullptr != aFontMetrics, "no font metrics");
nscoord normalLineHeight;
@@ -2655,6 +2657,12 @@ static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
nscoord externalLeading = aFontMetrics->ExternalLeading();
nscoord internalLeading = aFontMetrics->InternalLeading();
nscoord emHeight = aFontMetrics->EmHeight();
+
+ if (nsContentUtils::ShouldResistFingerprinting() &&
+ !aContent->IsInChromeDocument()) {
+ return NSToCoordRound(emHeight * NORMAL_LINE_HEIGHT_FACTOR);
+ }
+
switch (GetNormalLineHeightCalcControl()) {
case eIncludeExternalLeading:
normalLineHeight = emHeight + internalLeading + externalLeading;
@@ -2672,7 +2680,8 @@ static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
return normalLineHeight;
}
-static inline nscoord ComputeLineHeight(ComputedStyle* aComputedStyle,
+static inline nscoord ComputeLineHeight(nsIContent* aContent,
+ ComputedStyle* aComputedStyle,
nsPresContext* aPresContext,
nscoord aBlockBSize,
float aFontSizeInflation) {
@@ -2701,7 +2710,7 @@ static inline nscoord ComputeLineHeight(ComputedStyle* aComputedStyle,
RefPtr<nsFontMetrics> fm = nsLayoutUtils::GetFontMetricsForComputedStyle(
aComputedStyle, aPresContext, aFontSizeInflation);
- return GetNormalLineHeight(fm);
+ return GetNormalLineHeight(aContent, fm);
}
nscoord ReflowInput::CalcLineHeight() const {
@@ -2723,7 +2732,7 @@ nscoord ReflowInput::CalcLineHeight(nsIContent* aContent,
float aFontSizeInflation) {
MOZ_ASSERT(aComputedStyle, "Must have a ComputedStyle");
- nscoord lineHeight = ComputeLineHeight(aComputedStyle, aPresContext,
+ nscoord lineHeight = ComputeLineHeight(aContent, aComputedStyle, aPresContext,
aBlockBSize, aFontSizeInflation);
NS_ASSERTION(lineHeight >= 0, "ComputeLineHeight screwed up");
@@ -2736,7 +2745,7 @@ nscoord ReflowInput::CalcLineHeight(nsIContent* aContent,
if (!lh.IsNormal()) {
RefPtr<nsFontMetrics> fm = nsLayoutUtils::GetFontMetricsForComputedStyle(
aComputedStyle, aPresContext, aFontSizeInflation);
- nscoord normal = GetNormalLineHeight(fm);
+ nscoord normal = GetNormalLineHeight(aContent, fm);
if (lineHeight < normal) {
lineHeight = normal;
}
diff --git a/layout/generic/test/mochitest.ini b/layout/generic/test/mochitest.ini
index 64348d308568..64437b3a0d23 100644
--- a/layout/generic/test/mochitest.ini
+++ b/layout/generic/test/mochitest.ini
@@ -144,3 +144,4 @@ skip-if = debug == true || tsan # the test is slow. tsan: bug 1612707
support-files =
file_reframe_for_lazy_load_image.html
[test_bug1655135.html]
+[test_tor_bug23104.html]
diff --git a/layout/generic/test/test_tor_bug23104.html b/layout/generic/test/test_tor_bug23104.html
new file mode 100644
index 000000000000..8ff1d2190c45
--- /dev/null
+++ b/layout/generic/test/test_tor_bug23104.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<html>
+<head>
+ <title>Test for Tor Bug #23104: CSS line-height reveals the platform Tor browser is running</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+ <style type="text/css">
+ span {
+ background-color: #000;
+ color: #fff;
+ font-size: 16.5px;
+ }
+ </style>
+</head>
+<body>
+<span id="test1">Test1</span>
+<span id="test2">كلمة</span>
+<span id="test3">ação</span>
+<script>
+
+let setPref = async function (key, value) {
+ await SpecialPowers.pushPrefEnv({"set": [[key, value]]});
+}
+
+function getStyle(el, styleprop) {
+ el = document.getElementById(el);
+ return document.defaultView.getComputedStyle(el, null).getPropertyValue(styleprop);
+}
+
+function validateElement(elementName, isFingerprintResistent) {
+ var fontSize = getStyle(elementName, 'font-size');
+ var lineHeight = getStyle(elementName, 'line-height');
+ var validationCb = isFingerprintResistent ? is : isnot;
+ validationCb(parseFloat(lineHeight), Math.round(parseFloat(fontSize)) * 1.2, 'Line Height validation');
+}
+
+add_task(async function() {
+ await setPref("layout.css.line-height.normal-as-resolved-value.enabled", false);
+ for (let resistFingerprintingValue of [true, false]) {
+ await setPref("privacy.resistFingerprinting", resistFingerprintingValue);
+ for (let elementId of ['test1', 'test2', 'test3']) {
+ validateElement(elementId, resistFingerprintingValue);
+ }
+ }
+});
+
+</script>
+</body>
+</html>
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 16940: After update, load local change notes.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit a120a26e7886656ce8d05c179d94066513809c49
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Nov 25 11:36:20 2015 -0500
Bug 16940: After update, load local change notes.
Add an about:tbupdate page that displays the first section from
TorBrowser/Docs/ChangeLog.txt and includes a link to the remote
post-update page (typically our blog entry for the release).
Always load about:tbupdate in a content process, but implement the
code that reads the file system (changelog) in the chrome process
for compatibility with future sandboxing efforts.
Also fix bug 29440. Now about:tbupdate is styled as a fairly simple
changelog page that is designed to be displayed via a link that is on
about:tor.
---
browser/actors/AboutTBUpdateChild.jsm | 12 +++
browser/actors/AboutTBUpdateParent.jsm | 120 +++++++++++++++++++++
browser/actors/moz.build | 6 ++
.../base/content/abouttbupdate/aboutTBUpdate.css | 74 +++++++++++++
.../base/content/abouttbupdate/aboutTBUpdate.js | 27 +++++
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 39 +++++++
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 4 +
browser/base/jar.mn | 5 +
browser/components/BrowserContentHandler.jsm | 55 +++++++---
browser/components/BrowserGlue.jsm | 15 +++
browser/components/about/AboutRedirector.cpp | 6 ++
browser/components/about/components.conf | 3 +
browser/components/moz.build | 5 +-
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 8 ++
browser/locales/jar.mn | 3 +
toolkit/modules/RemotePageAccessManager.jsm | 5 +
17 files changed, 373 insertions(+), 16 deletions(-)
diff --git a/browser/actors/AboutTBUpdateChild.jsm b/browser/actors/AboutTBUpdateChild.jsm
new file mode 100644
index 000000000000..4670da19b3db
--- /dev/null
+++ b/browser/actors/AboutTBUpdateChild.jsm
@@ -0,0 +1,12 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+var EXPORTED_SYMBOLS = ["AboutTBUpdateChild"];
+
+const { RemotePageChild } = ChromeUtils.import(
+ "resource://gre/actors/RemotePageChild.jsm"
+);
+
+class AboutTBUpdateChild extends RemotePageChild {}
diff --git a/browser/actors/AboutTBUpdateParent.jsm b/browser/actors/AboutTBUpdateParent.jsm
new file mode 100644
index 000000000000..56a10394565a
--- /dev/null
+++ b/browser/actors/AboutTBUpdateParent.jsm
@@ -0,0 +1,120 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+"use strict";
+
+this.EXPORTED_SYMBOLS = ["AboutTBUpdateParent"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
+const { AppConstants } = ChromeUtils.import(
+ "resource://gre/modules/AppConstants.jsm"
+);
+
+const kRequestUpdateMessageName = "FetchUpdateData";
+
+/**
+ * This code provides services to the about:tbupdate page. Whenever
+ * about:tbupdate needs to do something chrome-privileged, it sends a
+ * message that's handled here. It is modeled after Mozilla's about:home
+ * implementation.
+ */
+class AboutTBUpdateParent extends JSWindowActorParent {
+ receiveMessage(aMessage) {
+ if (aMessage.name == kRequestUpdateMessageName) {
+ return this.releaseNoteInfo;
+ }
+ return undefined;
+ }
+
+ get moreInfoURL() {
+ try {
+ return Services.prefs.getCharPref("torbrowser.post_update.url");
+ } catch (e) {}
+
+ // Use the default URL as a fallback.
+ return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
+ }
+
+ // Read the text from the beginning of the changelog file that is located
+ // at TorBrowser/Docs/ChangeLog.txt and return an object that contains
+ // the following properties:
+ // version e.g., Tor Browser 8.5
+ // releaseDate e.g., March 31 2019
+ // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
+ // We attempt to parse the first line of ChangeLog.txt to extract the
+ // version and releaseDate. If parsing fails, we return the entire first
+ // line in version and omit releaseDate.
+ //
+ // On Mac OS, when building with --enable-tor-browser-data-outside-app-dir
+ // to support Gatekeeper signing, the ChangeLog.txt file is located in
+ // TorBrowser.app/Contents/Resources/TorBrowser/Docs/.
+ get releaseNoteInfo() {
+ let info = { moreInfoURL: this.moreInfoURL };
+
+ try {
+ let f;
+ if (AppConstants.TOR_BROWSER_DATA_OUTSIDE_APP_DIR) {
+ // "XREExeF".parent is the directory that contains firefox, i.e.,
+ // Browser/ or, on Mac OS, TorBrowser.app/Contents/MacOS/.
+ f = Services.dirsvc.get("XREExeF", Ci.nsIFile).parent;
+ if (AppConstants.platform === "macosx") {
+ f = f.parent;
+ f.append("Resources");
+ }
+ f.append("TorBrowser");
+ } else {
+ // "DefProfRt" is .../TorBrowser/Data/Browser
+ f = Services.dirsvc.get("DefProfRt", Ci.nsIFile);
+ f = f.parent.parent; // Remove "Data/Browser"
+ }
+
+ f.append("Docs");
+ f.append("ChangeLog.txt");
+
+ let fs = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(
+ Ci.nsIFileInputStream
+ );
+ fs.init(f, -1, 0, 0);
+ let s = NetUtil.readInputStreamToString(fs, fs.available());
+ fs.close();
+
+ // Truncate at the first empty line.
+ s = s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+
+ // Split into first line (version plus releaseDate) and
+ // remainder (releaseNotes).
+ // This first match() uses multiline mode with two capture groups:
+ // first line: (.*$)
+ // remaining lines: ([\s\S]+)
+ // [\s\S] matches all characters including end of line. This trick
+ // is needed because when using JavaScript regex in multiline mode,
+ // . does not match an end of line character.
+ let matchArray = s.match(/(.*$)\s*([\s\S]+)/m);
+ if (matchArray && matchArray.length == 3) {
+ info.releaseNotes = matchArray[2];
+ let line1 = matchArray[1];
+ // Extract the version and releaseDate. The first line looks like:
+ // Tor Browser 8.5 -- May 1 2019
+ // The regex uses two capture groups:
+ // text that does not include a hyphen: (^[^-]*)
+ // remaining text: (.*$)
+ // In between we match optional whitespace, one or more hyphens, and
+ // optional whitespace by using: \s*-+\s*
+ matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/);
+ if (matchArray && matchArray.length == 3) {
+ info.version = matchArray[1];
+ info.releaseDate = matchArray[2];
+ } else {
+ info.version = line1; // Match failed: return entire line in version.
+ }
+ } else {
+ info.releaseNotes = s; // Only one line: use as releaseNotes.
+ }
+ } catch (e) {}
+
+ return info;
+ }
+}
diff --git a/browser/actors/moz.build b/browser/actors/moz.build
index 5118f85caf54..f731ee9b851b 100644
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -89,3 +89,9 @@ FINAL_TARGET_FILES.actors += [
"WebRTCChild.jsm",
"WebRTCParent.jsm",
]
+
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ FINAL_TARGET_FILES.actors += [
+ "AboutTBUpdateChild.jsm",
+ "AboutTBUpdateParent.jsm",
+ ]
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
new file mode 100644
index 000000000000..7c1a34b77f17
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2019, The Tor Project, Inc.
+ * See LICENSE for licensing information.
+ *
+ * vim: set sw=2 sts=2 ts=8 et syntax=css:
+ */
+
+:root {
+ --abouttor-text-color: white;
+ --abouttor-bg-toron-color: #420C5D;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ color: var(--abouttor-text-color);
+ background-color: var(--abouttor-bg-toron-color);
+ background-attachment: fixed;
+ background-size: 100% 100%;
+}
+
+a {
+ color: var(--abouttor-text-color);
+}
+
+.two-column-grid {
+ display: inline-grid;
+ grid-template-columns: auto auto;
+ grid-column-gap: 50px;
+ margin: 10px 0px 0px 50px;
+}
+
+.two-column-grid div {
+ margin-top: 40px;
+ align-self: baseline; /* Align baseline of text across the row. */
+}
+
+.label-column {
+ font-size: 14px;
+ font-weight: 400;
+}
+
+/*
+ * Use a reduced top margin to bring the row that contains the
+ * "visit our website" link closer to the row that precedes it. This
+ * looks better because the "visit our website" row does not have a
+ * label in the left column.
+ */
+div.more-info-row {
+ margin-top: 5px;
+ font-size: 14px;
+}
+
+#version-content {
+ font-size: 50px;
+ font-weight: 300;
+}
+
+body:not([havereleasedate]) .release-date-cell {
+ display: none;
+}
+
+#releasedate-content {
+ font-size: 17px;
+}
+
+#releasenotes-label {
+ align-self: start; /* Anchor "Release Notes" label at the top. */
+}
+
+#releasenotes-content {
+ font-family: monospace;
+ font-size: 15px;
+ white-space: pre;
+}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.js b/browser/base/content/abouttbupdate/aboutTBUpdate.js
new file mode 100644
index 000000000000..ec070e2cb131
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.js
@@ -0,0 +1,27 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+/* eslint-env mozilla/frame-script */
+
+// aData may contain the following string properties:
+// version
+// releaseDate
+// moreInfoURL
+// releaseNotes
+function onUpdate(aData) {
+ document.getElementById("version-content").textContent = aData.version;
+ if (aData.releaseDate) {
+ document.body.setAttribute("havereleasedate", "true");
+ document.getElementById("releasedate-content").textContent =
+ aData.releaseDate;
+ }
+ if (aData.moreInfoURL) {
+ document.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
+ }
+ document.getElementById("releasenotes-content").textContent =
+ aData.releaseNotes;
+}
+
+RPMSendQuery("FetchUpdateData").then(onUpdate);
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
new file mode 100644
index 000000000000..8489cfef5083
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html [
+ <!ENTITY % htmlDTD
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "DTD/xhtml1-strict.dtd">
+ %htmlDTD;
+ <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+ <!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
+ %tbUpdateDTD;
+]>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
+ <title>&aboutTBUpdate.changelogTitle;</title>
+ <link rel="stylesheet" type="text/css"
+ href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"/>
+ <script src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
+ type="text/javascript"/>
+</head>
+<body dir="&locale.dir;">
+<div class="two-column-grid">
+ <div class="label-column">&aboutTBUpdate.version;</div>
+ <div id="version-content"/>
+
+ <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div>
+ <div id="releasedate-content" class="release-date-cell"/>
+
+ <div class="more-info-row"/>
+ <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+
+ <div id="releasenotes-label"
+ class="label-column">&aboutTBUpdate.releaseNotes;</div>
+ <div id="releasenotes-content"></div>
+</div>
+</body>
+</html>
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index 0572abe547a0..e395925b94b1 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -57,7 +57,7 @@ var gIdentityHandler = {
* RegExp used to decide if an about url should be shown as being part of
* the browser UI.
*/
- _secureInternalPages: /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion)(?:[?#]|$)/i,
+ _secureInternalPages: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor)(?:[?#]|$)/i),
/**
* Whether the established HTTPS connection is considered "broken".
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 618848f2e2f5..b51283ec1fda 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -684,6 +684,10 @@ var gInitialPages = [
"about:newinstall",
];
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ gInitialPages.push("about:tbupdate");
+}
+
function isInitialPage(url) {
if (!(url instanceof Ci.nsIURI)) {
try {
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index 6f825da44aa9..81b36f9b3d95 100644
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -31,6 +31,11 @@ browser.jar:
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
+#ifdef TOR_BROWSER_UPDATE
+ content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
+ content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
+ content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
+#endif
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
* content/browser/browser.xhtml (content/browser.xhtml)
diff --git a/browser/components/BrowserContentHandler.jsm b/browser/components/BrowserContentHandler.jsm
index 37b114ffca1a..ad796fd1e809 100644
--- a/browser/components/BrowserContentHandler.jsm
+++ b/browser/components/BrowserContentHandler.jsm
@@ -655,6 +655,23 @@ nsBrowserContentHandler.prototype = {
}
}
+ // Retrieve the home page early so we can compare it against about:tor
+ // to decide whether or not we need an override page (second tab) after
+ // an update was applied.
+ var startPage = "";
+ try {
+ var choice = prefb.getIntPref("browser.startup.page");
+ if (choice == 1 || choice == 3) {
+ startPage = HomePage.get();
+ }
+ } catch (e) {
+ Cu.reportError(e);
+ }
+
+ if (startPage == "about:blank") {
+ startPage = "";
+ }
+
var override;
var overridePage = "";
var additionalPage = "";
@@ -706,6 +723,16 @@ nsBrowserContentHandler.prototype = {
// into account because that requires waiting for the session file
// to be read. If a crash occurs after updating, before restarting,
// we may open the startPage in addition to restoring the session.
+ //
+ // Tor Browser: Instead of opening the post-update "override page"
+ // directly, we ensure that about:tor will be opened in a special
+ // mode that notifies the user that their browser was updated.
+ // The about:tor page will provide a link to the override page
+ // where the user can learn more about the update, as well as a
+ // link to the Tor Browser changelog page (about:tbupdate). The
+ // override page URL comes from the openURL attribute within the
+ // updates.xml file or, if no showURL action is present, from the
+ // startup.homepage_override_url pref.
willRestoreSession = SessionStartup.isAutomaticRestoreEnabled();
overridePage = Services.urlFormatter.formatURLPref(
@@ -725,6 +752,20 @@ nsBrowserContentHandler.prototype = {
overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
overridePage = overridePage.replace("%OLD_TOR_BROWSER_VERSION%",
old_tbversion);
+#ifdef TOR_BROWSER_UPDATE
+ if (overridePage)
+ {
+ prefb.setCharPref("torbrowser.post_update.url", overridePage);
+ prefb.setBoolPref("torbrowser.post_update.shouldNotify", true);
+ // If the user's homepage is about:tor, we will inform them
+ // about the update on that page; otherwise, we arrange to
+ // open about:tor in a secondary tab.
+ if (startPage === "about:tor")
+ overridePage = "";
+ else
+ overridePage = "about:tor";
+ }
+#endif
break;
case OVERRIDE_NEW_BUILD_ID:
if (UpdateManager.readyUpdate) {
@@ -797,20 +838,6 @@ nsBrowserContentHandler.prototype = {
}
}
- var startPage = "";
- try {
- var choice = prefb.getIntPref("browser.startup.page");
- if (choice == 1 || choice == 3) {
- startPage = HomePage.get();
- }
- } catch (e) {
- Cu.reportError(e);
- }
-
- if (startPage == "about:blank") {
- startPage = "";
- }
-
let skipStartPage =
(override == OVERRIDE_NEW_PROFILE ||
override == OVERRIDE_ALTERNATE_PROFILE) &&
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 858e24b8f910..106ab4cc8da1 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -755,6 +755,21 @@ let JSWINDOWACTORS = {
},
};
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ JSWINDOWACTORS["AboutTBUpdate"] = {
+ parent: {
+ moduleURI: "resource:///actors/AboutTBUpdateParent.jsm",
+ },
+ child: {
+ moduleURI: "resource:///actors/AboutTBUpdateChild.jsm",
+ events: {
+ DOMWindowCreated: { capture: true },
+ },
+ },
+ matches: ["about:tbupdate"],
+ };
+}
+
(function earlyBlankFirstPaint() {
let startTime = Cu.now();
if (
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index c805adc254b2..3b8e1c39f3d5 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -132,6 +132,12 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"ion", "chrome://browser/content/ion.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#ifdef TOR_BROWSER_UPDATE
+ {"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#endif
};
static nsAutoCString GetAboutModuleName(nsIURI* aURI) {
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index 77c658579995..ed67de484aae 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -33,6 +33,9 @@ pages = [
'welcomeback',
]
+if defined('TOR_BROWSER_UPDATE'):
+ pages.append('tbupdate')
+
Classes = [
{
'cid': '{7e4bb6ad-2fc4-4dc6-89ef-23e8e5ccf980}',
diff --git a/browser/components/moz.build b/browser/components/moz.build
index d16b27b1eaa3..1e977cfe5499 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -87,11 +87,14 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES += [
- "BrowserContentHandler.jsm",
"BrowserGlue.jsm",
"distribution.js",
]
+EXTRA_PP_JS_MODULES += [
+ "BrowserContentHandler.jsm",
+]
+
BROWSER_CHROME_MANIFESTS += [
"safebrowsing/content/test/browser.ini",
"tests/browser/browser.ini",
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
new file mode 100644
index 000000000000..2d1e59b40eaf
--- /dev/null
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -0,0 +1,8 @@
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
+<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
+<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
+<!ENTITY aboutTBUpdate.linkLabel "visit our website">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 53d9c8626c4a..b539e72b4fa5 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -20,6 +20,9 @@
locale/browser/accounts.properties (%chrome/browser/accounts.properties)
locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
+#ifdef TOR_BROWSER_UPDATE
+ locale/browser/aboutTBUpdate.dtd (%chrome/browser/aboutTBUpdate.dtd)
+#endif
locale/browser/browser.dtd (%chrome/browser/browser.dtd)
locale/browser/browser.properties (%chrome/browser/browser.properties)
locale/browser/customizableui/customizableWidgets.properties (%chrome/browser/customizableui/customizableWidgets.properties)
diff --git a/toolkit/modules/RemotePageAccessManager.jsm b/toolkit/modules/RemotePageAccessManager.jsm
index a446071f2bdb..f024a51827bc 100644
--- a/toolkit/modules/RemotePageAccessManager.jsm
+++ b/toolkit/modules/RemotePageAccessManager.jsm
@@ -215,6 +215,11 @@ let RemotePageAccessManager = {
RPMAddMessageListener: ["*"],
RPMRemoveMessageListener: ["*"],
},
+ "about:tbupdate": {
+ RPMSendQuery: [
+ "FetchUpdateData",
+ ],
+ },
},
/**
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 25658: Replace security slider with security level UI
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 7b1009767b90c48f10043256de2d851794dd0eba
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Mar 4 16:09:51 2019 -0800
Bug 25658: Replace security slider with security level UI
This patch adds a new 'securitylevel' component to Tor Browser intended
to replace the torbutton 'Security Slider'.
This component adds a new Security Level toolbar button which visually
indicates the current global security level via icon (as defined by the
extensions.torbutton.security_slider pref), a drop-down hanger with a
short description of the current security level, and a new section in
the about:preferences#privacy page where users can change their current
security level. In addition, the hanger and the preferences page will
show a visual warning when the user has modified prefs associated with
the security level and provide a one-click 'Restore Defaults' button to
get the user back on recommended settings.
Strings used by this patch are pulled from the torbutton extension, but
en-US defaults are provided if there is an error loading from the
extension. With this patch applied, the usual work-flow of "./mach build
&& ./mach run" work as expected, even if the torbutton extension is
disabled.
---
browser/base/content/browser.js | 10 +
browser/base/content/browser.xhtml | 5 +
browser/components/moz.build | 1 +
browser/components/preferences/preferences.xhtml | 1 +
browser/components/preferences/privacy.inc.xhtml | 2 +
browser/components/preferences/privacy.js | 19 +
.../securitylevel/content/securityLevel.js | 501 +++++++++++++++++++++
.../securitylevel/content/securityLevelButton.css | 9 +
.../content/securityLevelButton.inc.xhtml | 7 +
.../securitylevel/content/securityLevelButton.svg | 21 +
.../securitylevel/content/securityLevelPanel.css | 82 ++++
.../content/securityLevelPanel.inc.xhtml | 38 ++
.../content/securityLevelPreferences.css | 26 ++
.../content/securityLevelPreferences.inc.xhtml | 62 +++
browser/components/securitylevel/jar.mn | 6 +
browser/components/securitylevel/moz.build | 1 +
16 files changed, 791 insertions(+)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index b51283ec1fda..f8ef15471c34 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -225,6 +225,11 @@ XPCOMUtils.defineLazyScriptGetter(
["DownloadsButton", "DownloadsIndicatorView"],
"chrome://browser/content/downloads/indicator.js"
);
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["SecurityLevelButton"],
+ "chrome://browser/content/securitylevel/securityLevel.js"
+);
XPCOMUtils.defineLazyScriptGetter(
this,
"gEditItemOverlay",
@@ -1801,6 +1806,9 @@ var gBrowserInit = {
// doesn't flicker as the window is being shown.
DownloadsButton.init();
+ // Init the SecuritySettingsButton
+ SecurityLevelButton.init();
+
// Certain kinds of automigration rely on this notification to complete
// their tasks BEFORE the browser window is shown. SessionStore uses it to
// restore tabs into windows AFTER important parts like gMultiProcessBrowser
@@ -2525,6 +2533,8 @@ var gBrowserInit = {
DownloadsButton.uninit();
+ SecurityLevelButton.uninit();
+
gAccessibilityServiceIndicator.uninit();
if (gToolbarKeyNavEnabled) {
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 668bbb15fdfe..da4188b336e6 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -20,6 +20,8 @@
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPanel.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelButton.css"?>
<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
@@ -651,6 +653,7 @@
#include ../../components/controlcenter/content/protectionsPanel.inc.xhtml
#include ../../components/downloads/content/downloadsPanel.inc.xhtml
#include ../../../devtools/startup/enableDevToolsPopup.inc.xhtml
+#include ../../components/securitylevel/content/securityLevelPanel.inc.xhtml
#include browser-allTabsMenu.inc.xhtml
<tooltip id="dynamic-shortcut-tooltip"
@@ -2079,6 +2082,8 @@
</box>
</toolbarbutton>
+#include ../../components/securitylevel/content/securityLevelButton.inc.xhtml
+
<toolbarbutton id="fxa-toolbar-menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
badged="true"
onmousedown="gSync.toggleAccountPanel(this, event)"
diff --git a/browser/components/moz.build b/browser/components/moz.build
index 1e977cfe5499..1c421b761888 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -50,6 +50,7 @@ DIRS += [
"protocolhandler",
"resistfingerprinting",
"search",
+ "securitylevel",
"sessionstore",
"shell",
"syncedtabs",
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index aab4a9e558bc..10faf11bfecd 100644
--- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml
@@ -12,6 +12,7 @@
<?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>
<!DOCTYPE html>
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index 5c8d2ae6dee5..038d1292b25a 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -904,6 +904,8 @@
<html:h1 data-l10n-id="security-header"/>
</hbox>
+#include ../securitylevel/content/securityLevelPreferences.inc.xhtml
+
<!-- addons, forgery (phishing) UI Security -->
<groupbox id="browsingProtectionGroup" data-category="panePrivacy" hidden="true">
<label><html:h2 data-l10n-id="security-browsing-protection"/></label>
diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index 9d6ca0a9dd01..47a03f01a5b3 100644
--- a/browser/components/preferences/privacy.js
+++ b/browser/components/preferences/privacy.js
@@ -80,6 +80,12 @@ XPCOMUtils.defineLazyGetter(this, "AlertsServiceDND", function() {
}
});
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["SecurityLevelPreferences"],
+ "chrome://browser/content/securitylevel/securityLevel.js"
+);
+
XPCOMUtils.defineLazyServiceGetter(
this,
"listManager",
@@ -305,6 +311,18 @@ function setUpContentBlockingWarnings() {
var gPrivacyPane = {
_pane: null,
+ /**
+ * Show the Security Level UI
+ */
+ _initSecurityLevel() {
+ SecurityLevelPreferences.init();
+ let unload = () => {
+ window.removeEventListener("unload", unload);
+ SecurityLevelPreferences.uninit();
+ };
+ window.addEventListener("unload", unload);
+ },
+
/**
* Whether the prompt to restart Firefox should appear when changing the autostart pref.
*/
@@ -504,6 +522,7 @@ var gPrivacyPane = {
this.trackingProtectionReadPrefs();
this.networkCookieBehaviorReadPrefs();
this._initTrackingProtectionExtensionControl();
+ this._initSecurityLevel();
Services.telemetry.setEventRecordingEnabled("pwmgr", true);
diff --git a/browser/components/securitylevel/content/securityLevel.js b/browser/components/securitylevel/content/securityLevel.js
new file mode 100644
index 000000000000..b47d0cfb545e
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevel.js
@@ -0,0 +1,501 @@
+"use strict";
+
+ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+XPCOMUtils.defineLazyModuleGetters(this, {
+ CustomizableUI: "resource:///modules/CustomizableUI.jsm",
+ PanelMultiView: "resource:///modules/PanelMultiView.jsm",
+});
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "TorStrings",
+ "resource:///modules/TorStrings.jsm"
+);
+
+/*
+ Security Level Prefs
+
+ Getters and Setters for relevant torbutton prefs
+*/
+const SecurityLevelPrefs = {
+ security_slider_pref : "extensions.torbutton.security_slider",
+ security_custom_pref : "extensions.torbutton.security_custom",
+
+ get securitySlider() {
+ try {
+ return Services.prefs.getIntPref(this.security_slider_pref);
+ } catch(e) {
+ // init pref to 4 (standard)
+ const val = 4;
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ return val;
+ }
+ },
+
+ set securitySlider(val) {
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ },
+
+ get securityCustom() {
+ try {
+ return Services.prefs.getBoolPref(this.security_custom_pref);
+ } catch(e) {
+ // init custom to false
+ const val = false;
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ return val;
+ }
+ },
+
+ set securityCustom(val) {
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ },
+}; /* Security Level Prefs */
+
+/*
+ Security Level Button Code
+
+ Controls init and update of the security level toolbar button
+*/
+
+const SecurityLevelButton = {
+ _securityPrefsBranch : null,
+
+ _populateXUL : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.securityLevel);
+ securityLevelButton.setAttribute("label", TorStrings.securityLevel.securityLevel);
+ }
+ },
+
+ _configUIFromPrefs : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let classList = securityLevelButton.classList;
+ classList.remove("standard", "safer", "safest");
+ switch(securitySlider) {
+ case 4:
+ classList.add("standard");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.standard.tooltip);
+ break;
+ case 2:
+ classList.add("safer");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.safer.tooltip);
+ break;
+ case 1:
+ classList.add("safest");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.safest.tooltip);
+ break;
+ }
+ }
+ },
+
+ get button() {
+ let button = document.getElementById("security-level-button");
+ if (!button) {
+ return null;
+ }
+ return button;
+ },
+
+ get anchor() {
+ let anchor = this.button.icon;
+ if (!anchor) {
+ return null;
+ }
+
+ anchor.setAttribute("consumeanchor", SecurityLevelButton.button.id);
+ return anchor;
+ },
+
+ init : function() {
+ // set the initial class based off of the current pref
+ let button = this.button;
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+
+ CustomizableUI.addListener(this);
+
+ SecurityLevelPanel.init();
+ },
+
+ uninit : function() {
+ CustomizableUI.removeListener(this);
+
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+
+ SecurityLevelPanel.uninit();
+ },
+
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider") {
+ this._configUIFromPrefs(this.button);
+ }
+ break;
+ }
+ },
+
+ // callback for entering the 'Customize Firefox' screen to set icon
+ onCustomizeStart : function(window) {
+ let navigatorToolbox = document.getElementById("navigator-toolbox");
+ let button = navigatorToolbox.palette.querySelector("#security-level-button");
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+ },
+
+ // callback when CustomizableUI modifies DOM
+ onWidgetAfterDOMChange : function(aNode, aNextNode, aContainer, aWasRemoval) {
+ if (aNode.id == "security-level-button" && !aWasRemoval) {
+ this._populateXUL(aNode);
+ this._configUIFromPrefs(aNode);
+ }
+ },
+
+ // for when the toolbar button needs to be activated and displays the Security Level panel
+ //
+ // In the toolbarbutton xul you'll notice we register this callback for both onkeypress and
+ // onmousedown. We do this to match the behavior of other panel spawning buttons such as Downloads,
+ // Library, and the Hamburger menus. Using oncommand alone would result in only getting fired
+ // after onclick, which is mousedown followed by mouseup.
+ onCommand : function(aEvent) {
+ // snippet stolen from /browser/components/downloads/indicator.js DownloadsIndicatorView.onCommand(evt)
+ if (
+ (aEvent.type == "mousedown" && aEvent.button != 0) ||
+ (aEvent.type == "keypress" && aEvent.key != " " && aEvent.key != "Enter")
+ ) {
+ return;
+ }
+
+ // we need to set this attribute for the button to be shaded correctly to look like it is pressed
+ // while the security level panel is open
+ this.button.setAttribute("open", "true");
+ SecurityLevelPanel.show();
+ },
+}; /* Security Level Button */
+
+/*
+ Security Level Panel Code
+
+ Controls init and update of the panel in the security level hanger
+*/
+
+const SecurityLevelPanel = {
+ _securityPrefsBranch : null,
+ _panel : null,
+ _anchor : null,
+ _populated : false,
+
+ _populateXUL : function() {
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelHeader = panelview.querySelector("#securityLevel-header");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let labelLearnMore = panelview.querySelector("#securityLevel-learnMore");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ labelHeader.setAttribute("value", TorStrings.securityLevel.securityLevel);
+ labelCustomWarning.setAttribute("value", TorStrings.securityLevel.customWarning);
+ labelLearnMore.setAttribute("value", TorStrings.securityLevel.learnMore);
+ labelLearnMore.setAttribute("href", TorStrings.securityLevel.learnMoreURL);
+ buttonRestoreDefaults.setAttribute("label", TorStrings.securityLevel.restoreDefaults);
+ buttonAdvancedSecuritySettings.setAttribute("label", TorStrings.securityLevel.advancedSecuritySettings);
+
+ // rest of the XUL is set based on security prefs
+ this._configUIFromPrefs();
+
+ this._populated = true;
+ },
+
+ _configUIFromPrefs : function() {
+ // get security prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelLevel = panelview.querySelector("#securityLevel-level");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let summary = panelview.querySelector("#securityLevel-summary");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ // only visible when user is using custom settings
+ labelCustomWarning.hidden = !securityCustom;
+ buttonRestoreDefaults.hidden = !securityCustom;
+
+ // Descriptions change based on security level
+ switch(securitySlider) {
+ // standard
+ case 4:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.standard.level);
+ summary.textContent = TorStrings.securityLevel.standard.summary;
+ break;
+ // safer
+ case 2:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.safer.level);
+ summary.textContent = TorStrings.securityLevel.safer.summary;
+ break;
+ // safest
+ case 1:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.safest.level);
+ summary.textContent = TorStrings.securityLevel.safest.summary;
+ break;
+ }
+
+ // override the summary text with custom warning
+ if (securityCustom) {
+ summary.textContent = TorStrings.securityLevel.custom.summary;
+ }
+ },
+
+ init : function() {
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ show : function() {
+ // we have to defer this until after the browser has finished init'ing before
+ // we can populate the panel
+ if (!this._populated) {
+ this._populateXUL();
+ }
+
+ let panel = document.getElementById("securityLevel-panel");
+ panel.hidden = false;
+ PanelMultiView.openPopup(panel, SecurityLevelButton.anchor, "bottomcenter topright",
+ 0, 0, false, null).catch(Cu.reportError);
+ },
+
+ hide : function() {
+ let panel = document.getElementById("securityLevel-panel");
+ PanelMultiView.hidePopup(panel);
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ // hide and reshow so that layout re-renders properly
+ this.hide();
+ this.show(this._anchor);
+ },
+
+ openAdvancedSecuritySettings : function() {
+ openPreferences("privacy-securitylevel");
+ this.hide();
+ },
+
+ // callback when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" || data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ // callback when the panel is displayed
+ onPopupShown : function(event) {
+ SecurityLevelButton.button.setAttribute("open", "true");
+ },
+
+ // callback when the panel is hidden
+ onPopupHidden : function(event) {
+ SecurityLevelButton.button.removeAttribute("open");
+ }
+}; /* Security Level Panel */
+
+/*
+ Security Level Preferences Code
+
+ Code to handle init and update of security level section in about:preferences#privacy
+*/
+
+const SecurityLevelPreferences =
+{
+ _securityPrefsBranch : null,
+
+ _populateXUL : function() {
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let labelHeader = groupbox.querySelector("#securityLevel-header");
+ labelHeader.textContent = TorStrings.securityLevel.securityLevel;
+
+ let spanOverview = groupbox.querySelector("#securityLevel-overview");
+ spanOverview.textContent = TorStrings.securityLevel.overview;
+
+ let labelLearnMore = groupbox.querySelector("#securityLevel-learnMore");
+ labelLearnMore.setAttribute("value", TorStrings.securityLevel.learnMore);
+ labelLearnMore.setAttribute("href", TorStrings.securityLevel.learnMoreURL);
+
+ let radiogroup = document.getElementById("securityLevel-radiogroup");
+ radiogroup.addEventListener("command", SecurityLevelPreferences.selectSecurityLevel);
+
+ let populateRadioElements = function(vboxQuery, stringStruct) {
+ let vbox = groupbox.querySelector(vboxQuery);
+
+ let radio = vbox.querySelector("radio");
+ radio.setAttribute("label", stringStruct.level);
+
+ let customWarning = vbox.querySelector("#securityLevel-customWarning");
+ customWarning.setAttribute("value", TorStrings.securityLevel.customWarning);
+
+ let labelSummary = vbox.querySelector("#securityLevel-summary");
+ labelSummary.textContent = stringStruct.summary;
+
+ let labelRestoreDefaults = vbox.querySelector("#securityLevel-restoreDefaults");
+ labelRestoreDefaults.setAttribute("value", TorStrings.securityLevel.restoreDefaults);
+ labelRestoreDefaults.addEventListener("click", SecurityLevelPreferences.restoreDefaults);
+
+ let description1 = vbox.querySelector("#securityLevel-description1");
+ if (description1) {
+ description1.textContent = stringStruct.description1;
+ }
+ let description2 = vbox.querySelector("#securityLevel-description2");
+ if (description2) {
+ description2.textContent = stringStruct.description2;
+ }
+ let description3 = vbox.querySelector("#securityLevel-description3");
+ if (description3) {
+ description3.textContent = stringStruct.description3;
+ }
+ };
+
+ populateRadioElements("#securityLevel-vbox-standard", TorStrings.securityLevel.standard);
+ populateRadioElements("#securityLevel-vbox-safer", TorStrings.securityLevel.safer);
+ populateRadioElements("#securityLevel-vbox-safest", TorStrings.securityLevel.safest);
+ },
+
+ _configUIFromPrefs : function() {
+ // read our prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get our elements
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let radiogroup = groupbox.querySelector("#securityLevel-radiogroup");
+ let labelStandardCustom = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-customWarning");
+ let labelSaferCustom = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-customWarning");
+ let labelSafestCustom = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-customWarning");
+ let labelStandardRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-restoreDefaults");
+ let labelSaferRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-restoreDefaults");
+ let labelSafestRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-restoreDefaults");
+
+ // hide custom label by default until we know which level we're at
+ labelStandardCustom.hidden = true;
+ labelSaferCustom.hidden = true;
+ labelSafestCustom.hidden = true;
+
+ labelStandardRestoreDefaults.hidden = true;
+ labelSaferRestoreDefaults.hidden = true;
+ labelSafestRestoreDefaults.hidden = true;
+
+ switch(securitySlider) {
+ // standard
+ case 4:
+ radiogroup.value = "standard";
+ labelStandardCustom.hidden = !securityCustom;
+ labelStandardRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safer
+ case 2:
+ radiogroup.value = "safer";
+ labelSaferCustom.hidden = !securityCustom;
+ labelSaferRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safest
+ case 1:
+ radiogroup.value = "safest";
+ labelSafestCustom.hidden = !securityCustom;
+ labelSafestRestoreDefaults.hidden = !securityCustom;
+ break;
+ }
+ },
+
+ init : function() {
+ // populate XUL with localized strings
+ this._populateXUL();
+
+ // read prefs and populate UI
+ this._configUIFromPrefs();
+
+ // register for pref chagnes
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ // unregister for pref change events
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ // callback for when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" ||
+ data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ selectSecurityLevel : function() {
+ // radio group elements
+ let radiogroup = document.getElementById("securityLevel-radiogroup");
+
+ // update pref based on selected radio option
+ switch (radiogroup.value) {
+ case "standard":
+ SecurityLevelPrefs.securitySlider = 4;
+ break;
+ case "safer":
+ SecurityLevelPrefs.securitySlider = 2;
+ break;
+ case "safest":
+ SecurityLevelPrefs.securitySlider = 1;
+ break;
+ }
+
+ SecurityLevelPreferences.restoreDefaults();
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ },
+}; /* Security Level Prefereces */
+
+Object.defineProperty(this, "SecurityLevelButton", {
+ value: SecurityLevelButton,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPanel", {
+ value: SecurityLevelPanel,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPreferences", {
+ value: SecurityLevelPreferences,
+ enumerable: true,
+ writable: false
+});
diff --git a/browser/components/securitylevel/content/securityLevelButton.css b/browser/components/securitylevel/content/securityLevelButton.css
new file mode 100644
index 000000000000..81f2365bae28
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.css
@@ -0,0 +1,9 @@
+toolbarbutton#security-level-button.standard {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#standard");
+}
+toolbarbutton#security-level-button.safer {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safer");
+}
+toolbarbutton#security-level-button.safest {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safest");
+}
diff --git a/browser/components/securitylevel/content/securityLevelButton.inc.xhtml b/browser/components/securitylevel/content/securityLevelButton.inc.xhtml
new file mode 100644
index 000000000000..96ee1ec0ca49
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.inc.xhtml
@@ -0,0 +1,7 @@
+<toolbarbutton id="security-level-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ badged="true"
+ removable="true"
+ onmousedown="SecurityLevelButton.onCommand(event);"
+ onkeypress="SecurityLevelButton.onCommand(event);"
+ closemenu="none"
+ cui-areatype="toolbar"/>
diff --git a/browser/components/securitylevel/content/securityLevelButton.svg b/browser/components/securitylevel/content/securityLevelButton.svg
new file mode 100644
index 000000000000..8535cdcc531e
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.svg
@@ -0,0 +1,21 @@
+<svg width="14px" height="16px" viewBox="0 0 14 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <style>
+ use:not(:target) {
+ display: none;
+ }
+ </style>
+ <defs>
+ <g id="standard_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 2.16583509C7.0 2.16583509 2.0 4.24375717 2.0 4.24375717C2.0 4.24375717 2.0 7.27272727 2.0 7.27272727C2.0 10.2413541 4.13435329 13.0576771 7.0 13.9315843C9.8656467 13.0576771 12.0 10.2413541 12.0 7.27272727C12.0 7.27272727 12.0 4.24375717 12.0 4.24375717C12.0 4.24375717 7.0 2.16583509 7.0 2.16583509C7.0 2.16583509 7.0 2.16583509 7.0 2.16583509M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ <g id="safer_icon" stroke="none" stroke-width="1">
+ <path fill-rule="nonzero" d="M7.0 2.1658351C7.0 13.931584 7.0 2.1658351 7.0 13.931584C9.8656467 13.057677 12.0 10.241354 12.0 7.2727273C12.0 7.2727273 12.0 4.2437572 12.0 4.2437572C12.0 4.2437572 7.0 2.1658351 7.0 2.1658351C7.0 2.1658351 7.0 2.1658351 7.0 2.1658351M7.0 0.0C7.0 0.0 14.0 2.9090909 14.0 2.9090909C14.0 2.9090909 14.0 7.2727273 14.0 7.2727273C14.0 11.309091 11.013333 15.083636 7.0 16.0C2.9866667 15.083636 0.0 11.309091 0.0 7.2727273C0.0 7.2727273 0.0 2.9090909 0.0 2.9090909C0.0 2.9090909 7.0 0.0 7.0 0.0"/>
+ </g>
+ <g id="safest_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ </defs>
+ <use id="standard" fill="context-fill" fill-opacity="context-fill-opacity" href="#standard_icon" />
+ <use id="safer" fill="context-fill" fill-opacity="context-fill-opacity" href="#safer_icon" />
+ <use id="safest" fill="context-fill" fill-opacity="context-fill-opacity" href="#safest_icon" />
+</svg>
diff --git a/browser/components/securitylevel/content/securityLevelPanel.css b/browser/components/securitylevel/content/securityLevelPanel.css
new file mode 100644
index 000000000000..70022e2bd4b2
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.css
@@ -0,0 +1,82 @@
+/* Security Level CSS */
+
+panel#securityLevel-panel > .panel-arrowcontainer > .panel-arrowcontent {
+ padding: 0;
+}
+
+panelview#securityLevel-panelview {
+ width: 20em;
+}
+
+panelview#securityLevel-panelview>vbox.panel-subview-body {
+ padding: 1em;
+}
+
+label#securityLevel-header {
+ text-transform: uppercase;
+ color: var(--panel-disabled-color);
+ font-size: 0.85em;
+ margin: 0 0 0.4em 0;
+ padding: 0;
+}
+
+hbox#securityLevel-levelHbox {
+ margin-bottom: 1em;
+}
+
+label#securityLevel-level {
+ font-size: 1.5em;
+ margin: 0 0.5em 0 0;
+ padding: 0;
+}
+
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.8em;
+ height: 1em;
+ line-height: 1em;
+ vertical-align: middle;
+ margin: auto;
+ padding: 0.4em;
+}
+
+panelview#securityLevel-panelview description {
+ margin: 0 -0.5em 0.5em 0;
+ padding: 0 !important;
+}
+
+label#securityLevel-learnMore {
+ margin: 0 0 1.0em 0;
+ padding: 0;
+}
+
+panelview#securityLevel-panelview button {
+ -moz-appearance: none;
+ background-color: var(--arrowpanel-dimmed);
+}
+
+panelview#securityLevel-panelview button:hover {
+ background-color: var(--arrowpanel-dimmed-further);
+}
+
+panelview#securityLevel-panelview button:active {
+ background-color: var(--arrowpanel-dimmed-even-further);
+}
+
+button#securityLevel-restoreDefaults {
+ margin: 0 0 1.0em 0;
+ padding: 0.45em;
+ color: inherit !important;
+}
+
+button#securityLevel-advancedSecuritySettings {
+ margin: 0 -1.0em -1.0em -1.0em;
+ border-radius: 0;
+ border-top: 1px solid var(--panel-separator-color);
+ padding: 0;
+ height: 3.0em;
+ color: inherit !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml b/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
new file mode 100644
index 000000000000..4abbb12dd856
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
@@ -0,0 +1,38 @@
+<panel id="securityLevel-panel"
+ role="group"
+ type="arrow"
+ orient="vertical"
+ level="top"
+ hidden="true"
+ class="panel-no-padding"
+ onpopupshown="SecurityLevelPanel.onPopupShown(event);"
+ onpopuphidden="SecurityLevelPanel.onPopupHidden(event);"
+ >
+ <panelmultiview mainViewId="securityLevel-panelview">
+ <panelview id="securityLevel-panelview" descriptionheightworkaround="true">
+ <vbox class="panel-subview-body">
+ <label id="securityLevel-header"/>
+ <hbox id="securityLevel-levelHbox">
+ <label id="securityLevel-level"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description id="securityLevel-summary"/>
+ <label
+ id="securityLevel-learnMore"
+ class="learnMore text-link"
+ onclick="SecurityLevelPanel.hide();"
+ is="text-link"/>
+ <button
+ id="securityLevel-restoreDefaults"
+ oncommand="SecurityLevelPanel.restoreDefaults();"/>
+ <button
+ id="securityLevel-advancedSecuritySettings"
+ oncommand="SecurityLevelPanel.openAdvancedSecuritySettings();"/>
+ </vbox>
+ </panelview>
+ </panelmultiview>
+</panel>
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.css b/browser/components/securitylevel/content/securityLevelPreferences.css
new file mode 100644
index 000000000000..0d1040d177d8
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.css
@@ -0,0 +1,26 @@
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.7em;
+ height: 1em;
+ line-height: 1em;
+ padding: 0.35em;
+}
+
+radiogroup#securityLevel-radiogroup radio {
+ font-weight: bold;
+}
+
+vbox#securityLevel-vbox-standard,
+vbox#securityLevel-vbox-safer,
+vbox#securityLevel-vbox-safest {
+ margin-top: 0.4em;
+}
+
+vbox#securityLevel-vbox-standard description.indent,
+vbox#securityLevel-vbox-safer description.indent,
+vbox#securityLevel-vbox-safest description.indent {
+ margin-inline-start: 0 !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml b/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
new file mode 100644
index 000000000000..a108d44a7b51
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
@@ -0,0 +1,62 @@
+<groupbox id="securityLevel-groupbox" data-category="panePrivacy" hidden="true">
+ <label><html:h2 id="securityLevel-header"/></label>
+ <vbox data-subcategory="securitylevel" flex="1">
+ <description flex="1">
+ <html:span id="securityLevel-overview" class="tail-with-learn-more"/>
+ <label id="securityLevel-learnMore" class="learnMore text-link" is="text-link"/>
+ </description>
+ <radiogroup id="securityLevel-radiogroup">
+ <vbox id="securityLevel-vbox-standard">
+ <hbox>
+ <radio value="standard"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ </vbox>
+ <vbox id="securityLevel-vbox-safer">
+ <hbox>
+ <radio value="safer"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ <vbox id="securityLevel-vbox-safest">
+ <hbox>
+ <radio value="safest"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ </radiogroup>
+ </vbox>
+</groupbox>
diff --git a/browser/components/securitylevel/jar.mn b/browser/components/securitylevel/jar.mn
new file mode 100644
index 000000000000..9ac408083fbc
--- /dev/null
+++ b/browser/components/securitylevel/jar.mn
@@ -0,0 +1,6 @@
+browser.jar:
+ content/browser/securitylevel/securityLevel.js (content/securityLevel.js)
+ content/browser/securitylevel/securityLevelPanel.css (content/securityLevelPanel.css)
+ content/browser/securitylevel/securityLevelButton.css (content/securityLevelButton.css)
+ content/browser/securitylevel/securityLevelPreferences.css (content/securityLevelPreferences.css)
+ content/browser/securitylevel/securityLevelButton.svg (content/securityLevelButton.svg)
diff --git a/browser/components/securitylevel/moz.build b/browser/components/securitylevel/moz.build
new file mode 100644
index 000000000000..2661ad7cb9f3
--- /dev/null
+++ b/browser/components/securitylevel/moz.build
@@ -0,0 +1 @@
+JAR_MANIFESTS += ["jar.mn"]
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 26353: Prevent speculative connect that violated FPI.
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit d628321de4610de4fbda6dbf9ed4d14516640b62
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Sat Jul 14 08:50:55 2018 -0700
Bug 26353: Prevent speculative connect that violated FPI.
Connections were observed in the catch-all circuit when
the user entered an https or http URL in the URL bar, or
typed a search term.
---
toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm b/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
index 568e70688dc4..e1adbc72bdad 100644
--- a/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
+++ b/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
@@ -93,6 +93,9 @@ class RemoteWebNavigation {
}
uri = Services.uriFixup.getFixupURIInfo(aURI, fixupFlags).preferredURI;
+/*******************************************************************************
+ TOR BROWSER: Disable the following speculative connect until
+ we can make it properly obey first-party isolation.
// We know the url is going to be loaded, let's start requesting network
// connection before the content process asks.
@@ -116,6 +119,7 @@ class RemoteWebNavigation {
}
Services.io.speculativeConnect(uri, principal, null);
}
+*******************************************************************************/
} catch (ex) {
// Can't setup speculative connection for this uri string for some
// reason (such as failing to parse the URI), just ignore it.
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 16285: Exclude ClearKey system for now
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit aee58965f2ad62dd2ee8d3907859844efdf023a8
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 22 12:44:40 2017 +0000
Bug 16285: Exclude ClearKey system for now
In the past the ClearKey system had not been compiled when specifying
--disable-eme. But that changed and it is even bundled nowadays (see:
Mozilla's bug 1300654). We don't want to ship it right now as the use
case for it is not really visible while the code had security
vulnerabilities in the past.
---
browser/installer/package-manifest.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 3a8593ac399e..184f8fd475ab 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -473,8 +473,8 @@ bin/libfreebl_64int_3.so
#endif
; media
-@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
-@RESPATH@/gmp-clearkey/0.1/manifest.json
+;@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
+;@RESPATH@/gmp-clearkey/0.1/manifest.json
#ifdef MOZ_DMD
; DMD
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 23247: Communicating security expectations for .onion
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit a226b97bdfbadc261094d3d1255b09235b17d18b
Author: Richard Pospesel <richard(a)torproject.org>
Date: Fri Jun 8 13:38:40 2018 -0700
Bug 23247: Communicating security expectations for .onion
Encrypting pages hosted on Onion Services with SSL/TLS is redundant
(in terms of hiding content) as all traffic within the Tor network is
already fully encrypted. Therefore, serving HTTP pages from an Onion
Service is more or less fine.
Prior to this patch, Tor Browser would mostly treat pages delivered
via Onion Services as well as pages delivered in the ordinary fashion
over the internet in the same way. This created some inconsistencies
in behaviour and misinformation presented to the user relating to the
security of pages delivered via Onion Services:
- HTTP Onion Service pages did not have any 'lock' icon indicating
the site was secure
- HTTP Onion Service pages would be marked as unencrypted in the Page
Info screen
- Mixed-mode content restrictions did not apply to HTTP Onion Service
pages embedding Non-Onion HTTP content
This patch fixes the above issues, and also adds several new 'Onion'
icons to the mix to indicate all of the various permutations of Onion
Services hosted HTTP or HTTPS pages with HTTP or HTTPS content.
Strings for Onion Service Page Info page are pulled from Torbutton's
localization strings.
---
browser/base/content/browser-siteIdentity.js | 39 ++++++++-----
browser/base/content/pageinfo/security.js | 64 ++++++++++++++++++----
.../shared/identity-block/identity-block.inc.css | 19 +++++++
.../themes/shared/identity-block/onion-slash.svg | 5 ++
.../themes/shared/identity-block/onion-warning.svg | 6 ++
browser/themes/shared/identity-block/onion.svg | 3 +
browser/themes/shared/jar.inc.mn | 3 +
dom/base/nsContentUtils.cpp | 19 +++++++
dom/base/nsContentUtils.h | 5 ++
dom/base/nsGlobalWindowOuter.cpp | 3 +-
dom/ipc/WindowGlobalActor.cpp | 4 +-
dom/ipc/WindowGlobalChild.cpp | 6 +-
dom/security/nsMixedContentBlocker.cpp | 16 +++++-
.../modules/geckoview/GeckoViewProgress.jsm | 4 ++
security/manager/ssl/nsSecureBrowserUI.cpp | 12 ++++
15 files changed, 177 insertions(+), 31 deletions(-)
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index e395925b94b1..6a816a75cae9 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -140,6 +140,10 @@ var gIdentityHandler = {
);
},
+ get _uriIsOnionHost() {
+ return this._uriHasHost ? this._uri.host.toLowerCase().endsWith(".onion") : false;
+ },
+
get _isAboutNetErrorPage() {
return (
gBrowser.selectedBrowser.documentURI &&
@@ -784,9 +788,9 @@ var gIdentityHandler = {
get pointerlockFsWarningClassName() {
// Note that the fullscreen warning does not handle _isSecureInternalUI.
if (this._uriHasHost && this._isSecureConnection) {
- return "verifiedDomain";
+ return this._uriIsOnionHost ? "onionVerifiedDomain" : "verifiedDomain";
}
- return "unknownIdentity";
+ return this._uriIsOnionHost ? "onionUnknownIdentity" : "unknownIdentity";
},
/**
@@ -794,6 +798,10 @@ var gIdentityHandler = {
* built-in (returns false) or imported (returns true).
*/
_hasCustomRoot() {
+ if (!this._secInfo) {
+ return false;
+ }
+
let issuerCert = null;
issuerCert = this._secInfo.succeededCertChain[
this._secInfo.succeededCertChain.length - 1
@@ -836,11 +844,13 @@ var gIdentityHandler = {
"identity.extension.label",
[extensionName]
);
- } else if (this._uriHasHost && this._isSecureConnection) {
+ } else if (this._uriHasHost && this._isSecureConnection && this._secInfo) {
// This is a secure connection.
- this._identityBox.className = "verifiedDomain";
+ // _isSecureConnection implicitly includes onion services, which may not have an SSL certificate
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.className = uriIsOnionHost ? "onionVerifiedDomain" : "verifiedDomain";
if (this._isMixedActiveContentBlocked) {
- this._identityBox.classList.add("mixedActiveBlocked");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedActiveBlocked" : "mixedActiveBlocked");
}
if (!this._isCertUserOverridden) {
// It's a normal cert, verifier is the CA Org.
@@ -851,17 +861,17 @@ var gIdentityHandler = {
}
} else if (this._isBrokenConnection) {
// This is a secure connection, but something is wrong.
- this._identityBox.className = "unknownIdentity";
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.className = uriIsOnionHost ? "onionUnknownIdentity" : "unknownIdentity";
if (this._isMixedActiveContentLoaded) {
- this._identityBox.classList.add("mixedActiveContent");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedActiveContent" : "mixedActiveContent");
} else if (this._isMixedActiveContentBlocked) {
- this._identityBox.classList.add(
- "mixedDisplayContentLoadedActiveBlocked"
- );
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedDisplayContentLoadedActiveBlocked" : "mixedDisplayContentLoadedActiveBlocked");
} else if (this._isMixedPassiveContentLoaded) {
- this._identityBox.classList.add("mixedDisplayContent");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedDisplayContent" : "mixedDisplayContent");
} else {
+ // TODO: ignore weak https cipher for onionsites?
this._identityBox.classList.add("weakCipher");
}
} else if (this._isAboutCertErrorPage) {
@@ -874,8 +884,8 @@ var gIdentityHandler = {
// Network errors and blocked pages get a more neutral icon
this._identityBox.className = "unknownIdentity";
} else if (this._isPotentiallyTrustworthy) {
- // This is a local resource (and shouldn't be marked insecure).
- this._identityBox.className = "localResource";
+ // This is a local resource or an onion site (and shouldn't be marked insecure).
+ this._identityBox.className = this._uriIsOnionHost ? "onionUnknownIdentity" : "localResource";
} else {
// This is an insecure connection.
let warnOnInsecure =
@@ -899,7 +909,8 @@ var gIdentityHandler = {
}
if (this._isCertUserOverridden) {
- this._identityBox.classList.add("certUserOverridden");
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.classList.add(uriIsOnionHost ? "onionCertUserOverridden" : "certUserOverridden");
// Cert is trusted because of a security exception, verifier is a special string.
tooltip = gNavigatorBundle.getString(
"identity.identified.verified_by_you"
diff --git a/browser/base/content/pageinfo/security.js b/browser/base/content/pageinfo/security.js
index 6a2d09ec8442..192e9f763700 100644
--- a/browser/base/content/pageinfo/security.js
+++ b/browser/base/content/pageinfo/security.js
@@ -22,6 +22,13 @@ ChromeUtils.defineModuleGetter(
"PluralForm",
"resource://gre/modules/PluralForm.jsm"
);
+XPCOMUtils.defineLazyGetter(
+ this,
+ "gTorButtonBundle",
+ function() {
+ return Services.strings.createBundle("chrome://torbutton/locale/torbutton.properties");
+ }
+);
var security = {
async init(uri, windowInfo) {
@@ -60,6 +67,11 @@ var security = {
(Ci.nsIWebProgressListener.STATE_LOADED_MIXED_ACTIVE_CONTENT |
Ci.nsIWebProgressListener.STATE_LOADED_MIXED_DISPLAY_CONTENT);
var isEV = ui.state & Ci.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL;
+ var isOnion = false;
+ const hostName = this.windowInfo.hostName;
+ if (hostName && hostName.endsWith(".onion")) {
+ isOnion = true;
+ }
let retval = {
cAName: "",
@@ -69,6 +81,7 @@ var security = {
isBroken,
isMixed,
isEV,
+ isOnion,
cert: null,
certificateTransparency: null,
};
@@ -107,6 +120,7 @@ var security = {
isBroken,
isMixed,
isEV,
+ isOnion,
cert,
certChain: certChainArray,
certificateTransparency: undefined,
@@ -349,22 +363,50 @@ async function securityOnLoad(uri, windowInfo) {
}
msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else if (info.encryptionStrength > 0) {
- hdr = pkiBundle.getFormattedString(
- "pageInfo_EncryptionWithBitsAndProtocol",
- [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
- );
+ if (!info.isOnion) {
+ hdr = pkiBundle.getFormattedString(
+ "pageInfo_EncryptionWithBitsAndProtocol",
+ [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ );
+ } else {
+ try {
+ hdr = gTorButtonBundle.formatStringFromName(
+ "pageInfo_OnionEncryptionWithBitsAndProtocol",
+ [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ );
+ } catch(err) {
+ hdr = "Connection Encrypted (Onion Service, "
+ + info.encryptionAlgorithm
+ + ", "
+ + info.encryptionStrength
+ + " bit keys, "
+ + info.version
+ + ")";
+ }
+ }
msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
} else {
- hdr = pkiBundle.getString("pageInfo_NoEncryption");
- if (windowInfo.hostName != null) {
- msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_None1", [
- windowInfo.hostName,
- ]);
+ if (!info.isOnion) {
+ hdr = pkiBundle.getString("pageInfo_NoEncryption");
+ if (windowInfo.hostName != null) {
+ msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_None1", [
+ windowInfo.hostName,
+ ]);
+ } else {
+ msg1 = pkiBundle.getString("pageInfo_Privacy_None4");
+ }
+ msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else {
- msg1 = pkiBundle.getString("pageInfo_Privacy_None4");
+ try {
+ hdr = gTorButtonBundle.GetStringFromName("pageInfo_OnionEncryption");
+ } catch (err) {
+ hdr = "Connection Encrypted (Onion Service)";
+ }
+
+ msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
+ msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
}
- msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
}
setText("security-technical-shortform", hdr);
setText("security-technical-longform1", msg1);
diff --git a/browser/themes/shared/identity-block/identity-block.inc.css b/browser/themes/shared/identity-block/identity-block.inc.css
index c2067671d0dd..102586850012 100644
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -291,6 +291,25 @@ toolbar[brighttext] #identity-box[pageproxystate="valid"].chromeUI #identity-ico
list-style-image: url(chrome://global/skin/icons/security-broken.svg);
}
+#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.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);
+ visibility: visible;
+}
+
+#identity-box[pageproxystate="valid"].onionMixedActiveContent > #identity-icon {
+ list-style-image: url(chrome://browser/skin/onion-slash.svg);
+ visibility: visible;
+}
+
#permissions-granted-icon {
list-style-image: url(chrome://browser/skin/permissions.svg);
}
diff --git a/browser/themes/shared/identity-block/onion-slash.svg b/browser/themes/shared/identity-block/onion-slash.svg
new file mode 100644
index 000000000000..e7c98b769482
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion-slash.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M3.409559 13.112147C3.409559 13.112147 8.200807 8.103115 8.200807 8.103115C8.200807 8.103115 8.200807 6.516403 8.200807 6.516403C8.620819 6.516403 9.009719 6.703075 9.274171 6.998639C9.274171 6.998639 10.160863 6.080835 10.160863 6.080835C9.663071 5.567487 8.978607 5.256367 8.200807 5.256367C8.200807 5.256367 8.200807 4.400787 8.200807 4.400787C9.196391 4.400787 10.098639 4.805243 10.736435 5.458595C10.736435 5.458595 11.623127 4.540791 11.623127 4.540791C10.751991 3.669655 9.538623 3.125195 8.200807 3.125195C8.200807 3.125195 8.200807 2.269615 8.200807 2.269615C9.756407 2.269615 11.172003 2.907411 12.214255 3.918551C12.214255 3.918551 13.100947 3.000747 13.100947 3.000747C11.825355 1.756267 10.098639 0.994023 8.185251 0.994023C4.311807 0.994023 1.185051 4.120779 1.185051 7.994223C1.185051 10.016503 2.040631 11.836555 3.409559 13.112147C3.409559 13.112147 3.409559 13.112147 3.409559 13.112147" fill-opacity="context-fill-opacity" fill="context-fill" />
+ <path d="M14.205423 4.416343C14.205423 4.416343 13.287619 5.380815 13.287619 5.380815C13.692075 6.158615 13.909859 7.045307 13.909859 7.994223C13.909859 11.152091 11.358675 13.718831 8.200807 13.718831C8.200807 13.718831 8.200807 12.863251 8.200807 12.863251C10.891995 12.863251 13.069835 10.669855 13.069835 7.978667C13.069835 7.278647 12.929831 6.625295 12.665379 6.018611C12.665379 6.018611 11.685351 7.045307 11.685351 7.045307C11.763131 7.340871 11.809799 7.651991 11.809799 7.963111C11.809799 9.954279 10.207531 11.556547 8.216363 11.572103C8.216363 11.572103 8.216363 10.716523 8.216363 10.716523C9.725295 10.700967 10.954219 9.472043 10.954219 7.963111C10.954219 7.916443 10.954219 7.854219 10.954219 7.807551C10.954219 7.807551 4.887379 14.169955 4.887379 14.169955C5.867407 14.698859 6.987439 14.994423 8.185251 14.994423C12.058695 14.994423 15.185451 11.867667 15.185451 7.994223C15.185451 6.687519 14.827663 5.474151 14.205423 4.416343C14.205423 4.416343 14.205423 4.416343 14.205423
4.416343" fill-opacity="context-fill-opacity" fill="context-fill" />
+ <path d="M1.791735 15.461103C1.402835 15.461103 1.045047 15.212207 0.889487 14.838863C0.733927 14.465519 0.827267 14.014395 1.107271 13.734387C1.107271 13.734387 13.458735 0.822907 13.458735 0.822907C13.847635 0.434007 14.454319 0.449563 14.827663 0.838467C15.201007 1.227367 15.216563 1.865163 14.843223 2.269619C14.843223 2.269619 2.491759 15.181099 2.491759 15.181099C2.289531 15.352215 2.040635 15.461107 1.791739 15.461107C1.791739 15.461107 1.791735 15.461103 1.791735 15.461103" fill="#ff0039" />
+</svg>
diff --git a/browser/themes/shared/identity-block/onion-warning.svg b/browser/themes/shared/identity-block/onion-warning.svg
new file mode 100644
index 000000000000..d42a7dab7246
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion-warning.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M15.8630401732 14.127C15.8630401732 14.127 12.6649598146 7.716 12.6649598146 7.716C12.4469357756 7.279935 12.0003277145 7.0043454 11.5116853046 7.0043454C11.0230428947 7.0043454 10.5764348336 7.279935 10.3584107946 7.716C10.3584107946 7.716 7.1573218938 14.127 7.1573218938 14.127C6.95646770542 14.527294 6.97733695982 15.002669 7.21250176686 15.38393C7.4476665739 15.765191 7.86372750208 15.998191 8.3126020986 16.0C8.3126020986 16.0 14.7077599684 16.0 14.7077599684 16.0C15.1566344646 15.9982 15.572695794 15.765191 15.8078605007 15.38393C16.0430252075 15.002669 16.0638944619 14.527294 15.8630371647 14.127C15.8630371647 14.127 15.8630401732 14.127 15.8630401732 14.127" fill="#ffbf00" />
+ <path d="M11.5106824572 8.0C11.6210488221 7.99691 11.7223975832 8.060469 11.7674113916 8.161C11.7674113916 8.161 14.9644889028 14.573 14.9644889028 14.573C15.0126456349 14.66534 15.0076715118 14.776305 14.9514518866 14.864C14.9011992034 14.95041 14.8079143382 15.002854 14.7077599684 15.001048C14.7077599684 15.001048 8.3126020986 15.001048 8.3126020986 15.001048C8.2124480296 15.002854 8.1191607576 14.950409 8.0689101804 14.864C8.0124814615 14.77637 8.0075053327 14.665298 8.0558731642 14.573C8.0558731642 14.573 11.2529506754 8.161 11.2529506754 8.161C11.2981038796 8.0601247 11.3999560701 7.9964997 11.5106824572 8.0M11.5106824572 6.9999751C11.0194557096 6.9969427 10.5701148893 7.2754275 10.3554022524 7.716C10.3554022524 7.716 7.1573218938 14.127 7.1573218938 14.127C6.95646770542 14.527294 6.97733695982 15.002669 7.21250176686 15.38393C7.4476665739 15.765191 7.86372750208 15.998191 8.3126020986 16.0C8.3126020986 16.0 14.7077599684 16.0 14.7077599684 16.0C15.1566344646 15.9982 15.57269
5794 15.765191 15.8078605007 15.38393C16.0430252075 15.002669 16.0638944619 14.527294 15.8630371647 14.127C15.8630371647 14.127 12.6649598146 7.716 12.6649598146 7.716C12.4504036219 7.2757546 12.0015481798 6.9973287 11.5106824572 6.9999751C11.5106824572 6.9999751 11.5106824572 6.9999751 11.5106824572 6.9999751" opacity="0.35" fill="#d76e00" />
+ <path d="M11.5327451 12.0C11.8096733867 12.0 12.0341688 11.776142 12.0341688 11.5C12.0341688 11.5 12.0341688 9.5 12.0341688 9.5C12.0341688 9.2238576 11.8096733867 9.0 11.5327451 9.0C11.2558168133 9.0 11.0313214 9.2238576 11.0313214 9.5C11.0313214 9.5 11.0313214 11.5 11.0313214 11.5C11.0313214 11.776142 11.2558168133 12.0 11.5327451 12.0C11.5327451 12.0 11.5327451 12.0 11.5327451 12.0M11.5327451 12.809C11.1500294496 12.809 10.8397775466 13.118371 10.8397775466 13.5C10.8397775466 13.881629 11.1500294496 14.191 11.5327451 14.191C11.9154607504 14.191 12.2257126534 13.881629 12.2257126534 13.5C12.2257126534 13.118371 11.9154607504 12.809 11.5327451 12.809C11.5327451 12.809 11.5327451 12.809 11.5327451 12.809" fill="#ffffff" />
+ <path d="M7.08030321348 6.552C7.90163523408 6.56 8.5645173655 7.225 8.5645173655 8.046C8.5645173655 8.866 7.90163523408 9.532 7.08030321348 9.54C7.08030321348 9.54 7.08030321348 6.552 7.08030321348 6.552M6.30610502068 13.756C6.30610502068 13.756 9.4991711423 7.353 9.4991711423 7.353C9.5453021227 7.259 9.6144985933 7.184 9.6716608951 7.098C9.2845617987 6.039 8.2756973143 5.277 7.08030321348 5.271C7.08030321348 5.271 7.08030321348 4.417 7.08030321348 4.417C8.5043465215 4.423 9.7238089599 5.251 10.3164917733 6.443C10.6795225321 6.21 11.1067355245 6.074 11.5519997701 6.074C11.5519997701 6.074 11.5620282441 6.074 11.5620282441 6.074C11.5620282441 6.074 11.5640339389 6.074 11.5640339389 6.074C11.5660396337 6.074 11.5690481759 6.075 11.5710538707 6.075C10.8108955415 4.35 9.0900094031 3.141 7.08030321348 3.135C7.08030321348 3.135 7.08030321348 2.281 7.08030321348 2.281C9.6716608951 2.288 11.8618796167 3.993 12.5889439817 6.34C13.0231769059 6.561 13.3922247491 6.9 13.6088397875 7.344C13.60
88397875 7.344 14.1162805719 8.361 14.1162805719 8.361C14.1202919615 8.256 14.1313232829 8.152 14.1313232829 8.046C14.1313232829 4.155 10.9683425833 1.0 7.06626334988 1.0C3.16318126908 1.0 0.00020056948 4.155 0.00020056948 8.046C0.00020056948 11.603 2.64571201068 14.536 6.08046435568 15.015C6.03633907008 14.595 6.10252699848 14.16 6.30610502068 13.756C6.30610502068 13.756 6.30610502068 13.756 6.30610502068 13.756" fill-opacity="context-fill-opacity" fill="context-fill" />
+</svg>
diff --git a/browser/themes/shared/identity-block/onion.svg b/browser/themes/shared/identity-block/onion.svg
new file mode 100644
index 000000000000..b123a9786acc
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M8.01435945 13.726867125C8.01435945 13.726867125 8.01435945 12.87830525 8.01435945 12.87830525C10.70227825 12.87051775 12.87869375 10.689666 12.87869375 7.9998060125C12.87869375 5.310140275 10.70227825 3.1292621 8.01435945 3.121500325C8.01435945 3.121500325 8.01435945 2.272938975 8.01435945 2.272938975C11.170899375 2.280892725 13.727061375 4.8415202875 13.727061375 7.9998060125C13.727061375 11.158285375 11.170899375 13.719105 8.01435945 13.726867125C8.01435945 13.726867125 8.01435945 13.726867125 8.01435945 13.726867125M8.01435945 10.756805625C9.5304373 10.74884925 10.75758175 9.5180185125 10.75758175 7.9998060125C10.75758175 6.4817875 9.5304373 5.2509564125 8.01435945 5.2430005625C8.01435945 5.2430005625 8.01435945 4.3946332875 8.01435945 4.3946332875C9.999251625 4.4023945375 11.60614275 6.013167425 11.60614275 7.9998060125C11.60614275 9.986639375 9.999251625 11.597411125 8.01435945 11.605172375C8.01435945 11.605172375 8.01435945 10.756805625 8.01435945 10.756805625M8.01
435945 6.5157454625C8.8276046625 6.5235067125 9.484837025 7.184620575 9.484837025 7.9998060125C9.484837025 8.815185875 8.8276046625 9.4762985125 8.01435945 9.4840608125C8.01435945 9.4840608125 8.01435945 6.5157454625 8.01435945 6.5157454625M1.0 7.9998060125C1.0 11.8659705 4.1338360375 15.0 8.0000000875 15.0C11.8659705 15.0 15.0 11.8659705 15.0 7.9998060125C15.0 4.1338360375 11.8659705 1.0 8.0000000875 1.0C4.1338360375 1.0 1.0 4.1338360375 1.0 7.9998060125C1.0 7.9998060125 1.0 7.9998060125 1.0 7.9998060125" fill-rule="even-odd" fill-opacity="context-fill-opacity" fill="context-fill" />
+</svg>
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index cf1ebf0905dd..0aa68e0bceef 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -52,6 +52,9 @@
skin/classic/browser/downloads/notification-start-animation.svg (../shared/downloads/notification-start-animation.svg)
skin/classic/browser/drm-icon.svg (../shared/drm-icon.svg)
skin/classic/browser/permissions.svg (../shared/identity-block/permissions.svg)
+ skin/classic/browser/onion.svg (../shared/identity-block/onion.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/newInstall.css (../shared/newInstall.css)
skin/classic/browser/newInstallPage.css (../shared/newInstallPage.css)
skin/classic/browser/illustrations/blue-berror.svg (../shared/illustrations/blue-berror.svg)
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 2a93cd1902c7..05f319d89a86 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -9176,6 +9176,25 @@ bool nsContentUtils::ComputeIsSecureContext(nsIChannel* aChannel) {
return principal->GetIsOriginPotentiallyTrustworthy();
}
+/* static */ bool nsContentUtils::DocumentHasOnionURI(Document* aDocument) {
+ if (!aDocument) {
+ return false;
+ }
+
+ nsIURI* uri = aDocument->GetDocumentURI();
+ if (!uri) {
+ return false;
+ }
+
+ nsAutoCString host;
+ if (NS_SUCCEEDED(uri->GetHost(host))) {
+ bool hasOnionURI = StringEndsWith(host, ".onion"_ns);
+ return hasOnionURI;
+ }
+
+ return false;
+}
+
/* static */
void nsContentUtils::TryToUpgradeElement(Element* aElement) {
NodeInfo* nodeInfo = aElement->NodeInfo();
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
index 82f971243e3b..328e9149a2c3 100644
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -2987,6 +2987,11 @@ class nsContentUtils {
*/
static bool HttpsStateIsModern(Document* aDocument);
+ /**
+ * Returns true of the document's URI is a .onion
+ */
+ static bool DocumentHasOnionURI(Document* aDocument);
+
/**
* Returns true if the channel is for top-level window and is over secure
* context.
diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp
index f1b9496cb8c7..8c2bb3df6905 100644
--- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -1875,7 +1875,8 @@ bool nsGlobalWindowOuter::ComputeIsSecureContext(Document* aDocument,
return false;
}
- if (nsContentUtils::HttpsStateIsModern(aDocument)) {
+ if (nsContentUtils::HttpsStateIsModern(aDocument) ||
+ nsContentUtils::DocumentHasOnionURI(aDocument)) {
return true;
}
diff --git a/dom/ipc/WindowGlobalActor.cpp b/dom/ipc/WindowGlobalActor.cpp
index 7548e03f604b..6e3fc16799c9 100644
--- a/dom/ipc/WindowGlobalActor.cpp
+++ b/dom/ipc/WindowGlobalActor.cpp
@@ -21,6 +21,7 @@
#include "mozilla/net/CookieJarSettings.h"
#include "mozilla/dom/WindowGlobalChild.h"
#include "mozilla/dom/WindowGlobalParent.h"
+#include "mozilla/dom/nsMixedContentBlocker.h"
#include "nsGlobalWindowInner.h"
#include "nsNetUtil.h"
@@ -128,7 +129,8 @@ WindowGlobalInit WindowGlobalActor::WindowInitializer(
// Init Mixed Content Fields
nsCOMPtr<nsIURI> innerDocURI = NS_GetInnermostURI(doc->GetDocumentURI());
- fields.mIsSecure = innerDocURI && innerDocURI->SchemeIs("https");
+ fields.mIsSecure = innerDocURI && (innerDocURI->SchemeIs("https") ||
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI));
nsCOMPtr<nsITransportSecurityInfo> securityInfo;
if (nsCOMPtr<nsIChannel> channel = doc->GetChannel()) {
diff --git a/dom/ipc/WindowGlobalChild.cpp b/dom/ipc/WindowGlobalChild.cpp
index 391e34ee3d15..45eccf42ed37 100644
--- a/dom/ipc/WindowGlobalChild.cpp
+++ b/dom/ipc/WindowGlobalChild.cpp
@@ -48,6 +48,8 @@
# include "GeckoProfiler.h"
#endif
+#include "mozilla/dom/nsMixedContentBlocker.h"
+
using namespace mozilla::ipc;
using namespace mozilla::dom::ipc;
@@ -233,7 +235,9 @@ void WindowGlobalChild::OnNewDocument(Document* aDocument) {
nsCOMPtr<nsIURI> innerDocURI =
NS_GetInnermostURI(aDocument->GetDocumentURI());
if (innerDocURI) {
- txn.SetIsSecure(innerDocURI->SchemeIs("https"));
+ txn.SetIsSecure(
+ innerDocURI->SchemeIs("https") ||
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI));
}
MOZ_DIAGNOSTIC_ASSERT(mDocumentPrincipal->GetIsLocalIpAddress() ==
diff --git a/dom/security/nsMixedContentBlocker.cpp b/dom/security/nsMixedContentBlocker.cpp
index 64a9f3178874..ba88625eda69 100644
--- a/dom/security/nsMixedContentBlocker.cpp
+++ b/dom/security/nsMixedContentBlocker.cpp
@@ -638,8 +638,8 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
return NS_OK;
}
- // Check the parent scheme. If it is not an HTTPS page then mixed content
- // restrictions do not apply.
+ // Check the parent scheme. If it is not an HTTPS or .onion page then mixed
+ // content restrictions do not apply.
nsCOMPtr<nsIURI> innerRequestingLocation =
NS_GetInnermostURI(requestingLocation);
if (!innerRequestingLocation) {
@@ -654,6 +654,17 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
bool parentIsHttps = innerRequestingLocation->SchemeIs("https");
if (!parentIsHttps) {
+ bool parentIsOnion = IsPotentiallyTrustworthyOnion(innerRequestingLocation);
+ if (!parentIsOnion) {
+ *aDecision = ACCEPT;
+ return NS_OK;
+ }
+ }
+
+ bool isHttpScheme = innerContentLocation->SchemeIs("http");
+ // .onion URLs are encrypted and authenticated. Don't treat them as mixed
+ // content if potentially trustworthy (i.e. whitelisted).
+ if (isHttpScheme && IsPotentiallyTrustworthyOnion(innerContentLocation)) {
*aDecision = ACCEPT;
MOZ_LOG(sMCBLog, LogLevel::Verbose,
(" -> decision: Request will be allowed because the requesting "
@@ -680,7 +691,6 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
return NS_OK;
}
- bool isHttpScheme = innerContentLocation->SchemeIs("http");
if (isHttpScheme && IsPotentiallyTrustworthyOrigin(innerContentLocation)) {
*aDecision = ACCEPT;
return NS_OK;
diff --git a/mobile/android/modules/geckoview/GeckoViewProgress.jsm b/mobile/android/modules/geckoview/GeckoViewProgress.jsm
index 17069dbe657f..c1346b1858cf 100644
--- a/mobile/android/modules/geckoview/GeckoViewProgress.jsm
+++ b/mobile/android/modules/geckoview/GeckoViewProgress.jsm
@@ -145,6 +145,10 @@ var IdentityHandler = {
result.host = uri.host;
}
+ if (!aBrowser.securityUI.secInfo) {
+ return result;
+ }
+
const cert = aBrowser.securityUI.secInfo.serverCert;
result.certificate = aBrowser.securityUI.secInfo.serverCert.getBase64DERString();
diff --git a/security/manager/ssl/nsSecureBrowserUI.cpp b/security/manager/ssl/nsSecureBrowserUI.cpp
index b4de1a331ffc..f1ce39582854 100644
--- a/security/manager/ssl/nsSecureBrowserUI.cpp
+++ b/security/manager/ssl/nsSecureBrowserUI.cpp
@@ -9,6 +9,7 @@
#include "mozilla/Logging.h"
#include "mozilla/Unused.h"
#include "mozilla/dom/Document.h"
+#include "mozilla/dom/nsMixedContentBlocker.h"
#include "nsContentUtils.h"
#include "nsIChannel.h"
#include "nsDocShell.h"
@@ -85,6 +86,17 @@ void nsSecureBrowserUI::RecomputeSecurityFlags() {
}
}
}
+
+ // any protocol routed over tor is secure
+ if (!(mState & nsIWebProgressListener::STATE_IS_SECURE)) {
+ nsCOMPtr<nsIURI> innerDocURI = NS_GetInnermostURI(win->GetDocumentURI());
+ if (innerDocURI &&
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI)) {
+ MOZ_LOG(gSecureBrowserUILog, LogLevel::Debug, (" is onion"));
+ mState = (mState & ~nsIWebProgressListener::STATE_IS_INSECURE) |
+ nsIWebProgressListener::STATE_IS_SECURE;
+ }
+ }
}
// Add upgraded-state flags when request has been
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 28369: Stop shipping pingsender executable
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 187b316d8c1a64e6507a03724d086316a13e70d4
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Apr 10 17:52:51 2019 +0200
Bug 28369: Stop shipping pingsender executable
---
browser/app/macbuild/Contents/MacOS-files.in | 1 -
browser/installer/package-manifest.in | 4 ----
browser/installer/windows/nsis/shared.nsh | 1 -
python/mozbuild/mozbuild/artifacts.py | 2 --
toolkit/components/telemetry/app/TelemetrySend.jsm | 19 +------------------
toolkit/components/telemetry/moz.build | 4 ----
6 files changed, 1 insertion(+), 30 deletions(-)
diff --git a/browser/app/macbuild/Contents/MacOS-files.in b/browser/app/macbuild/Contents/MacOS-files.in
index 6f0b4481473b..6e8a1689ea19 100644
--- a/browser/app/macbuild/Contents/MacOS-files.in
+++ b/browser/app/macbuild/Contents/MacOS-files.in
@@ -17,7 +17,6 @@
#if defined(MOZ_CRASHREPORTER)
/minidump-analyzer
#endif
-/pingsender
/pk12util
/ssltunnel
/xpcshell
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 39f19b7dab48..d1cf02ef870f 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -452,10 +452,6 @@ bin/libfreebl_64int_3.so
@BINPATH@/minidump-analyzer@BIN_SUFFIX@
#endif
-; [ Ping Sender ]
-;
-@BINPATH@/pingsender@BIN_SUFFIX@
-
; Shutdown Terminator
@RESPATH@/components/terminator.manifest
diff --git a/browser/installer/windows/nsis/shared.nsh b/browser/installer/windows/nsis/shared.nsh
index de9aac18d2ff..365799896e70 100755
--- a/browser/installer/windows/nsis/shared.nsh
+++ b/browser/installer/windows/nsis/shared.nsh
@@ -1478,7 +1478,6 @@ ${RemoveDefaultBrowserAgentShortcut}
Push "crashreporter.exe"
Push "default-browser-agent.exe"
Push "minidump-analyzer.exe"
- Push "pingsender.exe"
Push "updater.exe"
Push "mozwer.dll"
Push "${FileMainEXE}"
diff --git a/python/mozbuild/mozbuild/artifacts.py b/python/mozbuild/mozbuild/artifacts.py
index 50ca81a4aaf5..3f3454b4b7b5 100644
--- a/python/mozbuild/mozbuild/artifacts.py
+++ b/python/mozbuild/mozbuild/artifacts.py
@@ -495,7 +495,6 @@ class LinuxArtifactJob(ArtifactJob):
"{product}/{product}",
"{product}/{product}-bin",
"{product}/minidump-analyzer",
- "{product}/pingsender",
"{product}/plugin-container",
"{product}/updater",
"{product}/**/*.so",
@@ -550,7 +549,6 @@ class MacArtifactJob(ArtifactJob):
"{product}-bin",
"*.dylib",
"minidump-analyzer",
- "pingsender",
"plugin-container.app/Contents/MacOS/plugin-container",
"updater.app/Contents/MacOS/org.mozilla.updater",
# 'xpcshell',
diff --git a/toolkit/components/telemetry/app/TelemetrySend.jsm b/toolkit/components/telemetry/app/TelemetrySend.jsm
index d64da6858124..ba125ea6a459 100644
--- a/toolkit/components/telemetry/app/TelemetrySend.jsm
+++ b/toolkit/components/telemetry/app/TelemetrySend.jsm
@@ -1588,23 +1588,6 @@ var TelemetrySendImpl = {
},
runPingSender(pings, observer) {
- if (AppConstants.platform === "android") {
- throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
- }
-
- const exeName =
- AppConstants.platform === "win" ? "pingsender.exe" : "pingsender";
-
- let exe = Services.dirsvc.get("GreBinD", Ci.nsIFile);
- exe.append(exeName);
-
- let params = pings.flatMap(ping => [ping.url, ping.path]);
- let process = Cc["@mozilla.org/process/util;1"].createInstance(
- Ci.nsIProcess
- );
- process.init(exe);
- process.startHidden = true;
- process.noShell = true;
- process.runAsync(params, params.length, observer);
+ throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
},
};
diff --git a/toolkit/components/telemetry/moz.build b/toolkit/components/telemetry/moz.build
index 3eee4e938c4e..cedf9b313d9c 100644
--- a/toolkit/components/telemetry/moz.build
+++ b/toolkit/components/telemetry/moz.build
@@ -8,10 +8,6 @@ include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
-DIRS = [
- "pingsender",
-]
-
DEFINES["MOZ_APP_VERSION"] = '"%s"' % CONFIG["MOZ_APP_VERSION"]
LOCAL_INCLUDES += [
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 21431: Clean-up system extensions shipped in Firefox
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit b93797bd6a084996c2f0ad2b2465921d5da5deb5
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue May 23 17:05:29 2017 -0400
Bug 21431: Clean-up system extensions shipped in Firefox
Only ship the pdfjs extension.
---
browser/components/BrowserGlue.jsm | 6 ++++++
browser/extensions/moz.build | 9 +--------
browser/installer/package-manifest.in | 1 -
browser/locales/Makefile.in | 8 --------
browser/locales/jar.mn | 7 -------
5 files changed, 7 insertions(+), 24 deletions(-)
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 106ab4cc8da1..b4153484fd76 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -1972,6 +1972,9 @@ BrowserGlue.prototype = {
const ID = "screenshots(a)mozilla.org";
const _checkScreenshotsPref = async () => {
let addon = await AddonManager.getAddonByID(ID);
+ if (!addon) {
+ return;
+ }
let disabled = Services.prefs.getBoolPref(PREF, false);
if (disabled) {
await addon.disable({ allowSystemAddons: true });
@@ -1988,6 +1991,9 @@ BrowserGlue.prototype = {
const ID = "webcompat-reporter(a)mozilla.org";
Services.prefs.addObserver(PREF, async () => {
let addon = await AddonManager.getAddonByID(ID);
+ if (!addon) {
+ return;
+ }
let enabled = Services.prefs.getBoolPref(PREF, false);
if (enabled && !addon.isActive) {
await addon.enable({ allowSystemAddons: true });
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index 9daae31eca43..8b16ddc4a84a 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -4,14 +4,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-DIRS += [
- "doh-rollout",
- "formautofill",
- "screenshots",
- "webcompat",
- "report-site-issue",
- "pictureinpicture",
-]
+DIRS += []
if not CONFIG["TOR_BROWSER_DISABLE_TOR_LAUNCHER"]:
DIRS += ["tor-launcher"]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 184f8fd475ab..39f19b7dab48 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -273,7 +273,6 @@
@RESPATH@/browser/chrome/icons/default/default64.png
@RESPATH@/browser/chrome/icons/default/default128.png
#endif
-@RESPATH@/browser/features/*
; [DevTools Startup Files]
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
index 496379c4306f..0946188813da 100644
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -58,10 +58,6 @@ l10n-%:
@$(MAKE) -C ../../toolkit/locales l10n-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
-ifneq (,$(wildcard ../extensions/formautofill/locales))
- @$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
-endif
- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
@@ -75,14 +71,10 @@ chrome-%:
@$(MAKE) -C ../../toolkit/locales chrome-$*
@$(MAKE) -C ../../services/sync/locales chrome AB_CD=$*
@$(MAKE) -C ../../extensions/spellcheck/locales chrome AB_CD=$*
-ifneq (,$(wildcard ../extensions/formautofill/locales))
- @$(MAKE) -C ../extensions/formautofill/locales chrome AB_CD=$*
-endif
@$(MAKE) -C ../../devtools/client/locales chrome AB_CD=$*
@$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$*
@$(MAKE) chrome AB_CD=$*
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
- @$(MAKE) -C ../extensions/report-site-issue/locales chrome AB_CD=$*
package-win32-installer: $(SUBMAKEFILES)
$(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index b539e72b4fa5..b1d87659e76f 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -52,10 +52,3 @@
locale/browser/appstrings.properties (%chrome/overrides/appstrings.properties)
locale/browser/newInstall.dtd (%chrome/browser/newInstall.dtd)
locale/browser/fxmonitor.properties (%chrome/browser/fxmonitor.properties)
-
-#ifdef XPI_NAME
-# Bug 1240628, restructure how l10n repacks work with feature addons
-# This is hacky, but ensures the chrome.manifest chain is complete
-[.] chrome.jar:
-% manifest features/chrome.manifest
-#endif
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 21830: Copying large text from web console leaks to /tmp
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 3583cc7af9096c20b402a6bf9be0d89251f2ba09
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Aug 4 05:55:49 2017 +0000
Bug 21830: Copying large text from web console leaks to /tmp
Patch written by Neill Miller
---
widget/nsTransferable.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/widget/nsTransferable.cpp b/widget/nsTransferable.cpp
index c82549a4d1d1..f8ecfbff0983 100644
--- a/widget/nsTransferable.cpp
+++ b/widget/nsTransferable.cpp
@@ -33,6 +33,7 @@ Notes to self:
#include "nsILoadContext.h"
#include "nsXULAppAPI.h"
#include "mozilla/UniquePtr.h"
+#include "mozilla/Preferences.h"
using namespace mozilla;
@@ -195,6 +196,11 @@ nsTransferable::Init(nsILoadContext* aContext) {
if (aContext) {
mPrivateData = aContext->UsePrivateBrowsing();
+ } else {
+ // without aContext here to provide PrivateBrowsing information,
+ // we defer to the active configured setting
+ mPrivateData =
+ mozilla::Preferences::GetBool("browser.privatebrowsing.autostart");
}
#ifdef DEBUG
mInitialized = true;
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 30541: Disable WebGL readPixel() for web content
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 21addcc22ff1048b10f97f970a35731148e70e0e
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed May 29 12:29:19 2019 +0000
Bug 30541: Disable WebGL readPixel() for web content
---
dom/canvas/ClientWebGLContext.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dom/canvas/ClientWebGLContext.cpp b/dom/canvas/ClientWebGLContext.cpp
index 04867cbcec39..f378315f410e 100644
--- a/dom/canvas/ClientWebGLContext.cpp
+++ b/dom/canvas/ClientWebGLContext.cpp
@@ -4626,6 +4626,14 @@ bool ClientWebGLContext::ReadPixels_SharedPrecheck(
return false;
}
+ // Security check passed, but don't let content readPixel calls through for
+ // now, if Resist Fingerprinting Mode is enabled.
+ if (nsContentUtils::ResistFingerprinting(aCallerType)) {
+ JsWarning("readPixels: Not allowed in Resist Fingerprinting Mode");
+ out_error.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
+ return false;
+ }
+
return true;
}
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 26345: Hide tracking protection UI
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 60230f6d5d2246983ab449bbc9d06f67d29fa02f
Author: Alex Catarineu <acat(a)torproject.org>
Date: Tue Sep 10 16:29:31 2019 +0200
Bug 26345: Hide tracking protection UI
---
browser/base/content/browser-siteIdentity.js | 4 ++--
browser/base/content/browser.xhtml | 4 ++--
browser/components/about/AboutRedirector.cpp | 4 ----
browser/components/about/components.conf | 1 -
browser/components/moz.build | 1 -
browser/themes/shared/preferences/privacy.css | 4 ++++
6 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index 6a816a75cae9..f6fdd8674e98 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -960,10 +960,10 @@ var gIdentityHandler = {
gPermissionPanel.refreshPermissionIcons();
}
- // Hide the shield icon if it is a chrome page.
+ // Bug 26345: Hide tracking protection UI.
gProtectionsHandler._trackingProtectionIconContainer.classList.toggle(
"chromeUI",
- this._isSecureInternalUI
+ true
);
},
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index da4188b336e6..6a0e5c0f5831 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -771,7 +771,7 @@
oncommand="gSync.toggleAccountPanel(this, event)"/>
</toolbaritem>
<toolbarseparator class="sync-ui-item"/>
- <toolbaritem>
+ <toolbaritem hidden="true">
<toolbarbutton id="appMenu-protection-report-button"
class="subviewbutton subviewbutton-iconic"
oncommand="gProtectionsHandler.openProtections(); gProtectionsHandler.recordClick('open_full_report', null, 'app_menu');">
@@ -782,7 +782,7 @@
</label>
</toolbarbutton>
</toolbaritem>
- <toolbarseparator id="appMenu-tp-separator"/>
+ <toolbarseparator hidden="true" id="appMenu-tp-separator"/>
<toolbarbutton id="appMenu-new-window-button"
class="subviewbutton subviewbutton-iconic"
label="&newNavigatorCmd.label;"
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index 3b8e1c39f3d5..6e79b6d6e94b 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -126,10 +126,6 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
- {"protections", "chrome://browser/content/protections.html",
- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
- nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
- nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"ion", "chrome://browser/content/ion.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
#ifdef TOR_BROWSER_UPDATE
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index ed67de484aae..17fecfd9a1fb 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -21,7 +21,6 @@ pages = [
'policies',
'preferences',
'privatebrowsing',
- 'protections',
'profiling',
'reader',
'restartrequired',
diff --git a/browser/components/moz.build b/browser/components/moz.build
index 1c421b761888..ef09055b990a 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -46,7 +46,6 @@ DIRS += [
"preferences",
"privatebrowsing",
"prompts",
- "protections",
"protocolhandler",
"resistfingerprinting",
"search",
diff --git a/browser/themes/shared/preferences/privacy.css b/browser/themes/shared/preferences/privacy.css
index b3c990d43c25..d9e0cef627f5 100644
--- a/browser/themes/shared/preferences/privacy.css
+++ b/browser/themes/shared/preferences/privacy.css
@@ -77,6 +77,10 @@
/* Content Blocking */
+#trackingGroup {
+ display: none;
+}
+
/* Override styling that sets descriptions as grey */
#trackingGroup description.indent,
#trackingGroup .indent > description {
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 31575: Replace Firefox Home (newtab) with about:tor
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit c1e81ecd944507f9b84ee85a95fb9fd832590bd5
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon Sep 9 13:04:34 2019 +0200
Bug 31575: Replace Firefox Home (newtab) with about:tor
Avoid loading AboutNewTab in BrowserGlue.jsm in order
to avoid several network requests that we do not need. Besides,
about:newtab will now point to about:blank or about:tor (depending
on browser.newtabpage.enabled) and about:home will point to
about:tor.
---
browser/components/BrowserGlue.jsm | 33 ++----------------------
browser/components/newtab/AboutNewTabService.jsm | 15 +----------
browser/components/preferences/home.inc.xhtml | 4 +--
browser/components/preferences/preferences.xhtml | 5 +++-
browser/modules/HomePage.jsm | 2 +-
5 files changed, 10 insertions(+), 49 deletions(-)
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index b4153484fd76..e476a201a051 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -18,7 +18,6 @@ const { AppConstants } = ChromeUtils.import(
);
XPCOMUtils.defineLazyModuleGetters(this, {
- AboutNewTab: "resource:///modules/AboutNewTab.jsm",
ActorManagerParent: "resource://gre/modules/ActorManagerParent.jsm",
AddonManager: "resource://gre/modules/AddonManager.jsm",
AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm",
@@ -225,28 +224,6 @@ let JSWINDOWACTORS = {
matches: ["about:newinstall"],
},
- AboutNewTab: {
- parent: {
- moduleURI: "resource:///actors/AboutNewTabParent.jsm",
- },
- child: {
- moduleURI: "resource:///actors/AboutNewTabChild.jsm",
- events: {
- DOMContentLoaded: {},
- pageshow: {},
- visibilitychange: {},
- },
- },
- // The wildcard on about:newtab is for the ?endpoint query parameter
- // that is used for snippets debugging. The wildcard for about:home
- // is similar, and also allows for falling back to loading the
- // about:home document dynamically if an attempt is made to load
- // about:home?jscache from the AboutHomeStartupCache as a top-level
- // load.
- matches: ["about:home*", "about:welcome", "about:newtab*"],
- remoteTypes: ["privilegedabout"],
- },
-
AboutPlugins: {
parent: {
moduleURI: "resource:///actors/AboutPluginsParent.jsm",
@@ -1625,8 +1602,6 @@ BrowserGlue.prototype = {
// the first browser window has finished initializing
_onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
- AboutNewTab.init();
-
TabCrashHandler.init();
ProcessHangMonitor.init();
@@ -5262,12 +5237,8 @@ var AboutHomeStartupCache = {
return { pageInputStream: null, scriptInputStream: null };
}
- let state = AboutNewTab.activityStream.store.getState();
- return new Promise(resolve => {
- this._cacheDeferred = resolve;
- this.log.trace("Parent is requesting cache streams.");
- this._procManager.sendAsyncMessage(this.CACHE_REQUEST_MESSAGE, { state });
- });
+ this.log.error("Activity Stream is disabled in Tor Browser.");
+ return { pageInputStream: null, scriptInputStream: null };
},
/**
diff --git a/browser/components/newtab/AboutNewTabService.jsm b/browser/components/newtab/AboutNewTabService.jsm
index 929356c262ee..c600551a0066 100644
--- a/browser/components/newtab/AboutNewTabService.jsm
+++ b/browser/components/newtab/AboutNewTabService.jsm
@@ -422,20 +422,7 @@ class BaseAboutNewTabService {
* the newtab page has no effect on the result of this function.
*/
get defaultURL() {
- // Generate the desired activity stream resource depending on state, e.g.,
- // "resource://activity-stream/prerendered/activity-stream.html"
- // "resource://activity-stream/prerendered/activity-stream-debug.html"
- // "resource://activity-stream/prerendered/activity-stream-noscripts.html"
- return [
- "resource://activity-stream/prerendered/",
- "activity-stream",
- // Debug version loads dev scripts but noscripts separately loads scripts
- this.activityStreamDebug && !this.privilegedAboutProcessEnabled
- ? "-debug"
- : "",
- this.privilegedAboutProcessEnabled ? "-noscripts" : "",
- ".html",
- ].join("");
+ return "about:tor";
}
get welcomeURL() {
diff --git a/browser/components/preferences/home.inc.xhtml b/browser/components/preferences/home.inc.xhtml
index c348e1cf754b..c37dc5e731f6 100644
--- a/browser/components/preferences/home.inc.xhtml
+++ b/browser/components/preferences/home.inc.xhtml
@@ -33,7 +33,7 @@
class="check-home-page-controlled"
data-preference-related="browser.startup.homepage">
<menupopup>
- <menuitem value="0" data-l10n-id="home-mode-choice-default" />
+ <menuitem value="0" label="&aboutTor.title;" />
<menuitem value="2" data-l10n-id="home-mode-choice-custom" />
<menuitem value="1" data-l10n-id="home-mode-choice-blank" />
</menupopup>
@@ -85,7 +85,7 @@
Preferences so we need to handle setting the pref manually.-->
<menulist id="newTabMode" flex="1" data-preference-related="browser.newtabpage.enabled">
<menupopup>
- <menuitem value="0" data-l10n-id="home-mode-choice-default" />
+ <menuitem value="0" label="&aboutTor.title;" />
<menuitem value="1" data-l10n-id="home-mode-choice-blank" />
</menupopup>
</menulist>
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index 10faf11bfecd..2d29b382350d 100644
--- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml
@@ -14,7 +14,10 @@
<?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>
-<!DOCTYPE html>
+<!DOCTYPE html [
+<!ENTITY % aboutTorDTD SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
+ %aboutTorDTD;
+]>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:html="http://www.w3.org/1999/xhtml"
diff --git a/browser/modules/HomePage.jsm b/browser/modules/HomePage.jsm
index 751e6ebb39b3..01317b9e9754 100644
--- a/browser/modules/HomePage.jsm
+++ b/browser/modules/HomePage.jsm
@@ -21,7 +21,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
});
const kPrefName = "browser.startup.homepage";
-const kDefaultHomePage = "about:home";
+const kDefaultHomePage = "about:tor";
const kExtensionControllerPref =
"browser.startup.homepage_override.extensionControlled";
const kHomePageIgnoreListId = "homepage-urls";
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 31607: App menu items stop working on macOS
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 2dca71409b29fbdf1cd8fe791daa658a37f9fae3
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Oct 3 10:53:43 2019 -0400
Bug 31607: App menu items stop working on macOS
Avoid re-creating the hidden window, since this causes the nsMenuBarX
object that is associated with the app menu to be freed (which in
turn causes all of the app menu items to stop working).
More detail: There should only be one hidden window.
XREMain::XRE_mainRun() contains an explicit call to create the
hidden window and that is the normal path by which it is created.
However, when Tor Launcher's wizard/progress window is opened during
startup, a hidden window is created earlier as a side effect of
calls to nsAppShellService::GetHiddenWindow(). Then, when
XREMain::XRE_mainRun() creates its hidden window, the original one
is freed which also causes the app menu's nsMenuBarX object which
is associated with that window to be destroyed. When that happens,
the menuGroupOwner property within each Cocoa menu items's MenuItemInfo
object is cleared. This breaks the link that is necessary for
NativeMenuItemTarget's menuItemHit method to dispatch a menu item
event.
---
xpfe/appshell/nsAppShellService.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/xpfe/appshell/nsAppShellService.cpp b/xpfe/appshell/nsAppShellService.cpp
index c7c3da49d86e..1cb1c6f5a7f9 100644
--- a/xpfe/appshell/nsAppShellService.cpp
+++ b/xpfe/appshell/nsAppShellService.cpp
@@ -93,6 +93,10 @@ void nsAppShellService::EnsureHiddenWindow() {
NS_IMETHODIMP
nsAppShellService::CreateHiddenWindow() {
+ if (mHiddenWindow) {
+ return NS_OK;
+ }
+
if (!XRE_IsParentProcess()) {
return NS_ERROR_NOT_IMPLEMENTED;
}
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 32092: Fix Tor Browser Support link in preferences
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 5ef2c24a71d860dd5eaa9294b4ca95e323ca237b
Author: Alex Catarineu <acat(a)torproject.org>
Date: Tue Oct 15 22:54:10 2019 +0200
Bug 32092: Fix Tor Browser Support link in preferences
---
browser/components/preferences/preferences.js | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
index a89fddd0306d..ce338584142e 100644
--- a/browser/components/preferences/preferences.js
+++ b/browser/components/preferences/preferences.js
@@ -166,10 +166,7 @@ function init_all() {
gotoPref().then(() => {
let helpButton = document.getElementById("helpButton");
- let helpUrl =
- Services.urlFormatter.formatURLPref("app.support.baseURL") +
- "preferences";
- helpButton.setAttribute("href", helpUrl);
+ helpButton.setAttribute("href", "https://support.torproject.org/tbb");
document.getElementById("addonsButton").addEventListener("click", e => {
if (e.button >= 2) {
1
0

[tor-browser/tor-browser-89.0-10.5-1] Bug 27511: Add new identity button to toolbar
by sysrqb@torproject.org 26 May '21
by sysrqb@torproject.org 26 May '21
26 May '21
commit 40f36b03727243c4298c422a2973954332dd0955
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Oct 4 19:08:33 2019 +0200
Bug 27511: Add new identity button to toolbar
Also added 'New circuit for this site' button to CustomizableUI, but
not visible by default.
---
browser/base/content/browser.xhtml | 10 ++++++++++
.../components/customizableui/CustomizableUI.jsm | 21 +++++++++++++++++++++
browser/themes/shared/icons/new_circuit.svg | 8 ++++++++
browser/themes/shared/icons/new_identity.svg | 9 +++++++++
browser/themes/shared/jar.inc.mn | 3 +++
browser/themes/shared/menupanel.inc.css | 8 ++++++++
browser/themes/shared/toolbarbutton-icons.inc.css | 8 ++++++++
7 files changed, 67 insertions(+)
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 6a0e5c0f5831..a90a1bbe8f64 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -2242,6 +2242,16 @@
ondragenter="newWindowButtonObserver.onDragOver(event)"
ondragexit="newWindowButtonObserver.onDragExit(event)"/>
+ <toolbarbutton id="new-identity-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"
+ tooltiptext="&torbutton.context_menu.new_identity;"/>
+
+ <toolbarbutton id="new-circuit-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"
+ tooltiptext="&torbutton.context_menu.new_circuit;"/>
+
<toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
observes="View:FullScreen"
type="checkbox"
diff --git a/browser/components/customizableui/CustomizableUI.jsm b/browser/components/customizableui/CustomizableUI.jsm
index 3d35513f7800..1831cd4255a0 100644
--- a/browser/components/customizableui/CustomizableUI.jsm
+++ b/browser/components/customizableui/CustomizableUI.jsm
@@ -86,6 +86,8 @@ const kSubviewEvents = ["ViewShowing", "ViewHiding"];
*/
var kVersion = 17;
+var kTorVersion = 1;
+
/**
* Buttons removed from built-ins by version they were removed. kVersion must be
* bumped any time a new id is added to this. Use the button id as key, and
@@ -629,6 +631,20 @@ var CustomizableUIInternal = {
navbarPlacements.splice(newPosition, 0, "save-to-pocket-button");
}
}
+
+ let currentTorVersion = gSavedState.currentTorVersion;
+ if (currentTorVersion < 1 && gSavedState.placements) {
+ let navbarPlacements = gSavedState.placements[CustomizableUI.AREA_NAVBAR];
+ if (navbarPlacements) {
+ let secLevelIndex = navbarPlacements.indexOf("security-level-button");
+ if (secLevelIndex === -1) {
+ let urlbarIndex = navbarPlacements.indexOf("urlbar-container");
+ secLevelIndex = urlbarIndex + 1;
+ navbarPlacements.splice(secLevelIndex, 0, "security-level-button");
+ }
+ navbarPlacements.splice(secLevelIndex + 1, 0, "new-identity-button");
+ }
+ }
},
_updateForNewProtonVersion() {
@@ -2533,6 +2549,10 @@ var CustomizableUIInternal = {
gSavedState.currentVersion = 0;
}
+ if (!("currentTorVersion" in gSavedState)) {
+ gSavedState.currentTorVersion = 0;
+ }
+
gSeenWidgets = new Set(gSavedState.seen || []);
gDirtyAreaCache = new Set(gSavedState.dirtyAreaCache || []);
gNewElementCount = gSavedState.newElementCount || 0;
@@ -2611,6 +2631,7 @@ var CustomizableUIInternal = {
seen: gSeenWidgets,
dirtyAreaCache: gDirtyAreaCache,
currentVersion: kVersion,
+ currentTorVersion: kTorVersion,
newElementCount: gNewElementCount,
};
diff --git a/browser/themes/shared/icons/new_circuit.svg b/browser/themes/shared/icons/new_circuit.svg
new file mode 100644
index 000000000000..e0a93cc83502
--- /dev/null
+++ b/browser/themes/shared/icons/new_circuit.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Icon / New Circuit(a)1.5x</title>
+ <g id="Icon-/-New-Circuit" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <path d="M13.4411138,10.1446317 L9.5375349,10.1446317 C8.99786512,10.1446317 8.56164018,10.5818326 8.56164018,11.1205264 C8.56164018,11.6592203 8.99786512,12.0964212 9.5375349,12.0964212 L11.4571198,12.0964212 C10.7554515,13.0479185 9.73466563,13.692009 8.60067597,13.9359827 C8.41818366,13.9720908 8.23276366,14.0033194 8.04734366,14.0218614 C7.97219977,14.0277168 7.89803177,14.0306445 7.82288788,14.0335722 C6.07506044,14.137017 4.290149,13.4499871 3.38647049,11.857327 C2.52280367,10.3349312 2.77263271,8.15966189 3.93687511,6.87343267 C5.12453898,5.56183017 7.44814431,5.04363008 8.21226987,3.38558497 C9.01738301,4.92847451 9.60682342,5.02801577 10.853041,6.15029468 C11.2892659,6.54455615 11.9704404,7.55558307 12.1861132,8.10501179 C12.3051723,8.40949094 12.5013272,9.17947187 12.5013272,9.17947187 L14.2862386,9.17947187 C14.2091429,7.59754654 13.439162,5.96877827 12.2261248,4.93628166 C11.279507,4.13116853 10.5065984,3.84718317 9.77662911,2.8088312 C9.63219669,2.60194152 9.599
99216,2.4565332 9.56290816,2.21646311 C9.53851079,2.00762164 9.54143848,1.78511764 9.62048595,1.53919218 C9.65952174,1.41720534 9.59804037,1.28545955 9.47702943,1.23764071 L6.40296106,0.0167964277 C6.32391359,-0.0134563083 6.23413128,-0.00272146652 6.16679454,0.0480250584 L5.95502539,0.206120002 C5.85743592,0.280288 5.82815908,0.416913259 5.89159223,0.523285783 C6.70060895,1.92564648 6.36978064,2.82542141 5.8984235,3.20211676 C5.4914754,3.4900057 4.99084141,3.72226864 4.63366394,3.95453159 C3.82367132,4.47956294 3.03222071,5.02508808 2.40374451,5.76774396 C0.434388969,8.09427695 0.519291809,12.0046871 2.77165682,14.1077402 C3.65288975,14.9284676 4.70295247,15.4749686 5.81742423,15.7570022 C5.81742423,15.7570022 6.13556591,15.833122 6.21754107,15.8497122 C7.36616915,16.0829511 8.53529102,16.0146384 9.62243774,15.6672199 C9.67416016,15.6525815 9.77174963,15.620377 9.76784605,15.6154975 C10.7730176,15.2700308 11.7049971,14.7010841 12.4652191,13.90573 L12.4652191,15.0241053 C12.4652191,
15.5627992 12.901444,16 13.4411138,16 C13.9798077,16 14.4170085,15.5627992 14.4170085,15.0241053 L14.4170085,11.1205264 C14.4170085,10.5818326 13.9798077,10.1446317 13.4411138,10.1446317" id="Fill-3" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ <path d="M5.107,7.462 C4.405,8.078 4,8.946 4,9.839 C4,10.712 4.422,11.57 5.13,12.132 C5.724,12.607 6.627,12.898 7.642,12.949 L7.642,5.8 C7.39,6.029 7.103,6.227 6.791,6.387 C5.993,6.812 5.489,7.133 5.107,7.462" id="Fill-1" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ </g>
+</svg>
diff --git a/browser/themes/shared/icons/new_identity.svg b/browser/themes/shared/icons/new_identity.svg
new file mode 100644
index 000000000000..91d5b35f7e80
--- /dev/null
+++ b/browser/themes/shared/icons/new_identity.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>New Identity Icon</title>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="New-Identity-Icon" fill="#000000" fill-rule="nonzero">
+ <path d="M4.65687153,14.5532899 L5.79494313,12.0855326 C5.8689125,11.9251399 5.6620883,11.7793527 5.53742729,11.9040137 L3.77194352,13.6694975 L2.32342782,12.2228406 L4.089841,10.4564274 C4.21450201,10.3317664 4.06871482,10.1249422 3.90832206,10.1989116 L1.43773764,11.338287 L0.206601383,10.1087306 C0.0509544211,9.9532834 -0.0167994233,9.75447206 0.00351451705,9.53432844 C0.0238284574,9.31418483 0.154794797,9.13897939 0.330406365,9.0302193 L4.61213917,6.53066101 C4.98542292,6.31331572 5.42541251,6.16259067 5.8659261,6.07796117 C6.63682488,5.92985954 7.40999434,6.06817199 8.09666802,6.42610336 L12.618483,1.910278 C13.0562019,1.47313888 13.7399062,1.45652879 14.1403159,1.87828207 C14.5407256,2.30003536 14.523905,2.96081599 14.0861861,3.39795511 L9.56437119,7.91378047 C9.92258101,8.57753432 10.0391721,9.37155544 9.91292178,10.1416209 C9.85023328,10.5817332 9.67706706,10.9989392 9.45960494,11.3937636 L6.95651989,15.6478297 C6.84761416,15.82321 6.6720026,15.9319701 6.47398108
,15.9964916 C6.25354962,16.0167745 6.0544801,15.9491049 5.89883314,15.7936577 L4.65687153,14.5532899 L4.65687153,14.5532899 Z M6.35600863,9.57888316 C6.35684236,9.57982492 6.35770616,9.58074275 6.35860024,9.58163642 L7.56801202,10.7899206 C7.78820303,11.010009 8.15567242,10.9533982 8.29166823,10.678253 C8.42766403,10.4031079 8.55818512,10.1511975 8.61427424,9.83946755 C8.73630873,9.14856819 8.51477165,8.45005355 8.01189873,7.92920397 C8.01085853,7.92816425 8.00979562,7.92715687 8.00871022,7.92618158 C8.00773493,7.92509618 8.00672754,7.92403327 8.00568783,7.92299307 C7.48483824,7.42012014 6.7863236,7.19858307 6.09542425,7.32061756 C5.78369428,7.37670668 5.53178393,7.50722777 5.25663877,7.64322357 C4.98149362,7.77921937 4.92488284,8.14668876 5.14497116,8.36687978 L6.35325537,9.57629155 C6.35414904,9.57718564 6.35506687,9.57804944 6.35600863,9.57888316 L6.35600863,9.57888316 Z M3.56503003,4.86094581 C3.44279837,4.85716019 3.33693302,4.76594656 3.31450832,4.6450962 C3.29259157,4.5009814
3 3.24425431,4.36089837 3.1719467,4.23194774 C3.04272848,4.15978087 2.90235166,4.11153221 2.75793184,4.08964745 C2.63678145,4.06729735 2.5453314,3.9616241 2.54155161,3.83961366 C2.53777182,3.71760322 2.62276629,3.61489221 2.74265726,3.59658884 C2.88757581,3.57942626 3.02687427,3.53584537 3.15371096,3.46798665 C3.21938702,3.3436261 3.26061987,3.20700605 3.27529255,3.0651408 C3.29205048,2.94466859 3.39451537,2.85825378 3.5172925,2.86104768 C3.6386065,2.86399065 3.74452528,2.95324633 3.76872081,3.07292141 C3.79288781,3.21715288 3.84342323,3.35694342 3.91777207,3.4852254 C4.04615548,3.55876237 4.18583906,3.60883869 4.32991405,3.63297757 C4.45015386,3.6576218 4.53936117,3.76418021 4.54139495,3.88559216 C4.54342874,4.00700411 4.45770065,4.10814717 4.33816215,4.12536877 C4.1960481,4.14067978 4.05931708,4.18249381 3.9349938,4.24866259 C3.86697751,4.37522253 3.82328954,4.51422019 3.80607564,4.65882867 C3.78847982,4.77811508 3.68677836,4.86339193 3.56503003,4.86094581 Z M14.4103464,14.3126948
C14.2513672,14.307719 14.1137716,14.188804 14.0849193,14.0314492 C14.045996,13.7585014 13.9510862,13.4938971 13.8061961,13.2543814 C13.5663773,13.109665 13.301434,13.0148623 13.0281329,12.9759728 C12.8707684,12.946921 12.75198,12.8095493 12.7470672,12.6509372 C12.7421545,12.492325 12.8525523,12.3587997 13.0082799,12.3350024 C13.2816632,12.3044807 13.5433622,12.2185794 13.7775725,12.0824861 C13.9099238,11.8524988 13.992337,11.5955854 14.0197279,11.3275956 C14.0417134,11.1717293 14.1740126,11.0598594 14.3327736,11.0628895 C14.4905572,11.0667732 14.6282205,11.1831391 14.6593783,11.3389665 C14.703143,11.6110771 14.8017156,11.8740418 14.9490566,12.1117486 C15.1872615,12.2578242 15.450159,12.3559923 15.7221615,12.4004323 C15.8783433,12.4324665 15.9942186,12.5709889 15.9968634,12.7288231 C15.9995083,12.8866572 15.8881575,13.0181443 15.7328877,13.0405352 C15.4641157,13.0669716 15.2064728,13.14931 14.9763475,13.2823129 C14.8406047,13.5164173 14.7548186,13.7777086 14.724105,14.0506041 C14.70
09285,14.2056508 14.5685348,14.3162427 14.4103464,14.3126948 Z M8.37194288,2.75251202 C8.23729358,2.7482977 8.12075529,2.6475812 8.09631849,2.5143077 C8.06335201,2.28313133 7.98296703,2.05902158 7.86025062,1.85616098 C7.65713325,1.73359169 7.43273641,1.65329741 7.2012608,1.62035947 C7.06797908,1.59575373 6.9673698,1.47940513 6.96320889,1.34506671 C6.95904797,1.21072829 7.05255074,1.09763741 7.18444606,1.07748204 C7.41599123,1.0516313 7.6376403,0.978876138 7.83600755,0.863610339 C7.94810399,0.668819911 8.01790485,0.45122403 8.04110388,0.224246882 C8.05972477,0.0922341146 8.17177714,-0.00251545243 8.30624168,5.089704e-05 C8.43987839,0.00334026838 8.55647391,0.101897787 8.58286336,0.233877601 C8.61993042,0.464344927 8.70341768,0.687066016 8.82820981,0.888394549 C9.02996027,1.012115 9.25262444,1.09525963 9.4830002,1.13289867 C9.6152802,1.16003037 9.71342219,1.27735361 9.71566226,1.41103311 C9.71790232,1.5447126 9.62359245,1.65607713 9.49208487,1.67504141 C9.26444525,1.69743199 9.0462315
3,1.76716948 8.85132417,1.87981789 C8.73635526,2.07809534 8.66369764,2.2993991 8.63768445,2.53053117 C8.61805481,2.66184983 8.50592239,2.75551697 8.37194288,2.75251202 Z" id="Shape" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index 0aa68e0bceef..f64fd75d3162 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -265,3 +265,6 @@
skin/classic/browser/places/tree-icons.css (../shared/places/tree-icons.css)
skin/classic/browser/privatebrowsing/aboutPrivateBrowsing.css (../shared/privatebrowsing/aboutPrivateBrowsing.css)
skin/classic/browser/privatebrowsing/favicon.svg (../shared/privatebrowsing/favicon.svg)
+
+ skin/classic/browser/new_circuit.svg (../shared/icons/new_circuit.svg)
+ skin/classic/browser/new_identity.svg (../shared/icons/new_identity.svg)
diff --git a/browser/themes/shared/menupanel.inc.css b/browser/themes/shared/menupanel.inc.css
index 26c0a1a0a068..06de3149d23b 100644
--- a/browser/themes/shared/menupanel.inc.css
+++ b/browser/themes/shared/menupanel.inc.css
@@ -192,3 +192,11 @@ toolbarpaletteitem[place="palette"] > #bookmarks-menu-button,
list-style-image: url(chrome://browser/skin/fullscreen-exit.svg);
}
} /** END Proton **/
+
+#appMenuNewIdentity {
+ list-style-image: url("chrome://browser/skin/new_identity.svg");
+}
+
+#appMenuNewCircuit {
+ list-style-image: url("chrome://browser/skin/new_circuit.svg");
+}
diff --git a/browser/themes/shared/toolbarbutton-icons.inc.css b/browser/themes/shared/toolbarbutton-icons.inc.css
index 09540d3bdf9d..f186e9d48693 100644
--- a/browser/themes/shared/toolbarbutton-icons.inc.css
+++ b/browser/themes/shared/toolbarbutton-icons.inc.css
@@ -219,6 +219,14 @@ toolbar[brighttext] {
list-style-image: url("chrome://browser/skin/new-tab.svg");
}
+#new-identity-button {
+ list-style-image: url("chrome://browser/skin/new_identity.svg");
+}
+
+#new-circuit-button {
+ list-style-image: url("chrome://browser/skin/new_circuit.svg");
+}
+
#privatebrowsing-button {
list-style-image: url("chrome://browser/skin/privateBrowsing.svg");
}
1
0

[Git][tpo/applications/fenix][tor-browser-89.0.0b5-10.5-1] Bug 40165: Announce v2 onion service deprecation on about:tor
by Matthew Finkel (@sysrqb) 25 May '21
by Matthew Finkel (@sysrqb) 25 May '21
25 May '21
Matthew Finkel pushed to branch tor-browser-89.0.0b5-10.5-1 at The Tor Project / Applications / fenix
Commits:
848a34d6 by Matthew Finkel at 2021-05-25T22:33:47+00:00
Bug 40165: Announce v2 onion service deprecation on about:tor
- - - - -
11 changed files:
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
- + app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt
- app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
- + app/src/main/res/drawable/info_banner_padded_background.xml
- + app/src/main/res/drawable/tor_banner_warning_icon.png
- app/src/main/res/layout/fragment_home.xml
- + app/src/main/res/layout/tor_info_banner.xml
- app/src/main/res/values/colors.xml
Changes:
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
=====================================
@@ -23,6 +23,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder
+import org.mozilla.fenix.home.sessioncontrol.viewholders.TorInfoBannerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSitePagerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.ExperimentDefaultBrowserCardViewHolder
@@ -81,6 +82,7 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
}
object PrivateBrowsingDescription : AdapterItem(PrivateBrowsingDescriptionViewHolder.LAYOUT_ID)
+ object TorInfoBanner : AdapterItem(TorInfoBannerViewHolder.LAYOUT_ID)
object NoCollectionsMessage : AdapterItem(NoCollectionsMessageViewHolder.LAYOUT_ID)
object TorBootstrap : AdapterItem(TorBootstrapPagerViewHolder.LAYOUT_ID)
@@ -182,6 +184,10 @@ class SessionControlAdapter(
view,
interactor
)
+ TorInfoBannerViewHolder.LAYOUT_ID -> TorInfoBannerViewHolder(
+ view,
+ interactor
+ )
TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder(
view,
components,
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
=====================================
@@ -94,6 +94,11 @@ interface SessionControlController {
*/
fun handlePrivateBrowsingLearnMoreClicked()
+ /**
+ * @see [TabSessionInteractor.onTorInfoBannerLaunchClicked]
+ */
+ fun handleTorInfoBannerLaunchClicked()
+
/**
* @see [TopSiteInteractor.onRenameTopSiteClicked]
*/
@@ -648,4 +653,12 @@ class DefaultSessionControlController(
override fun handleTorNetworkSettingsClicked() {
openTorNetworkSettings()
}
+
+ override fun handleTorInfoBannerLaunchClicked() {
+ activity.openToBrowserAndLoad(
+ searchTermOrURL = SupportUtils.TOR_INFO_BANNER_URL,
+ newTab = true,
+ from = BrowserDirection.FromHome
+ )
+ }
}
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
=====================================
@@ -18,6 +18,12 @@ interface TabSessionInteractor {
* "Common myths about private browsing" link in private mode.
*/
fun onPrivateBrowsingLearnMoreClicked()
+
+ /**
+ * Shows the Info Banner web page in a new tab. Called when a user clicks on the
+ * "Learn More" button.
+ */
+ fun onTorInfoBannerLaunchClicked()
}
/**
@@ -381,4 +387,8 @@ class SessionControlInteractor(
override fun onTorBootstrapNetworkSettingsClicked() {
controller.handleTorNetworkSettingsClicked()
}
+
+ override fun onTorInfoBannerLaunchClicked() {
+ controller.handleTorInfoBannerLaunchClicked()
+ }
}
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
=====================================
@@ -70,7 +70,7 @@ private fun showCollections(
}
}
-private fun privateModeAdapterItems() = listOf(AdapterItem.PrivateBrowsingDescription)
+private fun privateModeAdapterItems() = listOf(AdapterItem.TorInfoBanner)
private fun bootstrapAdapterItems() = listOf(AdapterItem.TorBootstrap)
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt
=====================================
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.home.sessioncontrol.viewholders
+
+import android.graphics.Typeface
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.style.StyleSpan
+import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.android.synthetic.main.tor_info_banner.view.*
+import org.mozilla.fenix.R
+import org.mozilla.fenix.home.sessioncontrol.TabSessionInteractor
+
+class TorInfoBannerViewHolder(
+ view: View,
+ private val interactor: TabSessionInteractor
+) : RecyclerView.ViewHolder(view) {
+
+ init {
+ with(view.info_banner_launch_button) {
+ setOnClickListener {
+ interactor.onTorInfoBannerLaunchClicked()
+ }
+ }
+
+ with(view.info_banner_description) {
+ val spannedString: SpannableString = SpannableString(text)
+ spannedString.setSpan(StyleSpan(Typeface.BOLD), 120, 138,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+ setText(spannedString)
+ }
+ }
+
+ companion object {
+ const val LAYOUT_ID = R.layout.tor_info_banner
+ }
+}
=====================================
app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
=====================================
@@ -40,6 +40,7 @@ object SupportUtils {
const val DONATE_URL = "https://donate.torproject.org/"
const val TB_MANUAL_URL = "https://tb-manual.torproject.org/mobile-tor"
const val TOR_RELEASES = "https://www.torproject.org/releases/"
+ const val TOR_INFO_BANNER_URL = "https://support.torproject.org/onionservices/#v2-deprecation"
enum class SumoTopic(internal val topicStr: String) {
FENIX_MOVING("sync-delist"),
=====================================
app/src/main/res/drawable/info_banner_padded_background.xml
=====================================
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/info_banner_padded_background_color">
+ <item
+ android:bottom="6dp"
+ android:top="6dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ </shape>
+ </item>
+</ripple>
=====================================
app/src/main/res/drawable/tor_banner_warning_icon.png
=====================================
Binary files /dev/null and b/app/src/main/res/drawable/tor_banner_warning_icon.png differ
=====================================
app/src/main/res/layout/fragment_home.xml
=====================================
@@ -94,7 +94,8 @@
android:textColor="#DEFFFFFF"
android:textSize="40sp"
android:lineSpacingMultiplier="1.1"
- app:layout_scrollFlags="scroll" />
+ app:layout_scrollFlags="scroll"
+ android:visibility="gone" />
</com.google.android.material.appbar.AppBarLayout>
=====================================
app/src/main/res/layout/tor_info_banner.xml
=====================================
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/info_banner_wrapper"
+ style="@style/OnboardingCardLightWithPadding"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false">
+
+ <LinearLayout
+ android:id="@+id/info_banner_header_wrapper"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:importantForAccessibility="no">
+
+ <ImageView
+ android:id="@+id/tor_info_banner_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:layout_marginEnd="10dp"
+ android:adjustViewBounds="true"
+ android:clickable="false"
+ android:focusable="false"
+ android:importantForAccessibility="no"
+ app:srcCompat="@drawable/tor_banner_warning_icon"/>
+
+ <TextView
+ android:id="@+id/info_banner_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:lineSpacingExtra="6dp"
+ android:paddingHorizontal="4dp"
+ android:paddingTop="4dp"
+ android:scrollHorizontally="false"
+ android:textAlignment="viewStart"
+ android:textColor="?primaryText"
+ android:textSize="20sp"
+ android:text="" />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/info_banner_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:lineSpacingExtra="6dp"
+ android:paddingHorizontal="4dp"
+ android:paddingTop="4dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/info_banner_header_wrapper"
+ android:scrollHorizontally="false"
+ android:textAlignment="viewStart"
+ android:textColor="?primaryText"
+ android:textSize="16sp"
+ android:text="Tor is ending its support for version 2 (v2) Onion Services, and v2 onion sites have since been deprecated. If you're a site administrator, upgrade to a v3 onion service immediately." />
+
+ <Button
+ style="@style/PositiveButton"
+ android:id="@+id/info_banner_launch_button"
+ android:text="Learn More"
+ android:layout_marginTop="16dp"
+ android:textSize="18dp"
+ android:textColor="@android:color/black"
+ android:background="@drawable/info_banner_padded_background"
+ android:fontFamily="Roboto-Medium"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/info_banner_description" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
=====================================
app/src/main/res/values/colors.xml
=====================================
@@ -425,4 +425,7 @@
<!-- Toolbar menu icon colors -->
<color name="toolbar_menu_transparent">@android:color/transparent</color>
+
+ <!-- Tor -->
+ <color name="info_banner_padded_background_color">#A76FFA</color>
</resources>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/commit/848a34d688072…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/commit/848a34d688072…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix][tor-browser-89.0.0b5-10.5-1] 8 commits: Bug 40002: Add GitLab CI
by Matthew Finkel (@sysrqb) 25 May '21
by Matthew Finkel (@sysrqb) 25 May '21
25 May '21
Matthew Finkel pushed to branch tor-browser-89.0.0b5-10.5-1 at The Tor Project / Applications / fenix
Commits:
993e17f6 by Matthew Finkel at 2021-05-13T15:43:36+02:00
Bug 40002: Add GitLab CI
Pin CI builds to runners with 32GB of RAM to avoid OOM conditions.
- - - - -
00b6b448 by Matthew Finkel at 2021-05-13T15:51:48+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
- - - - -
32ec5fb8 by Matthew Finkel at 2021-05-13T15:52:01+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
Bug 40162: Disable Numbus experiments
- - - - -
0838fe56 by Georg Koppen at 2021-05-13T15:52:03+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.
- - - - -
163cf2e7 by Matthew Finkel at 2021-05-18T13:41:33+00: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
- - - - -
a7cd2b5e by Alex Catarineu at 2021-05-25T22:12:09+00: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
- - - - -
ec6d8363 by Alex Catarineu at 2021-05-25T22:12:09+00: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
- - - - -
8b770c08 by Matthew Finkel at 2021-05-25T22:12:10+00:00
Add Security Level UI
Bug 40026: Implement Security Level settings
Bug 40026: Integrate Security Level 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/FeatureFlags.kt
- 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
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/e8c43d1bf193…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/e8c43d1bf193…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix][tor-browser-88.1.3-10.5-1] Bug 40165: Announce v2 onion service deprecation on about:tor
by Matthew Finkel (@sysrqb) 25 May '21
by Matthew Finkel (@sysrqb) 25 May '21
25 May '21
Matthew Finkel pushed to branch tor-browser-88.1.3-10.5-1 at The Tor Project / Applications / fenix
Commits:
091f3e3d by Matthew Finkel at 2021-05-25T22:04:26+00:00
Bug 40165: Announce v2 onion service deprecation on about:tor
- - - - -
11 changed files:
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
- + app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt
- app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
- + app/src/main/res/drawable/info_banner_padded_background.xml
- + app/src/main/res/drawable/tor_banner_warning_icon.png
- app/src/main/res/layout/fragment_home.xml
- + app/src/main/res/layout/tor_info_banner.xml
- app/src/main/res/values/colors.xml
Changes:
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
=====================================
@@ -23,6 +23,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder
+import org.mozilla.fenix.home.sessioncontrol.viewholders.TorInfoBannerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSitePagerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingAutomaticSignInViewHolder
@@ -80,6 +81,7 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
}
object PrivateBrowsingDescription : AdapterItem(PrivateBrowsingDescriptionViewHolder.LAYOUT_ID)
+ object TorInfoBanner : AdapterItem(TorInfoBannerViewHolder.LAYOUT_ID)
object NoCollectionsMessage : AdapterItem(NoCollectionsMessageViewHolder.LAYOUT_ID)
object TorBootstrap : AdapterItem(TorBootstrapPagerViewHolder.LAYOUT_ID)
@@ -179,6 +181,10 @@ class SessionControlAdapter(
view,
interactor
)
+ TorInfoBannerViewHolder.LAYOUT_ID -> TorInfoBannerViewHolder(
+ view,
+ interactor
+ )
TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder(
view,
components,
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
=====================================
@@ -93,6 +93,11 @@ interface SessionControlController {
*/
fun handlePrivateBrowsingLearnMoreClicked()
+ /**
+ * @see [TabSessionInteractor.onTorInfoBannerLaunchClicked]
+ */
+ fun handleTorInfoBannerLaunchClicked()
+
/**
* @see [TopSiteInteractor.onRenameTopSiteClicked]
*/
@@ -620,4 +625,12 @@ class DefaultSessionControlController(
override fun handleTorNetworkSettingsClicked() {
openTorNetworkSettings()
}
+
+ override fun handleTorInfoBannerLaunchClicked() {
+ activity.openToBrowserAndLoad(
+ searchTermOrURL = SupportUtils.TOR_INFO_BANNER_URL,
+ newTab = true,
+ from = BrowserDirection.FromHome
+ )
+ }
}
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
=====================================
@@ -18,6 +18,12 @@ interface TabSessionInteractor {
* "Common myths about private browsing" link in private mode.
*/
fun onPrivateBrowsingLearnMoreClicked()
+
+ /**
+ * Shows the Info Banner web page in a new tab. Called when a user clicks on the
+ * "Learn More" button.
+ */
+ fun onTorInfoBannerLaunchClicked()
}
/**
@@ -361,4 +367,8 @@ class SessionControlInteractor(
override fun onTorBootstrapNetworkSettingsClicked() {
controller.handleTorNetworkSettingsClicked()
}
+
+ override fun onTorInfoBannerLaunchClicked() {
+ controller.handleTorInfoBannerLaunchClicked()
+ }
}
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
=====================================
@@ -66,7 +66,7 @@ private fun showCollections(
}
}
-private fun privateModeAdapterItems() = listOf(AdapterItem.PrivateBrowsingDescription)
+private fun privateModeAdapterItems() = listOf(AdapterItem.TorInfoBanner)
private fun bootstrapAdapterItems() = listOf(AdapterItem.TorBootstrap)
=====================================
app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt
=====================================
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.fenix.home.sessioncontrol.viewholders
+
+import android.graphics.Typeface
+import android.text.SpannableString
+import android.text.Spanned
+import android.text.style.StyleSpan
+import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.android.synthetic.main.tor_info_banner.view.*
+import org.mozilla.fenix.R
+import org.mozilla.fenix.home.sessioncontrol.TabSessionInteractor
+
+class TorInfoBannerViewHolder(
+ view: View,
+ private val interactor: TabSessionInteractor
+) : RecyclerView.ViewHolder(view) {
+
+ init {
+ with(view.info_banner_launch_button) {
+ setOnClickListener {
+ interactor.onTorInfoBannerLaunchClicked()
+ }
+ }
+
+ with(view.info_banner_description) {
+ val spannedString: SpannableString = SpannableString(text)
+ spannedString.setSpan(StyleSpan(Typeface.BOLD), 120, 138,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+ setText(spannedString)
+ }
+ }
+
+ companion object {
+ const val LAYOUT_ID = R.layout.tor_info_banner
+ }
+}
=====================================
app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
=====================================
@@ -38,6 +38,7 @@ object SupportUtils {
const val DONATE_URL = "https://donate.torproject.org/"
const val TB_MANUAL_URL = "https://tb-manual.torproject.org/mobile-tor"
const val TOR_RELEASES = "https://www.torproject.org/releases/"
+ const val TOR_INFO_BANNER_URL = "https://support.torproject.org/onionservices/#v2-deprecation"
enum class SumoTopic(internal val topicStr: String) {
FENIX_MOVING("sync-delist"),
=====================================
app/src/main/res/drawable/info_banner_padded_background.xml
=====================================
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/info_banner_padded_background_color">
+ <item
+ android:bottom="6dp"
+ android:top="6dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ </shape>
+ </item>
+</ripple>
=====================================
app/src/main/res/drawable/tor_banner_warning_icon.png
=====================================
Binary files /dev/null and b/app/src/main/res/drawable/tor_banner_warning_icon.png differ
=====================================
app/src/main/res/layout/fragment_home.xml
=====================================
@@ -94,7 +94,8 @@
android:textColor="#DEFFFFFF"
android:textSize="40sp"
android:lineSpacingMultiplier="1.1"
- app:layout_scrollFlags="scroll" />
+ app:layout_scrollFlags="scroll"
+ android:visibility="gone" />
</com.google.android.material.appbar.AppBarLayout>
=====================================
app/src/main/res/layout/tor_info_banner.xml
=====================================
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<androidx.constraintlayout.widget.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/info_banner_wrapper"
+ style="@style/OnboardingCardLightWithPadding"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false">
+
+ <LinearLayout
+ android:id="@+id/info_banner_header_wrapper"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:importantForAccessibility="no">
+
+ <ImageView
+ android:id="@+id/tor_info_banner_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="32dp"
+ android:layout_marginEnd="10dp"
+ android:adjustViewBounds="true"
+ android:clickable="false"
+ android:focusable="false"
+ android:importantForAccessibility="no"
+ app:srcCompat="@drawable/tor_banner_warning_icon"/>
+
+ <TextView
+ android:id="@+id/info_banner_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:lineSpacingExtra="6dp"
+ android:paddingHorizontal="4dp"
+ android:paddingTop="4dp"
+ android:scrollHorizontally="false"
+ android:textAlignment="viewStart"
+ android:textColor="?primaryText"
+ android:textSize="20sp"
+ android:text="" />
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/info_banner_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:lineSpacingExtra="6dp"
+ android:paddingHorizontal="4dp"
+ android:paddingTop="4dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/info_banner_header_wrapper"
+ android:scrollHorizontally="false"
+ android:textAlignment="viewStart"
+ android:textColor="?primaryText"
+ android:textSize="16sp"
+ android:text="Tor is ending its support for version 2 (v2) Onion Services, and v2 onion sites have since been deprecated. If you're a site administrator, upgrade to a v3 onion service immediately." />
+
+ <Button
+ style="@style/PositiveButton"
+ android:id="@+id/info_banner_launch_button"
+ android:text="Learn More"
+ android:layout_marginTop="16dp"
+ android:textSize="18dp"
+ android:textColor="@android:color/black"
+ android:background="@drawable/info_banner_padded_background"
+ android:fontFamily="Roboto-Medium"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/info_banner_description" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
=====================================
app/src/main/res/values/colors.xml
=====================================
@@ -425,4 +425,7 @@
<!-- Toolbar menu icon colors -->
<color name="toolbar_menu_transparent">@android:color/transparent</color>
+
+ <!-- Tor -->
+ <color name="info_banner_padded_background_color">#A76FFA</color>
</resources>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/commit/091f3e3dea350…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/commit/091f3e3dea350…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[tor-browser-build/master] Update Tor's git_hash to refer to main.
by boklm@torproject.org 25 May '21
by boklm@torproject.org 25 May '21
25 May '21
commit b17296dcddb9c40de9934a806a2a5137eae9a127
Author: Alexander Færøy <ahf(a)torproject.org>
Date: Tue May 25 13:01:32 2021 +0000
Update Tor's git_hash to refer to main.
See: tpo/core/team#2
Fixes: tpo/applications/tor-browser-build#40280
---
projects/tor/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/tor/config b/projects/tor/config
index 05d5c6d..a469dd8 100644
--- a/projects/tor/config
+++ b/projects/tor/config
@@ -19,7 +19,7 @@ var:
targets:
nightly:
version: '[% c("abbrev") %]'
- git_hash: master
+ git_hash: main
tag_gpg_id: 0
linux-i686:
1
0

[tor-browser/tor-browser-88.0.1-10.5-1] Bug 40432: Prevent probing installed applications
by sysrqb@torproject.org 19 May '21
by sysrqb@torproject.org 19 May '21
19 May '21
commit 3aa43567266170c53c657a18e0836f16bd4d307d
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 18:09:09 2021 +0000
Bug 40432: Prevent probing installed applications
---
.../exthandler/nsExternalHelperAppService.cpp | 30 ++++++++++++++++++----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index e1d95acd969d..e6c1084adf91 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -1049,8 +1049,33 @@ nsresult nsExternalHelperAppService::GetFileTokenForPath(
//////////////////////////////////////////////////////////////////////////////////////////////////////
// begin external protocol service default implementation...
//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+static const char kExternalProtocolPrefPrefix[] =
+ "network.protocol-handler.external.";
+static const char kExternalProtocolDefaultPref[] =
+ "network.protocol-handler.external-default";
+
NS_IMETHODIMP nsExternalHelperAppService::ExternalProtocolHandlerExists(
const char* aProtocolScheme, bool* aHandlerExists) {
+
+ // Replicate the same check performed in LoadURI.
+ // Deny load if the prefs say to do so
+ nsAutoCString externalPref(kExternalProtocolPrefPrefix);
+ externalPref += aProtocolScheme;
+ bool allowLoad = false;
+ *aHandlerExists = false;
+ if (NS_FAILED(Preferences::GetBool(externalPref.get(), &allowLoad))) {
+ // no scheme-specific value, check the default
+ if (NS_FAILED(
+ Preferences::GetBool(kExternalProtocolDefaultPref, &allowLoad))) {
+ return NS_OK; // missing default pref
+ }
+ }
+
+ if (!allowLoad) {
+ return NS_OK; // explicitly denied
+ }
+
nsCOMPtr<nsIHandlerInfo> handlerInfo;
nsresult rv = GetProtocolHandlerInfo(nsDependentCString(aProtocolScheme),
getter_AddRefs(handlerInfo));
@@ -1093,11 +1118,6 @@ NS_IMETHODIMP nsExternalHelperAppService::IsExposedProtocol(
return NS_OK;
}
-static const char kExternalProtocolPrefPrefix[] =
- "network.protocol-handler.external.";
-static const char kExternalProtocolDefaultPref[] =
- "network.protocol-handler.external-default";
-
NS_IMETHODIMP
nsExternalHelperAppService::LoadURI(nsIURI* aURI,
nsIPrincipal* aTriggeringPrincipal,
1
0

[tor-browser/tor-browser-78.10.0esr-10.5-1] Bug 40432: Prevent probing installed applications
by sysrqb@torproject.org 19 May '21
by sysrqb@torproject.org 19 May '21
19 May '21
commit 6eceb1111179a348cc5765208cb19ab5d0346292
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 18:09:09 2021 +0000
Bug 40432: Prevent probing installed applications
---
.../exthandler/nsExternalHelperAppService.cpp | 30 ++++++++++++++++++----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index 0dcc1d3ed6ab..7ff9c5b626a3 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -1002,8 +1002,33 @@ nsresult nsExternalHelperAppService::GetFileTokenForPath(
//////////////////////////////////////////////////////////////////////////////////////////////////////
// begin external protocol service default implementation...
//////////////////////////////////////////////////////////////////////////////////////////////////////
+
+static const char kExternalProtocolPrefPrefix[] =
+ "network.protocol-handler.external.";
+static const char kExternalProtocolDefaultPref[] =
+ "network.protocol-handler.external-default";
+
NS_IMETHODIMP nsExternalHelperAppService::ExternalProtocolHandlerExists(
const char* aProtocolScheme, bool* aHandlerExists) {
+
+ // Replicate the same check performed in LoadURI.
+ // Deny load if the prefs say to do so
+ nsAutoCString externalPref(kExternalProtocolPrefPrefix);
+ externalPref += aProtocolScheme;
+ bool allowLoad = false;
+ *aHandlerExists = false;
+ if (NS_FAILED(Preferences::GetBool(externalPref.get(), &allowLoad))) {
+ // no scheme-specific value, check the default
+ if (NS_FAILED(
+ Preferences::GetBool(kExternalProtocolDefaultPref, &allowLoad))) {
+ return NS_OK; // missing default pref
+ }
+ }
+
+ if (!allowLoad) {
+ return NS_OK; // explicitly denied
+ }
+
nsCOMPtr<nsIHandlerInfo> handlerInfo;
nsresult rv = GetProtocolHandlerInfo(nsDependentCString(aProtocolScheme),
getter_AddRefs(handlerInfo));
@@ -1046,11 +1071,6 @@ NS_IMETHODIMP nsExternalHelperAppService::IsExposedProtocol(
return NS_OK;
}
-static const char kExternalProtocolPrefPrefix[] =
- "network.protocol-handler.external.";
-static const char kExternalProtocolDefaultPref[] =
- "network.protocol-handler.external-default";
-
NS_IMETHODIMP
nsExternalHelperAppService::LoadURI(nsIURI* aURI,
nsIPrincipal* aTriggeringPrincipal,
1
0

[tor-browser-build/master] Bug 40109: Add a repackaging script for linux64 Tor Browser local builds
by boklm@torproject.org 19 May '21
by boklm@torproject.org 19 May '21
19 May '21
commit 0a9c964b9e6f5681c84fda57f1715702e49b1fbc
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Feb 24 18:25:09 2021 +0100
Bug 40109: Add a repackaging script for linux64 Tor Browser local builds
---
tools/.gitignore | 1 +
tools/repackage_browser.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+)
diff --git a/tools/.gitignore b/tools/.gitignore
new file mode 100644
index 0000000..69082a7
--- /dev/null
+++ b/tools/.gitignore
@@ -0,0 +1 @@
+_repackaged
diff --git a/tools/repackage_browser.sh b/tools/repackage_browser.sh
new file mode 100755
index 0000000..4787673
--- /dev/null
+++ b/tools/repackage_browser.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+# This script allows you to repackage a Tor Browser bundle using an
+# obj-x86_64-pc-linux-gnu directory from a local tor-browser.git build.
+#
+# This script will download the current Tor Browser version (using
+# var/torbrowser_version from rbm config, or an optional second argument)
+# and repackage it with the specified obj directory.
+#
+# The new repackaged bundle can be found in the _repackaged directory.
+
+set -e
+
+display_usage() {
+ echo -e "\\nUsage: $0 firefox_obj_path [torbrowser-version]\\n"
+}
+if [ $# -lt 1 ] || [ $# -gt 2 ]
+then
+ display_usage
+ exit 1
+fi
+
+DIRNAME="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
+OBJ_PATH=$1
+if [ $# -eq 2 ]
+then
+ TOR_VERSION="$2"
+else
+ TOR_VERSION=$("$DIRNAME"/../rbm/rbm showconf tor-browser var/torbrowser_version)
+fi
+TOR_FILENAME=tor-browser-linux64-${TOR_VERSION}_en-US.tar.xz
+TOR_BROWSER_URL=https://dist.torproject.org/torbrowser/"${TOR_VERSION}"/"${TOR_FILENAME}"
+TMPDIR="$(mktemp -d)"
+
+(
+cd "$TMPDIR"
+wget "$TOR_BROWSER_URL"
+wget "$TOR_BROWSER_URL".asc
+gpg --no-default-keyring --keyring "$DIRNAME"/../keyring/torbrowser.gpg --verify "${TOR_FILENAME}".asc "${TOR_FILENAME}"
+
+# From projects/firefox/build: replace firefox binary by the wrapper and strip libraries/binaries
+tar xf "${TOR_FILENAME}"
+cp -r "${OBJ_PATH}"/dist/firefox .
+rm firefox/firefox-bin
+mv firefox/firefox firefox/firefox.real
+for LIB in firefox/*.so firefox/gtk2/*.so firefox/firefox.real firefox/plugin-container firefox/updater
+do
+ strip "$LIB"
+done
+
+# Repackage https-everywhere extension
+mkdir _omni/
+unzip tor-browser_en-US/Browser/omni.ja -d _omni/
+cd _omni/
+zip -Xmr ../firefox/omni.ja chrome/torbutton/content/extensions/https-everywhere/
+cd ..
+rm -rf _omni/
+
+# Overwrite extracted tor-browser with locally built files and move to _repackaged folder
+cp -r firefox/* tor-browser_en-US/Browser
+rm -rf firefox "${TOR_FILENAME}"
+REPACKAGED_DIR="$DIRNAME"/_repackaged/
+mkdir -p "$REPACKAGED_DIR"
+mv tor-browser_en-US "$REPACKAGED_DIR"/tor-browser-"$(date '+%Y%m%d%H%M%S')"
+rm -rf "$TMPDIR"
+)
1
0

[tor-browser-bundle-testsuite/master] Bug 40021: Archive old nightly builds on tb-build-01
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit e7fcf4a4722c88f52069bf2dea6c7feaceba173c
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Mar 23 17:18:07 2021 +0100
Bug 40021: Archive old nightly builds on tb-build-01
---
tools/tb-build-01-start-nightly-build | 33 ++++++++++++++++++++++++++++++++-
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/tools/tb-build-01-start-nightly-build b/tools/tb-build-01-start-nightly-build
index 6a37459..1d693e0 100755
--- a/tools/tb-build-01-start-nightly-build
+++ b/tools/tb-build-01-start-nightly-build
@@ -1,10 +1,41 @@
#!/bin/bash
set -e
+today_version=$(date '+tbb-nightly.%Y.%m.%d')
+
cd /home/tb-builder/tor-browser-bundle-testsuite
export RBM_NO_DEBUG=1
./tbb-testsuite --config=tb-build-01.torproject.org "$@"
-/home/tb-builder/tor-browser-bundle-testsuite/clones/tor-browser-build/tools/prune-old-builds --days 1 --weeks 0 --months 0 ~/nightly-builds/tor-browser-builds
+
+# Archive today's build
+archive_dir=~/tor-browser-builds-archive/"$today_version"
+if ! test -d "$archive_dir"
+then
+ mkdir -p "$archive_dir"
+ for dir in ~/nightly-builds/tor-browser-builds/"$today_version"/*
+ do
+ test -d "$dir" || continue
+ dname=$archive_dir/$(basename "$dir")
+ mkdir -p "$dname"
+ test -d "$dir/logs" && cp -a "$dir/logs" "$dname"
+ find "$dir" -maxdepth 1 \( \
+ -name '*.txt' \
+ -o -name '*.asc' \
+ -o -name 'torbrowser-install-*_en-US.exe' \
+ -o -name 'TorBrowser-*_en-US.dmg' \
+ -o -name 'tor-browser-linux*_en-US.tar.xz' \
+ -o -name '*-multi-qa.apk' \
+ \) \
+ -a -execdir cp -a {} "$dname" \;
+ done
+ /home/tb-builder/tor-browser-bundle-testsuite/clones/tor-browser-build/tools/prune-old-builds --days 100 --weeks 30 --months 12 ~/tor-browser-builds-archive
+fi
+
+# Only clean previous builds if we use more than 20GB
+builds_size=$(du -s ~/nightly-builds/tor-browser-builds | cut -f 1)
+test "$builds_size" -gt 20000000 && \
+ /home/tb-builder/tor-browser-bundle-testsuite/clones/tor-browser-build/tools/prune-old-builds --days 1 --weeks 0 --months 0 ~/nightly-builds/tor-browser-builds
+
# sleep for 5m to give time to previous rsync to finish
sleep 5m
/home/tb-builder/tor-browser-bundle-testsuite/tools/rsync-to-tbb-nightlies-master
1
0

[tor-browser/tor-browser-78.10.0esr-10.5-1] fixup! Bug 10760: Integrate TorButton to TorBrowser core
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit 5ae4c9537f2a8ec022610ee39a7ee2876915edba
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 19:42:39 2021 +0000
fixup! Bug 10760: Integrate TorButton to TorBrowser core
---
toolkit/torproject/torbutton | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
index 5264bddf8bc7..35d206d3cf47 160000
--- a/toolkit/torproject/torbutton
+++ b/toolkit/torproject/torbutton
@@ -1 +1 @@
-Subproject commit 5264bddf8bc71cbb4e88921b55e7b95fa4522b69
+Subproject commit 35d206d3cf47edc4936a00cb00d92a6b7cb66b25
1
0
commit 35d206d3cf47edc4936a00cb00d92a6b7cb66b25
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 19:41:16 2021 +0000
Translations update
---
chrome/locale/ar/torbutton.properties | 10 ++++
chrome/locale/bn-BD/torbutton.properties | 10 ++++
chrome/locale/ca/torbutton.properties | 10 ++++
chrome/locale/cs/torbutton.properties | 10 ++++
chrome/locale/da/torbutton.properties | 10 ++++
chrome/locale/de/torbutton.properties | 10 ++++
chrome/locale/el/torbutton.properties | 28 ++++++----
chrome/locale/es-AR/torbutton.properties | 10 ++++
chrome/locale/es-ES/torbutton.properties | 10 ++++
chrome/locale/eu/torbutton.properties | 10 ++++
chrome/locale/fa/torbutton.properties | 10 ++++
chrome/locale/fr/torbutton.properties | 10 ++++
chrome/locale/ga-IE/torbutton.properties | 10 ++++
chrome/locale/he/browserOnboarding.properties | 2 +-
chrome/locale/he/torbutton.properties | 18 +++++--
chrome/locale/hu/torbutton.properties | 10 ++++
chrome/locale/id/torbutton.properties | 10 ++++
chrome/locale/is/torbutton.properties | 10 ++++
chrome/locale/it/torbutton.properties | 10 ++++
chrome/locale/ja/torbutton.properties | 10 ++++
chrome/locale/ka/torbutton.properties | 10 ++++
chrome/locale/ko/torbutton.properties | 10 ++++
chrome/locale/lt/torbutton.properties | 10 ++++
chrome/locale/mk/torbutton.properties | 10 ++++
chrome/locale/ms/torbutton.properties | 10 ++++
chrome/locale/my/aboutTor.dtd | 2 +-
chrome/locale/my/browserOnboarding.properties | 6 +--
chrome/locale/my/torbutton.dtd | 2 +-
chrome/locale/my/torbutton.properties | 12 ++++-
chrome/locale/nb-NO/torbutton.properties | 10 ++++
chrome/locale/nl/torbutton.properties | 10 ++++
chrome/locale/pl/torbutton.dtd | 4 +-
chrome/locale/pl/torbutton.properties | 76 +++++++++++++++------------
chrome/locale/pt-BR/torbutton.properties | 10 ++++
chrome/locale/ro/torbutton.properties | 10 ++++
chrome/locale/ru/torbutton.properties | 10 ++++
chrome/locale/sv-SE/aboutTor.dtd | 2 +-
chrome/locale/sv-SE/brand.dtd | 6 +--
chrome/locale/sv-SE/torbutton.dtd | 22 ++++----
chrome/locale/sv-SE/torbutton.properties | 16 ++++--
chrome/locale/th/torbutton.properties | 10 ++++
chrome/locale/tr/aboutTor.dtd | 2 +-
chrome/locale/tr/torbutton.properties | 10 ++++
chrome/locale/vi/torbutton.properties | 10 ++++
chrome/locale/zh-CN/torbutton.properties | 10 ++++
chrome/locale/zh-TW/torbutton.properties | 10 ++++
46 files changed, 444 insertions(+), 74 deletions(-)
diff --git a/chrome/locale/ar/torbutton.properties b/chrome/locale/ar/torbutton.properties
index 2e4927ea..5833e548 100644
--- a/chrome/locale/ar/torbutton.properties
+++ b/chrome/locale/ar/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=دائماً
onionLocation.askEverytime=إسأل كل مرة
onionLocation.prioritizeOnionsDescription=إعطاء الأولوية لمواقع .onion إذا توفرت
onionLocation.onionServicesTitle=خدمات البصلة
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=تم نسخ عنوان العملة المشفرة (٪ S) من موقع ويب غير آمن. كان من الممكن تعديله.
+cryptoSafetyPrompt.whatCanHeading=ماذا يمكنك أن تفعل بهذا الشأن?
+cryptoSafetyPrompt.whatCanBody=يمكنك محاولة إعادة الاتصال بدائرة جديدة لإنشاء اتصال آمن، أو قبول المخاطرة واستبعاد هذا التحذير.
+cryptoSafetyPrompt.learnMore=تعرف على المزيد
+cryptoSafetyPrompt.primaryAction=إعادة تحميل علامة التبويب بدائرة جديدة
+cryptoSafetyPrompt.primaryActionAccessKey=ق
+cryptoSafetyPrompt.secondaryAction=رفض التحذير
+cryptoSafetyPrompt.secondaryActionAccessKey=ب
diff --git a/chrome/locale/bn-BD/torbutton.properties b/chrome/locale/bn-BD/torbutton.properties
index 78b6e903..76379bc6 100644
--- a/chrome/locale/bn-BD/torbutton.properties
+++ b/chrome/locale/bn-BD/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=ওনিওন সেবা
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=আরও জানুন
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ca/torbutton.properties b/chrome/locale/ca/torbutton.properties
index d2b65db4..f92e627e 100644
--- a/chrome/locale/ca/torbutton.properties
+++ b/chrome/locale/ca/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Sempre
onionLocation.askEverytime=Demana-ho cada vegada
onionLocation.prioritizeOnionsDescription=Prioritza els llocs .onion si se'n coneixen.
onionLocation.onionServicesTitle=Serveis Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Més informació
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/cs/torbutton.properties b/chrome/locale/cs/torbutton.properties
index 28ff96e6..c781906a 100644
--- a/chrome/locale/cs/torbutton.properties
+++ b/chrome/locale/cs/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Vždy
onionLocation.askEverytime=Ptát se vždy
onionLocation.prioritizeOnionsDescription=Upřednostňovat známé .onion stránky.
onionLocation.onionServicesTitle=Služby Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Adresa kryptoměny (%S) byla zkopírována z nezabezpečené webové stránky. Mohla být upravena.
+cryptoSafetyPrompt.whatCanHeading=Co s tím můžete dělat?
+cryptoSafetyPrompt.whatCanBody=Můžete se zkusit znovu připojit pomocí nového okruhu, abyste navázali bezpečné připojení, nebo přijmout riziko a toto varování odmítnout.
+cryptoSafetyPrompt.learnMore=Zjistit více
+cryptoSafetyPrompt.primaryAction=Znovu načíst tab s novým okruhem
+cryptoSafetyPrompt.primaryActionAccessKey=O
+cryptoSafetyPrompt.secondaryAction=Odmítnout varování
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/da/torbutton.properties b/chrome/locale/da/torbutton.properties
index d7023127..52fb9ea9 100644
--- a/chrome/locale/da/torbutton.properties
+++ b/chrome/locale/da/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Altid
onionLocation.askEverytime=Spørg hver gang
onionLocation.prioritizeOnionsDescription=Prioriter .onion-steder når de kendes.
onionLocation.onionServicesTitle=Oniontjenester
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Lær mere
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=B
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/de/torbutton.properties b/chrome/locale/de/torbutton.properties
index 2554e0b7..d2956d75 100644
--- a/chrome/locale/de/torbutton.properties
+++ b/chrome/locale/de/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Immer
onionLocation.askEverytime=Jedes Mal nachfragen
onionLocation.prioritizeOnionsDescription=Priorisiere .onion-Sites, wenn sie bekannt sind.
onionLocation.onionServicesTitle=Onion-Dienste
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Eine Kryptowährungsadresse (%S) wurde von einer unsicheren Website kopiert. Sie könnte verändert worden sein.
+cryptoSafetyPrompt.whatCanHeading=Was kannst du dagegen tun?
+cryptoSafetyPrompt.whatCanBody=Du kannst versuchen, eine neue Verbindung mit einem neuen Kanal herzustellen, um eine sichere Verbindung herzustellen, oder das Risiko annehmen und diese Warnung ignorieren.
+cryptoSafetyPrompt.learnMore=Mehr erfahren
+cryptoSafetyPrompt.primaryAction=Tab mit einem neuen Kanal neu laden
+cryptoSafetyPrompt.primaryActionAccessKey=E
+cryptoSafetyPrompt.secondaryAction=Warnung ignorieren
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/el/torbutton.properties b/chrome/locale/el/torbutton.properties
index 915ded9d..56eb6492 100644
--- a/chrome/locale/el/torbutton.properties
+++ b/chrome/locale/el/torbutton.properties
@@ -69,42 +69,42 @@ onionServices.errorPage.onionSite=Onion σελίδα
onionServices.descNotFound.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
onionServices.descNotFound.header=Η σελίδα Onion δεν βρέθηκε
onionServices.descNotFound=Η πιο πιθανή αιτία είναι ότι η σελίδα onion είναι εκτός σύνδεσης. Επικοινωνήστε με τον διαχειριστή της σελίδας.
-onionServices.descNotFound.longDescription=Details: %S — The requested onion service descriptor can't be found on the hashring and therefore the service is not reachable by the client.
+onionServices.descNotFound.longDescription=Λεπτομέρειες:% S - Ο ζητούμενος περιγραφέας υπηρεσίας onion δεν μπορεί να βρεθεί στον κατακερματισμό και επομένως η υπηρεσία δεν είναι προσβάσιμη από τον πελάτη.
# Tor SOCKS error 0xF1:
onionServices.descInvalid.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
onionServices.descInvalid.header=Η σελίδα Onion δεν είναι προσπελάσιμη
onionServices.descInvalid=Η σελίδα Onion δεν είναι προσπελάσιμη λόγω εσωτερικού σφάλματος.
-onionServices.descInvalid.longDescription=Details: %S — The requested onion service descriptor can't be parsed or signature validation failed.
+onionServices.descInvalid.longDescription=Λεπτομέρειες:% S - Δεν είναι δυνατή η ανάλυση του ζητούμενου περιγραφέα υπηρεσίας κρεμμυδιού ή η επικύρωση υπογραφής απέτυχε.
# Tor SOCKS error 0xF2:
onionServices.introFailed.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
onionServices.introFailed.header=Η σελίδα Onion αποσυνδέθηκε
onionServices.introFailed=Η πιο πιθανή αιτία είναι ότι η σελίδα onion είναι εκτός σύνδεσης. Επικοινωνήστε με τον διαχειριστή της σελίδας.
-onionServices.introFailed.longDescription=Details: %S — Introduction failed, which means that the descriptor was found but the service is no longer connected to the introduction point. It is likely that the service has changed its descriptor or that it is not running.
+onionServices.introFailed.longDescription=Λεπτομέρειες:% S - Η εισαγωγή απέτυχε, πράγμα που σημαίνει ότι βρέθηκε ο περιγραφέας, αλλά η υπηρεσία δεν είναι πλέον συνδεδεμένη με το σημείο εισαγωγής. Είναι πιθανό ότι η υπηρεσία έχει αλλάξει την περιγραφή της ή ότι δεν εκτελείται.
# Tor SOCKS error 0xF3:
onionServices.rendezvousFailed.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
onionServices.rendezvousFailed.header=Αδυναμία σύνδεσης στη σελίδα Onion
onionServices.rendezvousFailed=Η σελίδα onion είναι απασχολημένη ή το δίκτυο Tor είναι υπερφορτωμένο. Προσπαθήστε ξανά αργότερα.
-onionServices.rendezvousFailed.longDescription=Details: %S — The client failed to rendezvous with the service, which means that the client was unable to finalize the connection.
+onionServices.rendezvousFailed.longDescription=Λεπτομέρειες:% S - Ο πελάτης απέτυχε να συναντηθεί με την υπηρεσία, πράγμα που σημαίνει ότι ο πελάτης δεν μπόρεσε να ολοκληρώσει τη σύνδεση.
# Tor SOCKS error 0xF4:
onionServices.clientAuthMissing.pageTitle=Απαιτείται εξουσιοδότηση
onionServices.clientAuthMissing.header=Η σελίδα onion απαιτεί εξουσιοδότηση
onionServices.clientAuthMissing=Η πρόσβαση στη σελίδα onion χρειάζεται ένα κλειδί, αλλά δεν δόθηκε κανένα.
-onionServices.clientAuthMissing.longDescription=Details: %S — The client downloaded the requested onion service descriptor but was unable to decrypt its content because client authorization information is missing.
+onionServices.clientAuthMissing.longDescription=Details: %S - Ο πελάτης έκανε λήψη του ζητούμενου περιγραφέα υπηρεσίας κρεμμυδιού, αλλά δεν μπόρεσε να αποκρυπτογραφήσει το περιεχόμενό του επειδή λείπουν οι πληροφορίες εξουσιοδότησης πελάτη.
# Tor SOCKS error 0xF5:
onionServices.clientAuthIncorrect.pageTitle=Αποτυχία εξουσιοδότησης
onionServices.clientAuthIncorrect.header=Αποτυχία εξουσιοδότησης σελίδας onion
onionServices.clientAuthIncorrect=Το κλειδί που δόθηκε δεν είναι σωστό ή έχει ανακληθεί. Επικοινωνήστε με τον διαχειριστή της σελίδας onion.
-onionServices.clientAuthIncorrect.longDescription=Details: %S — The client was able to download the requested onion service descriptor but was unable to decrypt its content using the provided client authorization information. This may mean that access has been revoked.
+onionServices.clientAuthIncorrect.longDescription=Details: %S - Ο πελάτης μπόρεσε να πραγματοποιήσει λήψη του ζητούμενου περιγραφέα υπηρεσίας onion , αλλά δεν μπόρεσε να αποκρυπτογραφήσει το περιεχόμενό του χρησιμοποιώντας τις παρεχόμενες πληροφορίες εξουσιοδότησης πελάτη. Αυτό μπορεί να σημαίνει ότι η πρόσβαση έχει ανακληθεί.
# Tor SOCKS error 0xF6:
onionServices.badAddress.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
onionServices.badAddress.header=Άκυρη διεύθυνση σελίδας onion
onionServices.badAddress=Η διεύθυνση της σελίδας onion που καταχωρήθηκε δεν είναι έγκυρη. Παρακαλώ ελέγξτε ότι την έχετε εισάγει σωστά.
-onionServices.badAddress.longDescription=Details: %S — The provided .onion address is invalid. This error is returned due to one of the following reasons: the address checksum doesn't match, the ed25519 public key is invalid, or the encoding is invalid.
+onionServices.badAddress.longDescription=Details: %S - Η παρεχόμενη διεύθυνση .onion δεν είναι έγκυρη. Αυτό το σφάλμα επιστρέφεται για έναν από τους ακόλουθους λόγους: η διεύθυνση ελέγχου δεν ταιριάζει, το δημόσιο κλειδί ed25519 δεν είναι έγκυρο ή η κωδικοποίηση δεν είναι έγκυρη.
# Tor SOCKS error 0xF7:
onionServices.introTimedOut.pageTitle=Σφάλμα φόρτωσης σελίδας Onion
-onionServices.introTimedOut.header=Onionsite Circuit Creation Timed Out
+onionServices.introTimedOut.header=Εληξε ο χρόνος Onionsite Circuit Creation
onionServices.introTimedOut=Αποτυχία σύνδεσης στη σελίδα onion, πιθανώς εξ' αιτίας κακής σύνδεσης στο δίκτυο.
-onionServices.introTimedOut.longDescription=Details: %S — The connection to the requested onion service timed out while trying to build the rendezvous circuit.
+onionServices.introTimedOut.longDescription=Λεπτομέριες: %S -Η σύνδεση με την ζητούμενη onion service έληξε ενώ προσπαθούσατε να δημιουργήσετε το ραντεβού.
#
# LOCALIZATION NOTE: %S will be replaced with the .onion address.
onionServices.authPrompt.description2=Αίτημα εξουσιοδότησης από %S.
@@ -138,3 +138,13 @@ onionLocation.always=Πάντα
onionLocation.askEverytime=Να ερωτώμαι κάθε φορά
onionLocation.prioritizeOnionsDescription=Να δίνεται προτεραιότητα σε σελίδες .onion όταν είναι γνωστές.
onionLocation.onionServicesTitle=Υπηρεσίες Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Μάθετε περισσότερα
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/es-AR/torbutton.properties b/chrome/locale/es-AR/torbutton.properties
index 70427f36..47411582 100644
--- a/chrome/locale/es-AR/torbutton.properties
+++ b/chrome/locale/es-AR/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Siempre
onionLocation.askEverytime=Preguntá cuando quieras
onionLocation.prioritizeOnionsDescription=Priorizat sitios .onion cuando sean conocidos.
onionLocation.onionServicesTitle=Servicios Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Una dirección de criptomoneda (%S) ha sido copiada desde un sitio web inseguro. Podría haber sido modificada.
+cryptoSafetyPrompt.whatCanHeading= ¿Qué podés hacer acerca de eso?
+cryptoSafetyPrompt.whatCanBody=Podés intentar reconectar con un circuito nuevo para establecer una conexión segura, o aceptar el riesgo e ignorar esta advertencia.
+cryptoSafetyPrompt.learnMore=Aprendé más
+cryptoSafetyPrompt.primaryAction=Recargar pestaña con un Nuevo Circuito
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Ignorar advertencia
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/es-ES/torbutton.properties b/chrome/locale/es-ES/torbutton.properties
index 54a91b52..8e3a1b6b 100644
--- a/chrome/locale/es-ES/torbutton.properties
+++ b/chrome/locale/es-ES/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Siempre
onionLocation.askEverytime=Preguntar siempre
onionLocation.prioritizeOnionsDescription=Priorizar los sitios .onion cuando se conozcan.
onionLocation.onionServicesTitle=Servicios cebolla
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Se ha copiado de un sitio web inseguro una dirección de criptomoneda (%S). Podría haber sido modificada.
+cryptoSafetyPrompt.whatCanHeading=¿Qué puedes hacer?
+cryptoSafetyPrompt.whatCanBody=Puedes conectar con un nuevo circuito para establecer una conexión segura, o aceptar el riesgo y descartar esta advertencia.
+cryptoSafetyPrompt.learnMore=Aprende más
+cryptoSafetyPrompt.primaryAction=Recargar Tab con un nuevo circuito
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Desestimar la advertencia
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/eu/torbutton.properties b/chrome/locale/eu/torbutton.properties
index 55179929..c109d0fb 100644
--- a/chrome/locale/eu/torbutton.properties
+++ b/chrome/locale/eu/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Onion zerbitzuak
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Gehiago jakin
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/fa/torbutton.properties b/chrome/locale/fa/torbutton.properties
index 3f574956..9f1d5793 100644
--- a/chrome/locale/fa/torbutton.properties
+++ b/chrome/locale/fa/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=همیشه
onionLocation.askEverytime=هر بار بپرس
onionLocation.prioritizeOnionsDescription=سایتهای .onion را در صورت شناخت در اولویت قرار بده.
onionLocation.onionServicesTitle=خدمات پیازی
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=اطلاعات بیشتر
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/fr/torbutton.properties b/chrome/locale/fr/torbutton.properties
index 4d9a4b21..aa1e41f7 100644
--- a/chrome/locale/fr/torbutton.properties
+++ b/chrome/locale/fr/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Toujours
onionLocation.askEverytime=Toujours demander
onionLocation.prioritizeOnionsDescription=Prioriser les sites .onion s’ils sont connus
onionLocation.onionServicesTitle=Services onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Une adresse de cryptomonnaie (%S) a été copiée d’un site Web non sécurisé. Elle pourrait avoir été modifiée.
+cryptoSafetyPrompt.whatCanHeading=Que pouvez-vous y faire ?
+cryptoSafetyPrompt.whatCanBody=Vous pouvez essayer de vous reconnecter avec un nouveau circuit afin d’établir une connexion sécurisée ou accepter le risque et ignorer cet avertissement.
+cryptoSafetyPrompt.learnMore=En apprendre davantage
+cryptoSafetyPrompt.primaryAction=Recharger l’onglet avec un nouveau circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Ignorer l’avertissement
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ga-IE/torbutton.properties b/chrome/locale/ga-IE/torbutton.properties
index fa769032..1f1c08fb 100644
--- a/chrome/locale/ga-IE/torbutton.properties
+++ b/chrome/locale/ga-IE/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=I gcónaí
onionLocation.askEverytime=Fiafraigh díom i gcónaí
onionLocation.prioritizeOnionsDescription=Tabhair tús áite do shuímh onion nuair is féidir.
onionLocation.onionServicesTitle=Seirbhísí Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Tuilleadh eolais
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/he/browserOnboarding.properties b/chrome/locale/he/browserOnboarding.properties
index 3f448dfc..2f0949d1 100644
--- a/chrome/locale/he/browserOnboarding.properties
+++ b/chrome/locale/he/browserOnboarding.properties
@@ -34,7 +34,7 @@ onboarding.tour-tor-security-level.next-button=לך אל עצות חוויה
onboarding.tour-tor-expect-differences=עצות חוויה
onboarding.tour-tor-expect-differences.title=צפה למספר הבדלים.
-onboarding.tour-tor-expect-differences.description=עם כל המאפיינים של האבטחה והפרטיות המסופקים ע״י Tor, חוויתך בעת גלישה באינטרנט עשויה להיות מעט שונה. דברים עשויים להיות מעט איטיים יותר, ובהסתמכות על רמת האבטחה שלך, יסודות מסוימים עשויים לא לעבוד או להיטען. ייתכן שתתבקש להוכיח שאתה אנושי ולא רובוט.
+onboarding.tour-tor-expect-differences.description=עם כל המאפיינים של האבטחה והפרטיות המסופקים ע״י Tor, חוויתך בזמן גלישה באינטרנט עשויה להיות מעט שונה. דברים עשויים להיות מעט איטיים יותר, ובהסתמכות על רמת האבטחה שלך, יסודות מסוימים עשויים לא לעבוד או להיטען. ייתכן שתתבקש להוכיח שאתה אנושי ולא רובוט.
onboarding.tour-tor-expect-differences.button=ראה שאלות נפוצות
onboarding.tour-tor-expect-differences.next-button=לך אל שירותי בצל
diff --git a/chrome/locale/he/torbutton.properties b/chrome/locale/he/torbutton.properties
index bb0b80ea..363cbbc9 100644
--- a/chrome/locale/he/torbutton.properties
+++ b/chrome/locale/he/torbutton.properties
@@ -45,7 +45,7 @@ canvas.neverAccessKey=e
profileProblemTitle=בעית פרופיל %S
profileReadOnly=אינך יכול להריץ את %S ממערכת קבצים לקריאה בלבד. אנא העתק את %S למיקום אחר לפני ניסיון להשתמש בו.
profileReadOnlyMac=אינך יכול להריץ את %S ממערכת קבצים לקריאה בלבד. אנא העתק את %S לשולחן העבודה או לתיקיית היישומים שלך לפני ניסיון להשתמש בו.
-profileAccessDenied=ל-%S אין הרשאה כדי לגשת אל הפרופיל. אנא התאם את הרשאות מערכת הקבצים שלך ונסה שוב.
+profileAccessDenied=אל %S אין הרשאה כדי לגשת אל הפרופיל. אנא התאם את הרשאות מערכת הקבצים שלך ונסה שוב.
profileMigrationFailed=מיזוג של הפרופיל הקיים שלך %S נכשל.\nהגדרות חדשות יהיו בשימוש.
# "Downloading update" string for the hamburger menu (see #28885).
@@ -104,7 +104,7 @@ onionServices.badAddress.longDescription=פרטים: %S — כתובת .onion ה
onionServices.introTimedOut.pageTitle=בעיה בטעינת אתר בצל
onionServices.introTimedOut.header=יצירה של מעגל אתר בצל לקחה פסק זמן
onionServices.introTimedOut=חיבור אל אתר הבצל נכשל, כנראה עקב חיבור רשת ירוד.
-onionServices.introTimedOut.longDescription=פרטים: %S — החיבור אל שירות הבצל המבוקש לקח פסק זמן בעת ניסיון לבנות את מעגל המפגש.
+onionServices.introTimedOut.longDescription=פרטים: %S — החיבור אל שירות הבצל המבוקש לקח פסק זמן בזמן ניסיון לבנות את מעגל המפגש.
#
# LOCALIZATION NOTE: %S will be replaced with the .onion address.
onionServices.authPrompt.description2=%S מבקש שתאמת.
@@ -121,7 +121,7 @@ onionServices.authPreferences.dialogIntro=מפתחות עבור אתרי הבצ
onionServices.authPreferences.onionSite=אתר בצל
onionServices.authPreferences.onionKey=מפתח
onionServices.authPreferences.remove=הסר
-onionServices.authPreferences.removeAll=הסר הכל
+onionServices.authPreferences.removeAll=הסר הכול
onionServices.authPreferences.failedToGetKeys=לא היה ניתן לאחזר מפתחות מן tor
onionServices.authPreferences.failedToRemoveKey=לא היה ניתן להסיר מפתח
@@ -132,9 +132,19 @@ onionLocation.notNow=לא עכשיו
onionLocation.notNowAccessKey=n
onionLocation.description=יש גרסה פרטית יותר ומאובטחת יותר של אתר זה שזמינה על גבי רשת Tor באמצעות שירותי בצל. שירותי בצל עוזרים למפרסמי אתרים ולמבקרים שלהם להביס ציתות וצנזורה.
onionLocation.tryThis=נסה שירותי בצל
-onionLocation.onionAvailable=.onion זמין
+onionLocation.onionAvailable=גרסת .onion זמינה
onionLocation.learnMore=למד עוד…
onionLocation.always=תמיד
onionLocation.askEverytime=שאל כל פעם
onionLocation.prioritizeOnionsDescription=תעדף אתרי .onion כאשר הם ידועים.
onionLocation.onionServicesTitle=שירותי בצל
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=כתובת של מטבע מבוזר (%S) הועתקה מתוך אתר בלתי מאובטח. יכול להיות שהיא שונתה.
+cryptoSafetyPrompt.whatCanHeading=מה אתה יכול לעשות לגבי זה?
+cryptoSafetyPrompt.whatCanBody=אתה יכול לנסות להתחבר מחדש עם מגעל חדש כדי להקים חיבור מאובטח, או לקחת את הסיכון ולהשמיט את האזהרה הזאת.
+cryptoSafetyPrompt.learnMore=למד עוד
+cryptoSafetyPrompt.primaryAction=טען מחדש לשונית עם מעגל חדש
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=השמט אזהרה
+cryptoSafetyPrompt.secondaryActionAccessKey=ב׳
diff --git a/chrome/locale/hu/torbutton.properties b/chrome/locale/hu/torbutton.properties
index 7743c262..8c013243 100644
--- a/chrome/locale/hu/torbutton.properties
+++ b/chrome/locale/hu/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Mindig
onionLocation.askEverytime=Kérdezze mindig
onionLocation.prioritizeOnionsDescription=Priorizálja a .oinion oldalt, ha ismert.
onionLocation.onionServicesTitle=Onion Szolgáltatások
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=További információ
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/id/torbutton.properties b/chrome/locale/id/torbutton.properties
index 791df540..96b7302a 100644
--- a/chrome/locale/id/torbutton.properties
+++ b/chrome/locale/id/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Selalu
onionLocation.askEverytime=Tanyakan setiap saat
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Layanan Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Pelajari Selengkapnya
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/is/torbutton.properties b/chrome/locale/is/torbutton.properties
index 36900946..e2445fdd 100644
--- a/chrome/locale/is/torbutton.properties
+++ b/chrome/locale/is/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Alltaf
onionLocation.askEverytime=Spyrja í hvert skipti
onionLocation.prioritizeOnionsDescription=Gefa .onion-vefjum forgang þegar þeir eru þekktir.
onionLocation.onionServicesTitle=Onion-þjónustur
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Fræðast frekar
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/it/torbutton.properties b/chrome/locale/it/torbutton.properties
index 98d73685..be28d935 100644
--- a/chrome/locale/it/torbutton.properties
+++ b/chrome/locale/it/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Sempre
onionLocation.askEverytime=Chiedi ogni volta
onionLocation.prioritizeOnionsDescription=Dare priorità ai siti .onion quando conosciuti.
onionLocation.onionServicesTitle=Servizi Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=È stato copiato un indirizzo di criptovaluta (%S) da un sito non sicuro. Potrebbe essere stato modificato.
+cryptoSafetyPrompt.whatCanHeading=Cosa puoi fare al riguardo?
+cryptoSafetyPrompt.whatCanBody=Puoi provare a riconnetterti con un nuovo circuito per stabilire una connessione sicura, o accettare il rischio e chiudere questo avviso.
+cryptoSafetyPrompt.learnMore=Per saperne di più
+cryptoSafetyPrompt.primaryAction=Ricarica scheda con un nuovo circuito
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Chiudi avviso
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ja/torbutton.properties b/chrome/locale/ja/torbutton.properties
index 60eda03b..ea893f3c 100644
--- a/chrome/locale/ja/torbutton.properties
+++ b/chrome/locale/ja/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=常に
onionLocation.askEverytime=毎回尋ねる
onionLocation.prioritizeOnionsDescription=存在する場合は .onion サイトを優先的に利用する。
onionLocation.onionServicesTitle=Onion サービス
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=詳細情報
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ka/torbutton.properties b/chrome/locale/ka/torbutton.properties
index f132af86..17f0a2cc 100644
--- a/chrome/locale/ka/torbutton.properties
+++ b/chrome/locale/ka/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=ყოველთვის
onionLocation.askEverytime=შეკითხვა ყოველ ჯერზე
onionLocation.prioritizeOnionsDescription=უპირატესობა .onion-საიტებს ამოცნობისას
onionLocation.onionServicesTitle=Onion-მომსახურებები
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=იხილეთ ვრცლად
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=მ
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=ბ
diff --git a/chrome/locale/ko/torbutton.properties b/chrome/locale/ko/torbutton.properties
index 8a46945f..493064ee 100644
--- a/chrome/locale/ko/torbutton.properties
+++ b/chrome/locale/ko/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=항상
onionLocation.askEverytime=항상 묻기
onionLocation.prioritizeOnionsDescription=알려진 경우 .onion 사이트의 우선 순위를 지정합니다.
onionLocation.onionServicesTitle=Onion 서비스
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=더 알아보기
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/lt/torbutton.properties b/chrome/locale/lt/torbutton.properties
index ce606a43..0c385096 100644
--- a/chrome/locale/lt/torbutton.properties
+++ b/chrome/locale/lt/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Visada
onionLocation.askEverytime=Klausti kiekvieną kartą
onionLocation.prioritizeOnionsDescription=Teikti pirmenybę .onion svetainėms, kai žinoma.
onionLocation.onionServicesTitle=Onion paslaugos
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Sužinoti daugiau
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=Naudotojas B
diff --git a/chrome/locale/mk/torbutton.properties b/chrome/locale/mk/torbutton.properties
index a92218cc..1476692d 100644
--- a/chrome/locale/mk/torbutton.properties
+++ b/chrome/locale/mk/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Секогаш
onionLocation.askEverytime=Прашувај секој пат
onionLocation.prioritizeOnionsDescription=Преферирај .onion веб страна кога се познати.
onionLocation.onionServicesTitle=Onion Услуги
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Научете повеќе
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ms/torbutton.properties b/chrome/locale/ms/torbutton.properties
index 6c69ce76..4da1eaa3 100644
--- a/chrome/locale/ms/torbutton.properties
+++ b/chrome/locale/ms/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Perkhidmatan Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Ketahui lebih lanjut
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/my/aboutTor.dtd b/chrome/locale/my/aboutTor.dtd
index bdde5b28..06bc3410 100644
--- a/chrome/locale/my/aboutTor.dtd
+++ b/chrome/locale/my/aboutTor.dtd
@@ -19,7 +19,7 @@
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "မေးစရာများ ရှိဦးမလား?">
<!ENTITY aboutTor.torbrowser_user_manual_link.label "ကျွန်ုပ်တို့ Tor ဘရောင်ဇာ လက်စွဲစာအုပ်အား ကြည့်ကြည့်ပါ »">
<!-- The next two entities are used within the browser's Help menu. -->
-<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "လ">
<!ENTITY aboutTor.torbrowser_user_manual.label "Tor ဘရောင်ဇာ လက်စွဲစာအုပ်">
<!ENTITY aboutTor.tor_mission.label "Tor Project သည် လူ့အခွင့်အရေးနှင့် လွတ်လပ်ရေးခွင့်များကို တိုးတက်စေရန် အမေရိကန် အကျိုးအမြတ်မယူသော ၅၀၁(ဂ)(၃) အဖွဲ့အစည်းတစ်ခု ဖြစ်ပါသည်။ လွတ်လပ်၍ အမည်ဝှက်ကာ အများသုံးနိုင်ပြီး ပုဂ္ဂိုလ်လုံခြုံရေးစောင့်ရှောက်သော နည်းပညာများ အသုံးပြုပါသည်။ ၎င်းနည်းပညာများကို အကန့်အသတ်မရှိစွာ သုံးစွဲနိုင်ခြင်းနှင့် သိပ္ပံဆိုင်ရာနှင့် ပြည်သူများနားလည်နိုင်စေရန် ပံ့
ပိုးထောက်ပံ့ပါသည်။">
diff --git a/chrome/locale/my/browserOnboarding.properties b/chrome/locale/my/browserOnboarding.properties
index 1dbe28c9..3da938f5 100644
--- a/chrome/locale/my/browserOnboarding.properties
+++ b/chrome/locale/my/browserOnboarding.properties
@@ -58,9 +58,9 @@ onboarding.tour-tor-toolbar-update-9.0.next-button=Tor ကွန်ယက်ပ
# Circuit Display onboarding.
onboarding.tor-circuit-display.next=ရှေ့ဆက်ရန်
onboarding.tor-circuit-display.done=ပြီးသွားပြီ
-onboarding.tor-circuit-display.one-of-three=၃ ခုမှ ၁ ခု
-onboarding.tor-circuit-display.two-of-three=၃ ခုမှ ၂ ခု
-onboarding.tor-circuit-display.three-of-three=၃ ခုမှ ၃ ခု
+onboarding.tor-circuit-display.one-of-three=၁ / ၃
+onboarding.tor-circuit-display.two-of-three=၂ / ၃
+onboarding.tor-circuit-display.three-of-three=၃ / ၃
onboarding.tor-circuit-display.intro.title=လမ်းကြောင်းစဥ်များ မည်ကဲ့သို့ အလုပ်လုပ်သနည်း?
onboarding.tor-circuit-display.intro.msg=ဆားကစ်လမ်းကြောင်းများသည် ကျပန်းသတ်မှတ်ထားသော လက်ဆင့်ကမ်းခြင်းများဖြင့် တည်ဆောက်ထားပါသည်။ ၎င်းလက်ဆင့်ကမ်းမှုများသည် ကမ္ဘာအနှံ့ရှိ Tor အသွားအလာများကို လက်ဆင့်ကမ်းနိုင်ရန် ချိန်ညှိထားသည့် ကွန်ပျူတာများဖြစ်ပါသည်။ ဆားကစ်လမ်းကြောင်းများသည် သင့်ကို အင်တာနက်လုံခြုံစွာသုံးစွဲနိုင်စေသည်နှင့် onion ဝန်ဆောင်မှုများနှင့် ချိတ်ဆက်စေနိုင်ပါသည်။
diff --git a/chrome/locale/my/torbutton.dtd b/chrome/locale/my/torbutton.dtd
index 8f54338e..e13de6e9 100644
--- a/chrome/locale/my/torbutton.dtd
+++ b/chrome/locale/my/torbutton.dtd
@@ -1,6 +1,6 @@
<!ENTITY torbutton.context_menu.new_identity "အထောက်အထား အသစ်">
<!ENTITY torbutton.context_menu.new_identity_key "ထ">
-<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
+<!ENTITY torbutton.context_menu.new_circuit "ဤဆိုဒ်အတွက် Tor လမ်းကြောင်းအသစ်">
<!ENTITY torbutton.context_menu.new_circuit_key "လ">
<!ENTITY torbutton.context_menu.networksettings "Tor ကွန်ယက် အပြင်အဆင်များ...">
<!ENTITY torbutton.context_menu.networksettings.key "ယ">
diff --git a/chrome/locale/my/torbutton.properties b/chrome/locale/my/torbutton.properties
index e8a57655..b19b1b20 100644
--- a/chrome/locale/my/torbutton.properties
+++ b/chrome/locale/my/torbutton.properties
@@ -111,7 +111,7 @@ onionServices.authPrompt.description2=%S သည် သင်အတည်ပြ
onionServices.authPrompt.keyPlaceholder=ဤ onion ဝန်ဆောင်မှုအတွက် သင့် သီးသန့်ကီးကုဒ်အား ရိုက်ထည့်ပေးပါ။
onionServices.authPrompt.done=ပြီးသွားပြီ
onionServices.authPrompt.doneAccessKey=d
-onionServices.authPrompt.invalidKey=အကျုံးဝင်သော ကီးကုဒ် ရိုက်ထည့်ပေးပါ ((52 base32 စာလုံးများ သို့မဟုတ် 44 base64 စာလုံးများ)
+onionServices.authPrompt.invalidKey=အကျုံးဝင်သော ကီးကုဒ် ရိုက်ထည့်ပေးပါ (base32 အက္ခရာလုံး ၅၂ လုံး သို့မဟုတ် base64 အက္ခရာလုံး ၄၄ လုံး)
onionServices.authPrompt.failedToSetKey=သင့် ကီးကုဒ်ဖြင့် Tor အား ချိန်ဆပြင်ဆင်၍ မရပါ
onionServices.authPreferences.header=Onion ဝန်ဆောင်မှုများ အတည်ပြုခြင်း
onionServices.authPreferences.overview=အချို့ onion ဝန်ဆောင်မှုများ အသုံးမပြုခင် ကီးကုဒ် (စကားဝှက်လိုမျိုး) ဖြင့် သင့်အထောက်အထားပြရန် လိုအပ်ပါသည်။
@@ -138,3 +138,13 @@ onionLocation.always=အမြဲတမ်း
onionLocation.askEverytime=အချိန်တိုင်းမေးပါ
onionLocation.prioritizeOnionsDescription=.onion ဆိုဒ်များ သိရှိလျှင် ၎င်းတို့ကို ဦးစားပေးပါ။
onionLocation.onionServicesTitle=Onion Services
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=ထပ်မံလေ့လာမယ်
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=ခ
diff --git a/chrome/locale/nb-NO/torbutton.properties b/chrome/locale/nb-NO/torbutton.properties
index df1b6132..febca087 100644
--- a/chrome/locale/nb-NO/torbutton.properties
+++ b/chrome/locale/nb-NO/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Altid
onionLocation.askEverytime=Spør hver gang
onionLocation.prioritizeOnionsDescription=Prioriter. .onion sider når kjent
onionLocation.onionServicesTitle=Løk-tjenester
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Lær mer
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/nl/torbutton.properties b/chrome/locale/nl/torbutton.properties
index 16d2852c..0e38645d 100644
--- a/chrome/locale/nl/torbutton.properties
+++ b/chrome/locale/nl/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Altijd
onionLocation.askEverytime=Elke keer vragen
onionLocation.prioritizeOnionsDescription=.onion-websites prioriteit geven wanneer bekend.
onionLocation.onionServicesTitle=Onion-services
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Een cryptocurrency adres (%S) is gekopieerd vanuit een onbeveiligde website. Het kan veranderd zijn.
+cryptoSafetyPrompt.whatCanHeading=Wat kun je er aan doen?
+cryptoSafetyPrompt.whatCanBody=Je kan proberen opnieuw te verbinden met een nieuw circuit om een beveiligde verbinden op te stellen, of het risico accepteren en deze waarschuwing negeren.
+cryptoSafetyPrompt.learnMore=Meer info
+cryptoSafetyPrompt.primaryAction=Herlaad Tabblad met een Nieuw Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Waarschuwing Negeren
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/pl/torbutton.dtd b/chrome/locale/pl/torbutton.dtd
index 7719281a..80c339f5 100644
--- a/chrome/locale/pl/torbutton.dtd
+++ b/chrome/locale/pl/torbutton.dtd
@@ -2,14 +2,14 @@
<!ENTITY torbutton.context_menu.new_identity_key "o">
<!ENTITY torbutton.context_menu.new_circuit "Nowy obwód dla tej strony">
<!ENTITY torbutton.context_menu.new_circuit_key "c">
-<!ENTITY torbutton.context_menu.networksettings "Ustawienia Sieci Tor...">
+<!ENTITY torbutton.context_menu.networksettings "Ustawienia sieci Tor...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Sprawdź czy są aktualizacje Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "u">
<!ENTITY torbutton.context_menu.cookieProtections "Ochrona plików cookie...">
<!ENTITY torbutton.context_menu.cookieProtections.key "c">
<!ENTITY torbutton.button.tooltip "Kliknij tutaj, aby uruchomić Torbutton">
-<!ENTITY torbutton.prefs.security_settings "Ustawienia Bezpieczeństwa Przeglądarki Tor">
+<!ENTITY torbutton.prefs.security_settings "Ustawienia bezpieczeństwa przeglądarki Tor">
<!ENTITY torbutton.cookiedialog.title "Zarządzaj ochroną ciasteczek">
<!ENTITY torbutton.cookiedialog.lockCol "Chronione">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
diff --git a/chrome/locale/pl/torbutton.properties b/chrome/locale/pl/torbutton.properties
index 5d44ae8a..fdf2438b 100644
--- a/chrome/locale/pl/torbutton.properties
+++ b/chrome/locale/pl/torbutton.properties
@@ -1,6 +1,6 @@
torbutton.circuit_display.internet = Internet
torbutton.circuit_display.ip_unknown = IP nieznany
-torbutton.circuit_display.onion_site = strona Onion
+torbutton.circuit_display.onion_site = Strona cebulowa
torbutton.circuit_display.this_browser = Ta przeglądarka
torbutton.circuit_display.relay = Przekaźnik
torbutton.circuit_display.tor_bridge = Mostek
@@ -42,7 +42,7 @@ canvas.neverAccessKey=i
# Profile/startup error messages. Strings are kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
-profileProblemTitle=%S Problem profilu
+profileProblemTitle=Problem profilu %S
profileReadOnly=Nie możesz uruchomić %S z systemu plików tylko do odczytu. Prosimy o skopiowanie %S do innej lokalizacji przed ponownym jego użyciem.
profileReadOnlyMac=Nie możesz uruchomić %S w systemie plików tylko do odczytu. Prosimy o skopiowanie %S na pulpit, lub do folderu aplikacji przed ponowną próbą uruchomienia.
profileAccessDenied=%S nie posiada uprawnień, aby zobaczyć ten profil. Prosimy zmienić uprawnienia systemu plików i spróbować ponownie.
@@ -54,9 +54,9 @@ profileMigrationFailed=Migracja Twojego isniejącego profilu %S nie powiodła si
updateDownloadingPanelUILabel=Pobieranie aktualizacji %S
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Połączenie zaszyfrowane (usługa Onion, %1$S, %2$S klucze bitowe, %3$S)
-pageInfo_OnionEncryption=Połączenie zaszyfrowane (usługa Onion)
-pageInfo_OnionName=Nazwa Cebuli:
+pageInfo_OnionEncryptionWithBitsAndProtocol=Połączenie zaszyfrowane (usługa cebulowa, %1$S, %2$S klucze bitowe, %3$S)
+pageInfo_OnionEncryption=Połączenie zaszyfrowane (usługa cebulowa)
+pageInfo_OnionName=Nazwa cebulowa:
# Onion services strings. Strings are kept here for ease of translation.
onionServices.learnMore=Dowiedz się więcej
@@ -66,44 +66,44 @@ onionServices.errorPage.onionSite=Strona cebulowa
# LOCALIZATION NOTE: In the longDescription strings, %S will be replaced with
# an error code, e.g., 0xF3.
# Tor SOCKS error 0xF0:
-onionServices.descNotFound.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.descNotFound.header=Nie znaleziono strony cebuli
-onionServices.descNotFound=Najbardziej prawdopodobną przyczyną jest to, że strona cebuli jest offline. Skontaktuj się z administratorem strony cebuli.
+onionServices.descNotFound.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.descNotFound.header=Nie znaleziono strony cebulowej
+onionServices.descNotFound=Najbardziej prawdopodobną przyczyną jest to, że strona cebulowa jest offline. Skontaktuj się z administratorem strony cebulowej.
onionServices.descNotFound.longDescription=Szczegóły: %S — Żądany deskryptor usługi cebulowej nie może zostać znaleziony na hashringu, zatem usługa nie jest osiągalna dla klienta.
# Tor SOCKS error 0xF1:
-onionServices.descInvalid.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.descInvalid.header=Nie można dotrzeć do strony cebuli
-onionServices.descInvalid=Strona cebuli jest nieosiągalna z powodu błędu wewnętrznego.
+onionServices.descInvalid.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.descInvalid.header=Nie można dotrzeć do strony cebulowej
+onionServices.descInvalid=Strona cebulowa jest nieosiągalna z powodu błędu wewnętrznego.
onionServices.descInvalid.longDescription=Szczegóły: %S — Żądany deskryptor usługi cebulowej nie może zostać przeanalizowany lub sprawdzenie poprawności podpisu nie powiodło się.
# Tor SOCKS error 0xF2:
-onionServices.introFailed.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.introFailed.header=Strona cebuli została rozłączona
-onionServices.introFailed=Najbardziej prawdopodobną przyczyną jest to, że strona cebuli jest offline. Skontaktuj się z administratorem strony cebuli.
+onionServices.introFailed.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.introFailed.header=Strona cebulowa została rozłączona
+onionServices.introFailed=Najbardziej prawdopodobną przyczyną jest to, że strona cebulowa jest offline. Skontaktuj się z administratorem strony cebulowej.
onionServices.introFailed.longDescription=Szczegóły: %S - Wprowadzenie nie powiodło się, co oznacza, że znaleziono deskryptor, ale usługa nie jest już połączona z punktem wprowadzenia. Prawdopodobnie usługa zmieniła swój deskryptor lub nie jest uruchomiona.
# Tor SOCKS error 0xF3:
-onionServices.rendezvousFailed.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.rendezvousFailed.header=Nie można połączyć się z witryną Onionsite
-onionServices.rendezvousFailed=Strona onionsite jest zajęta lub sieć Tor jest przeciążona. Spróbuj ponownie później.
+onionServices.rendezvousFailed.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.rendezvousFailed.header=Nie można połączyć się ze stroną cebulową
+onionServices.rendezvousFailed=Strona cebulowa jest zajęta lub sieć Tor jest przeciążona. Spróbuj ponownie później.
onionServices.rendezvousFailed.longDescription=Szczegóły: %S — Klient nie mógł się spotkać z usługą, co oznacza, że klient nie mógł sfinalizować połączenia.
# Tor SOCKS error 0xF4:
onionServices.clientAuthMissing.pageTitle=Wymagana Autoryzacja
-onionServices.clientAuthMissing.header=Strona Onionsite wymaga uwierzytelnienia
-onionServices.clientAuthMissing=Dostęp do onionite wymaga klucza, ale żaden nie został dostarczony.
+onionServices.clientAuthMissing.header=Strona cebulowa wymaga uwierzytelnienia
+onionServices.clientAuthMissing=Dostęp do strony cebulowej wymaga klucza, ale żaden nie został dostarczony.
onionServices.clientAuthMissing.longDescription=Szczegóły: %S — Klient pobrał żądany deskryptor usługi cebulowej, ale nie mógł odszyfrować jego zawartości, ponieważ brakuje informacji autoryzacyjnych klienta.
# Tor SOCKS error 0xF5:
-onionServices.clientAuthIncorrect.pageTitle=Błąd Autoryzacji
-onionServices.clientAuthIncorrect.header=Uwierzytelnianie strony Onionsite nie powiodło się
-onionServices.clientAuthIncorrect=Podany klucz jest niepoprawny lub został odwołany. Skontaktuj się z administratorem strony onionsite.
+onionServices.clientAuthIncorrect.pageTitle=Uwierzytelnianie nie powiodło się
+onionServices.clientAuthIncorrect.header=Uwierzytelnianie strony cebulowej nie powiodło się
+onionServices.clientAuthIncorrect=Podany klucz jest niepoprawny lub został odwołany. Skontaktuj się z administratorem strony cebulowej.
onionServices.clientAuthIncorrect.longDescription=Szczegóły: %S — Klient mógł pobrać żądany deskryptor usługi cebulowej, ale nie był w stanie odszyfrować jego zawartości przy użyciu podanych informacji autoryzacyjnych klienta. Może to oznaczać, że dostęp został cofnięty.
# Tor SOCKS error 0xF6:
-onionServices.badAddress.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.badAddress.header=Nieprawidłowy adres strony cebuli
+onionServices.badAddress.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.badAddress.header=Nieprawidłowy adres strony cebulowej
onionServices.badAddress=Podany adres strony cebulowej jest nieprawidłowy. Sprawdź, czy wpisałeś go poprawnie.
onionServices.badAddress.longDescription=Szczegóły: %S — Podany adres .onion jest nieprawidłowy. Ten błąd jest zwracany z jednego z następujących powodów: suma kontrolna adresu nie jest zgodna, klucz publiczny ed25519 jest nieprawidłowy lub kodowanie jest nieprawidłowe.
# Tor SOCKS error 0xF7:
-onionServices.introTimedOut.pageTitle=Problem z ładowaniem strony Onionsite
-onionServices.introTimedOut.header=Limit czasu tworzenia obwodu cebuli
-onionServices.introTimedOut=Nie udało się połączyć z witryną cebuli, prawdopodobnie z powodu słabego połączenia sieciowego.
+onionServices.introTimedOut.pageTitle=Problem z ładowaniem strony cebulowej
+onionServices.introTimedOut.header=Limit czasu tworzenia obwodu strony cebulowej
+onionServices.introTimedOut=Nie udało się połączyć ze stroną cebulową, prawdopodobnie z powodu słabego połączenia sieciowego.
onionServices.introTimedOut.longDescription=Szczegóły: %S — Upłynął limit czasu połączenia z żądaną usługą cebulową podczas próby zbudowania obwodu spotkania.
#
# LOCALIZATION NOTE: %S will be replaced with the .onion address.
@@ -111,13 +111,13 @@ onionServices.authPrompt.description2=%S żąda uwierzytelnienia.
onionServices.authPrompt.keyPlaceholder=Wprowadź swój klucz prywatny dla tej usługi cebulowej
onionServices.authPrompt.done=Skończone
onionServices.authPrompt.doneAccessKey=d
-onionServices.authPrompt.invalidKey=Wprowadź poprawny klucz (52 znaki baza32 lub 44 znaki baza64)
+onionServices.authPrompt.invalidKey=Wprowadź poprawny klucz (52 znaki base32 lub 44 znaki base64)
onionServices.authPrompt.failedToSetKey=Konfiguracja Tor przy użyciu twojego klucza nie powiodła się
onionServices.authPreferences.header=Uwierzytelnianie usług cebulowych
onionServices.authPreferences.overview=Niektóre usługi cebulowe wymagają identyfikacji za pomocą klucza (rodzaj hasła) przed uzyskaniem dostępu do nich.
onionServices.authPreferences.savedKeys=Zapisane klucze...
-onionServices.authPreferences.dialogTitle=Klucze Usługi Cebulowej
-onionServices.authPreferences.dialogIntro=Klucze następujących stron cebuli są przechowywane na twoim komputerze
+onionServices.authPreferences.dialogTitle=Klucze usługi cebulowej
+onionServices.authPreferences.dialogIntro=Klucze następujących stron cebulowych są przechowywane na twoim komputerze
onionServices.authPreferences.onionSite=Strona cebulowa
onionServices.authPreferences.onionKey=Klucz
onionServices.authPreferences.remove=Usuń
@@ -126,15 +126,25 @@ onionServices.authPreferences.failedToGetKeys=Nie można odebrać kluczy z Tor
onionServices.authPreferences.failedToRemoveKey=Usunięcie klucza nie powiodło się
# Onion-Location strings.
-onionLocation.alwaysPrioritize=Zawsze ustalaj priorytet cebuli
+onionLocation.alwaysPrioritize=Zawsze traktuj cebule priorytetowo
onionLocation.alwaysPrioritizeAccessKey=u
onionLocation.notNow=Nie teraz
onionLocation.notNowAccessKey=n
onionLocation.description=Bezpieczniejsza wersja tej strony jest dostępna jako usługa cebulowa. Usługi cebulowe pomagają twórcom witryn internetowych oraz odwiedzającym je bronić się przed monitorowaniem ruchu i cenzurą.
-onionLocation.tryThis=Wypróbuj Usługi Cebulowe
+onionLocation.tryThis=Wypróbuj usługi cebulowe
onionLocation.onionAvailable=.onion dostępna
onionLocation.learnMore=Dowiedz się więcej...
onionLocation.always=Zawsze
onionLocation.askEverytime=Pytaj za każdym razem
onionLocation.prioritizeOnionsDescription=Nadaj priorytet witrynom .onion, gdy są znane.
-onionLocation.onionServicesTitle=Usługi onion
+onionLocation.onionServicesTitle=Usługi cebulowe
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Adres kryptowaluty (%S) został skopiowany z niezabezpieczonej strony internetowej. Mogło dojść do zmodyfikowania.
+cryptoSafetyPrompt.whatCanHeading=Co możesz z tym zrobić?
+cryptoSafetyPrompt.whatCanBody=Możesz spróbować ponownie połączyć się z nowym obwodem, aby ustanowić bezpieczne połączenie, lub zaakceptować ryzyko i odrzucić to ostrzeżenie.
+cryptoSafetyPrompt.learnMore=Dowiedz się więcej
+cryptoSafetyPrompt.primaryAction=Załaduj ponownie kartę z nowym obwodem
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Odrzuć ostrzeżenie
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/pt-BR/torbutton.properties b/chrome/locale/pt-BR/torbutton.properties
index 7e3d4309..e1aeeecd 100644
--- a/chrome/locale/pt-BR/torbutton.properties
+++ b/chrome/locale/pt-BR/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Sempre
onionLocation.askEverytime=Perguntar sempre
onionLocation.prioritizeOnionsDescription=Priorize sites .onion quando conhecido.
onionLocation.onionServicesTitle=Serviços Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Saiba Mais
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ro/torbutton.properties b/chrome/locale/ro/torbutton.properties
index ca44efae..a37956f5 100644
--- a/chrome/locale/ro/torbutton.properties
+++ b/chrome/locale/ro/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Întotdeauna
onionLocation.askEverytime=Întreabă de fiecare dată
onionLocation.prioritizeOnionsDescription=Prioritizați site-urile .onion când sunt cunoscute.
onionLocation.onionServicesTitle=Servicii Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Află mai mult
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/ru/torbutton.properties b/chrome/locale/ru/torbutton.properties
index b933f1ea..726479d3 100644
--- a/chrome/locale/ru/torbutton.properties
+++ b/chrome/locale/ru/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Всегда
onionLocation.askEverytime=Спрашивать всякий раз
onionLocation.prioritizeOnionsDescription=Onion-сайты в приоритете (по возможности).
onionLocation.onionServicesTitle=Onion-ресурсы
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Узнать больше
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/sv-SE/aboutTor.dtd b/chrome/locale/sv-SE/aboutTor.dtd
index 62b20513..e4071c29 100644
--- a/chrome/locale/sv-SE/aboutTor.dtd
+++ b/chrome/locale/sv-SE/aboutTor.dtd
@@ -17,7 +17,7 @@
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Frågor?">
-<!ENTITY aboutTor.torbrowser_user_manual_link.label "Kolla in bruksanvisning för Tor Browser »">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Titta i vår bruksanvisningen för Tor Browser »">
<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Bruksanvisning för Tor Browser">
diff --git a/chrome/locale/sv-SE/brand.dtd b/chrome/locale/sv-SE/brand.dtd
index 7284a534..de5e4f15 100644
--- a/chrome/locale/sv-SE/brand.dtd
+++ b/chrome/locale/sv-SE/brand.dtd
@@ -14,6 +14,6 @@
<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
<!ENTITY plugins.installed.find "Klicka här för att läsa in installerade systemtillägg.">
-<!ENTITY plugins.installed.enable "Tillåt tillägg">
-<!ENTITY plugins.installed.disable "Stäng av tillägg.">
-<!ENTITY plugins.installed.disable.tip "Klicka för att förhindra laddningen av systemtillägg.">
+<!ENTITY plugins.installed.enable "Aktivera tillägg">
+<!ENTITY plugins.installed.disable "Inaktivera tillägg">
+<!ENTITY plugins.installed.disable.tip "Klicka för att förhindra inläsningen av systemtillägg.">
diff --git a/chrome/locale/sv-SE/torbutton.dtd b/chrome/locale/sv-SE/torbutton.dtd
index 9c2bbeb7..7d69bc12 100644
--- a/chrome/locale/sv-SE/torbutton.dtd
+++ b/chrome/locale/sv-SE/torbutton.dtd
@@ -6,21 +6,21 @@
<!ENTITY torbutton.context_menu.networksettings.key "N">
<!ENTITY torbutton.context_menu.downloadUpdate "Sök efter uppdateringar för Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Skydd mot Cookies...">
+<!ENTITY torbutton.context_menu.cookieProtections "Skydd mot kakor...">
<!ENTITY torbutton.context_menu.cookieProtections.key "S">
<!ENTITY torbutton.button.tooltip "Klicka för att initialisera Torbutton">
<!ENTITY torbutton.prefs.security_settings "Säkerhetsinställningar i Tor Browser">
-<!ENTITY torbutton.cookiedialog.title "Hantera Cookies skydd">
+<!ENTITY torbutton.cookiedialog.title "Hantera skydd mot kakor">
<!ENTITY torbutton.cookiedialog.lockCol "Skyddad">
<!ENTITY torbutton.cookiedialog.domainCol "Värd">
<!ENTITY torbutton.cookiedialog.nameCol "Namn">
<!ENTITY torbutton.cookiedialog.pathCol "Sökväg">
-<!ENTITY torbutton.cookiedialog.protectCookie "Skydda Cookie">
-<!ENTITY torbutton.cookiedialog.removeCookie "Ta bort Cookie">
-<!ENTITY torbutton.cookiedialog.unprotectCookie "Oskydda Cookie">
-<!ENTITY torbutton.cookiedialog.removeAllBut "Ta bort alla icke-skyddade">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Skydda nya Cookies">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Skydda inte nya Cookies">
+<!ENTITY torbutton.cookiedialog.protectCookie "Skydda kakan">
+<!ENTITY torbutton.cookiedialog.removeCookie "Ta bort kakan">
+<!ENTITY torbutton.cookiedialog.unprotectCookie "Sluta skydda kakan">
+<!ENTITY torbutton.cookiedialog.removeAllBut "Ta bort alla utom skyddade">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Skydda nya kakor">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Skydda inte nya kakor">
<!ENTITY torbutton.prefs.sec_caption "Säkerhetsnivå">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Säkerhetsreglaget låter dig stänga av vissa webbläsarfunktioner som kan göra din webbläsare mer sårbar mot intrångsförsök.">
<!ENTITY torbutton.prefs.sec_standard_label "Standard">
@@ -34,8 +34,8 @@
<!ENTITY torbutton.prefs.sec_learn_more_label "Läs mer">
<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript är inaktiverat på webbplatser utan HTTPS.">
<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript är inaktiverat som standard på alla webbplatser.">
-<!ENTITY torbutton.prefs.sec_limit_typography "Vissa typsnitt och matte symboler är inaktiverade.">
-<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Vissa typsnitt, ikoner, matte symboler och bilder är inaktiverade.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Vissa teckensnitt och matematiska symboler är inaktiverade.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Vissa teckensnitt, ikoner, matematiska symboler och bilder är inaktiverade.">
<!ENTITY torbutton.prefs.sec_click_to_play_media "Ljud och video (HTML5-media) och WebGL är klicka-för-att-spela.">
<!ENTITY torbutton.prefs.sec_custom_warning "Anpassad">
<!ENTITY torbutton.prefs.sec_overview "Inaktivera vissa webbfunktioner som kan användas för att attackera din säkerhet och anonymitet.">
@@ -43,7 +43,7 @@
<!ENTITY torbutton.prefs.sec_safer_tooltip "Säkerhetsnivå : Säkrare">
<!ENTITY torbutton.prefs.sec_safest_tooltip "Säkerhetsnivå: Säkrast">
<!ENTITY torbutton.prefs.sec_custom_summary "Dina anpassade webbläsarinställningar har resulterat i ovanliga säkerhetsinställningar. Av säkerhets- och integritetsskäl rekommenderar vi att du använder en av de fördefinierade säkerhetsnivåerna.">
-<!ENTITY torbutton.prefs.sec_restore_defaults "Återställ standard">
+<!ENTITY torbutton.prefs.sec_restore_defaults "Återställ standardvärden">
<!ENTITY torbutton.prefs.sec_advanced_security_settings "Avancerade säkerhetsinställningar…">
<!ENTITY torbutton.circuit_display.title "Tor-krets">
<!ENTITY torbutton.circuit_display.new_circuit "Ny krets för denna webbplats">
diff --git a/chrome/locale/sv-SE/torbutton.properties b/chrome/locale/sv-SE/torbutton.properties
index d8657dfc..eddcff3f 100644
--- a/chrome/locale/sv-SE/torbutton.properties
+++ b/chrome/locale/sv-SE/torbutton.properties
@@ -25,11 +25,11 @@ torbutton.title.prompt_torbrowser = Viktig information om Torbutton
torbutton.popup.prompt_torbrowser = Torbutton fungerar annorlunda nu: Du kan inte slå av den längre.\n\nVi gjorde denna förändring eftersom det inte är säkert att använda Torbutton i en webbläsare som också används för icke-Tor surfning. Det var för många fel som vi inte kunde åtgärda på något annat sätt.\n\nOm du vill fortsätta använda Firefox normalt så bör du avinstallera Tor Browser och hämta Tor Browser Bundle. Tor Browser skyddar din integritet bättre än vanliga Firefox, även när Firefox används med Tor Button.\n\nFör att ta bort Torbutton, gå till Verktyg->Tillägg->Tillägg och klicka på Ta bort-knappen bredvid Torbutton.
torbutton.popup.short_torbrowser = Viktig information om Torbutton!\n\nTorbutton är nu alltid aktiverad.\n\nKlicka på Torbutton för mer information.
-torbutton.popup.confirm_plugins = Insticksmoduler så som Flash kan äventyra din anonymitet och personliga integritet.\n\nDe kan också kringgå Tor för att avslöja var du befinner dig och vad din IP-adress är.\n\nÄr du säker på att du vill aktivera plugins?\n\n
-torbutton.popup.never_ask_again = Fråga aldrig igen
+torbutton.popup.confirm_plugins = Insticksmoduler så som Flash kan äventyra din anonymitet och personliga integritet.\n\nDe kan också kringgå Tor för att avslöja var du befinner dig och vad din IP-adress är.\n\nÄr du säker på att du vill aktivera insticksmoduler?\n\n
+torbutton.popup.never_ask_again = Fråga mig aldrig igen
torbutton.popup.confirm_newnym = Tor Browser kommer att stänga alla fönster och flikar. Alla webbplatssessioner kommer att gå förlorade.\n\nStarta om Tor Browser nu för att återställa din identitet?\n\n
-torbutton.maximize_warning = Att maximera Tor Browser kan ge webbplatser möjlighet att upptäcka din skärmstorlek, vilket kan användas för att spåra dig. Vi rekommenderar att du lämnar Tor Browser fönstret i dess ursprungliga storlek.
+torbutton.maximize_warning = Maximering av Tor Browser kan ge webbplatser möjlighet att upptäcka din skärmstorlek, vilket kan användas för att spåra dig. Vi rekommenderar att du lämnar Tor Browser-fönstret i dess standardstorlek.
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Denna webbplats (%S) försökte extrahera HTML5-kanvasbilddata, som skulle kunna användas för att identifiera just din dator.\n\nSka Tor Browser tillåta denna webbplats att extrahera HTML5-kanvasbilddata?
@@ -138,3 +138,13 @@ onionLocation.always=Alltid
onionLocation.askEverytime=Fråga varje gång
onionLocation.prioritizeOnionsDescription=Prioritera .onion-webbplatser när de är kända.
onionLocation.onionServicesTitle=Onion-tjänster
+
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
+cryptoSafetyPrompt.cryptoWarning=En kryptovaluta-adress (%S) har kopierats från en osäker webbplats. Den kunde ha ändrats.
+cryptoSafetyPrompt.whatCanHeading=Vad kan du göra åt det?
+cryptoSafetyPrompt.whatCanBody=Du kan försöka återansluta till en ny krets för att upprätta en säker anslutning eller acceptera risken och avvisa denna varning.
+cryptoSafetyPrompt.learnMore=Läs mer
+cryptoSafetyPrompt.primaryAction=Läs om fliken med en ny krets
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Avvisa varning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/th/torbutton.properties b/chrome/locale/th/torbutton.properties
index 5cff4cca..2018fc39 100644
--- a/chrome/locale/th/torbutton.properties
+++ b/chrome/locale/th/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=บริการ Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=เรียนรู้เพิ่มเติม
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/tr/aboutTor.dtd b/chrome/locale/tr/aboutTor.dtd
index d36cc0fd..616aa401 100644
--- a/chrome/locale/tr/aboutTor.dtd
+++ b/chrome/locale/tr/aboutTor.dtd
@@ -22,7 +22,7 @@
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser rehberi">
-<!ENTITY aboutTor.tor_mission.label "Tor Projesi, US 501(c)(3) koşullarına göre, özgür ve açık kaynaklı anonimlik ve kişisel gizlilik teknolojileri geliştirerek insan hakları ve özgürlüklerini ileriye götürmeyi, bu teknolojilerin bilimsel ve kültürel olarak bilinirliğini arttırmayı ve herkes tarafından erişebilmesini sağlamak amacıyla çalışan, kar amacı gütmeyen bir kuruluştur.">
+<!ENTITY aboutTor.tor_mission.label "Tor Projesi, Birleşik Devletler 501(c)(3) vergi muafiyeti maddesi kapsamında, özgür ve açık kaynaklı anonimlik ve kişisel gizlilik teknolojileri geliştirerek insan hakları ve özgürlüklerini ileriye götürmeyi, bu teknolojilerin bilimsel ve kültürel olarak bilinirliğini arttırmayı ve herkes tarafından erişebilmesini sağlamak amacıyla çalışan, kar amacı gütmeyen bir kuruluştur.">
<!ENTITY aboutTor.getInvolved.label "Katkıda Bulunun »">
<!ENTITY aboutTor.newsletter.tagline "Tor ile ilgili son gelişmeler doğrudan e-posta kutunuza gelsin.">
diff --git a/chrome/locale/tr/torbutton.properties b/chrome/locale/tr/torbutton.properties
index 2f838439..10f8b38d 100644
--- a/chrome/locale/tr/torbutton.properties
+++ b/chrome/locale/tr/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Her zaman
onionLocation.askEverytime=Her defasında sorulsun
onionLocation.prioritizeOnionsDescription=Bilindiğinde .onion sitelerine öncelik verilsin.
onionLocation.onionServicesTitle=Onion Hizmetleri
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=Güvenli olmayan bir web sitesinden bir kripto para birimi adresi (%S) kopyalandı. Adres değiştirilmiş olabilir.
+cryptoSafetyPrompt.whatCanHeading=Bu konuda ne yapabilirsiniz?
+cryptoSafetyPrompt.whatCanBody=Güvenli bir bağlantı kurmak için bağlantı devresini yenilemeyi deneyebilir ya da riski kabul ederek bu uyarıyı yok sayabilirsiniz.
+cryptoSafetyPrompt.learnMore=Ayrıntılı bilgi alın
+cryptoSafetyPrompt.primaryAction=Sekmenin Devresini Yenile
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Uyarıyı Yok Say
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/vi/torbutton.properties b/chrome/locale/vi/torbutton.properties
index 3a3fe0e3..7d5ddf92 100644
--- a/chrome/locale/vi/torbutton.properties
+++ b/chrome/locale/vi/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Các Dịch vụ Onion
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Biết thêm
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/zh-CN/torbutton.properties b/chrome/locale/zh-CN/torbutton.properties
index f67bf83d..cb20b35a 100644
--- a/chrome/locale/zh-CN/torbutton.properties
+++ b/chrome/locale/zh-CN/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=始终
onionLocation.askEverytime=每次询问
onionLocation.prioritizeOnionsDescription=请优先使用 .onion 站点。
onionLocation.onionServicesTitle=洋葱服务
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=了解更多
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
diff --git a/chrome/locale/zh-TW/torbutton.properties b/chrome/locale/zh-TW/torbutton.properties
index b0ca4ab9..047e9c56 100644
--- a/chrome/locale/zh-TW/torbutton.properties
+++ b/chrome/locale/zh-TW/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=總是
onionLocation.askEverytime=每次詢問
onionLocation.prioritizeOnionsDescription=優先使用洋蔥網站。
onionLocation.onionServicesTitle=洋蔥服務
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=了解更多
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
1
0

[tor-browser/tor-browser-78.10.0esr-10.5-1] Merge remote-tracking branch 'richardgl/27476_rev2' into tor-browser-78.10.0esr-10.5-1
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit 41c6d99e17639bab7cfc4b5e1e6f971508406acc
Merge: 627d83ded2fb 6d8d49baa9ae
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 19:34:32 2021 +0000
Merge remote-tracking branch 'richardgl/27476_rev2' into tor-browser-78.10.0esr-10.5-1
browser/actors/NetErrorParent.jsm | 8 +
browser/base/content/aboutNetError.js | 8 +-
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 10 +
browser/base/content/browser.xhtml | 2 +
browser/components/BrowserGlue.jsm | 14 +
browser/components/about/AboutRedirector.cpp | 4 +
browser/components/about/components.conf | 1 +
browser/components/moz.build | 1 +
browser/components/torconnect/TorConnectChild.jsm | 9 +
browser/components/torconnect/TorConnectParent.jsm | 117 ++++++++
.../torconnect/content/aboutTorConnect.css | 96 +++++++
.../torconnect/content/aboutTorConnect.js | 299 +++++++++++++++++++++
.../torconnect/content/aboutTorConnect.xhtml | 46 ++++
.../components/torconnect/content/onion-slash.svg | 7 +
browser/components/torconnect/content/onion.svg | 3 +
.../torconnect/content/torBootstrapUrlbar.js | 136 ++++++++++
.../torconnect/content/torconnect-urlbar.css | 55 ++++
.../torconnect/content/torconnect-urlbar.inc.xhtml | 11 +
browser/components/torconnect/jar.mn | 7 +
browser/components/torconnect/moz.build | 6 +
.../components/torpreferences/content/torPane.js | 46 ++++
.../torpreferences/content/torPane.xhtml | 23 ++
.../torpreferences/content/torPreferences.css | 121 +++++++++
browser/modules/TorProcessService.jsm | 12 +
browser/modules/TorProtocolService.jsm | 124 ++++++++-
browser/modules/TorStrings.jsm | 72 +++++
browser/modules/moz.build | 1 +
browser/themes/shared/jar.inc.mn | 1 +
browser/themes/shared/onionPattern.css | 121 +++++++++
browser/themes/shared/onionPattern.inc.xhtml | 207 ++++++++++++++
browser/themes/shared/urlbar-searchbar.inc.css | 2 +
dom/base/Document.cpp | 51 +++-
toolkit/modules/RemotePageAccessManager.jsm | 20 ++
.../themes/shared/in-content/info-pages.inc.css | 15 +-
.../lib/environments/browser-window.js | 4 +
36 files changed, 1650 insertions(+), 12 deletions(-)
1
0

[tor-browser/tor-browser-78.10.0esr-10.5-1] Bug 27476: Implement about:torconnect captive portal within Tor Browser
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit 6d8d49baa9aebb4f5872040f8646adc4429dec30
Author: Richard Pospesel <richard(a)torproject.org>
Date: Wed Apr 28 23:09:34 2021 -0500
Bug 27476: Implement about:torconnect captive portal within Tor Browser
- implements new about:torconnect page as tor-launcher replacement
- adds tor connection status to url bar and tweaks UX when not online
- adds new torconnect component to browser
- tor process management functionality remains implemented in tor-launcher through the TorProtocolService module
- the onion pattern from about:tor migrated to an .inc.xhtml file now used by both about:tor and about:torconnect
- various design tweaks and resusability fixes to onion pattern
- adds warning/error box to about:preferences#tor when not connected to tor
- explicitly allows about:torconnect URIs to ignore Resist Fingerprinting (RFP)
- various tweaks to info-pages.inc.css for about:torconnect (also affects other firefox info pages)
---
browser/actors/NetErrorParent.jsm | 8 +
browser/base/content/aboutNetError.js | 8 +-
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 10 +
browser/base/content/browser.xhtml | 2 +
browser/components/BrowserGlue.jsm | 14 +
browser/components/about/AboutRedirector.cpp | 4 +
browser/components/about/components.conf | 1 +
browser/components/moz.build | 1 +
browser/components/torconnect/TorConnectChild.jsm | 9 +
browser/components/torconnect/TorConnectParent.jsm | 117 ++++++++
.../torconnect/content/aboutTorConnect.css | 96 +++++++
.../torconnect/content/aboutTorConnect.js | 299 +++++++++++++++++++++
.../torconnect/content/aboutTorConnect.xhtml | 46 ++++
.../components/torconnect/content/onion-slash.svg | 7 +
browser/components/torconnect/content/onion.svg | 3 +
.../torconnect/content/torBootstrapUrlbar.js | 136 ++++++++++
.../torconnect/content/torconnect-urlbar.css | 55 ++++
.../torconnect/content/torconnect-urlbar.inc.xhtml | 11 +
browser/components/torconnect/jar.mn | 7 +
browser/components/torconnect/moz.build | 6 +
.../components/torpreferences/content/torPane.js | 46 ++++
.../torpreferences/content/torPane.xhtml | 23 ++
.../torpreferences/content/torPreferences.css | 121 +++++++++
browser/modules/TorProcessService.jsm | 12 +
browser/modules/TorProtocolService.jsm | 124 ++++++++-
browser/modules/TorStrings.jsm | 72 +++++
browser/modules/moz.build | 1 +
browser/themes/shared/jar.inc.mn | 1 +
browser/themes/shared/onionPattern.css | 121 +++++++++
browser/themes/shared/onionPattern.inc.xhtml | 207 ++++++++++++++
browser/themes/shared/urlbar-searchbar.inc.css | 2 +
dom/base/Document.cpp | 51 +++-
toolkit/modules/RemotePageAccessManager.jsm | 20 ++
.../themes/shared/in-content/info-pages.inc.css | 15 +-
.../lib/environments/browser-window.js | 4 +
36 files changed, 1650 insertions(+), 12 deletions(-)
diff --git a/browser/actors/NetErrorParent.jsm b/browser/actors/NetErrorParent.jsm
index 035195391554..fa3cbf23fcb7 100644
--- a/browser/actors/NetErrorParent.jsm
+++ b/browser/actors/NetErrorParent.jsm
@@ -17,6 +17,10 @@ const { SessionStore } = ChromeUtils.import(
);
const { HomePage } = ChromeUtils.import("resource:///modules/HomePage.jsm");
+const { TorProtocolService } = ChromeUtils.import(
+ "resource:///modules/TorProtocolService.jsm"
+);
+
const PREF_SSL_IMPACT_ROOTS = [
"security.tls.version.",
"security.ssl3.",
@@ -318,6 +322,10 @@ class NetErrorParent extends JSWindowActorParent {
break;
}
}
+ break;
+ case "ShouldShowTorConnect":
+ return TorProtocolService.shouldShowTorConnect();
}
+ return undefined;
}
}
diff --git a/browser/base/content/aboutNetError.js b/browser/base/content/aboutNetError.js
index 60db17f46eb9..238b4930461c 100644
--- a/browser/base/content/aboutNetError.js
+++ b/browser/base/content/aboutNetError.js
@@ -194,8 +194,14 @@ async function setErrorPageStrings(err) {
document.l10n.setAttributes(titleElement, title);
}
-function initPage() {
+async function initPage() {
var err = getErrorCode();
+ if (
+ err === "proxyConnectFailure" &&
+ (await RPMSendQuery("ShouldShowTorConnect"))
+ ) {
+ document.location.replace("about:torconnect");
+ }
// List of error pages with an illustration.
let illustratedErrors = [
"malformedURI",
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index 539d6d4056a3..2a3431172886 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -57,7 +57,7 @@ var gIdentityHandler = {
* RegExp used to decide if an about url should be shown as being part of
* the browser UI.
*/
- _secureInternalUIWhitelist: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor)(?:[?#]|$)/i),
+ _secureInternalUIWhitelist: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor|torconnect|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|tor|torconnect)(?:[?#]|$)/i),
/**
* Whether the established HTTPS connection is considered "broken".
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 04f8752b93f4..916cd69320cb 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -77,6 +77,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
TabModalPrompt: "chrome://global/content/tabprompts.jsm",
TabCrashHandler: "resource:///modules/ContentCrashHandlers.jsm",
TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.jsm",
+ TorProtocolService: "resource:///modules/TorProtocolService.jsm",
Translation: "resource:///modules/translation/TranslationParent.jsm",
OnionAliasStore: "resource:///modules/OnionAliasStore.jsm",
UITour: "resource:///modules/UITour.jsm",
@@ -633,6 +634,7 @@ var gPageIcons = {
var gInitialPages = [
"about:tor",
+ "about:torconnect",
"about:blank",
"about:newtab",
"about:home",
@@ -1959,6 +1961,8 @@ var gBrowserInit = {
}
this._loadHandled = true;
+
+ TorBootstrapUrlbar.init();
},
_cancelDelayedStartup() {
@@ -2490,6 +2494,10 @@ var gBrowserInit = {
let uri = window.arguments[0];
let defaultArgs = BrowserHandler.defaultArgs;
+ if (TorProtocolService.shouldShowTorConnect()) {
+ return "about:torconnect";
+ }
+
// If the given URI is different from the homepage, we want to load it.
if (uri != defaultArgs) {
AboutNewTab.noteNonDefaultStartup();
@@ -2582,6 +2590,8 @@ var gBrowserInit = {
OnionAuthPrompt.uninit();
+ TorBootstrapUrlbar.uninit();
+
gAccessibilityServiceIndicator.uninit();
AccessibilityRefreshBlocker.uninit();
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index c2caecc1a416..032db1967c69 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -112,6 +112,7 @@
Services.scriptloader.loadSubScript("chrome://browser/content/search/searchbar.js", this);
Services.scriptloader.loadSubScript("chrome://torbutton/content/tor-circuit-display.js", this);
Services.scriptloader.loadSubScript("chrome://torbutton/content/torbutton.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/torconnect/torBootstrapUrlbar.js", this);
window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
@@ -1055,6 +1056,7 @@
data-l10n-id="urlbar-go-button"/>
<hbox id="page-action-buttons" context="pageActionContextMenu">
<toolbartabstop/>
+#include ../../components/torconnect/content/torconnect-urlbar.inc.xhtml
<hbox id="contextual-feature-recommendation" role="button" hidden="true">
<hbox id="cfr-label-container">
<label id="cfr-label"/>
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 5f708fca3d5c..2bd28ec1b04c 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -503,6 +503,20 @@ let JSWINDOWACTORS = {
allFrames: true,
},
+ TorConnect: {
+ parent: {
+ moduleURI: "resource:///modules/TorConnectParent.jsm",
+ },
+ child: {
+ moduleURI: "resource:///modules/TorConnectChild.jsm",
+ events: {
+ DOMWindowCreated: {},
+ },
+ },
+
+ matches: ["about:torconnect"],
+ },
+
Translation: {
parent: {
moduleURI: "resource:///modules/translation/TranslationParent.jsm",
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index e7c377d655e7..db5f3ead4bb8 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -120,6 +120,10 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
nsIAboutModule::HIDE_FROM_ABOUTABOUT},
#endif
+ {"torconnect", "chrome://browser/content/torconnect/aboutTorConnect.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::URI_CAN_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT},
};
static nsAutoCString GetAboutModuleName(nsIURI* aURI) {
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index 8e04467c05da..01c99ad4ed0c 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -26,6 +26,7 @@ pages = [
'robots',
'sessionrestore',
'tabcrashed',
+ 'torconnect',
'welcome',
'welcomeback',
]
diff --git a/browser/components/moz.build b/browser/components/moz.build
index b660be047b14..fb90c499c616 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -59,6 +59,7 @@ DIRS += [
'syncedtabs',
'uitour',
'urlbar',
+ 'torconnect',
'torpreferences',
'translation',
]
diff --git a/browser/components/torconnect/TorConnectChild.jsm b/browser/components/torconnect/TorConnectChild.jsm
new file mode 100644
index 000000000000..bd6dd549f156
--- /dev/null
+++ b/browser/components/torconnect/TorConnectChild.jsm
@@ -0,0 +1,9 @@
+// Copyright (c) 2021, The Tor Project, Inc.
+
+var EXPORTED_SYMBOLS = ["TorConnectChild"];
+
+const { RemotePageChild } = ChromeUtils.import(
+ "resource://gre/actors/RemotePageChild.jsm"
+);
+
+class TorConnectChild extends RemotePageChild {}
diff --git a/browser/components/torconnect/TorConnectParent.jsm b/browser/components/torconnect/TorConnectParent.jsm
new file mode 100644
index 000000000000..03b258608b5c
--- /dev/null
+++ b/browser/components/torconnect/TorConnectParent.jsm
@@ -0,0 +1,117 @@
+// Copyright (c) 2021, The Tor Project, Inc.
+
+var EXPORTED_SYMBOLS = ["TorConnectParent"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { TorProtocolService } = ChromeUtils.import(
+ "resource:///modules/TorProtocolService.jsm"
+);
+const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm");
+const { TorLauncherUtil } = ChromeUtils.import(
+ "resource://torlauncher/modules/tl-util.jsm"
+);
+
+const kTorProcessReadyTopic = "TorProcessIsReady";
+const kTorProcessExitedTopic = "TorProcessExited";
+const kTorProcessDidNotStartTopic = "TorProcessDidNotStart";
+const kTorShowProgressPanelTopic = "TorShowProgressPanel";
+const kTorBootstrapStatusTopic = "TorBootstrapStatus";
+const kTorBootstrapErrorTopic = "TorBootstrapError";
+const kTorLogHasWarnOrErrTopic = "TorLogHasWarnOrErr";
+
+const gActiveTopics = [
+ kTorProcessReadyTopic,
+ kTorProcessExitedTopic,
+ kTorProcessDidNotStartTopic,
+ kTorShowProgressPanelTopic,
+ kTorBootstrapStatusTopic,
+ kTorBootstrapErrorTopic,
+ kTorLogHasWarnOrErrTopic,
+];
+
+class TorConnectParent extends JSWindowActorParent {
+ constructor(...args) {
+ super(...args);
+
+ const self = this;
+ this.gObserver = {
+ observe(aSubject, aTopic, aData) {
+ const obj = aSubject?.wrappedJSObject;
+ if (obj) {
+ obj.handled = true;
+ }
+ self.sendAsyncMessage(aTopic, obj);
+ },
+ };
+
+ for (const topic of gActiveTopics) {
+ Services.obs.addObserver(this.gObserver, topic);
+ }
+ }
+
+ willDestroy() {
+ for (const topic of gActiveTopics) {
+ Services.obs.removeObserver(this.gObserver, topic);
+ }
+ }
+
+ get browser() {
+ return this.browsingContext.top.embedderElement;
+ }
+
+ _OpenTorAdvancedPreferences() {
+ const win = this.browsingContext.top.embedderElement.ownerGlobal;
+ win.openTrustedLinkIn("about:preferences#tor", "tab");
+ }
+
+ _TorCopyLog() {
+ // Copy tor log messages to the system clipboard.
+ const chSvc = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(
+ Ci.nsIClipboardHelper
+ );
+ const countObj = { value: 0 };
+ chSvc.copyString(TorProtocolService.getLog(countObj));
+ const count = countObj.value;
+ return TorLauncherUtil.getFormattedLocalizedString(
+ "copiedNLogMessagesShort",
+ [count],
+ 1
+ );
+ }
+
+ _GoToBrowserHome() {
+ const window = this.browser.ownerGlobal;
+ window.BrowserHome();
+ }
+
+ receiveMessage(message) {
+ switch (message.name) {
+ case "TorBootstrapErrorOccurred":
+ return TorProtocolService.torBootstrapErrorOccurred();
+ case "TorRetrieveBootstrapStatus":
+ return TorProtocolService.retrieveBootstrapStatus();
+ case "OpenTorAdvancedPreferences":
+ return this._OpenTorAdvancedPreferences();
+ case "GoToBrowserHome":
+ return this._GoToBrowserHome();
+ case "GetLocalizedBootstrapStatus":
+ const { status, keyword } = message.data;
+ return TorLauncherUtil.getLocalizedBootstrapStatus(status, keyword);
+ case "TorCopyLog":
+ return this._TorCopyLog();
+ case "TorIsNetworkDisabled":
+ return TorProtocolService.isNetworkDisabled();
+ case "TorStopBootstrap":
+ return TorProtocolService.torStopBootstrap();
+ case "TorConnect":
+ return TorProtocolService.connect();
+ case "GetDirection":
+ return Services.locale.isAppLocaleRTL ? "rtl" : "ltr";
+ case "GetTorStrings":
+ return TorStrings;
+ case "TorLogHasWarnOrErr":
+ return TorProtocolService.torLogHasWarnOrErr();
+ }
+ return undefined;
+ }
+}
diff --git a/browser/components/torconnect/content/aboutTorConnect.css b/browser/components/torconnect/content/aboutTorConnect.css
new file mode 100644
index 000000000000..eb4277f2ce5e
--- /dev/null
+++ b/browser/components/torconnect/content/aboutTorConnect.css
@@ -0,0 +1,96 @@
+
+/* Copyright (c) 2021, The Tor Project, Inc. */
+
+
+@import url("chrome://browser/skin/error-pages.css");
+
+:root {
+ --onion-opacity: 1;
+ --onion-color: var(--card-outline-color);
+ --onion-radius: 50px;
+}
+
+#connectButton {
+ background-color: #7D4698;
+}
+
+#connectButton:hover {
+ background-color: #59316B;
+}
+
+#progressBackground {
+ position:fixed;
+ padding:0;
+ margin:0;
+ top:0;
+ left:0;
+ width: 0%;
+ height: 7px;
+ background-image: linear-gradient(90deg, rgb(20, 218, 221) 0%, rgb(128, 109, 236) 100%);
+ border-radius: 0;
+}
+
+#connectPageContainer {
+ margin-top: 10vh;
+ width: 50%;
+}
+
+#copyLogButton {
+ position: relative;
+}
+
+#copyLogTooltip {
+ visibility: hidden;
+ display: inline-block;
+ width: 100%;
+
+ position: absolute;
+ z-index: 1;
+ left: 0px;
+ bottom: calc(100% + 6px);
+}
+
+#copyLogTooltip::after {
+ content: "";
+ position: absolute;
+ top: 100%;
+ left: 50%;
+ margin-left: -4px;
+ border-width: 4px;
+ border-style: solid;
+ border-color: #30E60B transparent transparent transparent;
+}
+
+
+#copyLogTooltipText {
+ display: inline-block;
+ background-color: #30E60B;
+ color: #003706;
+ border-radius: 2px;
+ text-align: center;
+ line-height: 13px;
+ font: 11px Regular;
+ font-weight: 400;
+
+ margin-left: auto;
+ margin-right: auto;
+ padding: 4px;
+}
+
+body {
+ padding: 0px !important;
+ justify-content: space-between;
+ background-color: var(--in-content-page-background);
+}
+
+.title {
+ background-image: url("chrome://browser/content/torconnect/onion.svg");
+ -moz-context-properties: fill, fill-opacity;
+ fill-opacity: 1;
+ fill: var(--onion-color);
+}
+
+.title.error {
+ background-image: url("chrome://browser/content/torconnect/onion-slash.svg");
+}
+
diff --git a/browser/components/torconnect/content/aboutTorConnect.js b/browser/components/torconnect/content/aboutTorConnect.js
new file mode 100644
index 000000000000..ad398ccd86f9
--- /dev/null
+++ b/browser/components/torconnect/content/aboutTorConnect.js
@@ -0,0 +1,299 @@
+// Copyright (c) 2021, The Tor Project, Inc.
+
+/* eslint-env mozilla/frame-script */
+
+const kTorProcessReadyTopic = "TorProcessIsReady";
+const kTorProcessExitedTopic = "TorProcessExited";
+const kTorProcessDidNotStartTopic = "TorProcessDidNotStart";
+const kTorBootstrapStatusTopic = "TorBootstrapStatus";
+const kTorBootstrapErrorTopic = "TorBootstrapError";
+const kTorLogHasWarnOrErrTopic = "TorLogHasWarnOrErr";
+
+class AboutTorConnect {
+ log(...args) {
+ console.log(...args);
+ }
+
+ logError(...args) {
+ console.error(...args);
+ }
+
+ logDebug(...args) {
+ console.debug(...args);
+ }
+
+ getElem(id) {
+ return document.getElementById(id);
+ }
+ get elemProgressContent() {
+ return this.getElem("progressContent");
+ }
+ get elemProgressDesc() {
+ return this.getElem("connectShortDescText");
+ }
+ get elemProgressMeter() {
+ return this.getElem("progressBackground");
+ }
+ get elemConnectButton() {
+ return this.getElem("connectButton");
+ }
+ get elemCopyLogButton() {
+ return this.getElem("copyLogButton");
+ }
+ get elemCopyLogTooltip() {
+ return this.getElem("copyLogTooltip");
+ }
+ get elemCopyLogTooltipText() {
+ return this.getElem("copyLogTooltipText");
+ }
+ get elemAdvancedButton() {
+ return this.getElem("advancedButton");
+ }
+ get elemCancelButton() {
+ return this.getElem("cancelButton");
+ }
+ get elemTextContainer() {
+ return this.getElem("text-container");
+ }
+ get elemTitle() {
+ return this.elemTextContainer.getElementsByClassName("title")[0];
+ }
+
+ static get STATE_INITIAL() {
+ return "STATE_INITIAL";
+ }
+
+ static get STATE_BOOTSTRAPPING() {
+ return "STATE_BOOTSTRAPPING";
+ }
+
+ static get STATE_BOOTSTRAPPED() {
+ return "STATE_BOOTSTRAPPED";
+ }
+
+ static get STATE_BOOTSTRAP_ERROR() {
+ return "STATE_BOOTSTRAP_ERROR";
+ }
+
+ get state() {
+ return this._state;
+ }
+
+ setInitialUI() {
+ this.setTitle(this.torStrings.torConnect.torConnect);
+ this.elemProgressDesc.textContent =
+ this.torStrings.settings.torPreferencesDescription;
+ this.showElem(this.elemConnectButton);
+ this.showElem(this.elemAdvancedButton);
+ this.hideElem(this.elemCopyLogButton);
+ this.hideElem(this.elemCancelButton);
+ this.hideElem(this.elemProgressContent);
+ this.hideElem(this.elemProgressMeter);
+ this.elemTitle.classList.remove("error");
+ }
+
+ setBootstrappingUI() {
+ this.setTitle(this.torStrings.torConnect.torConnecting);
+ this.hideElem(this.elemConnectButton);
+ this.hideElem(this.elemAdvancedButton);
+ this.hideElem(this.elemCopyLogButton);
+ this.showElem(this.elemCancelButton);
+ this.showElem(this.elemProgressContent);
+ this.showElem(this.elemProgressMeter);
+ this.elemTitle.classList.remove("error");
+ }
+
+ setBootstrapErrorUI() {
+ this.setTitle(this.torStrings.torConnect.torBootstrapFailed);
+ this.elemConnectButton.textContent = this.torStrings.torConnect.tryAgain;
+ this.showElem(this.elemConnectButton);
+ this.hideElem(this.elemCancelButton);
+ this.showElem(this.elemAdvancedButton);
+ this.showElem(this.elemProgressContent);
+ this.hideElem(this.elemProgressMeter);
+ this.elemTitle.classList.add("error");
+
+ this.elem
+ }
+
+ goToBrowserHome() {
+ this.hideElem(this.elemCancelButton);
+ RPMSendAsyncMessage("GoToBrowserHome");
+ }
+
+ set state(state) {
+ const oldState = this.state;
+ if (oldState === state) {
+ return;
+ }
+ this._state = state;
+ switch (this.state) {
+ case AboutTorConnect.STATE_INITIAL:
+ this.setInitialUI();
+ break;
+ case AboutTorConnect.STATE_BOOTSTRAPPING:
+ this.setBootstrappingUI();
+ break;
+ case AboutTorConnect.STATE_BOOTSTRAP_ERROR:
+ this.setBootstrapErrorUI();
+ break;
+ case AboutTorConnect.STATE_BOOTSTRAPPED:
+ this.goToBrowserHome();
+ break;
+ }
+ }
+
+ async showErrorMessage(aErrorObj) {
+ if (aErrorObj && aErrorObj.message) {
+ this.setTitle(aErrorObj.message);
+ if (aErrorObj.details) {
+ this.elemProgressDesc.textContent = aErrorObj.details;
+ }
+ }
+
+ let haveErrorOrWarning =
+ (await RPMSendQuery("TorBootstrapErrorOccurred")) ||
+ (await RPMSendQuery("TorLogHasWarnOrErr"));
+ this.showCopyLogButton(haveErrorOrWarning);
+ this.showElem(this.elemConnectButton);
+ }
+
+ showElem(elem) {
+ elem.removeAttribute("hidden");
+ }
+
+ hideElem(elem) {
+ elem.setAttribute("hidden", "true");
+ }
+
+ async connect() {
+ this.state = AboutTorConnect.STATE_BOOTSTRAPPING;
+ const error = await RPMSendQuery("TorConnect");
+ if (error) {
+ if (error.details) {
+ this.showErrorMessage({ message: error.details }, true);
+ this.showSaveSettingsError(error.details);
+ }
+ }
+ }
+
+ restoreCopyLogVisibility() {
+ this.elemCopyLogButton.setAttribute("hidden", true);
+ }
+
+ showCopyLogButton() {
+ this.elemCopyLogButton.removeAttribute("hidden");
+ }
+
+ async updateBootstrapProgress(status) {
+ let labelText = await RPMSendQuery("GetLocalizedBootstrapStatus", {
+ status,
+ keyword: "TAG",
+ });
+ let percentComplete = status.PROGRESS ? status.PROGRESS : 0;
+ this.elemProgressMeter.style.width = `${percentComplete}%`;
+
+ if (await RPMSendQuery("TorBootstrapErrorOccurred")) {
+ this.state = AboutTorConnect.STATE_BOOTSTRAP_ERROR;
+ return;
+ } else if (await RPMSendQuery("TorIsNetworkDisabled")) {
+ // If tor network is not connected, let's go to the initial state, even
+ // if bootstrap state is greater than 0.
+ this.state = AboutTorConnect.STATE_INITIAL;
+ return;
+ } else if (percentComplete >= 100) {
+ this.state = AboutTorConnect.STATE_BOOTSTRAPPED;
+ } else if (percentComplete > 0) {
+ this.state = AboutTorConnect.STATE_BOOTSTRAPPING;
+ }
+
+ // Due to async, status might have changed. Do not override desc if so.
+ if (this.state === AboutTorConnect.STATE_BOOTSTRAPPING) {
+ this.hideElem(this.elemConnectButton);
+ }
+ }
+
+ stopTorBootstrap() {
+ RPMSendAsyncMessage("TorStopBootstrap");
+ }
+
+ setTitle(title) {
+ const titleElement = document.querySelector(".title-text");
+ titleElement.textContent = title;
+ document.title = title;
+ }
+
+ initButtons() {
+ this.elemAdvancedButton.textContent = this.torStrings.torConnect.torConfigure;
+ this.elemAdvancedButton.addEventListener("click", () => {
+ RPMSendAsyncMessage("OpenTorAdvancedPreferences");
+ });
+
+ this.elemConnectButton.textContent =
+ this.torStrings.torConnect.torConnectButton;
+ this.elemConnectButton.addEventListener("click", () => {
+ this.connect();
+ });
+
+ this.elemCancelButton.textContent = this.torStrings.torConnect.cancel;
+ this.elemCancelButton.addEventListener("click", () => {
+ this.stopTorBootstrap();
+ });
+
+ // sets the text content while keping the child elements intact
+ this.elemCopyLogButton.childNodes[0].nodeValue =
+ this.torStrings.torConnect.copyLog;
+ this.elemCopyLogButton.addEventListener("click", async () => {
+ const copiedMessage = await RPMSendQuery("TorCopyLog");
+ aboutTorConnect.elemCopyLogTooltipText.textContent = copiedMessage;
+ aboutTorConnect.elemCopyLogTooltip.style.visibility = "visible";
+
+ // clear previous timeout if one already exists
+ if (aboutTorConnect.copyLogTimeoutId) {
+ clearTimeout(aboutTorConnect.copyLogTimeoutId);
+ }
+
+ // hide tooltip after X ms
+ const TOOLTIP_TIMEOUT = 2000;
+ aboutTorConnect.copyLogTimeoutId = setTimeout(function() {
+ aboutTorConnect.elemCopyLogTooltip.style.visibility = "hidden";
+ aboutTorConnect.copyLogTimeoutId = 0;
+ }, TOOLTIP_TIMEOUT);
+ });
+ }
+
+ initObservers() {
+ RPMAddMessageListener(kTorBootstrapErrorTopic, ({ data }) => {
+ this.showCopyLogButton(true);
+ this.stopTorBootstrap();
+ this.showErrorMessage(data);
+ });
+ RPMAddMessageListener(kTorLogHasWarnOrErrTopic, () => {
+ this.showCopyLogButton(true);
+ });
+ RPMAddMessageListener(kTorProcessDidNotStartTopic, ({ data }) => {
+ this.showErrorMessage(data);
+ });
+ RPMAddMessageListener(kTorBootstrapStatusTopic, ({ data }) => {
+ this.updateBootstrapProgress(data);
+ });
+ }
+
+ async init() {
+ this.torStrings = await RPMSendQuery("GetTorStrings");
+ document.documentElement.setAttribute(
+ "dir",
+ await RPMSendQuery("GetDirection")
+ );
+ this.initButtons();
+ this.initObservers();
+ this.state = AboutTorConnect.STATE_INITIAL;
+
+ // Request the most recent bootstrap status info so that a
+ // TorBootstrapStatus notification is generated as soon as possible.
+ RPMSendAsyncMessage("TorRetrieveBootstrapStatus");
+ }
+}
+
+const aboutTorConnect = new AboutTorConnect();
+aboutTorConnect.init();
diff --git a/browser/components/torconnect/content/aboutTorConnect.xhtml b/browser/components/torconnect/content/aboutTorConnect.xhtml
new file mode 100644
index 000000000000..e0f813f62d67
--- /dev/null
+++ b/browser/components/torconnect/content/aboutTorConnect.xhtml
@@ -0,0 +1,46 @@
+<!-- Copyright (c) 2021, The Tor Project, Inc. -->
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
+ <link rel="stylesheet" href="chrome://browser/skin/onionPattern.css" type="text/css" media="all" />
+ <link rel="stylesheet" href="chrome://browser/content/torconnect/aboutTorConnect.css" type="text/css" media="all" />
+ </head>
+ <body>
+ <div id="progressBackground"></div>
+ <div id="connectPageContainer" class="container">
+ <div id="text-container">
+ <div class="title">
+ <h1 class="title-text"/>
+ </div>
+ <div id="connectLongContent">
+ <div id="connectShortDesc">
+ <p id="connectShortDescText" />
+ </div>
+ </div>
+
+ <div id="progressContent" hidden="true">
+ <div class="tbb-header" pack="center">
+ <image class="tbb-logo"/>
+ </div>
+ <div flex="1">
+ <div id="progressDesc"/>
+ </div>
+ </div>
+
+ <div id="connectButtonContainer" class="button-container">
+ <button id="advancedButton" hidden="true"></button>
+ <button id="copyLogButton" hidden="true">
+ <div id="copyLogTooltip">
+ <div id="copyLogTooltipText"></div>
+ </div>
+ </button>
+ <button id="cancelButton" hidden="true"></button>
+ <button id="connectButton" class="primary try-again" hidden="true"></button>
+ </div>
+ </div>
+ </div>
+#include ../../../themes/shared/onionPattern.inc.xhtml
+ </body>
+ <script src="chrome://browser/content/torconnect/aboutTorConnect.js"/>
+</html>
diff --git a/browser/components/torconnect/content/onion-slash.svg b/browser/components/torconnect/content/onion-slash.svg
new file mode 100644
index 000000000000..efb09700ec0b
--- /dev/null
+++ b/browser/components/torconnect/content/onion-slash.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <g fill-opacity="context-fill-opacity" fill="context-fill">
+ <path d="M3.409559 13.112147C3.409559 13.112147 8.200807 8.103115 8.200807 8.103115C8.200807 8.103115 8.200807 6.516403 8.200807 6.516403C8.620819 6.516403 9.009719 6.703075 9.274171 6.998639C9.274171 6.998639 10.160863 6.080835 10.160863 6.080835C9.663071 5.567487 8.978607 5.256367 8.200807 5.256367C8.200807 5.256367 8.200807 4.400787 8.200807 4.400787C9.196391 4.400787 10.098639 4.805243 10.736435 5.458595C10.736435 5.458595 11.623127 4.540791 11.623127 4.540791C10.751991 3.669655 9.538623 3.125195 8.200807 3.125195C8.200807 3.125195 8.200807 2.269615 8.200807 2.269615C9.756407 2.269615 11.172003 2.907411 12.214255 3.918551C12.214255 3.918551 13.100947 3.000747 13.100947 3.000747C11.825355 1.756267 10.098639 0.994023 8.185251 0.994023C4.311807 0.994023 1.185051 4.120779 1.185051 7.994223C1.185051 10.016503 2.040631 11.836555 3.409559 13.112147C3.409559 13.112147 3.409559 13.112147 3.409559 13.112147"/>
+ <path d="M14.205423 4.416343C14.205423 4.416343 13.287619 5.380815 13.287619 5.380815C13.692075 6.158615 13.909859 7.045307 13.909859 7.994223C13.909859 11.152091 11.358675 13.718831 8.200807 13.718831C8.200807 13.718831 8.200807 12.863251 8.200807 12.863251C10.891995 12.863251 13.069835 10.669855 13.069835 7.978667C13.069835 7.278647 12.929831 6.625295 12.665379 6.018611C12.665379 6.018611 11.685351 7.045307 11.685351 7.045307C11.763131 7.340871 11.809799 7.651991 11.809799 7.963111C11.809799 9.954279 10.207531 11.556547 8.216363 11.572103C8.216363 11.572103 8.216363 10.716523 8.216363 10.716523C9.725295 10.700967 10.954219 9.472043 10.954219 7.963111C10.954219 7.916443 10.954219 7.854219 10.954219 7.807551C10.954219 7.807551 4.887379 14.169955 4.887379 14.169955C5.867407 14.698859 6.987439 14.994423 8.185251 14.994423C12.058695 14.994423 15.185451 11.867667 15.185451 7.994223C15.185451 6.687519 14.827663 5.474151 14.205423 4.416343C14.205423 4.416343 14.205423 4.416343 14.20542
3 4.416343"/>
+ <path d="M1.791735 15.461103C1.402835 15.461103 1.045047 15.212207 0.889487 14.838863C0.733927 14.465519 0.827267 14.014395 1.107271 13.734387C1.107271 13.734387 13.458735 0.822907 13.458735 0.822907C13.847635 0.434007 14.454319 0.449563 14.827663 0.838467C15.201007 1.227367 15.216563 1.865163 14.843223 2.269619C14.843223 2.269619 2.491759 15.181099 2.491759 15.181099C2.289531 15.352215 2.040635 15.461107 1.791739 15.461107C1.791739 15.461107 1.791735 15.461103 1.791735 15.461103"/>
+ </g>
+</svg>
diff --git a/browser/components/torconnect/content/onion.svg b/browser/components/torconnect/content/onion.svg
new file mode 100644
index 000000000000..30cd52ba5c51
--- /dev/null
+++ b/browser/components/torconnect/content/onion.svg
@@ -0,0 +1,3 @@
+<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/components/torconnect/content/torBootstrapUrlbar.js b/browser/components/torconnect/content/torBootstrapUrlbar.js
new file mode 100644
index 000000000000..55a595b2dbab
--- /dev/null
+++ b/browser/components/torconnect/content/torBootstrapUrlbar.js
@@ -0,0 +1,136 @@
+// Copyright (c) 2021, The Tor Project, Inc.
+
+"use strict";
+
+ const TorConnectionStatus = {
+ invalid: -1,
+ offline: 0,
+ connecting: 1,
+ connected: 2,
+ failure: 3,
+ };
+var TorBootstrapUrlbar;
+
+{
+ const { TorProtocolService } = ChromeUtils.import(
+ "resource:///modules/TorProtocolService.jsm"
+ );
+ const { TorLauncherUtil } = ChromeUtils.import(
+ "resource://torlauncher/modules/tl-util.jsm"
+ );
+ const { TorStrings } = ChromeUtils.import(
+ "resource:///modules/TorStrings.jsm"
+ );
+
+ const kTorProcessReadyTopic = "TorProcessIsReady";
+ const kTorProcessExitedTopic = "TorProcessExited";
+ const kTorProcessDidNotStartTopic = "TorProcessDidNotStart";
+ const kTorBootstrapStatusTopic = "TorBootstrapStatus";
+ const kTorBootstrapErrorTopic = "TorBootstrapError";
+
+ const gActiveTopics = [
+ kTorProcessReadyTopic,
+ kTorProcessExitedTopic,
+ kTorProcessDidNotStartTopic,
+ kTorBootstrapStatusTopic,
+ kTorBootstrapErrorTopic,
+ ];
+
+ TorBootstrapUrlbar = {
+ _connectionStatus: TorConnectionStatus.invalid,
+ get ConnectionStatus() {
+ return this._connectionStatus;
+ },
+
+ _torConnectBox : null,
+ get TorConnectBox() {
+ if (!this._torConnectBox) {
+ this._torConnectBox =
+ browser.ownerGlobal.document.getElementById("torconnect-box");
+ }
+ return this._torConnectBox;
+ },
+
+ _torConnectLabel : null,
+ get TorConnectLabel() {
+ if (!this._torConnectLabel) {
+ this._torConnectLabel =
+ browser.ownerGlobal.document.getElementById("torconnect-label");
+ }
+ return this._torConnectLabel;
+ },
+
+ _updateConnectionStatus(percentComplete = 0) {
+ if (TorProtocolService.ownsTorDaemon &&
+ !TorLauncherUtil.useLegacyLauncher) {
+ if (TorProtocolService.isNetworkDisabled()) {
+ if (TorProtocolService.torBootstrapErrorOccurred()) {
+ this._connectionStatus = TorConnectionStatus.failure;
+ } else {
+ this._connectionStatus = TorConnectionStatus.offline;
+ }
+ } else if (percentComplete < 100) {
+ this._connectionStatus = TorConnectionStatus.connecting;
+ } else if (percentComplete === 100) {
+ this._connectionStatus = TorConnectionStatus.connected;
+ }
+ }
+ else
+ {
+ this._connectionStatus = TorConnectionStatus.invalid;
+ }
+
+ switch(this._connectionStatus)
+ {
+ case TorConnectionStatus.failure:
+ case TorConnectionStatus.offline:
+ this.TorConnectBox.removeAttribute("hidden");
+ this.TorConnectLabel.textContent = TorStrings.torConnect.offline;
+ gURLBar._inputContainer.setAttribute("torconnect", "offline");
+ break;
+ case TorConnectionStatus.connecting:
+ this.TorConnectLabel.textContent =
+ TorStrings.torConnect.torConnectingConcise;
+ gURLBar._inputContainer.setAttribute("torconnect", "connecting");
+ break;
+ case TorConnectionStatus.connected:
+ this.TorConnectLabel.textContent =
+ TorStrings.torConnect.torConnectedConcise;
+ gURLBar._inputContainer.setAttribute("torconnect", "connected");
+ // hide torconnect box after 5 seconds
+ let self = this;
+ setTimeout(function() {
+ self.TorConnectBox.setAttribute("hidden", "true");
+ }, 5000);
+ break;
+ }
+ },
+
+ observe(aSubject, aTopic, aData) {
+ const obj = aSubject?.wrappedJSObject;
+
+ switch (aTopic) {
+ case kTorProcessReadyTopic:
+ case kTorProcessExitedTopic:
+ case kTorProcessDidNotStartTopic:
+ case kTorBootstrapErrorTopic:
+ this._updateConnectionStatus();
+ break;
+ case kTorBootstrapStatusTopic:
+ let percentComplete = obj.PROGRESS ? obj.PROGRESS : 0;
+ this._updateConnectionStatus(percentComplete);
+ break;
+ }
+ },
+ init() {
+ for (const topic of gActiveTopics) {
+ Services.obs.addObserver(this, topic);
+ }
+ },
+ uninit() {
+ for (const topic of gActiveTopics) {
+ Services.obs.removeObserver(this, topic);
+ }
+ },
+ };
+}
diff --git a/browser/components/torconnect/content/torconnect-urlbar.css b/browser/components/torconnect/content/torconnect-urlbar.css
new file mode 100644
index 000000000000..7331f3cd48df
--- /dev/null
+++ b/browser/components/torconnect/content/torconnect-urlbar.css
@@ -0,0 +1,55 @@
+/*
+ ensure our torconnect button is always visible (same rule as for the bookmark button)
+*/
+hbox.urlbar-page-action#torconnect-box {
+ display: -moz-inline-box!important;
+ 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 0.1em;
+ opacity: 0.6;
+}
+
+/* set appropriate sizes for the non-standard ui densities */
+:root[uidensity=compact] {
+ hbox.urlbar-page-action#torconnect-box {
+ height: 24px;
+ }
+ label#torconnect-label {
+ line-height: 24px;
+ }
+}
+:root[uidensity=touch] {
+ hbox.urlbar-page-action#torconnect-box {
+ height: 30px;
+ }
+ 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 */
+#urlbar[usertyping] > #urlbar-input-container > #page-action-buttons > #torconnect-box {
+ display: none!important;
+}
+
+/* hide urlbar's placeholder text when not connectd to tor */
+hbox#urlbar-input-container[torconnect="offline"] input#urlbar-input::placeholder,
+hbox#urlbar-input-container[torconnect="connecting"] input#urlbar-input::placeholder {
+ opacity: 0;
+}
+
+/* hide search suggestions when not connected to tor */
+hbox#urlbar-input-container[torconnect="offline"] + vbox.urlbarView,
+hbox#urlbar-input-container[torconnect="connecting"] + vbox.urlbarView {
+ display: none!important;
+}
diff --git a/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml b/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml
new file mode 100644
index 000000000000..bdf9d8f0df00
--- /dev/null
+++ b/browser/components/torconnect/content/torconnect-urlbar.inc.xhtml
@@ -0,0 +1,11 @@
+# Copyright (c) 2021, The Tor Project, Inc.
+
+<hbox id="torconnect-box"
+ 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>
+</hbox>
\ No newline at end of file
diff --git a/browser/components/torconnect/jar.mn b/browser/components/torconnect/jar.mn
new file mode 100644
index 000000000000..ed8a4de299b2
--- /dev/null
+++ b/browser/components/torconnect/jar.mn
@@ -0,0 +1,7 @@
+browser.jar:
+ content/browser/torconnect/torBootstrapUrlbar.js (content/torBootstrapUrlbar.js)
+ content/browser/torconnect/aboutTorConnect.css (content/aboutTorConnect.css)
+* content/browser/torconnect/aboutTorConnect.xhtml (content/aboutTorConnect.xhtml)
+ content/browser/torconnect/aboutTorConnect.js (content/aboutTorConnect.js)
+ content/browser/torconnect/onion.svg (content/onion.svg)
+ content/browser/torconnect/onion-slash.svg (content/onion-slash.svg)
diff --git a/browser/components/torconnect/moz.build b/browser/components/torconnect/moz.build
new file mode 100644
index 000000000000..eb29c31a4243
--- /dev/null
+++ b/browser/components/torconnect/moz.build
@@ -0,0 +1,6 @@
+JAR_MANIFESTS += ['jar.mn']
+
+EXTRA_JS_MODULES += [
+ 'TorConnectChild.jsm',
+ 'TorConnectParent.jsm',
+]
diff --git a/browser/components/torpreferences/content/torPane.js b/browser/components/torpreferences/content/torPane.js
index 49054b5dac6a..66213ceb7789 100644
--- a/browser/components/torpreferences/content/torPane.js
+++ b/browser/components/torpreferences/content/torPane.js
@@ -1,5 +1,7 @@
"use strict";
+/* global Services */
+
const { TorProtocolService } = ChromeUtils.import(
"resource:///modules/TorProtocolService.jsm"
);
@@ -62,6 +64,11 @@ const gTorPane = (function() {
category: {
title: "label#torPreferences-labelCategory",
},
+ messageBox: {
+ box: "div#torPreferences-connectMessageBox",
+ message: "td#torPreferences-connectMessageBox-message",
+ button: "button#torPreferences-connectMessageBox-button",
+ },
torPreferences: {
header: "h1#torPreferences-header",
description: "span#torPreferences-description",
@@ -112,6 +119,9 @@ const gTorPane = (function() {
let retval = {
// cached frequently accessed DOM elements
+ _messageBox: null,
+ _messageBoxMessage: null,
+ _messageBoxButton: null,
_useBridgeCheckbox: null,
_bridgeSelectionRadiogroup: null,
_builtinBridgeOption: null,
@@ -161,6 +171,42 @@ const gTorPane = (function() {
let prefpane = document.getElementById("mainPrefPane");
+ // 'Connect to Tor' Message Bar
+
+ this._messageBox = prefpane.querySelector(selectors.messageBox.box);
+ this._messageBoxMessage = prefpane.querySelector(selectors.messageBox.message);
+ this._messageBoxButton = prefpane.querySelector(selectors.messageBox.button);
+ // wire up connect button
+ this._messageBoxButton.addEventListener("click", () => {
+ TorProtocolService.connect();
+ let win = Services.wm.getMostRecentWindow("navigator:browser");
+ win.switchToTabHavingURI("about:torconnect");
+ });
+
+ let populateMessagebox = () => {
+ if (TorProtocolService.shouldShowTorConnect()) {
+ // set messagebox style and text
+ if (TorProtocolService.torBootstrapErrorOccurred()) {
+ this._messageBox.className = "error";
+ this._messageBoxMessage.innerText = TorStrings.torConnect.tryAgainMessage;
+ this._messageBoxButton.innerText = TorStrings.torConnect.tryAgain;
+ } else {
+ this._messageBox.className = "warning";
+ this._messageBoxMessage.innerText = TorStrings.torConnect.connectMessage;
+ this._messageBoxButton.innerText = TorStrings.torConnect.torConnectButton;
+ }
+ } else {
+ this._messageBox.className = "hidden";
+ this._messageBoxMessage.innerText = "";
+ this._messageBoxButton.innerText = "";
+ }
+ }
+ populateMessagebox();
+ // update the messagebox whenever we come back to the page
+ window.addEventListener("focus", val => {
+ populateMessagebox();
+ });
+
// Heading
prefpane.querySelector(selectors.torPreferences.header).innerText =
TorStrings.settings.torPreferencesHeading;
diff --git a/browser/components/torpreferences/content/torPane.xhtml b/browser/components/torpreferences/content/torPane.xhtml
index 3c966b2b3726..88f82c37a3c9 100644
--- a/browser/components/torpreferences/content/torPane.xhtml
+++ b/browser/components/torpreferences/content/torPane.xhtml
@@ -3,6 +3,29 @@
<script type="application/javascript"
src="chrome://browser/content/torpreferences/torPane.js"/>
<html:template id="template-paneTor">
+
+<!-- Tor Connect Message Box -->
+<groupbox data-category="paneTor" hidden="true">
+ <html:div id="torPreferences-connectMessageBox"
+ class="subcategory"
+ data-category="paneTor"
+ hidden="true">
+ <html:table >
+ <html:tr>
+ <html:td>
+ <html:div id="torPreferences-connectMessageBox-icon"/>
+ </html:td>
+ <html:td id="torPreferences-connectMessageBox-message">
+ </html:td>
+ <html:td>
+ <html:button id="torPreferences-connectMessageBox-button">
+ </html:button>
+ </html:td>
+ </html:tr>
+ </html:table>
+ </html:div>
+</groupbox>
+
<hbox id="torPreferencesCategory"
class="subcategory"
data-category="paneTor"
diff --git a/browser/components/torpreferences/content/torPreferences.css b/browser/components/torpreferences/content/torPreferences.css
index 4dac2c457823..f125936dac74 100644
--- a/browser/components/torpreferences/content/torPreferences.css
+++ b/browser/components/torpreferences/content/torPreferences.css
@@ -2,6 +2,127 @@
list-style-image: url("chrome://browser/content/torpreferences/torPreferencesIcon.svg");
}
+/* Connect Message Box */
+
+#torPreferences-connectMessageBox {
+ display: block;
+ position: relative;
+
+ width: auto;
+ min-height: 32px;
+ border-radius: 4px;
+ padding: 4px;
+}
+
+#torPreferences-connectMessageBox.hidden {
+ display: none;
+}
+
+#torPreferences-connectMessageBox.error {
+ background-color: var(--red-60);
+ color: white;
+}
+
+#torPreferences-connectMessageBox.warning {
+ background-color: var(--yellow-50);
+ color: var(--yellow-90);
+}
+
+#torPreferences-connectMessageBox table {
+ border-collapse: collapse;
+ width: 100%;
+}
+
+#torPreferences-connectMessageBox td {
+ vertical-align: top;
+ padding: 0px;
+}
+
+#torPreferences-connectMessageBox td:first-child {
+ width: 24px;
+}
+
+#torPreferences-connectMessageBox-icon {
+ display: block;
+ width: 16px;
+ height: 16px;
+ padding: 4px;
+
+ mask-repeat: no-repeat !important;
+ mask-size: 16px !important;
+ mask-position: 4px 4px !important;
+}
+
+#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-icon
+{
+ mask: url("chrome://browser/skin/onion-slash.svg");
+ background-color: white;
+}
+
+#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-icon
+{
+ mask: url("chrome://global/skin/icons/warning.svg");
+ background-color: black;
+}
+
+#torPreferences-connectMessageBox-message {
+ display: block;
+ line-height: 16px;
+ font-size: 13px;
+ margin-right: 8px;
+ padding-left: 4px!important;
+ padding-top: 4px!important;
+}
+
+#torPreferences-connectMessageBox-button {
+ display: block;
+ width: auto;
+ height: 24px;
+ line-height: 24px;
+ min-height: 24px;
+ max-height: 24px;
+ margin: 0px;
+
+ border-radius: 2px;
+ border: 0;
+ padding-left: 8px;
+ padding-right: 8px;
+ margin-left: auto;
+ margin-right: 0px;
+
+ font-size: 11px;
+ font-weight: 400;
+ white-space: nowrap;
+}
+
+#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button {
+ background-color: var(--red-70);
+}
+
+#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button:hover {
+ background-color: var(--red-80);
+}
+
+#torPreferences-connectMessageBox.error #torPreferences-connectMessageBox-button:active {
+ background-color: var(--red-90);
+}
+
+#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button {
+ background-color: var(--yellow-60);
+}
+
+#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:hover {
+ background-color: var(--yellow-70);
+ color: white!important;
+}
+
+#torPreferences-connectMessageBox.warning #torPreferences-connectMessageBox-button:active {
+ background-color: var(--yellow-80);
+ color: white!important;
+}
+
+/* Advanced Settings */
+
#torPreferences-advanced-grid {
display: grid;
grid-template-columns: auto 1fr;
diff --git a/browser/modules/TorProcessService.jsm b/browser/modules/TorProcessService.jsm
new file mode 100644
index 000000000000..201e331b2806
--- /dev/null
+++ b/browser/modules/TorProcessService.jsm
@@ -0,0 +1,12 @@
+"use strict";
+
+var EXPORTED_SYMBOLS = ["TorProcessService"];
+
+var TorProcessService = {
+ get isBootstrapDone() {
+ const svc = Cc["@torproject.org/torlauncher-process-service;1"].getService(
+ Ci.nsISupports
+ ).wrappedJSObject;
+ return svc.mIsBootstrapDone;
+ },
+};
diff --git a/browser/modules/TorProtocolService.jsm b/browser/modules/TorProtocolService.jsm
index b4e6ed9a3253..fc7f2c884aa2 100644
--- a/browser/modules/TorProtocolService.jsm
+++ b/browser/modules/TorProtocolService.jsm
@@ -1,3 +1,5 @@
+// Copyright (c) 2021, The Tor Project, Inc.
+
"use strict";
var EXPORTED_SYMBOLS = ["TorProtocolService"];
@@ -11,6 +13,10 @@ var TorProtocolService = {
Ci.nsISupports
).wrappedJSObject,
+ _tlproc: Cc["@torproject.org/torlauncher-process-service;1"].getService(
+ Ci.nsISupports
+ ).wrappedJSObject,
+
// maintain a map of tor settings set by Tor Browser so that we don't
// repeatedly set the same key/values over and over
// this map contains string keys to primitive or array values
@@ -196,11 +202,11 @@ var TorProtocolService = {
// writes current tor settings to disk
flushSettings() {
- this._tlps.TorSendCommand("SAVECONF");
+ this.sendCommand("SAVECONF");
},
- getLog() {
- let countObj = { value: 0 };
+ getLog(countObj) {
+ countObj = countObj || { value: 0 };
let torLog = this._tlps.TorGetLog(countObj);
return torLog;
},
@@ -209,4 +215,116 @@ var TorProtocolService = {
get ownsTorDaemon() {
return TorLauncherUtil.shouldStartAndOwnTor;
},
+
+ // Assumes `ownsTorDaemon` is true
+ isNetworkDisabled() {
+ const reply = TorProtocolService._tlps.TorGetConfBool(
+ "DisableNetwork",
+ true
+ );
+ if (TorProtocolService._tlps.TorCommandSucceeded(reply)) {
+ return reply.retVal;
+ }
+ return true;
+ },
+
+ enableNetwork() {
+ let settings = {};
+ settings.DisableNetwork = false;
+ let errorObject = {};
+ if (!this._tlps.TorSetConfWithReply(settings, errorObject)) {
+ throw new Error(errorObject.details);
+ }
+ },
+
+ sendCommand(cmd) {
+ return this._tlps.TorSendCommand(cmd);
+ },
+
+ retrieveBootstrapStatus() {
+ return this._tlps.TorRetrieveBootstrapStatus();
+ },
+
+ _GetSaveSettingsErrorMessage(aDetails) {
+ try {
+ return TorLauncherUtil.getSaveSettingsErrorMessage(aDetails);
+ } catch (e) {
+ console.log("GetSaveSettingsErrorMessage error", e);
+ return "Unexpected Error";
+ }
+ },
+
+ setConfWithReply(settings) {
+ let result = false;
+ const error = {};
+ try {
+ result = this._tlps.TorSetConfWithReply(settings, error);
+ } catch (e) {
+ console.log("TorSetConfWithReply error", e);
+ error.details = this._GetSaveSettingsErrorMessage(e.message);
+ }
+ return { result, error };
+ },
+
+ isBootstrapDone() {
+ return this._tlproc.mIsBootstrapDone;
+ },
+
+ clearBootstrapError() {
+ return this._tlproc.TorClearBootstrapError();
+ },
+
+ shouldShowTorConnect() {
+ return (
+ this.ownsTorDaemon &&
+ !TorLauncherUtil.useLegacyLauncher &&
+ (this.isNetworkDisabled() || !this.isBootstrapDone())
+ );
+ },
+
+ torBootstrapErrorOccurred() {
+ return this._tlproc.TorBootstrapErrorOccurred;
+ },
+
+ // Resolves to null if ok, or an error otherwise
+ connect() {
+ const kTorConfKeyDisableNetwork = "DisableNetwork";
+ const settings = {};
+ settings[kTorConfKeyDisableNetwork] = false;
+ const { result, error } = this.setConfWithReply(settings);
+ if (!result) {
+ return error;
+ }
+ try {
+ this.sendCommand("SAVECONF");
+ this.clearBootstrapError();
+ this.retrieveBootstrapStatus();
+ } catch (e) {
+ return error;
+ }
+ return null;
+ },
+
+ torLogHasWarnOrErr() {
+ return this._tlps.TorLogHasWarnOrErr;
+ },
+
+ torStopBootstrap() {
+ // Tell tor to disable use of the network; this should stop the bootstrap
+ // process.
+ const kErrorPrefix = "Setting DisableNetwork=1 failed: ";
+ try {
+ let settings = {};
+ settings.DisableNetwork = true;
+ const { result, error } = this.setConfWithReply(settings);
+ if (!result) {
+ console.log(
+ `Error stopping bootstrap ${kErrorPrefix} ${error.details}`
+ );
+ }
+ } catch (e) {
+ console.log(`Error stopping bootstrap ${kErrorPrefix} ${e}`);
+ }
+ this.retrieveBootstrapStatus();
+ },
};
diff --git a/browser/modules/TorStrings.jsm b/browser/modules/TorStrings.jsm
index bf522234d588..acbba8147803 100644
--- a/browser/modules/TorStrings.jsm
+++ b/browser/modules/TorStrings.jsm
@@ -364,6 +364,78 @@ var TorStrings = {
return retval;
})() /* Tor Network Settings Strings */,
+ torConnect: (() => {
+ const tsbNetwork = new TorDTDStringBundle(
+ ["chrome://torlauncher/locale/network-settings.dtd"],
+ ""
+ );
+ const tsbLauncher = new TorPropertyStringBundle(
+ "chrome://torlauncher/locale/torlauncher.properties",
+ "torlauncher."
+ );
+ const tsbCommon = new TorPropertyStringBundle(
+ "chrome://global/locale/commonDialogs.properties",
+ ""
+ );
+
+ const getStringNet = tsbNetwork.getString.bind(tsbNetwork);
+ const getStringLauncher = tsbLauncher.getString.bind(tsbLauncher);
+ const getStringCommon = tsbCommon.getString.bind(tsbCommon);
+
+ return {
+ torConnect: getStringNet(
+ "torsettings.wizard.title.default",
+ "Connect to Tor"
+ ),
+
+ torConnecting: getStringNet(
+ "torsettings.wizard.title.connecting",
+ "Establishing a Connection"
+ ),
+
+ torConnectingConcise: getStringNet(
+ "torConnect.connectingConcise",
+ "Connecting…"
+ ),
+
+ torBootstrapFailed: getStringLauncher(
+ "tor_bootstrap_failed",
+ "Tor failed to establish a Tor network connection."
+ ),
+
+ torConfigure: getStringNet(
+ "torsettings.wizard.title.configure",
+ "Tor Network Settings"
+ ),
+
+ copyLog: getStringNet(
+ "torConnect.copyLog",
+ "Copy Tor Logs"
+ ),
+
+ torConnectButton: getStringNet("torSettings.connect", "Connect"),
+
+ cancel: getStringCommon("Cancel", "Cancel"),
+
+ torConnected: getStringLauncher(
+ "torlauncher.bootstrapStatus.done",
+ "Connected to the Tor network"
+ ),
+
+ torConnectedConcise: getStringLauncher(
+ "torConnect.connectedConcise",
+ "Connected"
+ ),
+
+ tryAgain: getStringNet("torConnect.tryAgain", "Try connecting again"),
+ offline: getStringNet("torConnect.offline", "Offline"),
+
+ // tor connect strings for message box in about:preferences#tor
+ connectMessage: getStringNet("torConnect.connectMessage", "Changes to Tor Settings will not take effect until you connect to the Tor Network"),
+ tryAgainMessage: getStringNet("torConnect.tryAgainMessage", "Tor Browser has failed to establish a connection to the Tor Network"),
+ };
+ })(),
+
/*
Tor Onion Services Strings, e.g., for the authentication prompt.
*/
diff --git a/browser/modules/moz.build b/browser/modules/moz.build
index 5fb78d1c07a8..f2c9dabdddbe 100644
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -155,6 +155,7 @@ EXTRA_JS_MODULES += [
'TabUnloader.jsm',
'ThemeVariableMap.jsm',
'TopSiteAttribution.jsm',
+ 'TorProcessService.jsm',
'TorProtocolService.jsm',
'TorStrings.jsm',
'TransientPrefs.jsm',
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index e4a3c8d2d41c..d38e1001282b 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -8,6 +8,7 @@
# to the location of the actual manifest.
skin/classic/browser/aboutNetError.css (../shared/aboutNetError.css)
+ skin/classic/browser/onionPattern.css (../shared/onionPattern.css)
skin/classic/browser/blockedSite.css (../shared/blockedSite.css)
skin/classic/browser/error-pages.css (../shared/error-pages.css)
skin/classic/browser/aboutRestartRequired.css (../shared/aboutRestartRequired.css)
diff --git a/browser/themes/shared/onionPattern.css b/browser/themes/shared/onionPattern.css
new file mode 100644
index 000000000000..ac1af7b8d65e
--- /dev/null
+++ b/browser/themes/shared/onionPattern.css
@@ -0,0 +1,121 @@
+/* Onion pattern */
+
+:root {
+ --sqrt3: 1.73205080757;
+}
+
+.onion-pattern-container {
+ opacity: var(--onion-opacity, 1);
+ flex: auto; /* grow to consume remaining space on the page */
+ display: flex;
+ margin: 0 auto;
+ width: 100%;
+ height: calc((2 + var(--sqrt3)) * var(--onion-radius, 50px)); /* room for 2 rows of circles */
+ max-height: calc((2 + var(--sqrt3)) * var(--onion-radius, 50px));
+ direction: ltr;
+}
+
+.onion-pattern-crop {
+ display: flex;
+ justify-content: center;
+ overflow-x: hidden;
+ margin: 0 auto;
+}
+
+/* Centers horizontally within the root container*/
+.onion-pattern-column {
+ width: calc(40 * var(--onion-radius, 50px)); /* room for 20 circles in a row */
+ height: calc((2 + var(--sqrt3)) * var(--onion-radius, 50px)); /* room for 2 rows of circles */
+ flex-shrink: 0;
+ overflow-x: hidden; /* clip extra circles on the sides */
+}
+
+.onion-pattern-row {
+ width: calc(40 * var(--onion-radius, 50px)); /* room for 20 circles in a row */
+ display: flex;
+ flex-direction: row;
+ position: relative;
+}
+
+.onion-pattern-offset-row {
+ left: calc(-1 * var(--onion-radius, 50px));
+ margin-top: calc((var(--sqrt3) - 2.0) * var(--onion-radius, 50px));
+}
+
+/* With borders, circles are 100x100 pixels*/
+.circle {
+ position: relative;
+ min-width: calc(2 * var(--onion-radius, 50px));
+ min-height: calc(2 * var(--onion-radius, 50px));
+ border-radius: 50%;
+ box-sizing: border-box;
+}
+
+.inner {
+ position: absolute;
+ box-sizing: border-box;
+ border-radius: 50%;
+}
+
+.inner:nth-child(1){
+ width: 100%;
+ height: 100%;
+}
+
+.inner:nth-child(2){
+ transform: translate(20%, 20%);
+ width: calc(100% * 5/7);
+ height: calc(100% * 5/7);
+}
+
+.inner:nth-child(3){
+ transform: translate(calc(100% * 2/3), calc(100% * 2/3));
+ width: calc(100% * 3/7);
+ height: calc(100% * 3/7);
+}
+
+.inner:nth-child(4){
+ transform: translate(300%, 300%);
+ width: calc(100% * 1/7);
+ height: calc(100% * 1/7);
+}
+
+.solid {
+ background-color: var(--onion-color, #000);
+}
+
+.border {
+ border: 4px solid var(--onion-color, #000);
+}
+
+.dashed {
+ border: 4px dashed var(--onion-color, #000);
+}
+
+.dotted {
+ border: 4px dotted var(--onion-color, #000);
+}
+
+.bold {
+ border: 8px solid var(--onion-color, #000);
+}
+
+.top-half {
+ width: calc(2 * var(--onion-radius, 50px));
+ height: var(--onion-radius, 50px);
+ border-radius: var(--onion-radius, 50px) var(--onion-radius, 50px) 0 0;
+ box-sizing: border-box;
+}
+
+.bottom-half {
+ width: calc(2 * var(--onion-radius, 50px));
+ height: var(--onion-radius, 50px);
+ border-radius: 0 0 var(--onion-radius, 50px) var(--onion-radius, 50px);
+ box-sizing: border-box;
+}
+
+.scaler {
+ position: absolute;
+ left:0;
+ bottom:0;
+}
\ No newline at end of file
diff --git a/browser/themes/shared/onionPattern.inc.xhtml b/browser/themes/shared/onionPattern.inc.xhtml
new file mode 100644
index 000000000000..95f073e673b4
--- /dev/null
+++ b/browser/themes/shared/onionPattern.inc.xhtml
@@ -0,0 +1,207 @@
+<!--
+ - The abstract onion pattern begins here. There are two
+ - "onion-pattern-row" elements, each containing 14 circles. The width
+ - of "onion-pattern-row" is fixed at a value that is wide enough so the
+ - circles are not distorted by the flex-based layout. The parent
+ - "onion-pattern-container" element has overflow-x: hidden and is designed
+ - to expand to the width of the page, until it reaches a maximum width
+ - that can accommodate all 14 circles. Since the rows are wider than
+ - most browser windows, typically the two rows of onions will fill the
+ - bottom of the page. On really wide pages, the onions are centered at
+ - the bottom of the page.
+-->
+
+<div class="onion-pattern-container">
+ <div class="onion-pattern-crop">
+ <div class="onion-pattern-column">
+ <div class="onion-pattern-row">
+ <div class="circle solid"></div>
+
+ <div class="circle dashed"></div>
+
+ <div class="circle">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="bottom-half solid"></div>
+ <div class="bottom-half dotted"></div>
+ </div>
+
+ <div class="circle border"></div>
+
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle">
+ <div class="bottom-half solid"></div>
+ <div class="bottom-half solid"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle dashed"></div>
+ </div>
+
+ <div class="onion-pattern-row onion-pattern-offset-row">
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle">
+ <div class="top-half solid"></div>
+ <div class="top-half solid"></div>
+ </div>
+
+ <div class="circle border"></div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle">
+ <div class="top-half border"></div>
+ <div class="top-half dashed"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="top-half dotted"></div>
+ <div class="top-half solid"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle">
+ <div class="top-half solid"></div>
+ <div class="top-half dotted"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle">
+ <div class="top-half solid"></div>
+ <div class="top-half solid"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
index d3cc6bf7f024..297dbcdf444d 100644
--- a/browser/themes/shared/urlbar-searchbar.inc.css
+++ b/browser/themes/shared/urlbar-searchbar.inc.css
@@ -826,3 +826,5 @@
}
%include ../../components/onionservices/content/onionlocation-urlbar.css
+%include ../../components/torconnect/content/torconnect-urlbar.css
+
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index afc872569519..e74851a6672c 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
@@ -16387,9 +16387,56 @@ void Document::RemoveToplevelLoadingDocument(Document* aDoc) {
StylePrefersColorScheme Document::PrefersColorScheme(
IgnoreRFP aIgnoreRFP) const {
+
+ // tor-browser#27476
+ // should this document ignore resist finger-printing settings with regards to
+ // setting the color scheme
+ // currently only enabled for about:torconnect but we could expand to other non-
+ // SystemPrincipal pages if we wish
+ const auto documentUsesPreferredColorScheme = [](auto const* constDocument) -> bool {
+ if (auto* document = const_cast<Document*>(constDocument); document != nullptr) {
+ auto uri = document->GetDocBaseURI();
+
+ // try and extract out our prepath and filepath portions of the uri to C-strings
+ nsAutoCString prePathStr, filePathStr;
+ if(NS_FAILED(uri->GetPrePath(prePathStr)) ||
+ NS_FAILED(uri->GetFilePath(filePathStr))) {
+ return false;
+ }
+
+ // stick them in string view for easy comparisons
+ std::string_view prePath(prePathStr.get(), prePathStr.Length()),
+ filePath(filePathStr.get(), filePathStr.Length());
+
+ // these about URIs will have the user's preferred color scheme exposed to them
+ // we can place other URIs here in the future if we wish
+ // see nsIURI.idl for URI part definitions
+ constexpr struct {
+ std::string_view prePath;
+ std::string_view filePath;
+ } allowedURIs[] = {
+ { "about:", "torconnect" },
+ };
+
+ // check each uri in the allow list against this document's uri
+ // verify the prepath and the file path match
+ for(auto const& uri : allowedURIs) {
+ if (prePath == uri.prePath &&
+ filePath == uri.filePath) {
+ // positive match means we can apply dark-mode to the page
+ return true;
+ }
+ }
+ }
+
+ // do not allow if no match or other error
+ return false;
+ };
+
if (aIgnoreRFP == IgnoreRFP::No &&
- nsContentUtils::ShouldResistFingerprinting(this)) {
- return StylePrefersColorScheme::Light;
+ nsContentUtils::ShouldResistFingerprinting(this) &&
+ !documentUsesPreferredColorScheme(this)) {
+ return StylePrefersColorScheme::Light;
}
if (nsPresContext* pc = GetPresContext()) {
diff --git a/toolkit/modules/RemotePageAccessManager.jsm b/toolkit/modules/RemotePageAccessManager.jsm
index eceaa7c857de..8a6c0911a060 100644
--- a/toolkit/modules/RemotePageAccessManager.jsm
+++ b/toolkit/modules/RemotePageAccessManager.jsm
@@ -96,6 +96,7 @@ let RemotePageAccessManager = {
RPMPrefIsLocked: ["security.tls.version.min"],
RPMAddToHistogram: ["*"],
RPMGetTorStrings: ["*"],
+ RPMSendQuery: ["ShouldShowTorConnect"],
},
"about:newinstall": {
RPMGetUpdateChannel: ["*"],
@@ -179,6 +180,25 @@ let RemotePageAccessManager = {
RPMAddMessageListener: ["*"],
RPMRemoveMessageListener: ["*"],
},
+ "about:torconnect": {
+ RPMAddMessageListener: ["*"],
+ RPMSendAsyncMessage: [
+ "GoToBrowserHome",
+ "OpenTorAdvancedPreferences",
+ "TorRetrieveBootstrapStatus",
+ "TorStopBootstrap",
+ ],
+ RPMSendQuery: [
+ "GetDirection",
+ "GetLocalizedBootstrapStatus",
+ "GetTorStrings",
+ "TorBootstrapErrorOccurred",
+ "TorConnect",
+ "TorCopyLog",
+ "TorIsNetworkDisabled",
+ "TorLogHasWarnOrErr",
+ ],
+ },
},
/**
diff --git a/toolkit/themes/shared/in-content/info-pages.inc.css b/toolkit/themes/shared/in-content/info-pages.inc.css
index 6943a3340e35..5b3c911a5aab 100644
--- a/toolkit/themes/shared/in-content/info-pages.inc.css
+++ b/toolkit/themes/shared/in-content/info-pages.inc.css
@@ -41,10 +41,11 @@ body.wide-container {
background-image: url("chrome://global/skin/icons/info.svg");
background-position: left 0;
background-repeat: no-repeat;
- background-size: 1.6em;
- margin-inline-start: -2.3em;
- padding-inline-start: 2.3em;
- font-size: 2.2em;
+ background-size: 3.0em;
+ margin-inline-start: -4.5em;
+ padding-inline-start: 4.5em;
+ margin-bottom: -2.0em;
+ font-size: 1.5em;
-moz-context-properties: fill;
fill: currentColor;
}
@@ -56,7 +57,10 @@ body.wide-container {
.title-text {
font-size: inherit;
- padding-bottom: 0.4em;
+ padding-bottom: 2.0em !important;
+ line-height: 1.0em;
+ font-weight: bold;
+ vertical-align: top;
}
@media (max-width: 970px) {
@@ -68,6 +72,7 @@ body.wide-container {
.title-text {
padding-top: 0;
+ vertical-align: middle !important;
}
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
index 2ff107b553b2..f8fa83574df7 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
@@ -70,6 +70,10 @@ function getGlobalScriptIncludes(scriptPath) {
let match = line.match(globalScriptsRegExp);
if (match) {
let sourceFile = match[1]
+ .replace(
+ "chrome://browser/content/torconnect/",
+ "browser/components/torconnect/content/"
+ )
.replace(
"chrome://browser/content/search/",
"browser/components/search/content/"
1
0

[torbutton/master] Bug 27476: misc about:torconnect fixes and polish
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit 4eafa99d5a0f93184b674b099a49946f8846f766
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Feb 15 19:18:29 2021 +0100
Bug 27476: misc about:torconnect fixes and polish
- about:tor fix to prevent showing 'something went wrong page' after about:torconnect bootstrap
- directly including tor-browser's onion-pattern xhtml/css rather than duplicating
- about:tor polish: replaced png with svg icons for ddg (from ddg), mail and arrow (photon UI included from firefox)
---
chrome/content/aboutTor/aboutTor.xhtml | 195 +--------------------------------
chrome/content/torbutton.js | 4 +-
chrome/skin/aboutTor.css | 101 ++---------------
chrome/skin/dax-logo.svg | 1 +
chrome/skin/forwardArrow.png | Bin 258 -> 0 bytes
chrome/skin/searchLogo.png | Bin 1912 -> 0 bytes
jar.mn | 15 ++-
7 files changed, 31 insertions(+), 285 deletions(-)
diff --git a/chrome/content/aboutTor/aboutTor.xhtml b/chrome/content/aboutTor/aboutTor.xhtml
index 6c712a67..f3a9032f 100644
--- a/chrome/content/aboutTor/aboutTor.xhtml
+++ b/chrome/content/aboutTor/aboutTor.xhtml
@@ -23,8 +23,8 @@
<meta http-equiv="Content-Security-Policy" content="default-src resource:; object-src 'none'" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>&aboutTor.title;</title>
- <link rel="stylesheet" type="text/css" media="all"
- href="resource://torbutton-assets/aboutTor.css"/>
+ <link rel="stylesheet" href="chrome://browser/skin/onionPattern.css" type="text/css" media="all" />
+ <link rel="stylesheet" href="resource://torbutton-assets/aboutTor.css" type="text/css" media="all" />
<script type="text/javascript" src="resource://torbutton-abouttor/aboutTor.js"></script>
</head>
<body dir="&locale.dir;">
@@ -55,7 +55,7 @@
<div class="searchbox hideIfTorOff"> <!-- begin form based search -->
<form action="&aboutTor.searchDDGPost.link;" method="get">
<div class="searchwrapper">
- <label class="searchlabel" for="search-text"> </label>
+ <label class="searchlabel" for="search-text"></label>
<input name="q" id="search-text" placeholder="&aboutTor.search.label;"
autocomplete="off" type="text"/>
<input id="search-button" value=""
@@ -71,198 +71,13 @@
</p>
<p id="manual" class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
<a id="manualLink" target="_blank">&aboutTor.torbrowser_user_manual_link.label;</a></p>
- <p id="newsletter" class="moreInfoLink"><img class="imageStyle" src="resource://torbutton-assets/icon-newsletter.png"/><br/>&aboutTor.newsletter.tagline;<br/>
+ <p id="newsletter" class="moreInfoLink"><img class="imageStyle" src="chrome://browser/skin/mail.svg"/><br/>&aboutTor.newsletter.tagline;<br/>
<a href="https://newsletter.torproject.org">&aboutTor.newsletter.link_text; »</a>
</p>
<p id="mission">&aboutTor.tor_mission.label;
<a id="getInvolvedLink">&aboutTor.getInvolved.label;</a></p>
</div>
</div>
-
-<!--
- - The abstract onion pattern begins here. There are two
- - "onion-pattern-row" elements, each containing 14 circles. The width
- - of "onion-pattern-row" is fixed at a value that is wide enough so the
- - circles are not distorted by the flex-based layout. The parent
- - "onion-pattern-container" element has overflow-x: hidden and is designed
- - to expand to the width of the page, until it reaches a maximum width
- - that can accommodate all 14 circles. Since the rows are wider than
- - most browser windows, typically the two rows of onions will fill the
- - bottom of the page. On really wide pages, the onions are centered at
- - the bottom of the page.
- -->
- <div class="onion-pattern-container">
- <div class="onion-pattern-row">
- <div class="circle solid"></div>
-
- <div class="circle border"></div>
-
- <div class="circle border">
- <div class="inner border"></div>
- <div class="inner border"></div>
- <div class="inner border"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half dotted"></div>
- </div>
-
- <div class="circle dotted"></div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle dashed"></div>
-
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle bold"></div>
-
- <div class="circle solid"></div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle border">
- <div class="inner border"></div>
- <div class="inner border"></div>
- <div class="inner border"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half solid"></div>
- </div>
-
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle dotted"></div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle dashed"></div>
-
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle bold"></div>
-
- <div class="circle solid"></div>
- </div>
-
- <div class="onion-pattern-row onion-pattern-offset-row">
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle bold"></div>
-
- <div class="circle solid"></div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle border">
- <div class="inner border"></div>
- <div class="inner border"></div>
- <div class="inner border"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half solid"></div>
- </div>
-
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle solid"></div>
-
- <div class="circle border"></div>
-
- <div class="circle border">
- <div class="inner border"></div>
- <div class="inner border"></div>
- <div class="inner border"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half dotted"></div>
- </div>
-
- <div class="circle dotted"></div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle dashed"></div>
-
- <div class="circle solid"></div>
-
- <div class="circle dashed">
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- <div class="inner dashed"></div>
- </div>
-
- <div class="circle border">
- <div class="inner border"></div>
- <div class="inner border"></div>
- <div class="inner border"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half solid"></div>
- </div>
-
- <div class="circle dotted">
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- <div class="inner dotted"></div>
- </div>
-
- <div class="circle">
- <div class="half solid"></div>
- <div class="half dotted"></div>
- </div>
-
- <div class="circle dotted"></div>
- </div>
- </div>
+#include ../../../../../../browser/themes/shared/onionPattern.inc.xhtml
</body>
</html>
diff --git a/chrome/content/torbutton.js b/chrome/content/torbutton.js
index 39c1abeb..48539a96 100644
--- a/chrome/content/torbutton.js
+++ b/chrome/content/torbutton.js
@@ -934,8 +934,7 @@ function torbutton_do_tor_check()
{
let checkSvc = Cc["@torproject.org/torbutton-torCheckService;1"]
.getService(Ci.nsISupports).wrappedJSObject;
- if (checkSvc.kCheckNotInitiated != checkSvc.statusOfTorCheck ||
- m_tb_prefs.getBoolPref("extensions.torbutton.use_nontor_proxy") ||
+ if (m_tb_prefs.getBoolPref("extensions.torbutton.use_nontor_proxy") ||
!m_tb_prefs.getBoolPref("extensions.torbutton.test_enabled"))
return; // Only do the check once.
@@ -1119,6 +1118,7 @@ function torbutton_initiate_remote_tor_check() {
function torbutton_tor_check_ok()
{
+ torbutton_do_tor_check();
let checkSvc = Cc["@torproject.org/torbutton-torCheckService;1"]
.getService(Ci.nsISupports).wrappedJSObject;
return (checkSvc.kCheckFailed != checkSvc.statusOfTorCheck);
diff --git a/chrome/skin/aboutTor.css b/chrome/skin/aboutTor.css
index 8d5c4a83..38486241 100644
--- a/chrome/skin/aboutTor.css
+++ b/chrome/skin/aboutTor.css
@@ -9,6 +9,9 @@
--abouttor-text-color: white;
--abouttor-bg-toron-color: #420C5D;
--abouttor-bg-toroff-color: #A4000F;
+ --onion-opacity: 0.2;
+ --onion-color: #fff;
+ --onion-radius: 50px;
}
* {
@@ -23,6 +26,7 @@ html {
body {
display: flex;
flex-direction: column;
+ justify-content: space-between;
width: 100%;
height: 100%;
margin: 0px auto;
@@ -159,7 +163,11 @@ body:not([showmanual]) .showForManual {
}
#bottom img.imageStyle {
- padding-inline-end: 10px;
+ padding-inline-end: 0.5em;
+ height: 1.5em;
+ vertical-align: bottom;
+ -moz-context-properties: fill;
+ fill: white;
}
/* Hide the linebreaks on large enough screens (desktops, laptops, and
@@ -195,7 +203,7 @@ body:not([showmanual]) .showForManual {
height: auto;
width: 50px;
display: inline-block;
- background: url('searchLogo.png') no-repeat center center;
+ background: url('dax-logo.svg') no-repeat center center;
background-size: 30px 30px;
}
@@ -203,8 +211,8 @@ body:not([showmanual]) .showForManual {
height: auto;
width: 36px;
border: 0;
- background: url('forwardArrow.png') no-repeat center center;
- background-size: 16px 14px;
+ background: url('chrome://browser/skin/forward.svg') no-repeat center center;
+ background-size: 16px 16px;
cursor: pointer;
}
@@ -220,91 +228,6 @@ body:not([showmanual]) .showForManual {
margin: 0;
font-size: 15px;
}
-
-.onion-pattern-container {
- flex: auto; /* grow to consume remaining space on the page */
- display: flex;
- flex-direction: column;
- justify-content: end; /* position circles at the bottom */
- margin: 0px auto;
- width: 100%;
- max-width: 2200px; /* room for our 20 circles */
- min-height: 232px; /* room for 2 rows of circles */
- overflow-x: hidden; /* clip extra circles on the sides */
- direction: ltr;
-}
-
-.onion-pattern-row {
- width: 2200px;
- display: flex;
- flex-direction: row;
- position: relative;
-}
-
-.onion-pattern-offset-row {
- left: -40px;
-}
-
-/* With borders, circles range in size from 100 x 100px to 116 x 116px. */
-.circle {
- opacity: 0.2;
- position: relative;
- width: 100px;
- height: 100px;
- border-radius: 50%;
-}
-
-.inner {
- position: absolute;
-}
-
-.inner:nth-child(1){
- transform: translate(calc(12.5% - 2px),calc(12.5% - 2px));
- width: calc(100% * 0.75);
- height: calc(100% * 0.75);
- border-radius: 50%;
-}
-
-.inner:nth-child(2){
- transform: translate(calc(40% - 2px),calc(40% - 2px));
- width: calc(100% * 0.5);
- height: calc(100% * 0.5);
- border-radius: 50%;
-}
-
-.inner:nth-child(3){
- transform: translate(calc(108% - 2px),calc(108% - 2px));
- width: calc(100% * 0.25);
- height: calc(100% * 0.25);
- border-radius: 50%;
-}
-
-.solid {
- background-color: #fff;
-}
-
-.border {
- border: 4px solid #fff;
-}
-
-.dashed {
- border: 4px dashed #fff;
-}
-
-.dotted {
- border: 4px dotted #fff;
-}
-
-.bold {
- border: 8px solid #fff;
-}
-
-.half {
- width: 100px;
- height: 50px;
- border-radius: 50px 50px 0 0;
-}
-
/*
* Mobile specific css
*/
diff --git a/chrome/skin/dax-logo.svg b/chrome/skin/dax-logo.svg
new file mode 100644
index 00000000..94ad7c35
--- /dev/null
+++ b/chrome/skin/dax-logo.svg
@@ -0,0 +1 @@
+<svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="50.833" cy="50.833" r="50.25"/><linearGradient x1="3.084%" y1="49.368%" x2="100.592%" y2="49.368%" id="c"><stop stop-color="#6176B9" offset=".56%"/><stop stop-color="#394A9F" offset="69.1%"/></linearGradient><linearGradient x1="-.006%" y1="49.006%" x2="98.932%" y2="49.006%" id="d"><stop stop-color="#6176B9" offset=".56%"/><stop stop-color="#394A9F" offset="69.1%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><circle fill="#FFF" cx="60" cy="60" r="57.5"/><ellipse fill="#DE5833" cx="60" cy="60" rx="50.25" ry="50.25"/><path d="M60 120C26.917 120 0 93.083 0 60S26.917 0 60 0s60 26.917 60 60-26.917 60-60 60zM60 4.917C29.667 4.917 4.917 29.583 4.917 60c0 30.333 24.666 55.083 55.083 55.083 30.417 0 55.083-24.666 55.083-55.083 0-30.333-24.75-55.083-55.083-55.083z" fill="#DE5833"/><g transform="translate(9.167 9.167)"><mask id
="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#DE5833" xlink:href="#a"/><g mask="url(#b)"><path d="M71.917 127.25c-1.75-8.25-12.25-27.167-16.334-35.083-3.916-7.917-7.916-19.084-6.083-26.417.417-1.417-3.333-11.417-2.333-12 8.5-5.5 10.666.583 14-1.75 1.75-1.167 4.166 1 4.75-1 2.166-7.667-2.917-20.917-8.834-26.583-2-2-4.75-3.167-8.083-3.75-1.167-1.75-3.333-3.334-6.083-4.917-3.167-1.75-10.25-3.917-13.834-4.5-2.583-.417-3.166.167-4.166.417 1 0 5.75 2.333 6.666 2.583-1 .583-3.583 0-5.333.75-.75.417-1.583 2-1.583 2.583 4.916-.583 12.583 0 17.166 2-3.583.417-9.083.75-11.416 2.167-6.917 3.583-9.834 12-8.084 22.25 1.75 10.083 9.834 47.083 12.25 59.333 2.584 12.25-5.5 20.334-10.416 22.5l5.5.417-1.75 3.917c6.5.75 13.833-1.417 13.833-1.417-1.417 3.917-11.25 5.5-11.25 5.5s4.75 1.417 12.25-1.417c7.667-2.916 12.25-4.75 12.25-4.75l7.5 9.417 2.917-6.917 6.916 7.25c-.25-.5 1.334-2.25-.416-10.583z" fill="#D5D7D8"/><path d="M74.083 125.5c-1.75-8.25-12.25-27.167-16.333-35.083C53.833 82.5 49.83
3 71.333 51.667 64c.416-1.417.416-6.667 1.416-7.5 8.5-5.5 7.917-.167 11.25-2.583 1.75-1.167 3.167-2.75 3.75-4.917 2.167-7.667-2.916-20.917-8.833-26.583-2-2-4.75-3.167-8.083-3.75-1.167-1.75-3.334-3.334-6.084-4.917-5.333-2.917-12-3.917-18.333-2.917 1 0 3.333 2.167 4.167 2.334-1.417 1-5.084.75-5.084 2.916 4.917-.416 10.25.167 15 2.334-3.583.416-6.916 1.416-9.25 2.583-6.916 3.583-8.666 10.833-6.916 20.917C26.417 52 34.5 89 36.917 101.25c2.583 12.25-5.5 20.333-10.417 22.5l5.5.417-1.75 3.916c6.5.75 13.833-1.416 13.833-1.416-1.416 3.916-11.25 5.5-11.25 5.5s4.75 1.416 12.25-1.417c7.667-2.917 12.25-4.75 12.25-4.75l3.584 9.417 6.916-6.917 2.917 7.25c-.417 0 5.083-1.75 3.333-10.25z" fill="#FFF"/><path d="M32.5 42.583c0-2.166 1.75-3.75 3.75-3.75 2.167 0 3.75 1.75 3.75 3.75 0 2.167-1.75 3.75-3.75 3.75-2.167 0-3.75-1.583-3.75-3.75z" fill="#2D4F8E"/><path d="M36.833 41.167c0-.584.417-1 1-1 .584 0 1 .416 1 1 0 .583-.416 1-1 1-.416 0-1-.417-1-1z" fill="#FFF"/><path d="M58.333 40.167c0-1.75 1.417-3.3
34 3.334-3.334 1.75 0 3.333 1.417 3.333 3.334 0 1.75-1.417 3.333-3.333 3.333-1.75.083-3.334-1.333-3.334-3.333z" fill="#2D4F8E"/><path d="M62.25 39.167c0-.417.417-.75.75-.75.417 0 .75.416.75.75 0 .416-.417.75-.75.75-.333.083-.75-.334-.75-.75z" fill="#FFF"/><path d="M15.583 21.5s-2.916-1.417-5.75.417c-2.75 1.75-2.75 3.583-2.75 3.583S5.5 22.167 9.417 20.583c4.416-1.583 6.166.917 6.166.917z" fill="url(#c)" transform="translate(21.667 10)"/><path d="M42 21.333s-2-1.166-3.75-1.166c-3.333 0-4.167 1.583-4.167 1.583s.584-3.583 4.75-2.75c2.334.167 3.167 2.333 3.167 2.333z" fill="url(#d)" transform="translate(21.667 10)"/><path d="M47.917 57.167c.416-2.334 6.333-6.667 10.416-6.917 4.167-.167 5.5-.167 9.084-1C71 48.5 80 46.083 82.583 44.917c2.584-1.167 13.167.583 5.75 4.75-3.166 1.75-12 5.083-18.333 7.083-6.333 1.75-10.083-1.75-12 1.417-1.583 2.333-.417 5.75 7.083 6.5 10.084 1 19.667-4.5 20.667-1.584 1 2.917-8.667 6.5-14.583 6.667-5.917.167-17.917-3.917-19.667-5.083-1.833-1.584-4.25-4.417-3.583
-7.5z" fill="#FDD20A"/></g></g><path d="M61.583 94.917s-14.166-7.5-14.416-4.5C47 93.583 47.167 106 48.75 107c1.583 1 13.417-6.083 13.417-6.083l-.584-6zm5.5-.667S76.75 87 78.917 87.333c2.166.417 2.583 15.584.75 16.334-1.917.833-13-3.667-13-3.667l.416-5.75z" fill="#65BC46"/><path d="M58.25 95.667c0 4.916-.75 7.083 1.417 7.5 2.166.416 6.083 0 7.5-1 1.416-1 .166-7.25-.167-8.5-.667-1.167-8.75-.167-8.75 2z" fill="#43A244"/><path d="M59 94.5c0 4.917-.75 7.083 1.417 7.5 2.166.417 6.083 0 7.5-1 1.416-1 .166-7.25-.167-8.5-.5-1-8.75-.167-8.75 2z" fill="#65BC46"/></g></svg>
\ No newline at end of file
diff --git a/chrome/skin/forwardArrow.png b/chrome/skin/forwardArrow.png
deleted file mode 100644
index ceea950f..00000000
Binary files a/chrome/skin/forwardArrow.png and /dev/null differ
diff --git a/chrome/skin/searchLogo.png b/chrome/skin/searchLogo.png
deleted file mode 100644
index 98ae319e..00000000
Binary files a/chrome/skin/searchLogo.png and /dev/null differ
diff --git a/jar.mn b/jar.mn
index c8fd813f..6476f8ff 100644
--- a/jar.mn
+++ b/jar.mn
@@ -4,10 +4,17 @@ torbutton.jar:
% content torbutton %content/
- content/ (chrome/content/*)
- components/ (components/*)
- modules/ (modules/*)
- skin/ (chrome/skin/*)
+ content/torbutton.js (chrome/content/torbutton.js)
+ content/tor-circuit-display.js (chrome/content/tor-circuit-display.js)
+ content/preferences.xhtml (chrome/content/preferences.xhtml)
+ content/aboutTor/aboutTor-content.js (chrome/content/aboutTor/aboutTor-content.js)
+* content/aboutTor/aboutTor.xhtml (chrome/content/aboutTor/aboutTor.xhtml)
+ content/aboutTor/resources/aboutTor.js (chrome/content/aboutTor/resources/aboutTor.js)
+ content/preferences-mobile.js (chrome/content/preferences-mobile.js)
+
+ components/ (components/*)
+ modules/ (modules/*)
+ skin/ (chrome/skin/*)
% resource torbutton %
% resource torbutton-abouttor resource://torbutton/content/aboutTor/resources/ contentaccessible=yes
1
0

[torbutton/master] Merge remote-tracking branch 'richardgl/27476_rev'
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit 5a2ad51c81ade35f471f971da81ff0698bf710a8
Merge: 2c03b2c3 4eafa99d
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 17 19:27:10 2021 +0000
Merge remote-tracking branch 'richardgl/27476_rev'
chrome/content/aboutTor/aboutTor.xhtml | 195 +--------------------------------
chrome/content/torbutton.js | 4 +-
chrome/skin/aboutTor.css | 101 ++---------------
chrome/skin/dax-logo.svg | 1 +
chrome/skin/forwardArrow.png | Bin 258 -> 0 bytes
chrome/skin/searchLogo.png | Bin 1912 -> 0 bytes
jar.mn | 15 ++-
7 files changed, 31 insertions(+), 285 deletions(-)
1
0

[tor-browser-build/master] Bug 40297: Use the right commits for get_gradle_dependencies_list
by sysrqb@torproject.org 17 May '21
by sysrqb@torproject.org 17 May '21
17 May '21
commit d6fbd77f14e646c7030577cea1b10429129850b4
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Fri May 14 11:07:33 2021 +0200
Bug 40297: Use the right commits for get_gradle_dependencies_list
---
projects/android-components/config | 4 +++-
projects/fenix/config | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index 3b709a6..1f98428 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -16,10 +16,11 @@ var:
gradle_dependencies_version: 24
gradle_version: 6.6.1
glean_parser: 2.2.0
+ git_branch: '[% project %]-[% c("var/android_components_version") %]-[% c("var/torbrowser_branch") %]-1'
targets:
nightly:
- git_hash: '[% project %]-[% c("var/android_components_version") %]-[% c("var/torbrowser_branch") %]-1'
+ git_hash: '[% c("var/git_branch") %]'
tag_gpg_id: 0
input_files:
@@ -81,5 +82,6 @@ steps:
get_gradle_dependencies_list:
filename: 'gradle-dependencies-list-[% c("var/android_components_version") %].txt'
get_gradle_dependencies_list: '[% INCLUDE build %]'
+ git_hash: '[% c("var/git_branch") %]^{/Bug 40023: Stop PrivateNotificationService}'
var:
fetch_gradle_dependencies: 1
diff --git a/projects/fenix/config b/projects/fenix/config
index 9a54715..6f349ac 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -10,6 +10,7 @@ variant: Beta
var:
fenix_version: 88.1.3
torbrowser_branch: 10.5
+ git_branch: 'tor-browser-[% c("var/fenix_version") %]-[% c("var/torbrowser_branch") %]-1'
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
@@ -20,7 +21,7 @@ var:
targets:
nightly:
- git_hash: 'tor-browser-[% c("var/fenix_version") %]-[% c("var/torbrowser_branch") %]-1'
+ git_hash: '[% c("var/git_branch") %]'
tag_gpg_id: 0
variant: Nightly
@@ -64,6 +65,7 @@ steps:
use_container: 0
get_gradle_dependencies_list:
+ git_hash: '[% c("var/git_branch") %]^{/Add Tor integration and UI}'
filename: 'gradle-dependencies-list-[% c("var/fenix_version") %].txt'
get_gradle_dependencies_list: '[% INCLUDE build %]'
var:
1
0

[torbutton/master] fixup! Bug 40035: Localize Cryptocurrency Safety messages
by sysrqb@torproject.org 13 May '21
by sysrqb@torproject.org 13 May '21
13 May '21
commit 2c03b2c398e111fa185f34a616ceb7448c9a0c26
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu May 13 16:18:23 2021 +0000
fixup! Bug 40035: Localize Cryptocurrency Safety messages
---
chrome/locale/en-US/torbutton.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/locale/en-US/torbutton.properties b/chrome/locale/en-US/torbutton.properties
index 4c153158..0f4594bc 100644
--- a/chrome/locale/en-US/torbutton.properties
+++ b/chrome/locale/en-US/torbutton.properties
@@ -139,7 +139,7 @@ onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Onion Services
-# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+# LOCALIZATION NOTE: %S will be replaced with the cryptocurrency address.
cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
cryptoSafetyPrompt.whatCanHeading=What can you do about it?
cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
1
0

[tor-launcher/master] fixup! Bug 27476: about:torconnect fixes and new strings
by sysrqb@torproject.org 13 May '21
by sysrqb@torproject.org 13 May '21
13 May '21
commit 4763691a739ce2cb2b8cfda07eb76ccf2e51f41a
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu May 13 16:16:36 2021 +0000
fixup! Bug 27476: about:torconnect fixes and new strings
---
src/chrome/locale/en-US/torlauncher.properties | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/chrome/locale/en-US/torlauncher.properties b/src/chrome/locale/en-US/torlauncher.properties
index 7787698..e0b07f0 100644
--- a/src/chrome/locale/en-US/torlauncher.properties
+++ b/src/chrome/locale/en-US/torlauncher.properties
@@ -94,4 +94,4 @@ torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
-torlauncher.copiedNLogMessages=Copied %S Logs
+torlauncher.copiedNLogMessagesShort=Copied %S Logs
1
0
commit b89f42cdb5117d082d945816ce132da0499173af
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Fri Apr 30 22:45:36 2021 +0000
Bug 40017: Add FF88 audit
---
audits/FF88_NETWORK_AUDIT | 141 ++++++++++++++++++++++++++++++++++++++++++++++
audits/code_audit.sh | 6 +-
2 files changed, 146 insertions(+), 1 deletion(-)
diff --git a/audits/FF88_NETWORK_AUDIT b/audits/FF88_NETWORK_AUDIT
new file mode 100644
index 0000000..6462aad
--- /dev/null
+++ b/audits/FF88_NETWORK_AUDIT
@@ -0,0 +1,141 @@
+=============== Firefox General =============
+
+Start: 4068febfd76d9ec557591240d7496be42c27c17f # FIREFOX_87_0_BUILD3
+End: 676143236541851e068696fa4528d87a9bb0088d # FIREFOX_88_0_BUILD1
+
+=============== Firefox Native DNS Portion =============
+
+PR_GetHostByName
+PR_GetIPNodeByName
+PR_GetAddrInfoByName
+PR_StringToNetAddr (itself is good as it passes AI_NUMERICHOST to getaddrinfo. No resolution.)
+
+MDNS
+TRR (DNS Trusted Recursive Resolver)
+Direct Paths to DNS resolution:
+nsDNSService::Resolve
+nsDNSService::AsyncResolve
+nsHostResolver::ResolveHost
+
+# FF88: Nothing of interest
+
+============ Firefox Misc Socket Portion ==============
+
+SOCK_
+SOCKET_
+_SOCKET
+
+UDPSocket
+TCPSocket
+ PR_NewTCPSocket
+ AsyncTCPSocket
+
+Misc PR_Socket
+
+# FF88: Nothing of interest
+
+=========== Firefox Misc XPCOM Portion ================
+
+Misc XPCOM (including commands for pre-diff review approach)
+ *SocketProvider
+ grep -R udp-socket .
+ grep -R tcp-socket .
+ grep for tcpsocket
+ grep -R "NS_" | grep SOCKET | grep "_C"
+ grep -R "@mozilla.org/network/" . | grep socket | grep -v udp-socket
+
+# FF88: Nothing of interest
+
+============ Firefox Rust Portion ================
+
+Rust
+
+# FF88: Nothing of interest (using `java_audit.sh`)
+
+============ Firefox Android Portion =============
+
+Android Java calls
+ - URLConnection
+ - XXX: getInputStream? other methods?
+ - HttpURLConnection
+ - UrlConnectionDownloader
+ - ch.boye.httpclientandroidlib.impl.client.* (look for execute() calls)
+ - grep -n openConnection\( mobile/android/thirdparty/
+ - java.net.URL -- has SEVERAL proxy bypass URL fetching methods :/
+ - java.net
+ - javax.net
+ - ch.boye.httpclientandroidlib.conn.* (esp ssl)
+ - ch.boye.httpclientandroidlib.impl.conn.* (esp ssl)
+ - Sudden appearance of thirdparty libs:
+ - OkHttp
+ - Retrofit
+ - Glide
+ - com.amitshekhar.android
+ - IntentHelper
+ - openUriExternal (can come from GeckoAppShell too)
+ - getHandlersForMimeType
+ - getHandlersForURL
+ - getHandlersForIntent
+ - android.content.Intent - too common; instead find launch methods:
+ - startActivity
+ - startActivities
+ - sendBroadcast
+ - sendOrderedBroadcast
+ - startService
+ - bindService
+ - android.app.PendingIntent
+ - android.app.DownloadManager
+ - ActivityHandlerHelper.startIntentAndCatch
+
+# FF88
+# Bug 1694481
+# - Removes unused code
+
+============ Application Services Portion =============
+
+Start: 1ee6b32f3ee569036fdf1015cf7ffc01ded2860f # v71.0.0
+End: ad7b64fa03eeeb00815125e635d1fb8809befd40 # v74.0.1
+
+# FF88: Nothing related to networking in Java/Koltlin/Rust code (using `code_audit.sh`)
+
+============ Android Components Portion =============
+
+Start: bea80bbaccc431994a534a087b223563826ac256 # v73.0.11
+End: e09d8a00b5eae63767d905a74966be301b5dd059 # v74.0.11
+
+# FF88 (using `code_audit.sh`)
+# Issue #9823
+# - Make users aware that download was not performed because of a denied permission
+# - Review Result: Safe
+# - Comments:
+# - Calls startActivity(), but the target is hard-coded as the Android Settings
+
+# Issue #9757
+# - Remove downloads notification when private tabs are closed
+# - Review Result: Safe
+# - Comment:
+# - Calls startService(), but the target is hard-coded as the internal Downloads Service
+
+# Issue #9713
+# - Autofill: Support alternative authentication methods
+# - Review Result: Conditionally Safe
+# - Comment:
+# - Calls startActivityForResult() with an arbitrary target Activity.
+# - Fenix instantiates the configuration using itself as the target.
+
+============ Fenix Portion =============
+
+Start: 9d91b8eeb9d287ee95937b5edfffde383982267a # v87.0.0-rc.1
+End: 5f98c4ec98d663c763dc4ec5ea84a14cdf342d04 # v88.1.1
+
+# FF88: (using `java_audit.sh`)
+# - 8856a3c1d769586bfd6daa7b3b2df48fb26f1bc3
+# - Integrate Android Autofill support into Nightly and debug builds.
+# - Review Result: Safe (but see fenix#40160)
+
+============ Regression/Prior Vuln Review =========
+
+Review proxy bypass bugs; check for new vectors to look for:
+ - https://trac.torproject.org/projects/tor/query?keywords=~tbb-proxy
+ - Look for new features like these. Especially external app launch vectors
+
diff --git a/audits/code_audit.sh b/audits/code_audit.sh
index c7c0848..d260d15 100755
--- a/audits/code_audit.sh
+++ b/audits/code_audit.sh
@@ -55,6 +55,10 @@ initialize_java_symbols() {
KEYWORDS+=(ActivityDelegate)
# Added in FF87 audit
KEYWORDS+=(AutofillService)
+ # Added in FF88 audit
+ KEYWORDS+=(AutofillConfiguration)
+ KEYWORDS+=(Authenticator)
+ KEYWORDS+=(AutofillUnlockActivity)
}
initialize_rust_symbols() {
@@ -155,7 +159,7 @@ done
echo "Diffing patches-${OLD}-${NEW}-${SCOPE}.diff from all ${path[*]} files"
# Exclude Deleted and Unmerged files from diff
DIFF_FILTER=ACMRTXB
-git diff --color=always --color-moved --diff-filter="${DIFF_FILTER}" -U20 -G"${GREP_LINE}" "$OLD" "$NEW" -- "${path[@]}" > "patches-${OLD}-${NEW}-${SCOPE}.diff"
+git diff --stat --color=always --color-moved --diff-filter="${DIFF_FILTER}" -U20 -G"${GREP_LINE}" "$OLD" "$NEW" -- "${path[@]}" > "patches-${OLD}-${NEW}-${SCOPE}.diff"
# Step 4: Highlight the keyword with an annoying, flashing color
export GREP_COLOR="05;37;41"
1
0

[tor-browser/tor-browser-78.10.0esr-10.5-1] squash! 40209: Implement Basic Crypto Safety
by sysrqb@torproject.org 13 May '21
by sysrqb@torproject.org 13 May '21
13 May '21
commit 627d83ded2fb977f68da7fcaad0ee763ec5223ec
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed May 5 16:53:11 2021 +0000
squash! 40209: Implement Basic Crypto Safety
Bug 40428: Fix string attribute names
---
browser/modules/TorStrings.jsm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/browser/modules/TorStrings.jsm b/browser/modules/TorStrings.jsm
index bf522234d588..1e08b168e4af 100644
--- a/browser/modules/TorStrings.jsm
+++ b/browser/modules/TorStrings.jsm
@@ -115,33 +115,33 @@ var TorStrings = {
let retval = {
cryptoWarning: getString(
- "cryptoSafetyPrompt.cryptoWarning",
+ "cryptoWarning",
"A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified."
),
whatCanHeading: getString(
- "cryptoSafetyPrompt.whatCanHeading",
+ "whatCanHeading",
"What can you do about it?"
),
whatCanBody: getString(
- "cryptoSafetyPrompt.whatCanBody",
+ "whatCanBody",
"You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning."
),
- learnMore: getString("cryptoSafetyPrompt.learnMore", "Learn more"),
+ learnMore: getString("learnMore", "Learn more"),
learnMoreURL: `https://support.torproject.org/${getLocale()}/`,
primaryAction: getString(
- "cryptoSafetyPrompt.primaryAction",
+ "primaryAction",
"Reload Tab with a New Circuit"
),
primaryActionAccessKey: getString(
- "cryptoSafetyPrompt.primaryActionAccessKey",
+ "primaryActionAccessKey",
"R"
),
secondaryAction: getString(
- "cryptoSafetyPrompt.secondaryAction",
+ "secondaryAction",
"Dismiss Warning"
),
secondaryActionAccessKey: getString(
- "cryptoSafetyPrompt.secondaryActionAccessKey",
+ "secondaryActionAccessKey",
"D"
),
};
1
0

12 May '21
commit f3cfdde8282b078341840388670f51e5665cb823
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Fri Apr 9 17:38:31 2021 +0000
Release preparations for 0.2.28
Version bump
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index 510052a..c438e7b 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.27</em:version>
+ <em:version>0.2.28</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>data:text/plain,</em:updateURL>
1
0

[tor-launcher/master] Merge remote-tracking branch 'richardgl/27476_rev2'
by sysrqb@torproject.org 12 May '21
by sysrqb@torproject.org 12 May '21
12 May '21
commit c366446e5eebb9e8acedae7ccef558dc541aedec
Merge: f3cfdde e5b0e02
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed May 12 20:33:27 2021 +0000
Merge remote-tracking branch 'richardgl/27476_rev2'
src/chrome/locale/en-US/network-settings.dtd | 9 +++++++++
src/chrome/locale/en-US/torlauncher.properties | 2 ++
src/components/tl-process.js | 6 +++++-
src/modules/tl-util.jsm | 15 +++++++++++++++
4 files changed, 31 insertions(+), 1 deletion(-)
1
0

[tor-launcher/master] Bug 27476: about:torconnect fixes and new strings
by sysrqb@torproject.org 12 May '21
by sysrqb@torproject.org 12 May '21
12 May '21
commit e5b0e027aa8879e6971b6afb75023a0b9e13c3bb
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Feb 15 16:21:26 2021 +0100
Bug 27476: about:torconnect fixes and new strings
- torlauncher.properties::torlauncher.copiedNLogMessagesShort : reduced verbosity version of torlauncher.copiednLogMessages for Copy Log button tooltip
- network-settings.dtd::torConnect.copyLog : label for 'Copy Log' button in about:torconnect
- added various new strings for about:torconnect to en_US network-settings.dtd
- disables legacy launcher unless "TOR_USE_LEGACY_LAUNCHER" environet variable is defined
---
src/chrome/locale/en-US/network-settings.dtd | 9 +++++++++
src/chrome/locale/en-US/torlauncher.properties | 2 ++
src/components/tl-process.js | 6 +++++-
src/modules/tl-util.jsm | 15 +++++++++++++++
4 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/chrome/locale/en-US/network-settings.dtd b/src/chrome/locale/en-US/network-settings.dtd
index d4c7def..81163a1 100644
--- a/src/chrome/locale/en-US/network-settings.dtd
+++ b/src/chrome/locale/en-US/network-settings.dtd
@@ -81,3 +81,12 @@
<!ENTITY torPreferences.viewTorLogs "View the Tor logs.">
<!ENTITY torPreferences.viewLogs "View Logs…">
<!ENTITY torPreferences.torLogsDialogTitle "Tor Logs">
+
+<!-- #24746 about:torconnect strings -->
+<!ENTITY torConnect.tryAgain "Try Connecting Again">
+<!ENTITY torConnect.offline "Offline">
+<!ENTITY torConnect.connectMessage "Changes to Tor Settings will not take effect until you connect to the Tor Network">
+<!ENTITY torConnect.tryAgainMessage "Tor Browser has failed to establish a connection to the Tor Network">
+<!ENTITY torConnect.connectingConcise "Connecting…">
+<!ENTITY torConnect.connectedConcise "Connected">
+<!ENTITY torConnect.copyLog "Copy Tor Logs">
diff --git a/src/chrome/locale/en-US/torlauncher.properties b/src/chrome/locale/en-US/torlauncher.properties
index 6ec8c40..7787698 100644
--- a/src/chrome/locale/en-US/torlauncher.properties
+++ b/src/chrome/locale/en-US/torlauncher.properties
@@ -93,3 +93,5 @@ torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+
+torlauncher.copiedNLogMessages=Copied %S Logs
diff --git a/src/components/tl-process.js b/src/components/tl-process.js
index e9d7cde..a4374f9 100644
--- a/src/components/tl-process.js
+++ b/src/components/tl-process.js
@@ -583,6 +583,10 @@ TorProcessService.prototype =
if (aIsRunningTor)
this._monitorTorProcessStartup();
+ if (!TorLauncherUtil.useLegacyLauncher) {
+ return;
+ }
+
var bridgeConfigIsBad = (this._defaultBridgesStatus ==
this.kDefaultBridgesStatus_BadConfig);
if (TorLauncherUtil.shouldShowNetworkSettings || bridgeConfigIsBad)
@@ -814,7 +818,7 @@ TorProcessService.prototype =
this.mObsSvc.notifyObservers(errorObj, aNotifyTopic, null);
}
- if (!errorObj.handled)
+ if (TorLauncherUtil.useLegacyLauncher && !errorObj.handled)
{
let msg = aMessage;
if (aDetails)
diff --git a/src/modules/tl-util.jsm b/src/modules/tl-util.jsm
index b721372..76cdb5b 100644
--- a/src/modules/tl-util.jsm
+++ b/src/modules/tl-util.jsm
@@ -366,6 +366,17 @@ let TorLauncherUtil = // Public
return this.getBoolPref(kPrefPromptForLocale, true); */
},
+ get useLegacyLauncher() {
+ const kEnvUseLegacyLauncher = "TOR_USE_LEGACY_LAUNCHER";
+ const env = Cc["@mozilla.org/process/environment;1"].getService(
+ Ci.nsIEnvironment
+ );
+ if (env.exists(kEnvUseLegacyLauncher)) {
+ return "1" == env.get(kEnvUseLegacyLauncher);
+ }
+ return false;
+ },
+
get shouldShowNetworkSettings()
{
const kPrefPromptAtStartup = "extensions.torlauncher.prompt_at_startup";
@@ -379,6 +390,10 @@ let TorLauncherUtil = // Public
return ("1" == env.get(kEnvForceShowNetConfig));
} catch(e) {}
+ if (!TorLauncherUtil.useLegacyLauncher) {
+ return true;
+ }
+
return this.getBoolPref(kPrefPromptAtStartup, true);
},
1
0

[Git][tpo/applications/fenix] Pushed new branch tor-browser-89.0.0b5-10.5-1
by Matthew Finkel (@sysrqb) 12 May '21
by Matthew Finkel (@sysrqb) 12 May '21
12 May '21
Matthew Finkel pushed new branch tor-browser-89.0.0b5-10.5-1 at The Tor Project / Applications / fenix
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/tree/tor-browser-89.…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[torbutton/master] Bug 40035: Localize Cryptocurrency Safety messages
by sysrqb@torproject.org 12 May '21
by sysrqb@torproject.org 12 May '21
12 May '21
commit a83f09e9208d4e2ea7a7a0c5f87fdac36a551309
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 3 14:14:37 2021 +0000
Bug 40035: Localize Cryptocurrency Safety messages
---
chrome/locale/en-US/torbutton.properties | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/chrome/locale/en-US/torbutton.properties b/chrome/locale/en-US/torbutton.properties
index 632605f7..4c153158 100644
--- a/chrome/locale/en-US/torbutton.properties
+++ b/chrome/locale/en-US/torbutton.properties
@@ -138,3 +138,13 @@ onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Onion Services
+
+# LOCALIZATION NOTE: %S will be replaced with the crytocurrency address.
+cryptoSafetyPrompt.cryptoWarning=A cryptocurrency address (%S) has been copied from an insecure website. It could have been modified.
+cryptoSafetyPrompt.whatCanHeading=What can you do about it?
+cryptoSafetyPrompt.whatCanBody=You can try reconnecting with a new circuit to establish a secure connection, or accept the risk and dismiss this warning.
+cryptoSafetyPrompt.learnMore=Learn more
+cryptoSafetyPrompt.primaryAction=Reload Tab with a New Circuit
+cryptoSafetyPrompt.primaryActionAccessKey=R
+cryptoSafetyPrompt.secondaryAction=Dismiss Warning
+cryptoSafetyPrompt.secondaryActionAccessKey=B
1
0

[Git][tpo/applications/android-components][android-components-75.0.11-10.5-1] 12 commits: Bug 40005: Modify Default toolbar menu
by Matthew Finkel (@sysrqb) 12 May '21
by Matthew Finkel (@sysrqb) 12 May '21
12 May '21
Matthew Finkel pushed to branch android-components-75.0.11-10.5-1 at The Tor Project / Applications / android-components
Commits:
f7375e03 by Matthew Finkel at 2021-05-12T17:02:11+02:00
Bug 40005: Modify Default toolbar menu
- - - - -
62749239 by Alex Catarineu at 2021-05-12T17:02:24+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`.
- - - - -
17041b07 by Alex Catarineu at 2021-05-12T17:02:25+02:00
Bug 40002: Ensure system download manager is not used
- - - - -
bd25d30f by Alex Catarineu at 2021-05-12T17:02:27+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.
- - - - -
fa24608e by Alex Catarineu at 2021-05-12T17:02:29+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.
- - - - -
92445e0f by Georg Koppen at 2021-05-12T17:02:30+02:00
Bug 40013: Add option do overwrite timestamp in extension version
- - - - -
9d43e371 by Alex Catarineu at 2021-05-12T17:02:32+02:00
Bug 40015: Port padlock states for .onion services
- - - - -
d90206b2 by Alex Catarineu at 2021-05-12T17:02:34+02:00
Bug 40021: Force telemetry=false in Fennec settings migration
- - - - -
ebf4d5ce by Alex Catarineu at 2021-05-12T17:02:35+02:00
Bug 40022: Migrate Tor security level from Fennec
- - - - -
e5e4e2c3 by Matthew Finkel at 2021-05-12T17:02:37+02:00
Modify Tracking Protection configuration
Bug 40020: Disable third-party cookies
Bug 40024: Disable tracking protection by default
- - - - -
ef982296 by Matthew Finkel at 2021-05-12T17:02:39+02:00
Bug 40023: Stop PrivateNotificationService
- - - - -
24912519 by Matthew Finkel at 2021-05-12T17:02:41+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-beta/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- components/browser/engine-gecko-beta/src/main/java/mozilla/components/browser/engine/gecko/fetch/GeckoViewFetchClient.kt
- 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/search/list.json
- + components/browser/search/src/main/assets/searchplugins/ddg-onion.xml
- components/browser/search/src/main/assets/searchplugins/ddg.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
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-build/master] Bug 40296: Enable link_input_files in projects/release/config
by gk@torproject.org 12 May '21
by gk@torproject.org 12 May '21
12 May '21
commit 2bf6670f3b5e34b3248ac36f79e2240f83069910
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon May 10 14:36:51 2021 +0200
Bug 40296: Enable link_input_files in projects/release/config
---
projects/release/config | 1 +
1 file changed, 1 insertion(+)
diff --git a/projects/release/config b/projects/release/config
index 8e0aebe..8c2974a 100644
--- a/projects/release/config
+++ b/projects/release/config
@@ -1,6 +1,7 @@
# vim: filetype=yaml sw=2
version: '[% c("var/torbrowser_version") %]'
output_dir: release
+link_input_files: 1
var:
signed_status: unsigned
1
0

[Git][tpo/applications/android-components] Pushed new branch android-components-75.0.11-10.5-1
by boklm (@boklm) 12 May '21
by boklm (@boklm) 12 May '21
12 May '21
boklm pushed new branch android-components-75.0.11-10.5-1 at The Tor Project / Applications / android-components
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/android-components/-/tree/an…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[tor-browser-build/master] Bug 40289: Make the list of components updates for switch to mozilla89-based Fenix
by sysrqb@torproject.org 11 May '21
by sysrqb@torproject.org 11 May '21
11 May '21
commit 122aa939d2de4c6f18fd13c7dae1aef5eda1305f
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Apr 28 10:45:21 2021 +0200
Bug 40289: Make the list of components updates for switch to mozilla89-based Fenix
---
projects/android-components/config | 6 +++---
projects/fenix/config | 6 +++---
projects/geckoview/config | 8 ++++----
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index 998ffe1..3b709a6 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -57,9 +57,9 @@ input_files:
steps:
list_toolchain_updates:
- #git_url: https://github.com/mozilla-mobile/android-components.git
- #git_hash: v74.0.6
- #tag_gpg_id: 0
+ git_url: https://github.com/mozilla-mobile/android-components.git
+ git_hash: v75.0.11
+ tag_gpg_id: 0
var:
container:
use_container: 0
diff --git a/projects/fenix/config b/projects/fenix/config
index ce140c6..9a54715 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -55,9 +55,9 @@ input_files:
steps:
list_toolchain_updates:
- #git_url: https://github.com/mozilla-mobile/fenix.git
- #git_hash: v88.0.0-beta.4
- #tag_gpg_id: 0
+ git_url: https://github.com/mozilla-mobile/fenix.git
+ git_hash: v89.0.0-beta.5
+ tag_gpg_id: 0
input_files: []
var:
container:
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 817a844..a48631b 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -138,10 +138,10 @@ steps:
- torbrowser-android-x86_64
list_toolchain_updates:
- #git_url: https://github.com/mozilla/gecko-dev.git
- # 88.0b8
- #git_hash: 43ab49774f70a5c70b2cd69a2b2a8bc0a3be20bf
- #tag_gpg_id: 0
+ git_url: https://github.com/mozilla/gecko-dev.git
+ # 89.0b10
+ git_hash: 702dfbec3d62823d0dfca870995540383ab39183
+ tag_gpg_id: 0
input_files: []
var:
container:
1
0
commit caaa3bea22d77de1cca6d244bba33c6d6671a74a
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 10 08:51:06 2021 +0000
Pick up fix for rbm#40025
---
rbm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rbm b/rbm
index b7f534d..c700693 160000
--- a/rbm
+++ b/rbm
@@ -1 +1 @@
-Subproject commit b7f534d6bdbaba7ee83fdf8d7068ec349470e8c7
+Subproject commit c700693be807efa2a1f944798a49edf021087cdf
1
0

10 May '21
commit c700693be807efa2a1f944798a49edf021087cdf
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Fri Apr 23 15:45:17 2021 +0200
Bug 40025: Use hard link to prepare input_files
When using remote_exec, we collect input_files in a temporary directory,
before copying them to the "remote" (for example a container). As we
don't normally modify the files inside this temporary directory, it is
safe to use hard link rather than copies of the files.
When remote_exec is not used, we don't use hard links by default, but
link_input_files can be set to 1 to use hard links.
---
doc/rbm_config.asc | 9 +++++++++
doc/rbm_remote.asc | 4 +++-
lib/RBM.pm | 15 ++++++++++-----
lib/RBM/DefaultConfig.pm | 1 +
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/doc/rbm_config.asc b/doc/rbm_config.asc
index 4c65a73..eaec60f 100644
--- a/doc/rbm_config.asc
+++ b/doc/rbm_config.asc
@@ -232,6 +232,15 @@ input_files_paths::
current project and its dependencies. This is useful when
cleaning old build files, to find which ones are still used.
+link_input_files::
+ When building a project, input files are collected in a
+ temporary directory. If this option is set to 1, we try to use
+ hard links instead of copies. You should only enable this if
+ you don't modify the input files during the build, or if you
+ are using +remote_exec+ (in which case the temporary directory
+ is only used to copy files to the remote). This option is
+ disabled by default, unless +remote_exec+ is used.
+
timestamp::
This is the UNIX timestamp, set as modification time on files
created such as the sources tarball. The default is to use the
diff --git a/doc/rbm_remote.asc b/doc/rbm_remote.asc
index 81de98f..7f4c3d8 100644
--- a/doc/rbm_remote.asc
+++ b/doc/rbm_remote.asc
@@ -46,7 +46,9 @@ remote_start::
we can access it. This can be useful for instance if you need
to start a VM, or fetch a container. If access to an input file is
needed, the +remote_srcdir+ option is pointing to a temporary
- directory containing the input files.
+ directory containing the input files. The input files are hard
+ links to their original location, if it is on the same
+ filesystem, and +link_input_files+ has not been set to 0.
remote_finish::
the template of a command that will stop the remote host after
diff --git a/lib/RBM.pm b/lib/RBM.pm
index bc509cb..b93488f 100644
--- a/lib/RBM.pm
+++ b/lib/RBM.pm
@@ -766,7 +766,10 @@ sub input_file_id {
}
sub recursive_copy {
- my ($fname, $name, $dest_dir) = @_;
+ my ($fname, $name, $dest_dir, $action) = @_;
+ if (-f $fname && $action eq 'link') {
+ return ($name) if link $fname, "$dest_dir/$name";
+ }
if (-f $fname || -l $fname) {
fcopy($fname, "$dest_dir/$name");
return ($name);
@@ -774,7 +777,7 @@ sub recursive_copy {
my @copied;
mkdir "$dest_dir/$name";
foreach my $f (map { $_->basename } path($fname)->children) {
- push @copied, recursive_copy("$fname/$f", "$name/$f", $dest_dir);
+ push @copied, recursive_copy("$fname/$f", "$name/$f", $dest_dir, $action);
}
return @copied;
}
@@ -978,12 +981,12 @@ sub input_files {
my $file_type = -d $fname ? 'directory' : 'file';
print "Using $file_type $fname\n";
mkdir dirname("$dest_dir/$name");
- push @res_copy, recursive_copy($fname, $name, $dest_dir);
+ push @res_copy, recursive_copy($fname, $name, $dest_dir, $action);
}
chdir $old_cwd;
RETURN_RES:
return sha256_hex($input_files_id) if $action eq 'input_files_id';
- return @res_copy if $action eq 'copy';
+ return @res_copy if ($action eq 'copy' || $action eq 'link');
return \%res_getfnames if $action eq 'getfnames';
return \@res_getfpaths if $action eq 'getfpaths';
}
@@ -1034,7 +1037,9 @@ sub build_run {
my $srcdir = $tmpdir->dirname;
my @cfiles;
push @cfiles, copy_files($project, $srcdir);
- push @cfiles, input_files('copy', $project, $options, $srcdir);
+ my $if_action = project_config($project, 'link_input_files', $options) ?
+ 'link' : 'copy';
+ push @cfiles, input_files($if_action, $project, $options, $srcdir);
my $tarfile = maketar($project, $options, $srcdir);
push @cfiles, $tarfile if $tarfile;
my ($remote_tmp_src, $remote_tmp_dst, %build_script);
diff --git a/lib/RBM/DefaultConfig.pm b/lib/RBM/DefaultConfig.pm
index c19d160..408044e 100644
--- a/lib/RBM/DefaultConfig.pm
+++ b/lib/RBM/DefaultConfig.pm
@@ -444,6 +444,7 @@ ZIP_END
input_files_by_name => sub { RBM::input_files('getfnames', @_); },
input_files_id => sub { RBM::input_files('input_files_id', @_); },
input_files_paths => sub { RBM::input_files('getfpaths', @_); },
+ link_input_files => '[% IF c("remote_exec") %]1[% END %]',
steps => {
},
suexec => 'sudo -- [% c("suexec_cmd") %]',
1
0

[tor-browser-build/maint-10.0-android] Bug 40259: Update components for mozilla88-based Fenix (fenix part)
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 09c8ad8ad94cec081963550b401daab2e35dbe18
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Apr 12 16:07:51 2021 +0200
Bug 40259: Update components for mozilla88-based Fenix (fenix part)
---
projects/fenix/build | 9 +-
projects/fenix/config | 16 +-
projects/fenix/gradle-dependencies-list.txt | 533 ++++++++++++++--------------
projects/fenix/mavenLocal.patch | 31 +-
4 files changed, 301 insertions(+), 288 deletions(-)
diff --git a/projects/fenix/build b/projects/fenix/build
index c2f6f32..b118cdc 100644
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -42,7 +42,7 @@ cp $rootdir/[% c('input_files_by_name/tor-android-service') %]/* app/
# XXX We need the build variant in lower case. Do something smarter here.
v=[% c("variant") %]
[% IF c("var/fetch_gradle_dependencies") %]
- $GRADLE_HOME/gradle/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
+ $GRADLE_HOME/gradle/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,} -PdisableOptimization
[% ELSE %]
# Add our localized strings
[% FOREACH lang = c('var/locales_mobile');
@@ -52,7 +52,7 @@ v=[% c("variant") %]
[% END %]
# Prepare Glean dependencies for offline build
- tar -xjf $rootdir/glean-parser-[% c('var/glean_parser') %].tar.bz2
+ tar -xf $rootdir/[% c('input_files_by_name/glean') %]
# We need to set `LC_ALL` and `LANG` to something that is not ASCII as encoding
# otherwise `click` barfs. See: https://click.palletsprojects.com/python3/
export LC_ALL=C.UTF-8
@@ -67,7 +67,10 @@ v=[% c("variant") %]
fi
version_name='[% c("var/torbrowser_version") %] ([% c("var/fenix_version") %]-[% c("variant") %])'
- $GRADLE_HOME/gradle/bin/gradle --offline --no-daemon -PversionName="$version_name" -Dmaven.repo.local=$gradle_repo app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,}
+ # We need -PdisableOptimization for building tests. See:
+ # https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/4…
+ $GRADLE_HOME/gradle/bin/gradle --offline --no-daemon -PversionName="$version_name" -Dmaven.repo.local=$gradle_repo app:assemble[% c('variant') %] -x lint -PtestBuildType=${v,}
+ $GRADLE_HOME/gradle/bin/gradle --offline --no-daemon -PversionName="$version_name" -Dmaven.repo.local=$gradle_repo app:assembleAndroidTest -x lint -PtestBuildType=${v,} -PdisableOptimization
cp app/build/outputs/apk/${v,}/*.apk $distdir/[% project %]
cp app/build/outputs/apk/androidTest/${v,}/app-${v,}-androidTest.apk $distdir/[% project %]
diff --git a/projects/fenix/config b/projects/fenix/config
index 9336d9e..af2772e 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,17 +8,18 @@ gpg_keyring: torbutton.gpg
variant: Release
var:
- fenix_version: 87.0.0
+ fenix_version: 88.0.0b4
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 23
+ gradle_dependencies_version: 24
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit that integrates Tor.
fetch_gradle_dependencies: 0
gradle_version: 6.5.1
+ glean_parser: 2.2.0
targets:
nightly:
@@ -52,8 +53,9 @@ input_files:
name: gradle-dependencies
enable: '[% !c("var/fetch_gradle_dependencies") %]'
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
- - URL: https://people.torproject.org/~gk/mirrors/sources/glean-parser-[% c('var/glean_parser') %].tar.bz2
- sha256sum: 19dbdd4958022a1a638e0217489ab722fe7d4f588f1978a4ae162f93e75694c2
+ - URL: https://people.torproject.org/~boklm/mirrors/sources/glean-wheels-[% c('var/glean_parser') %].tar.xz
+ name: glean
+ sha256sum: 24ceaaadaf155445e8ad135173d894e05c0745b41ab5fee150f9548550acf2a6
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
@@ -64,9 +66,9 @@ input_files:
steps:
list_toolchain_updates:
- git_url: https://github.com/mozilla-mobile/fenix.git
- git_hash: v88.0.0-beta.4
- tag_gpg_id: 0
+ #git_url: https://github.com/mozilla-mobile/fenix.git
+ #git_hash: v88.0.0-beta.4
+ #tag_gpg_id: 0
input_files: []
var:
container:
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index 53aa56b..1cbaeee 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -22,8 +22,8 @@ f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b | https://dl.go
48167eeedc8da79c4d29deaf0d0cd9b5d8fedcae01f1a6efb3f28f08e8982f71 | https://dl.google.com/dl/android/maven2/androidx/asynclayoutinflater/asyncl…
270c7b7d99942d5ec1dd88594e4648feb33d8e31d8c3c2ab2321d49d9abdfc1f | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
aeb69e76988f43b06c84fca25efab2e418bb98b5aabcd03fa7913bd3ed1bcaa9 | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
-8a28c71070271b6f802f5a285ab9ae5b424e60a4f4bb4e73c0c6f53c1375506d | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
-0125474b4ff9dd64d9ebaa003ba0a19f782354e4490e270fc9fb2a39b33c1115 | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
+e740b1beeac82303415d68bee9d5c1f259716f560a829ca07c7ce97e60850e1b | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.3.0/brow…
+d82e1df52624a1fe2757055258e225ccc3aebc3f5a3d523414d7f1bbc80055f8 | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.3.0/brow…
1193c04c22a3d6b5946dae9f4e8c59d6adde6a71b6bd5d87fb99d82dda1afec7 | https://dl.google.com/dl/android/maven2/androidx/cardview/cardview/1.0.0/ca…
e64ef4e08b58358fe27b599e6fe80a1b153db014c644beee630ab271061c3e6c | https://dl.google.com/dl/android/maven2/androidx/cardview/cardview/1.0.0/ca…
2bfc54475c047131913361f56d0f7f019c6e5bee53eeb0eb7d94a7c499a05227 | https://dl.google.com/dl/android/maven2/androidx/collection/collection-ktx/…
@@ -310,8 +310,11 @@ e72912014b67151b689a7e820d3f1edf12fe2af5fbc308ab196ac392436ab771 | https://dl.go
a911c8a33f02942c10a5e730613a533c209d6ae8ddb0e7cd8e65fceb1162de56 | https://dl.google.com/dl/android/maven2/com/google/android/datatransport/tr…
1bfb68b9d898a682734faeaffaa86e3e63a1c70659438adfe7b38e63dec10ce2 | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
02314144f98d892df6ebca9ae1a81bec24f416b3e9eefe8729de71acd5d119bd | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
+380b09bfc5389fff93b5719c04e57c99678c9c3af0402a91e26d89734babcc49 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
+d851ae0d9232951d36b1060eb8a3dc07ac5fcf668cb741b0a5a165c60519c898 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
dd0980edf729e0d346e2b58e70801dc237c1aed0c7ab274fa3f1c8c8efc64cc7 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
c30489d38be5d41e19272f6aa47d6c43de85034500bcb1864b79381c9634d924 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
+a3801d0841b3bf779ef74370e18399c3a2401c405a046a528cd7e60ae8073542 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
d324a1785bbc48bfe3639fc847cfd3cf43d49e967b5caf2794240a854557a39c | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
ffe9295d9eb2ec2d784bb4c3634f6a10175224d2111332fa2735320b52a24b66 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
3a5000df3d6b91f9b8b681b29331b4680d30c140f693b1c5d2969755b6fc4cf9 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
@@ -348,264 +351,228 @@ d7a2ff3a2fdbd0801f832df3de81dab06d9db7e4a57dfa6d768e7c6e5fa22280 | https://dl.go
79b705ecf5140d3a2601b44ef058b4588878432eb6fb2f9d65da0551cb0a8e20 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messag…
827f06556b7fa599f29a48a5277df39ca3dce5080d4ea6f9ea1f9c7b6b78bb7a | https://jcenter.bintray.com/com/jraska/falcon/2.1.1/falcon-2.1.1.aar
ee569cafb906e7d637fc3c80be1aaf2809e5ee8ccfc1c0169886c664a74d5dc5 | https://jcenter.bintray.com/com/jraska/falcon/2.1.1/falcon-2.1.1.pom
-ec3a75bebddbf19ff56a281cf5d1ad146169dcaa0e69d7b14f4aaba2e7775f34 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
-3369726ca2b0e3736c741ff3c22e06f707a1007ff20ccc5b5ba5d0d9a01ead30 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
-ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
-965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
-affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
-310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
-79500b867b1194cf781ac98d5c706331a3d3ce8448437f536f8d4cc2faff50c3 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-2bad6c031302519db14517bcc33af09f137845de40e5b223b778e8a38c561fd7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-1a4b999a2d9051382430994126c4bebd143c853e26d6bca4fd4c31924072ef5e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-eabab80e05fe2a31e2f2395cedf589cd72fb8df0a82e08e93c2e36fe953b8d59 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-b0e6d0ab0c1f1dd2e2e5f540eeb6e5791820bdbe4f34597b4af183145dd2a493 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-eedb363ba1f4b999e62b34d264f1b37492f986169d808ec94ca72a67938291db | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-110fc7e4602f7aa47286a74756b673903ff3db5044312a16172eac38f7ba1224 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-fce78c0c595493d89f90fa4ddba466abf4497e61aac6f2f0449ca1541c167413 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
-21d04a0720be4a46804e1b73b733c72269c16900896ae463a9e87a1d04ed50c6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
-a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
-61653ccfae8caa4203e267b479821bd90faab3fef744a7ab0fdd9f61150f970c | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
-8e525c7a19a94aea294403d531fd61eed3f08b2992e313a594cb531b75ffc35d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
-4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
-d372f2dc8051f3d1d4fae3bd50e5fa109d3ec870c4a4830112f9afc8560aacfd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
-65a3e614b27b2372f350cc015848d44cb14ca3225d8d41e1c54e60ce95e2131f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
-420198546b466bfa9c38d1d7fb2ffcdfb8f518026e8f4a7ca3851fbdd525a538 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-ad6cfeaefa234918fde058ab1f376168abe54cd1e7d12824fb15cc8a07aa0f03 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-e91befa8242e5894158c0275d26d883599fe6e6c57b6952129aebec17a2ef0aa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-de70f4db2a9d7d7aa42f88f217d59b61ed4357d4de138fadd3e459320abe52ba | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-d9a1cb78976db75b6173b51ad04efaebc2b3772636ad0b45cac4cd2d53222dc9 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-0e1311cc6bcd06f373cf8ef7c4d7380087f36de70d9c72acc432e02dabc30a9b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-5a9cced336697fbf2fb4b6c8a321787747f5e375227b7e355ebf3259365c024e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
-6a1ba16592546ab118186a5634c9b24589ae2ed64f0cdd41a913ffb3c2b13db6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
-5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-9ef3d0277fe54384104a01089c8c718a9c2a7ab2b5292ff803ecfc9d38e7d6cb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
-8131897af3fb30af2464efe56161a349087bca1544cbf57495158714875163e4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
-7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
99319ebdd562d9519dfd15f78fe79bc09c3a28875083eea4577d9584359a2f61 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
-5c415a9d8585200de4be1947e15291cc79f599b06249375f5c9ea22d4b2d090f | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
+ec3a75bebddbf19ff56a281cf5d1ad146169dcaa0e69d7b14f4aaba2e7775f34 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
+3369726ca2b0e3736c741ff3c22e06f707a1007ff20ccc5b5ba5d0d9a01ead30 | https://jcenter.bintray.com/net/freehaven/tor/control/jtorctl/0.2/jtorctl-0…
15ac15eb7c371db05e721be8d466567c2b7274b767d91478e781b6d89ee5d3d0 | https://jcenter.bintray.com/tools/fastlane/screengrab/2.0.0/screengrab-2.0.…
7dc7568a003d87fa9b1bff88a579e5436b5d313821e6c904ed532bc2ae8a8b43 | https://jcenter.bintray.com/tools/fastlane/screengrab/2.0.0/screengrab-2.0.…
-8f618bf515269c02037d89a555295e39422c759f7b550a74ea3edbe355ebd1ee | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
-a1fe528647f8e20b45ea0e32bbec271c32e68b865622c42c9a37816a076be998 | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
-17dbf3d3f2cdcdbd666e6770161066214cc15f58298a9188ee8d58e27e4e5ee6 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
-8f9fd5e44dacf9f7b5e6e6ca09fde27f8c9877f09f68cd7539f5a3d980a060ff | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
-525d738af64c99669369b374154dd0d7e4ce32bc034f9736aaa05dc64f373743 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
-4f1e345f4e1f41ea2463befa35413ee12b465b3e60f0ab03758b53a17136a091 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
-373c9e30a547da6931309ba988242409292f752b0bd41b8a49972bb78546f0a0 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
-3cb0d177eb6e731633140b2e854c48edee90ef755026b128016e964e5dfbc3e3 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
-4cea81555a8c822e382f18495e2c852a6baa4d599ecde4a11ddd5dc27685e247 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
-86e8a90f5deeb76843286c3afd5e65216b4f05729b4b0d7e93aca51d74b98f48 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
-fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
-382af2131c727357578c4fdab03a03232a9bdfca3b1036d52fd71ef65a8cf701 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
-8d72e31784fac0c350e063453d537b1d2389f928c67235c897fc4cadfb3a2ca5 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
-d11541433d5795a8d801e03637fc68e6a8baf684a3b7f56ec19684428b5575bf | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
-54934a2cd59b9562345e019e9b44dd1e23d1e2ede61ae7184e29e4e510e4d422 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
-88e9eed6c49b167ed69864d1d0825123d7c48edfe542cafa203897a75b8fc272 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
-16bc9f4070b9e8bfe0be8a8ce70e922dda4e4fb74d1e20db9dc1739a8d5c5c0d | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
-a882723e6aca50bb0438a21f2ae1447d9cab19f433181459cf9b7086c2d54892 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
-04e220d599dd5d5071bc5ee127c5d9db3e6fe378a831c8d002fb1363883711d4 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
-eed6764e8fd13edbaa2ceccf976174b4dd618f9807e2ca265c7b193007b2de69 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
-57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
-b9a7f2da1c0af1f88fd8bb47d04d11b4cc14f19a0f7dee13bc960ac75e87fd74 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
-a50a7c02a36e5950ab0ca0c3a9486b87fd8de95582d0ddbcaa72af173230254b | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
-3b180681c076339b42e20967f95881fa11b5753ae7f597e3c3c8288c09aa9b5e | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
-6d23b30049cae26d35cbc1c892a785e6bdf9e0399cbbedf5584a48a8dc5cf5c9 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
-383823dd20adbea1eec86fd59097feb3f84f4dda77531a1d79ebe801b4d6d283 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
-e12da0897b5f8eac8445e378c74945177c7de84196eb91ff526da5f522f5911d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-2e15f3366f0a23f4552ddb4b52874f48a30840921317504f3007893bd06e8d0d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/73.…
-dce9a1e982a0e109e3e9d88a7b5590d4f24b293fba3f6a26a13abb4385d94c64 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/73.…
-30d4fbb8200eb89367806b4432a00db4ed383afe5ad4d3083e2a7a64b1d4084f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-c60e78fda21e8e68d8824d189ea9b133f3e7193a3c9ffca8835b3b550ba6d3a9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-0bce9b87b0cb01c25e479ebc059a9fc4ea27bf7505c1cbb5bcc4f7805b717dd5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-a026d154a5b3518086a2d8e960480e6e7f86f0816a19e1b1c3138cda9ca81658 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-87f8aa36f9c9d54facbeb97165d9bc80f275ea2951b87ed459ce1f813adb21fc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-fc64f72cff9a4255e6b055eda7d67f10ce722782567d5cce9ec07db03b2552ba | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-392df803d5881ed978bd68e0e665b7db3f2f010821f4600f65ed3292a19b0202 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/73.0.…
-a695d796d3b27ad516aef9a400ce58dd6e963aa21050601d37dd8b88ccbca63a | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/73.0.…
-ff6ab31fdc71e89feba35145281bd5d24d475e989996cb150f6912b846b44bf8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/73.0.1…
-4e8adf05fc6fbb990f047148bf8f60b5e233b03fb9c08cb884b79c3fc90ace02 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/73.0.1…
-4a60512b2b94d2c60c6aad3df4497de3e9bfd337e249dc57301243ae32d00969 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/73.0.…
-b5e3beaa4b88851685838570a5cd17e31d5fb4ee4716034a7371a49dab6a709e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/73.0.…
-04de35c10b20442b1a2c35ea70b7b64f5325c77027cf02b6896e68bb0310d2ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/73.0…
-93b74eec2fa5047b142c8fca03f384a1fb1d66c5ee593e02cacb5230adfebda7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/73.0…
-95e6908b4c44267e447a57f26c56d6e1377241ea7980cca9634c571fefcf8bac | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-4e17c13d3b76f70492e8d3a85300c2f7ee2df3b01732bf22c4992a5de13fcd85 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-3ff40893e11b1aef16f956485a5d7cd08a4b3301c928de3f71cf085cc23ec3ff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/73.…
-eefdac1bbd8814742179cd8a95151c9a5e184f92473fbe19dad1e492d9670563 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/73.…
-abfba8187225c2c1df99d023969009114811045e5d17b645041bb7b6b1d48ee7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/73.0.…
-1252884e94dede016fffd8f865f8a05506d7207d8faa03a3ea8d260a43ed71cc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/73.0.…
-4b44ceb549ba3696691c84d0db14e9a9134ebeb6778eed46af0e1223aba0c729 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-99ec0fc11ca8245c2780e50af6ce5db03356fcb8e1c85562e38f4e3a7f3346ce | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-44dfa1456b52cc1eeb996df948bdd2bd72ab516abfa58f70201984ffb32f267e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/73…
-b4d18d86a02e2fe40c5ebcafcf0c40fa49642c51131f47f55bd1d9ba80d2da09 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/73…
-2a9d738edc92bf5d718f1f1fc8b2f1908fc1e2aa0867a5cffe9d4521d7e0d33b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-82ac87e4def03a94a02606b2eaa80d53ba169ea7fe0dc6f480a644edd68fa25e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-11ca8c641874957593a5dd8d839eb964f3fda209acf5fb2309c29b111745144f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/73.…
-8b4ba5d83817d2f6ddf126a017d0f64bdd38897c897955e3097fea13f7194a42 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/73.…
-7059ce18d0b9e2722ca0546113111f5e7378dfaaaa3428cd993bd1df0e6c7601 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-ea3fb8adf6d2f0888e183681556618314b60795feb52c042ef4e574d19673cf7 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-3ad778800db826059e74047e5edb9a3a06628aecb246503bd6a6ef090ef4f77d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/73.0.1…
-1b1dd2ea3ef2a79f1bd31806f038eff01812d86c7f2fd829d8be7a88b4996df0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/73.0.1…
-31b383ebcbeef430b3e85fbbd65eee6dec77072b85cd8aa440a32cccb1279936 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/73.0…
-b2f50ad2e78303f7b1344e555e2876fffacbcab6aef6609d4c43121950032e40 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/73.0…
-8eba85573d95c0fce8d8616f2194b1f6a45fa842bbdfb709f22adc363c6642bd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/73.0.…
-62c4aad685e40068a4e3d0c29f2621a2ab1767d88974ef509fed16c3cc43fbe7 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/73.0.…
-62be7bfc6d30816aae4ec08bb85d2015af513c6397ba01e62af9044094b21cc5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/73.0.1…
-95b9955b06bcc1bca7d9615bb2ca5f40f04370c21547d870b7443d1d05f301d9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/73.0.1…
-e1c06d4b6c497fa70a3876e22335c9fb6a4e0237587f0e0036d928196c4bd155 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/73.0.1…
-3319375cad344ae1a56d115e451fd7858c8124c690b10ba4528474554e842a34 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/73.0.1…
-6cfa83042c3077319fb6afa00b1474f9aece9bcd752557b4ad0bd2ab507f7a11 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/73.…
-1227e1f20788b515c58fa4a4d8d521940aa8e9e654c66e69dfda5b92e24e834e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/73.…
-82e0c14306a0c8355a0547e407954d3a14adb85571b6214daf5446414fe3fd84 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/73.0.1…
-2663bd4140bad4bb44de9e8c090d6e74df0fa5c9a52aa87c96d315b4cd0490cb | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/73.0.1…
-450057953eea02275513eca3121479fd74c50c5dda9a5165c792b1c00dde473e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/73…
-8f002487bc935496f52d20441754645869f1b894535065ab76ab09e739161b5e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/73…
-caf47211543f9203652e471638a308673a61949e5f934ae51d8d95d5d700ec55 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/73.…
-d4ca474eb035e9336836e2396668d648aef23ad78a634af6018747552c6e3dc0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/73.…
-e508390b4f2fda504a12b334c78edfd5c675a5a0403f8cd8f97ebed24ddd766c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-b4cea0bb5f463dfc1442c5df4020c73b14e890af1040e18e9457bcadfb2dc688 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-1ed11524f1f60936fe6b4980197a0982562f59b4cfb92847b28135d4189546bf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/73…
-f3519029e03ed6adf952111c1d4e14ac660909edbeb98b923f499b2a4bd54cca | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/73…
-247bd3c52f12264f7b7526949272a6df49f614887acd472aa7d845286cc1b743 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/73.0…
-b57033974732da759772cc8534e6db3eabf2d0c0c6b88e6f2cf07f9d4933768c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/73.0…
-ebed826cfddca0109d95664ab5fb75d12c98db0506e42b0de9bb6bc4d6089985 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-ff278382c6a809ab3c684820f7577192162748c5c4e82d946c70ac54a14e83f0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-532bad7ac8afdb95f3c6f1dbe9855354d3272100d0c134adbdc344f12346c812 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-fca861879e797df89a6d865f617d03687819747ae9a059f8a97134bb8b6c7f2d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-744903c81b4b7d78c12d70bf804d6ecc41a0c513903760af45822e8701b237dc | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-38b1ed0000f6da65778b11de469f6f97ee12db0c2026e0fe63dda7b5d4d62c27 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-2cd092e0ccba5ed7b9400bbf173580ead67a8aaa90819eedb91655cc0dd0a536 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-d0aac9c992b5affac27e50947ca7da0c1fd1fd0d196eb6793238aa58795ff8da | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-5591508412fc4f250cea08f9b3073822391e0d1e4310e87a163c151d9633eb99 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-92e47fe0cbd2234cabcd08e927c478853027c9091c2d6d1390be2e88f9387f9e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-62bf0e9526340aa5d741749740ebfeab1e195cb3be5cb61f35f9c587e30e1f92 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-0686a6a5a7ffcaa23e542a2b08e779b883192115affc7a3796592bc93ca71e8f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-21a483d6b1f857d22c27d24ff25a668896d77205c4b1ae73118daac78d8cce8c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/73.0…
-f2fa6b1a53ebf0c582ebd1645d88eaad29c6cfdbbf625c22a74c4d086ccaf843 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/73.0…
-3831c828fde09958bfcfa87f208cd57c99f5e36ab6febeb186329ab47cb2f85f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/73.0…
-bb0f6a7c601c28af42574865cbd3e5797b1ea9b6b7d40e490fc4e9803579473d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/73.0…
-69d4c78f155a950f30ebf784a450a0cf8bff6a1a54ac928efac9c54a4f54d5aa | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/73.0.…
-570e3a16d8fa95c71c42cbaa39ffc7b7ade27e6b15aeee48f45ff579d0a46bac | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/73.0.…
-31dacd6464046bf209ac06e4979b3a09faf2a2dd426778a428b0ca09685ed997 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-38874f4aeb50df950f6c3cae0960f2745caa999553336e79d29b71517e59c70a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-7e0fcca927a1a05c1b568f54f546ad94ad3fbc2fcb425c4be7833dbd8451dcd6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/73.…
-2b147feee0fc076472150062679471a42393e55dc396df43b34bc10340fa22ea | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/73.…
-b427bedff7b319d4079ffa9c01b73f3f63ab973807762c2e4009ed1c97fc948a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/73.0.1…
-8075880bf45d0447e0271c20952cdf986ab24ec13977693024c3193a57790c31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/73.0.1…
-b95ee6b550325ad37f0d6acaf006a9300e20abcfacab157beead16f3142c3cdb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/73.0.11…
-629323e072efb6c5daa4287c0919d84b463e5aafd9de5f2f1f7919af9c342457 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/73.0.11…
-6b9b610b41d578cbd93c29508194a3b68b9f94e0b069a620841515e279a4659f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/73.0.11/…
-86c6b013dde67c532c5225af4875a534997b55ad0b7b88baa8f1b1c7451d28e6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/73.0.11/…
-90c58403c11f6e8d1eae5e7ef14fa8af3cc4c70df14a1f0a06ec16ba989cb454 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-6338ed5bb5f2e1ee7f35c326e32ac802fef15c5ef1bf7c4d1a0bc79b50e20e76 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-b1b2d2464d3e37e21b47aeb8b2f1b5af13f27543cd49f719e3738ce893bbbf1b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-0095957b66f1908972d9272577f2dae1a50900c18bc85070593700fceb6d69c4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-68c5b1b662be69564a0d7f609c1c7c956a07a744010562277dc89f8c1ca741ac | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/73.0…
-da8b90bf2a6b41e65b39231e84de014aff75f2152ead835a10905ffe74e724bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/73.0…
-ae2671c17d704f13120dda238b2efac3902c15b59cfc6b5b5650a49936c11c20 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/73.…
-70020b3ddc937daec2804055bc3c19b33cee914ab67e7e91172bd52e61f88078 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/73.…
-73455502add091f9f5620a7216475c9e83c235840b057fc7a2bfc6283fb9042f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/73.0.…
-aed9bb9cf4ed38ccf373eb2139675a8ce4262ecd7b4442e7d3b3713595667821 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/73.0.…
-3697e7ae4f9479c2cd1ecb6ee81a12627e9a02cf1030f80aa1d9631869350c4d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-220fc3aa77debc8428982e5109301abd56d74d21964bc9490b2fb6bab64dfba3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-273b5bcfe293d286ace960fb9200cbcd5ce9d05ccae34e9acc57b54f8b7043fa | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-94424ec80b9ad5ae3fe3e1d4a3a82bb84ecb6c1c94265f54c66b930ef9b2654b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-c0458897a9280de5aa0c8369d96b7f34e4444617e6df28558a8130bbc4d3d2b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-6f7ae16629aa9baf035525a20b6fa9399bb54f77faeb9f710192c8ba90a2e700 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-f8d5f4717445f4a3845e14c5e03abd556b39868bb64ec2be021c4f02303d5e1f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/73.0.1…
-ea76015a4ede5b9fbb774821a9edd7634a480a79f38eb12a9db4efb0bec7e125 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/73.0.1…
-02f2fc043ab9c5de724b287f8b4cc7f8f9e86aafeeac6b9453213e16daa2b944 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/73.…
-344100bc9c23ca1131c7059d61b538e2ec3bff6942812479b41afb0f1684d5db | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/73.…
-19d5346f601edef76e0cc48d21af9c98cb9f0113b5dceb22ea5022f990d2a7df | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-4552b9e2b9497b633328f50ead3c6088558c325375f3d9f48388d8861e33bac1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-5052aa3ed2387555780c5f630333fcb3330c480b8e513a6a482e3ca2581dc391 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/73…
-6caa9700393740d16998c74526054bae6d4c10d9e523b5995ebbe00808991abd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/73…
-eee3fef8cc33f30832b4b56a63acbd735c2bbe97e9bb8d23c726b54a46780d41 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-cd975f44f979b312e033c405597c15d892e98dad35231dc86f4e9c4c5b46339e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-72b001ca36b87111f1f261eea32eacf31f5abc0dcbd85e5d63f5beed8d938498 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-6f8b6cc756958c662079b08239f9be57686e47e85fc77c759ef1ea6c84cf6e8d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-0d15afad4213c1ea74f1bf17cb86f7930cf67c7e5e645e961683925c6677657b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-3f8f942926d587b687a0823a972049c08ea6ac95c473d297d8034d5a012877cb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-e1e215beeec864765cf6356f2666d9645b06f7199c93ee60ebadc43c630dad2c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/73.0.11/l…
-044fb381f944ed21a28dcbca1e3b77a23df958f3fe71003ddb1b5cf29d2f156e | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/73.0.11/l…
-61046fb590a4e7da135a34c3acd7e860e51c937c313ec00d156d40503df49d51 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/73.…
-35dbced9180a3a954c1cf2f279d2654e2fd82553b65499123970f8fbb8a6025a | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/73.…
-e6ff5bdb4f8372ec9acf9d89646cf4169a2af8566892c19eec98c93eaa9e96b5 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-7eccdac67894ca32bf0e3e7633d7d6e3d2d9865c6bc96cfdfe5d39422534bf0a | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-a469c7e07ce0b8fa976507f534b3f942b488d819f0a1a254a0b22b66386fe6d8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-61b345e9ddb0a6a019d26350efd82eaa7702e6915b25447e320c544cb8b2b73f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-f5a4aed033dac1896c856437183ad1b86bc1e9b05f9097e5c2bfc669ecbb446d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/73.0.11/l…
-b51f6e8565f0db9475e4b83a80b6aec67fb2177d35e811c63a99f9b275234fb7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/73.0.11/l…
-6a3c45629bf4e13ed742c95f22bb00a6a9235670b5ef97d3fad5147047febc05 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-784f0dbfbca1eaa5cc29860d27e7a73cf6ed60e8a3b3a3d1ef7742db54340ac7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-be6262c3e8e4086866b5ef1b6c3efc89bc280b707f66a651fcb9549a17e32d51 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-a558c4bc83db26b3a7aae78af87a00d61462ee40ff16f38ed6964727f64b1e02 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-08ffd378637b8a10855d45740823d4a9c273699177049034ac63b8950c1eec28 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/73.0.…
-01d10233b6c4e63f749c6274188a838be3052f2c6c7bdd058c4d4afb8bea6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/73.0.…
-bda08923be62dcdd2b2d1ae26dc1503da305b5965bac3e82e4982269042f5e82 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/73…
-4b8d60bcf20be643a652e6f8df433c2af505db58688f63cbfba9867d6e0aa310 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/73…
-3efafa346a192967bd72946f063853cbb1e957b7d1a7053517b66fae4e279f9b | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/73.0…
-5ae57a16aa7a006e5812ed190b754851dfe7c1653d729c7ffa49e40a4cbd0506 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/73.0…
-2887a688ca6b257849cc9cc19c573a3568310ad01d53ac3261b91f72892573dc | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-fba69d36c8e982f351f2dc291eabcd36a170595b21f47ec69bd0266bac766d84 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-fcff600993baa0b6c2a70639253a14880c350260083d6efee14b0da8c6bcba43 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/73.0.1…
-afbe50d98d855e12c299a57b4b3373830b154ecb5d55bb52080491e2ba3570d4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/73.0.1…
-40994cad75fc76f92f9461e0d548e35f1a4d80e56336305d0b3c77bfe92618f5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/73.0…
-9c98c2cf30542a40fdf8380422b8031b275a99b77ccaa664dcc74bd9d686718b | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/73.0…
-3c8d670279ea935eb69293dd99ae0434d4fb4092397f9cd2d754b76f05bc1d70 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/73.0.11…
-5977d3c8ffc2c109c1bf55706d8be07d2b95592b3c6ade94099aa5d6ce823065 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/73.0.11…
-489d8af504015a2ed04e3afa77e0e14c0cff604204f2d86ed9f8b793c6faf3a6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/73.0…
-32fc52eacd48b198d6f3f5b5eedaa99898049e831daf8133fee04e8f510e3720 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/73.0…
-04259ad572ec6a115fb8bd47d670ddf9bba5956320aac7153edede90d8b4a79d | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-19d54ecd0a7310e54f7ce66b5a38895111e4bc8b743b6e75ffd84255d303e3bf | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/73…
-b4eca2aa3bb909186688ec0bf31db985036d53e689dd6333045c08d96f6680d5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/73…
-e226502a506a8f99bf2e7f3b33c276e2772c98f148ed2f54c700910bb7fd78eb | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/73.…
-98cbce37db6190ff6f5ba05a193f46ea71ac2adc80351e3449ec337635f44dad | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/73.…
-083bcfb471cbbd1dce87709953051dc36c0873f45b6d5ed60f3c58c5e6ab6730 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-1bc9e7567778d214336b46d380bc837b19cba098ab3bb7fd007afaa5538a6bb8 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-d6e6b960d31f7cdfb1cf95872ce81c3780c7fc5e369efef46f118d6806c2411c | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-8e7448323194006e10d2b9df3eb085d7e050275b2c0e3b9595aebdcb19ee91ef | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-86e41f0678aad62b0098d9ee638cdc0c12c063d1bab5c84f7d1e12ba8a6615aa | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/73.0.1…
-2e3e59d1cb2193a83ade99bfed8fdbb5faac015b8ed49f5d6bca5149bc89b42a | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/73.0.1…
-f3cc185bfe40e671225aa6c2555cef4db7382c569da6580488cda053d73a9678 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/73.0.…
-3c8c963f9f7f2aa8cc33662a4c16ef574d7ee1b7f6873e84c765d3ffc1a977f2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/73.0.…
-d19e50c0207f782ecce7b109232cf09529fc46720ce961eadf33b70b52f3680f | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-4e7d3f51ff22ac212b589f96b6f0cff4098c9fd6330d8372a77a35f9151eb83b | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-c8afdb509acb2fc5b94fce3f6f0b996d2df60d6354978eb8b630b86c6d5953bf | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-d5951211b46bc0993e244e0d77569f02d1ffa5b6eabf0be55a3210e915b3b388 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-541835af29d1453905668ad01be21c20eef303de873069d9b8e903981d36a108 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/73.…
-b69b5a3de291efa39358cbb549dcfc88ad1ab8d81a8dc5b690c922b81127d636 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/73.…
-3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/73.0.11/u…
-30202e4da39e00ececa949b312dd114510d5cade00f9b39fa7f3941ca045b90b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/73.0.11/u…
-bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/73.0.11/ui…
-715d573a7c6cd1fa0eb549173706f07bf176c55d1ad7c44d6c3e2d54bb03e494 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/73.0.11/ui…
-ddcb133192ee30a0c432817beaf9858ad8311e43122f2704badae5667a6cc751 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/73.0.…
-252d7b0aeaa61945f4ecae9bfe4e636426af537bfbf0f521cdad9c2a3bf866f4 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/73.0.…
-f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/73.0.11/…
-26ca9683f2b56d600329f4fe0cd55543401c26095a14c57d2a355632f365e3f1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/73.0.11/…
-587abedeb0d539781c3a64e1d97f94e4e58598d59a110ec35a5291f5c471f441 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
-04a3e6fb38caf74c58fe80b36ba585aba5ba4a22d06e40ffc2d9f7a47015fa99 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
-e019974021cfdc86752984eba6309e7f865e3efe6d4ad40a012be212f4925251 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-66ad663a2b60d756dadefa2024f664b7befe6fb22535da80aa88b024fe9b64f5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-c9a1855277e7863529fd20a6bdfd09659b472026a98b547b5fa6a19c5ef0d67e | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-22cc8c400823e3fc8eda2e644083b137a9fe867333845ea29c57051349afbb3a | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-60e34ac4879aa0f8e32fb117669b09ee8946aa34e9372cfe0008995807e876a7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-0b981a04d70ee3b438359a3da2548f56b188d594dd67bd297a09f0fa0845e348 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-5d942e4a68aef1fab1b219f51e2882eb61dfd27d4bdcd9265b6d375ce5e5fb3b | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
-681374f4e97bd97098c1266973d89167ff9c592ccb89617832e224135af72637 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
+6d600e6f04708c1393db6a3fb57ee273068fd8e7f95dcc32c184e3c2bb767599 | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/74.0.1/au…
+ca74e10892b729a0026257b89e953c03e77e44582d1686f65e8796d969ba16fd | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/74.0.1/au…
+27f6e3a04e31d8053e832a446b4bf20bcfd04da56d4a390a28f3392378b88fa1 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/74.0…
+c91395a9254a9bb3c836440397d1cca9fd3b541e528d4570c646594fbd448436 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/74.0…
+71c137d337bdd5448e12d6dfd8054089e4a137be234d1f6f632f5b86d351a3bf | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/74.0.1/f…
+02a188b095ee842e4e4b0abd94267fa4e5d927c9c1254c10fa33ccdabd1b1eba | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/74.0.1/f…
+d14aed2d965a26b800233d2cfde8af9c0b3ffcd407755c8573ce3d95d32b4295 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/74.0.1/…
+b871986d31a139a52b7c48125eccf4a4ee051397340c34610e852b2fa5d2d8ba | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/74.0.1/…
+088949b73a203b67f985b4176f000a76eccd81b6a9aed6306860593ab52a8b6a | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/74.0.1/logi…
+72b5589ae447235096e976b35cf492283a51f47ff89dcb9aecc221128cc3aab7 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/74.0.1/logi…
+fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/74.…
+411555e4106ad9a1530aeed5b669f6ffed5aad31d238c11dd954e9fd16aecff0 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/74.…
+3897c1ad3624ed1804dc673e3dbf5b3002304c41d78fb355e76c3d1008e34b7d | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/74.0.1/nimb…
+8cf93085518e4573284a88ab0446149f088c602942b83237cc553a22e436f380 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/74.0.1/nimb…
+25e7dc1ab9c98d45fb4cfafb66835ec6bc6a90e984101745700175a35088db2e | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/74.0.1/plac…
+34f6b257886def31cec92fa6425fd1a455471a0fbb635dc1b4691dfcf1f3fbac | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/74.0.1/plac…
+b8840f92f21c7c0785d10eb55e14f3bcdff6e35544ab1b08b56f8fc74d91f6e2 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/74.0.1/push-7…
+202dbe51a9abc34f3448d9430507dd89411188da630ed5797129ab0fbdcea61f | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/74.0.1/push-7…
+ea871f7d5fab5a4315f41402de15f94e13481d03366396ea1bf3880f4f242c1a | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/74.0.1/rus…
+83bcb4a06dfea23a55d24bef657827cd6b09e534a3426d857a458332e356c2d4 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/74.0.1/rus…
+57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/74.0.1/sync…
+81dc9452086d8e8fe360bfc4b9bf4345acd6888863fa07ac5f02110fa887c558 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/74.0.1/sync…
+264d997abfd49412dc0ef5b2d1811d6b9dc62dea06011ee07fc105002b314a4a | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
+cc7f7850bc9e5fecd8c699d0464e96bdb6765778e6463bcfc1c1efed08ba6ceb | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
+4ecc86b606e1713faa7b75b01fbcd52d7d521f0c5c99784f07d87188cd73ea9c | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
+c93fe881fec0df7da21f151b05652ea79157f08ad680d674d9591f6bd9843cea | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
+fe1e719d3e6f67da989ec022648f044e828dd2743b20b4ab75ae3668321cc559 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+3052024c9cd7e93c912dbb79ab0922e282c266e2abb00488fc649a88dc958d22 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+f7d172219ec271e133876c588fb178546738d8370a70fa905cb2e8712b7e6231 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+284f8334776bae99a6bae81f51a81e3493579387fb4ba0303147ed2f4b4d82be | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+36e2db414e4da8b7a393d050bb83bc5338060ee38ea42ee50165060dd8a76a30 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+faa9e3d9128cfa319864b3bfd57e5c45b0b7e34bd4577c61e2f5ecc8a94efcdf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+3dae363ce6471bac82619a8026d351a9eff52dc68a0e653ffea5fe1cb43b7623 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+ccc0cb52a61bedc6cd0947063b254bfd19c14fb6b2bad798cae50a1457351482 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+7f86a7743824290a4c29058cb3c7db1ca38973c2b3b10c5c1f11a1b200b76577 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+8aaee820665cb79334fb8fd0f1566c34e65162891602e103814ce23b82cd2c51 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+914c93db7a7e8160e42faa31d5c780272b54d823b0b1cff57f3c3942b161d911 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+360f6c685f86b45d53ebe5f764f65d1c55c21e2cd477e4f48c7a43e68a02688e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+8aa60b548d44f8045fa5dcfe57668c37be4aed9f89d4ec7a726ef358f2f4477d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.6…
+d0d5c9ecf53496171c93dd6e570799b58d13540f5d4323f583696e38f8b3644c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.6…
+72fd22d37e91937532e2dcb7bc020f9550935a1756c568d43dfd79b285747af6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+b620c2b4c4f92c7ae3bc611fff60270fafd5de47e450bed08f3b7b3f481431a5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+27ccf086a3aa15d7f74d915280e4bad2b691c70bc9536cef5665d7294a6563a6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+a50da79d6a5f2dc007ab8536da9f2d30cb88edbb049cdf7a0eddc232c54d8f93 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+f92153ebfc80f08fb43b1ed9b70d184dfa8aeafb2d2bc0be150d4c030027dbbf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+ede870618f5b88b0ef077355d9cb3d057c3629d05c2937adfe982612b4568c5f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+e9bf6891352eaf4670d9f73e4dd5617d12b56b20161c710c0fa8b5b86174cbf3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+aedd88b79115ff6d624153fdd74633cd247bccddd29c37d04ee415d4beabb097 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+7f3619432f6c3f3c3b175d8e889580f11d7a5e4c7fd3ef734cb18a0467f9b670 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+a3fde0838584d7fed341c137c866b2ff1d0682ead0004c58d713719f6e0f5203 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+0aeb6e48056fe340d627b50550b9487f0be677ed97e1af8120ecd79840414416 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+324290f86c4af76d7a50e5d3716003d6db563e67f1b68341e5597d3950add367 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+0e2bfd55aab6b16c979a2475a4b68fecc6cef25493927a1cf3915ad17ae3585c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.6…
+9191898038cfde89df3aff01da3b27d02bfff0673ee543f7939d337577af0fed | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.6…
+5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+56c8ba56874cc37461b9075c996cae699ea7d77670022962366b983517039850 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+b3d266d989c919633be1b86c5470c5850669debcb7c0cd5243a0712299f41eb9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+5aa455421948ff9b82eceadd7550190be2fa61abd3baa47849ec4c9aad8be86c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.6…
+835b2d73b97efe6df414e75a29b992280e9b2e29ad4b1ed1a0628e734f9203ff | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.6…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.6…
+ca106a9dfb6cbf4e4f14e1a483f48818af243f9c23c0afa9903922c19d952618 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.6…
+613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+91755d537157780e37cd42ed94162c13bb1a2ebc2501a7673d301a7c9629444a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.6…
+904368510520103d6253f1bc9b0a6e0a0de854af12deb005828eb7ffcf1e17b3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.6…
+70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+2d2e96d8a6f1d6812b038f5ade1dd87d984e3d66368d63cf0c5f3b03f43518c0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+c4c3dc06472ca89007665785da83be702dbde967e6de0e11e2d52926b309ea49 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+ffc7c97a784b834817f64df199c4f195c0622999469685f42fb8078f6f3725be | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+a4e0cdd659ce77cd4f569a208d937b8f9d9c8e359b60ab96886e9b265decfde4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+bdc7dc3837527154e092940ddf5e98efb863d63bfd9746761c9b74646ce5fb7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+f7a305b9bd0dbf2c4d6ac5a718813e58ab9556d61770d7373bc15c4c05c23550 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+7ba82739848724e3ebdd6e5f7e1435d96ce26d91d99dc957e92067d18a4264a7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+41d8b04339dbafc26479cc39638d5aa88f363efaa10c3188213feede5c5c5cd6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+71d725deda68d950275eaf70de15900071d8bd34f3ca0cb485d4183ab046da89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+c110f65b18fe350f2f6c25dc3dbc9cada683351fccc0d3b48ceb036588226590 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+1bf7f6a2514d73b3ed6a432e5bb4dbbeff0db3bed0d9849ca8c1f6f5a79e6988 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+a01b988fc3a0f467d0b2ea46f419b6f5908862093afc6128b2271d3786452ca2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+f861ca0322ee096027de6604ae6d36581efa36878ac44bdde92fe3e9fa3ae190 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+a44903fdfaf763d39090e70765b112148e36b0008237d0225cb02bd2ea203cf7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+94c15f0f8322cc0999584f157af93e9a385e1f636eefdea6ce78174122a6c580 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+47d3178458da48bbab21dc5a2338c62661855ae7a6a7e2f875a56b67e0e67980 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+7cf4ffeebdf72a1127232ce3ee91041a3bf63ae778b6db13bb18c486ff791214 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+8fd2c45a46c3814d612cb312e963a277f94ebf84b60b3da884825354b129360f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+9d84569630948659a5278ebdfb5b8463e32c6282113e581c568c039847d1f31b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+134078e44e2bb5b0da67f33799baafdd3308723ae8a93365084b3179f7aaa28f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+8ae23ce03d57df8923d06458e394c2f508e6d1c5f980a78dc2d66f97f911959c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+7965f18b31eab9ab7909db4147ed7a967acb4aa7c5ec19b3d9a89a13d5b5786f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+bf7bd8f88277f327f98946ffe174820f3d49c561529e01e4ac0bc754c45311ea | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+87984b9488bce21f59dd7d5ca8e0eb78106aed43013243a1453186b63c361984 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+cf16058f8e49b9a00f52518460f359f17f0d63a5ae01d37fa11a67e9b461479d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+caaf0af18e8912ec794a22ca645a4c2e3f48ec7d633a041661a9e13b2591abc0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+7f8b55c74e16b5aa420a289c678285926fdab48529d1113b3ebc7c6cf13531a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+cbe78d0082e6d7d0808af8d376e71b5f4ee9c93294682918613326f44c0cd3d2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+c1b2083af1eec35d43eec4129bce56652a402bd44c35564d8f73b9b0d5b18e9f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.6…
+f97cc9ab41a5c1edf8d2b27815b838c029278cd65852afe042c531a2e508c218 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.6…
+165c91ac35da27fd05d606509bda0921dba2113d0df4fea4e696fcc4571ba006 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.6/…
+16d2a78a1c316d242ce8bdb1e371387c549b55c2728f2a3d72ad64db611bcd77 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.6/…
+f09ece651c3dd4f6322363e896236ea7256bb959b0a6a3f657b8ffe9f22ad8e2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.6/f…
+e70c41044ff003182f208548e3188be1a37101276343ec8aae63e5135ae9fd00 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.6/f…
+130a84d1d763535cdb397dd442702cef7183337c71644efd3a0178dd959d1388 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+d944e905ea766fe05a11f583a6548aab92215c31846b1f53e222963f95aecb1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+29687b737ab570a32508a6e7066f7b4b94a55d43849742fa61e4ac20dd968065 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+864ace86a007c6cef6cce201dfda76db95cf0bae34d7f1dd85d3ad4bca10035c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+195594b4bc2d7fe669052801f87315e40947791879e7ff3a5a57424a118e56e7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+2b069241fb17fe87b9feaf60093ec79cb97e630f0d1899421e8381ea9be67c28 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+6b7861bcfc25554efbd0c22b9a56b96524d73884dc3a6cf4c722ac14c61ae943 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+0838a30ba4f8a70f3bc07fe527d48c9cb3bca07ceef872e661dbe72f0b1db4a9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+fd7c7aea716595cd09e4c1eb581cf6a873c27c0abe4981442ab8a522ff242b94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+fcdc50588cb7c827f70b0c6eae5f446dc0cec0edd02825e42ae2fb28b6061185 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+63e88cb2a29709df2fce934db92750a804c319ae9c8ee4589fdf5e828b83c6ec | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.6…
+3f601c619aa2cf2da029e3e303dfbe8ebd84f31842691db3a9d08e88d06ed858 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.6…
+29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+bf5ea7e99b1326db116a07361e19e1d0f59075c259a48c9386671f759462ed21 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+7e624b60853cd5b3c3142628e67f0b62c5c029cefa9397e0e808e25250379815 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+2234c9c8fde00e987120fcbc667d43df941a28bc2bee74c8f411310315aecfa1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+8f49df4e3d6a541303badb0e360e5c2839ed854dedfc59dafb94fa881728101e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+ae21972ac805c01b7b2975a16c02d2afaa2b96445d35f46b16ab25571041b670 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+163be0e49e266d6ba97621a830c6acfba760e79293fb6ad16e0eab8a07889a6c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+afefe5259bf4630b1e26e93a77ac7fe327d3da26254b6f6af1291980fa70596c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+cd044ed7be200c8ea8733b920e335f3b51e33fb38ddb39cc425eed82859584fe | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.6/li…
+70096fb52edcd596cf01b9ac6fde438ef03bd79dd744c41cd6d026e01d9e7f98 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.6/li…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+4c57acd1a1e95a17c00e3bc525a6d236625fcb2e63919b6cdc0de0fbbc11b81a | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+4efe6b346499a7b7433e82fd30fc91f9e607727e82158610a6cb7c26c2328e69 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+157fdf33f5acad1ef7ee1e82ab7419b93fdc38e4bea46e45767d73e0201849df | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.6/li…
+5b2b208d8f1987bd7375b8eb0a366c7fa5081b2a27a01910e3928577f1f66406 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.6/li…
+26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+1fb1296b12d05efb445136e868c8e11cb792a74c1376b89cf12cd29a1b2b04ff | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+e9a3b3176cd8e94947494d56d605b3c11ebf29233dde0df974484af2a607c901 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+c7526e68869cd82aaafca955f9787b8b6bf3358e48bd1965958cdf76ec46c454 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+44cf79e99f09034377b7173c8734478d848c0e75727ac9d63c1429cfccd181d3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+9c919fdb9821b7a5b2a34ea45b2dd06113e3707b58d937046ed55271177415e5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+86b0370451f7b520e7d7f4f2001e1a270e5b6d575be556188b21f62a75a0d1ae | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+4ffb2f8f0b557359005fc40678cbd9019143191eafe97f91418bcc38309e176a | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+be64bb1c461fabd8ab98e97f4a670700611353d701688fe01ef4e19c64d4bba0 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+5831b29898d32fb28b0e250c13fc43c6671a05f4b0698e4a2d3b38e681ae59af | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+3f7925e839bc9b1a3ca9ba8026de0eee3ac8d0a40f97cc3cf662884dcbd90aa9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.6…
+61e1d9f9741f7c34ede17477cf43f1e26e76b6f00b3b8304a7625a0feb0c11ef | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.6…
+1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+3285299076b3b4f608b859ea827211020559a53394b389373d1fccb1e4fdac29 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+d5a3e32eeee210ed51976d15b477c64c26a9a661d17ecacd4a7027e2f6903054 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.6/…
+14fe7e1d7c44bbe74bdac6ea7525267c1764c013fc650808aeac51f5d66b6c61 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.6/…
+dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+3c466254f805494ddc23e05d3a01bb33beaf4b4ea2f17122333c9b845616bc81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+358d74e5fa4226119eb88002bb2006851995ca5a85b4c96aab7b4ac4cbfb513d | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+87089e42f15a5ee1cdc6b29f158b6bc626ed1baeac448648c94be030e745c4f0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+3b05493515192b3150c727acec2434f5fd47f9de3d079a476489ba9a25ed24f2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+d06ab1a930a5ed2d0e4b09da61e8af0ea52dd12673879e34a53dea0946816f75 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+d0eb9b70d2d192d5f86a0499f122a2d6101aac570fb8a3c6b1ffffacda1db1ce | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+4aa2fec5b64a87ef4b66f72d8600cfdeb6a94068d47240cdad882d76e01e4f37 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.6…
+18ebdd0eea1ee700ce694f156146f5ceebd412d14a782b674699578c27863881 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.6…
+47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+0e4e8c00b68f38efa6ce479bc546648c4ab51834dee9500d3dbc7e47d6cb4ae4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+38712d035306fcb2bf9512c08f6562f8b106370e5d419676d2509daebf4cbfcc | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+ee83c353d2de305d191033e818d3cb6070ed27d69a651471a3402dca3c57c7c6 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+42b25810a4f1d769f7140d8cc11e9b63077a6e6f678e814fabcfab2fd447f012 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+116562177219a949d178ce91dbf60041559a699cbfd4fbfde40b72723905118c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.6/ui…
+f755f891871ada458c70dcb5819af845819525bdb119337914a0283695f2f9d0 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.6/ui…
+bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.6/ui-…
+b0e77ca12374820e4aae44300c827b9b7605451bf7b1b4d4b5ced8730fe65f37 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.6/ui-…
+68f2d6a7519c47cb9c7ab41223b391c30247233958b7785f966753bbb4a64c79 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+43a558dbc5e511d875b78acebac4d218647cd9f38603e6155a6a9c3e652d7649 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.6/u…
+f59f0463227d7ed8d62a99e9e3f4d9a16a244744dc4e63173bbecb4f921a7edc | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.6/u…
+4c496ab63c3900ebbd9bde50d520c28c29ddd594ae3958f161f41a5810ba60fa | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+e55a5d7ebdd6cae43d2a820c16f771ad8d87f25b181828ebd10c721f8ad445dc | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+418b2052928c75f4071b533cf864baaf22d0f134f6418200b8ab807c93428161 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+9c4b5dd3e37936890909a0795be552664dd861f9f28a9815a72a4abc7660c700 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+93d7a411ea527507fb1510d58c764aed2ec029cdd0b3c42df00ceea01afa8f45 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+953648b707c804301df08d70db75086b70c141e72d66826e88f34f7aa9ab880e | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/35.0.0/glean-3…
+9acbb9dba515f2142695a17cb9ac123032dcba24423b660f5e0f0b95adfd22bf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/35.0.0/glean-3…
8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27 | https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-p…
233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
@@ -618,27 +585,61 @@ aa42cf65e9f7475bc7cb2fa7cb7dbf99938dd47de864bbed68135e5a12d3a482 | https://plugi
74a54eb154e18b54fc69ac03ab8d186f3ba293b976eca8b336566248ea2633b4 | https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotli…
bdce53a751fdb27af6608039df81214ba22d902ed4169540a3daeb5828c99cad | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
785f12a193912d77fe3b8714567ad5f01d727512a47c5a43aef57852cc1bc9e2 | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
+ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
+965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
+affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
+310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
30278f88cfefb7bb328bedd73374242f8e3e55211e53884e4820dba271132fab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
5d87527b1f65a82d0a6a4f56cceab960522001a0fd010159a723ab897d58da0c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
35d8e287a1d74dc55024a42bd788567e1f73e2059eb804319876d652f249ef59 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-proces…
2d97af231b25d4f463438a66c7c368a8e395e49ebb623b595ca860cef917334a | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-proces…
dc0d14042176647d0bde5954aba8a435f6a8857f9648bbc454b94366bc1cff06 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.…
5a6bb0d142ed04c1df96200c35bb72bc63c3ae7ea6c876834f37d83938f1e3d4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.…
+79500b867b1194cf781ac98d5c706331a3d3ce8448437f536f8d4cc2faff50c3 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddab…
+2bad6c031302519db14517bcc33af09f137845de40e5b223b778e8a38c561fd7 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddab…
a2d8622ef0e2877577e368ec3a2ffbe7978b4512aab456d0db6427d9fae39d47 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1…
6816c427914a4e4ead92300c0b643339b07e7cbb3355d48d5932dbcdaac7d058 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1…
8f3ef9192e17768cd4e1f3c1f1c225ebd3b500a67ad05a735b31aa16e01c181c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3…
215e6f1bb1980a8bdbef9c155557d17e5a16fbae84d5cae5bf2fd20b86b87d2b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3…
+1a4b999a2d9051382430994126c4bebd143c853e26d6bca4fd4c31924072ef5e | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable…
+eabab80e05fe2a31e2f2395cedf589cd72fb8df0a82e08e93c2e36fe953b8d59 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable…
+b0e6d0ab0c1f1dd2e2e5f540eeb6e5791820bdbe4f34597b4af183145dd2a493 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api…
+eedb363ba1f4b999e62b34d264f1b37492f986169d808ec94ca72a67938291db | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api…
+110fc7e4602f7aa47286a74756b673903ff3db5044312a16172eac38f7ba1224 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-mod…
+fce78c0c595493d89f90fa4ddba466abf4497e61aac6f2f0449ca1541c167413 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-mod…
b914cbcd8e55e76f221cc863912c38b1fe6ce56800300c147f85410aaa8789ab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3…
8ec81474695b94779488b99183955cf0e1f50fe4d048af920b756ca71b72ac90 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3…
+bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.…
+21d04a0720be4a46804e1b73b733c72269c16900896ae463a9e87a1d04ed50c6 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.…
+a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/ko…
+61653ccfae8caa4203e267b479821bd90faab3fef744a7ab0fdd9f61150f970c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/ko…
+8e525c7a19a94aea294403d531fd61eed3f08b2992e313a594cb531b75ffc35d | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver…
+4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver…
+d372f2dc8051f3d1d4fae3bd50e5fa109d3ec870c4a4830112f9afc8560aacfd | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.…
+65a3e614b27b2372f350cc015848d44cb14ca3225d8d41e1c54e60ce95e2131f | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.…
+420198546b466bfa9c38d1d7fb2ffcdfb8f518026e8f4a7ca3851fbdd525a538 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/…
+ad6cfeaefa234918fde058ab1f376168abe54cd1e7d12824fb15cc8a07aa0f03 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/…
+e91befa8242e5894158c0275d26d883599fe6e6c57b6952129aebec17a2ef0aa | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+de70f4db2a9d7d7aa42f88f217d59b61ed4357d4de138fadd3e459320abe52ba | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+d9a1cb78976db75b6173b51ad04efaebc2b3772636ad0b45cac4cd2d53222dc9 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+0e1311cc6bcd06f373cf8ef7c4d7380087f36de70d9c72acc432e02dabc30a9b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+5a9cced336697fbf2fb4b6c8a321787747f5e375227b7e355ebf3259365c024e | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3…
+6a1ba16592546ab118186a5634c9b24589ae2ed64f0cdd41a913ffb3c2b13db6 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3…
+5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3…
+24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3…
+40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.7…
+9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.7…
+133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.7…
+a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.7…
+3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kot…
+4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kot…
+9ef3d0277fe54384104a01089c8c718a9c2a7ab2b5292ff803ecfc9d38e7d6cb | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.72/ko…
+8131897af3fb30af2464efe56161a349087bca1544cbf57495158714875163e4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.72/ko…
3825cbc39ac9b557bf11ed52ed8552200831004a60e845eba61c77ba972a2d9f | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
0e10935a94077c217ec5107b451c0859e89a27f67fd09543bd044c798cb154cf | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
+7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core…
+6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core…
b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-850c01bbafd141a724717da4e3949414a7d9c7817af55609881295d327196102 | https://repo.leanplum.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-5.…
-a5c9bd6f2b3674883e57a8d3300772bb7ca98d8a1388eb8e49f197710dc5e0b8 | https://repo.leanplum.com/com/leanplum/leanplum-core/5.4.0/leanplum-core-5.…
-2d07df02a6a005d1aef3ad79536876765f4ed5f4ad59ca8cc33fd98274ad8b39 | https://repo.leanplum.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.4.…
-95528938a88d19291e5f806201d15c70f7b6699ac554a7688c2677f8104eb9f6 | https://repo.leanplum.com/com/leanplum/leanplum-fcm/5.4.0/leanplum-fcm-5.4.…
-816dfed0ce6cc5d2369188b0fc93a4a0d3190b0f98aa61558e54910de3d82daa | https://repo.leanplum.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-5.…
-c6035475a5bcbfe4d33dede02de3e91234e25ca7b8d75595fac8cb52fd6f3131 | https://repo.leanplum.com/com/leanplum/leanplum-push/5.4.0/leanplum-push-5.…
f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
770471090ca40a17b9e436ee2ec00819be42042da6f4085ece1d37916dc08ff9 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3 | https://repo.maven.apache.org/maven2/classworlds/classworlds/1.1-alpha-2/cl…
@@ -732,6 +733,12 @@ e37a4467bac5cdeb02c5c4b8e5063d2f4e67b69e3c7df6d6b610f13185572bab | https://repo.
a0700d84efe7cc3103557bd0522f9443681b96ba9559c4bb7f9dc9bf35243485 | https://repo.maven.apache.org/maven2/com/ibm/icu/icu4j/53.1/icu4j-53.1.pom
a6e546ac89a9701ed5158082e49ad9b41accade443f02ac41f46986472f4a5cc | https://repo.maven.apache.org/maven2/com/jakewharton/disklrucache/2.0.2/dis…
ef8ee116b3dbdc0115b4b27be60a02d1d3c7a6f2803b2d79cd09ca5dd72ebb9a | https://repo.maven.apache.org/maven2/com/jakewharton/disklrucache/2.0.2/dis…
+850c01bbafd141a724717da4e3949414a7d9c7817af55609881295d327196102 | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-core/5.4.0/leanp…
+a5c9bd6f2b3674883e57a8d3300772bb7ca98d8a1388eb8e49f197710dc5e0b8 | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-core/5.4.0/leanp…
+2d07df02a6a005d1aef3ad79536876765f4ed5f4ad59ca8cc33fd98274ad8b39 | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-fcm/5.4.0/leanpl…
+95528938a88d19291e5f806201d15c70f7b6699ac554a7688c2677f8104eb9f6 | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-fcm/5.4.0/leanpl…
+816dfed0ce6cc5d2369188b0fc93a4a0d3190b0f98aa61558e54910de3d82daa | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-push/5.4.0/leanp…
+c6035475a5bcbfe4d33dede02de3e91234e25ca7b8d75595fac8cb52fd6f3131 | https://repo.maven.apache.org/maven2/com/leanplum/leanplum-push/5.4.0/leanp…
1690340a222279f2cbadf373e88826fa20f7f3cc3ec0252f36818fed32701ab1 | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.10.0/javapoet-…
83f0fd4baebec3bf29ee3ad2c024b3065ddef825a5aa29f7dcf5c189f9fa2962 | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.12.1/javapoet-…
a71ac3d8f27cb9ad32c87b5d8959f22d671aeb460c7a355d09f577e4c57e4c5f | https://repo.maven.apache.org/maven2/com/squareup/javapoet/1.12.1/javapoet-…
@@ -1039,6 +1046,8 @@ f8c8b7485d4a575e38e5e94945539d1d4eccd3228a199e1a9aa094e8c26174ee | https://repo.
52614d618c5cb6a8d5d437e95102d1c45565237e09083cd64031ab7b23303a32 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
2e3091a94b8b822c9b68c4dc92ad6a6b0e39e2245b0fc75862de20f5a7a71e9a | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
497a7639820ba0758d4e0c1d6f82fdc8a9b6f6c2a28d91fe03c6b0776db4be40 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
+1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824…
+c94b0b73790c70c709bcd445a01247908888211e38cc59e946ff6fe900785ae9 | https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824…
518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.j…
c7e660c50bf4ecda0fc81ab62b489db9171e207fa784ddcb48c6c85bb40b49f5 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.p…
95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77 | https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1…
diff --git a/projects/fenix/mavenLocal.patch b/projects/fenix/mavenLocal.patch
index 2386049..9415037 100644
--- a/projects/fenix/mavenLocal.patch
+++ b/projects/fenix/mavenLocal.patch
@@ -1,11 +1,18 @@
-From e4dea681f8b458415dc19343c1a5298d5268ae34 Mon Sep 17 00:00:00 2001
+From 6ce1e079030b9191d2a9960b3fb266d7b723180c Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Tue, 21 Apr 2020 11:03:13 +0000
Subject: [PATCH] Bug 33927: Use local maven repository for gradle dependencies
+---
+ build.gradle | 2 ++
+ buildSrc/build.gradle | 1 +
+ buildSrc/settings.gradle | 5 +++++
+ settings.gradle | 6 ++++++
+ 4 files changed, 14 insertions(+)
+ create mode 100644 buildSrc/settings.gradle
diff --git a/build.gradle b/build.gradle
-index 9f00fff0f..e503efbf2 100644
+index 093a4fcd2..9b51c77d3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,6 +5,7 @@ import org.mozilla.fenix.gradle.tasks.GithubDetailsTask
@@ -16,7 +23,7 @@ index 9f00fff0f..e503efbf2 100644
maven {
name "Mozilla Nightly"
url "https://nightly.maven.mozilla.org/maven2"
-@@ -78,6 +79,7 @@ plugins {
+@@ -80,6 +81,7 @@ plugins {
allprojects {
// This logic is duplicated in the buildscript block: I don't know how to fix that.
repositories {
@@ -25,22 +32,17 @@ index 9f00fff0f..e503efbf2 100644
name "Mozilla Nightly"
url "https://nightly.maven.mozilla.org/maven2"
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
-index 508a8d43d..a402f4767 100644
+index c3d133e6a..2eb6e05c3 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
-@@ -1,11 +1,11 @@
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
--
- plugins {
- id "org.gradle.kotlin.kotlin-dsl" version "1.3.6"
+@@ -7,6 +7,7 @@ plugins {
}
repositories {
+ mavenLocal()
- jcenter()
- }
+ if (project.hasProperty("centralRepo")) {
+ maven {
+ name "MavenCentral"
diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle
new file mode 100644
index 000000000..a7066edcb
@@ -66,6 +68,3 @@ index 8440fc306..d2e8ba475 100644
include ':app'
include ':mozilla-detekt-rules'
---
-2.28.0
-
1
0

06 May '21
commit 8a8bd0523e900dbbfb6418ba8be96214331d9381
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed May 5 18:40:39 2021 +0000
Pick up Fenix 88.1.3
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 12 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 365 ++++++++++-----------
projects/geckoview/config | 2 +-
projects/https-everywhere/config | 2 +-
projects/tor-browser/allowed_addons.json | 280 ++++++++--------
projects/tor-browser/config | 4 +-
8 files changed, 342 insertions(+), 331 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index a9fc612..8c5c4ab 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -8,12 +8,12 @@ gpg_keyring: torbutton.gpg
variant: '[% IF c("var/release") %]Release[% ELSE %]Beta[% END %]'
var:
- android_components_version: 74.0.11
+ android_components_version: 74.0.13
torbrowser_branch: 10.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 23
+ gradle_dependencies_version: 24
gradle_version: 6.6.1
glean_parser: 2.2.0
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index 9e2db74..fc57f9c 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -389,8 +389,8 @@ cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven
e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
d622b92149ed8477aca47dabe0fd53de75191a29ff4d79a0cfc718736bb4aa2a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
8d6bc0c248af8f3d1f4f45abd4e04bf76044fbce518ca3c384ff83fe9acb38b4 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
-4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
-52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+72a76c4fa3ae7f124803ec831cf3b9789310bf7db1d79f2f8bf32ae258981292 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+5f4bba20be1099c4a1f156099155fe159efcedf796130874315f02a99260bee5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
@@ -412,10 +412,6 @@ bdce53a751fdb27af6608039df81214ba22d902ed4169540a3daeb5828c99cad | https://plugi
785f12a193912d77fe3b8714567ad5f01d727512a47c5a43aef57852cc1bc9e2 | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
-77d7638a32bcae42c929eea307c9a3b48ae1a5abd00cd29f7abf6d51079d83a9 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
-92f058aef966deca25ddcf1b1ad028d822f94891bf61491ebc914a08a3481e86 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
-e9215460b1bb674b616cb9c8f1a1b172cdd7b3f4749662d864ebd3f319f0d73d | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
-f41e2f85d75abe256ae3f522066ad40ff9b3dc90b0f6e455508a90ba78046871 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
30278f88cfefb7bb328bedd73374242f8e3e55211e53884e4820dba271132fab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
@@ -817,6 +813,10 @@ fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 | https://repo.
6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcr…
1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5 | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar
47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
+77847bd6b80f4f5932ad1e18f952641d3808a6866ae461fcc50f986dab14775a | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-android-grad…
+9c71162ce6428340e1e098f03b5fef504f0326c5577cc53517672765f853b624 | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-android-grad…
+bbed1d9f552cc5f99a6d7d2ea8181e54e11f7a02ae7dddf899533ff37ca93d6e | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-gradle-plugi…
+61894e448d1982b955802bd8b45816c252c0180b3c1cd8e296f78a078ce684b2 | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-gradle-plugi…
303c422700f79d5d13d528b978c6abd9cd136d78d9f7f6f2556e85a81892f9f1 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
648025c01c56b234a7458cb6048ae8fcfa941f9ea8ebf059090733237b9df9b6 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
f120750af0c9e0c6024c3c76469fd4638ef898fc5bc2d4c49f2fe17568f47b9e | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
diff --git a/projects/fenix/config b/projects/fenix/config
index f91f67e..3835e41 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,13 +8,13 @@ gpg_keyring: torbutton.gpg
variant: Release
var:
- fenix_version: 88.1.1
+ fenix_version: 88.1.3
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 25
+ gradle_dependencies_version: 26
gradle_version: 6.5.1
glean_parser: 2.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index a0e9eca..ebe9bbb 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -310,11 +310,8 @@ e72912014b67151b689a7e820d3f1edf12fe2af5fbc308ab196ac392436ab771 | https://dl.go
a911c8a33f02942c10a5e730613a533c209d6ae8ddb0e7cd8e65fceb1162de56 | https://dl.google.com/dl/android/maven2/com/google/android/datatransport/tr…
1bfb68b9d898a682734faeaffaa86e3e63a1c70659438adfe7b38e63dec10ce2 | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
02314144f98d892df6ebca9ae1a81bec24f416b3e9eefe8729de71acd5d119bd | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
-380b09bfc5389fff93b5719c04e57c99678c9c3af0402a91e26d89734babcc49 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
-d851ae0d9232951d36b1060eb8a3dc07ac5fcf668cb741b0a5a165c60519c898 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
dd0980edf729e0d346e2b58e70801dc237c1aed0c7ab274fa3f1c8c8efc64cc7 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
c30489d38be5d41e19272f6aa47d6c43de85034500bcb1864b79381c9634d924 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
-a3801d0841b3bf779ef74370e18399c3a2401c405a046a528cd7e60ae8073542 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
d324a1785bbc48bfe3639fc847cfd3cf43d49e967b5caf2794240a854557a39c | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
ffe9295d9eb2ec2d784bb4c3634f6a10175224d2111332fa2735320b52a24b66 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
3a5000df3d6b91f9b8b681b29331b4680d30c140f693b1c5d2969755b6fc4cf9 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
@@ -383,188 +380,188 @@ ea871f7d5fab5a4315f41402de15f94e13481d03366396ea1bf3880f4f242c1a | https://maven
cc7f7850bc9e5fecd8c699d0464e96bdb6765778e6463bcfc1c1efed08ba6ceb | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
4ecc86b606e1713faa7b75b01fbcd52d7d521f0c5c99784f07d87188cd73ea9c | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
c93fe881fec0df7da21f151b05652ea79157f08ad680d674d9591f6bd9843cea | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
-91d28649b8d92040e48b2b8b40257b9f25f6914884de9068f72cd4e0824d30e2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-7ee3b696507847f5d5051c0d21578f6d63661e363037aa4b43a69e9a2b650478 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-81dc5552872644ba186e113035a51d5906ba1ec501cd1e9b7fa764ac72d48ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-43455b16679d6b5159658889c3b66eb2bca64e4a89eefab6ef15d105e2d1bf36 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-cb8e472d120ff88c30788aa2996ef03af8c2149ddbb3693cae0406bb1db49b32 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-5f9a2b207f265ab55d0eef3fa5c304a2a00470596c9521f6a8678fc5e54fd0a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-1a56b6ab25aac1fa57c109201a1fd5a7580b5a9c8bcbbba5bf34fbb204d9f5a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-0af9ddbcfeb1e23a90f8b87f737b89aae2987faf14d5fdbc30ded00894336903 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-7d85bfbe013d3d7188f4c24be0ba447f45ccf61b1e06f1a639ddbc8f577448b5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-0b8b969f1072a5bb6e7a1d9fbe955ffebaafddc7d604e2574b951c0d439659e4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-60361967261a6a2ada30043e6316b50e49f862f00a36e9854130c38266dc969f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
-863a92cbbf750c2f4435f442fe5730332eab64874218b3b30368caaef596f582 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
-c241700d2620e6e662af61f705af8a76420387e265f68327a6ac9e4d813076a7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-8d61a1ce2ecfb68fe8e184f7f5f6c58fc9e99c0e5b0bda67a36c60baab17ed9c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-572d8c1c5ae97ab0603ccf52e4b678062b802d5ed1b0238ddb4ac16a48ceae16 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-fe51142d019571f5ed216b5a1f016ca9de4c8b2386e8cc51e0281751837da1ae | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-cd0024994e1327b70d237ac8615beaf3f6d325f3a4b542f1a2e9dd522413cffd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-621006e0b77e489523abf44b197d903e431b315a20c301fbbfeec611d873b402 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-d2a6d0518c6a807c53e377508bc37420672c29f8c77f82153734066eebe3d28d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-dc0b076ca01637bf8ae555bdbe2f11dd002afc204bf2071be09478d5e55e7bbe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-1add2173f509d61234a18164d5ff7a8046fa72744e6d5664e7fc85489ebcbfb9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-c9bf71e6bad7d1e09b581beee0d8cf294ae98acff2cf2744240cddb0843ed63f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-54bbf68dedd3a65277f552a3ee0f3ab12c5ae80e6500a5eae5b0db00e61b7e51 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-22aa5c5f2f22c968d9b8fb7efbfd4b60e87fed380942857c1f716754bdaa4711 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-ed21eb942f8a30b42e20bc9afb3bf5ddee331fd3bd13487ace33fe13180be428 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
-af741603dfea10d42cb2b087771046efbaa157fe610ed96638370459e2259265 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
-5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-803c6b7f264d77f1b24c4ffe414c8564363f51c73265b2ec2b18db3885742c79 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-1b5c41bf65ee369c3f1d895699908fb2c0ecdd23d79195f094a7d6b08a65fc9f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-98fceae0737bd057970dc295cc7bec31fcf74e021b4bd2528fa238bafe3b46d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
-ea06f640b374195ea22d32f1f969e2184e26bb62e92f954fe58340375a709fa8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
-1021683a04dcd97a68d2bd55e96641309dbb771faa45fe57474a057b79fa65d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
-613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-84b9814086568de488db1b7aee9cb0d6fd0b1777ff4be451fb071c7b9911aa46 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
-0396630aa2fec50c88269d00cadf0e0fc8d115e4eb60bc2ef09e8f5ec8d44e96 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
-70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-3ea5cdf523fb6c06d85ad0bb00a1f98d9fa885fc17ae27f55c62346c82f3e70e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-ac5d6f4971f3745b290e8c4dd281872a5c630cb0ef4dd76e7128645b59a4fb94 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-5c777a6f3227f9c730e50c46d017bf10c3ac957e877584be2b5b39949bf1b5bb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-b896e55f7488bd2804a5e7b56c9b502802e03d94e1110968ffca2921a378e06f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-1487a150f48eb030e0cbf17eac1ce1c758712d6409f3aa6d0af0cb0c4743456c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-ac8838358a0c3bbad9c03b229a3af976f2ce6ccdabea5c0e08275b9e5f487baf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-7a42d05f3a1933067f100df862001e9e939fb86105f31609eb096f481c140111 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-5d9820b47a408763eea6db7af95cd59c399ca1e17ae6374ad8f5bc9c9ae97962 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-fc6370695ef1b8b9feab15fa5af1fbb41829b08733aea799d2bfb77e83294126 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-940cb2c8a288b03ec9cac317707361307d9e2e00983f5aa8c550c5d4d7c24b0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-a5c0695cd383d1bb328d18ab36c5fcf78c28fe2b701e7a84353a4ff60070894e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-33eb2befdfe8d4126badfd18c374f8b391c0987a3b4d14278826543525265d89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-f3c294cca8239af4a11c58129d7ba1f2d32ae03bd6e11d1d86cf7f6d6e456fe2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-77db3de124ca6ee35ed471682e172dff6ecec1a24278e451534431740273f4e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-e8e97dbfd6e578725e4da5c433df0005c4a81682e2a4f96ec3798340f12f88b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-9af10991dc1745a41e69965fc27f7a63395d5767296939f1ec14ea8ffff1c0f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-14087ea7bb805b32ebdd0f416ad09a29fafc628a1e7fda83a64b6820dd88babb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-0507e4dec84215f6eeb7579cfe7f6956a984866c7f031d1aa3c7f4c2aa041f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-11bbb86d536aa56b177ff0fb030129f31cdb3dce4afcc583bbabec613a3e4981 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-d2f0640683b9b2efd6969ae14f0c513e95f1ae672aafaaec6d38d8e9466be9b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-6aa6ed24864ae51f0061d4af4628e13018c81e2fb37fe80c5a75fedb4f90a61b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-81cd8e166b5694d060c713171b17715834b6f17a91bed486276ce6edcbd182ff | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-8a872cd37bdfd59eec1db26d99d2429f96dab9dde6a3072f5a06c37f1665c4b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-293a472c1d58f8a03699f9726bdc0c25c92546474fa7e469b10aa60e4d7cfe01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-4a54dca163ff801fc00b6d3c32588b83e37254c0f1da390785b7294464564601 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-caef0e284488c94c2475512e68b9dac28a704457869a83cc91076ab1a068686a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-59f81d63e90d61142b6e0b395e9da026d36ca9e797f766667f8d1f560f5e8590 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-63ce0e37bbd147ab4d6bff02f658043cc5b81bf4281254c49b144194efc1771b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-2a6f9edb777f44e817d391c57ac953aef52cae54dfca1eba96bce7eb358b9e08 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
-2c57ba043bc19eda7e1982f45b6ca1a230c025b92ccd67feaef0bffcbdce5f3a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
-7d1bcc1fc351733a747bea4585489cda9d5c69efddbafee0f37437fc61ca2a50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
-f3c339e152b89e887ee2e11667b320c0178f11242430016b1ce4467abc84fd2f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
-975c837c308362d2df6b4672bd2dbdd930e12a03c269b1bda94e171ca40bb4ba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
-edd05e3775f3f5686516b56a5c942aff57c9c07fff90f58349424ca2ea18673b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
-7f068f127650599b0d06892f2978ca782be9b73357b4bc1f47a22423c17b2a9c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-7277f56a8b25074f2fa6e24b71bb5691321a4133a8a5709fc658b4a186bf0d06 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-1788bcfa0d7407b5bcad23bfe59b7e337016972696324fa070e20e03eac26c28 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-9f651ffe19580c7d3564ef7b306c9f52f657557adfd5c66f46234e3e813a9e0d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-3a6f44a520b15b00406870a3983560eade1f12d47f1ad2218d496a820aeece78 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-dcbaa927b284b91c5f2aa682aed96cc54c7440535bb5f5b1a8b288258625d430 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-f6a839e55b7b18912e77833ebf1db17fbf39f38ca8036cc3aa4caff842fcc208 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-c8495e6b2e068fcf6a0e3713b5f20961bcfa93b7cd6fcd204d5200a5604d9ab9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-7ac202c09d0e0e1cfc912e296a0ade1fed9a31c99cd0ca544646545bc8e6961c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9e546e9230d49878be73e38e42b220be6a2bbff7344e8183ceca3ea8871639cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9e2b40772412ed13f71fab9af601a869309311c65b52a61ad79156a3b6a95277 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
-e43bde64a6e6dfd6227cab01ff74b844f87a7de0db3e1e806c35216be0863c9e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
-29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-63ad4f3c396e6e393bbc4e6e59659927a245a4060afba49a21ae3ac83673e5fd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-39637137b625b341671fa4e5037ed2c8e0880c819dc688a5413981cfc869b553 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-e7738526af7fb4ab1de0fba6a1f7cb850d87be155ba8125589b668b7f6982d8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-f9f62aea49e90d6158cf70ff66584a8d443a11986dc5cb8709f5bcd9fc5820e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-02b96f91f7087330e53673fd243c62d834a19601246f62a939d6935938e0a59d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-4b98bce9c7a002e154785432b60b3a258c962018bf44f3c0435b6b39c3478bd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-fc0602bb978de4aa2259e474a226141e2765286bcde3b8483452614d838dc4b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-c2dedd842ad02a24caddd239fc6816a4e34de5816a86663da525c11432e4d765 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
-094b6a0a2382e13278616759d90f1f2c30df3a7b1f45f9ba68e7f238cc9a6b34 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-6f60f97e605580425bdad227f66050f883982e826df9bbbf49c11f951a9b8122 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-0171ea5b2aba203848c5301bd32ba2911ff538604ff246b32e4718e0ee140f9b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-0cc8481b1b9d4ec9ed1d698060fa6cb2bff044a49e9ab9cf7eb77fffbfcb3d8c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
-b9e58b1742083c28de48c0ce8cfa1a2bcdfced1adba33537139d02c6f0314855 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
-26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-f2350e12beb4b2814a23b1c9d23f9e7f14b477341f81cbf64d44456029b91d57 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-335a608a2d3e349edcd9befbb91caa2df4fb3de6be0d6d94785850c53f685962 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-8301a5cfffd5c2a627a6837f0262b58c9b2667872098f3c48573af3555e0db90 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-9aaecfb1d1a2d7dd181a7f0cba90989bec3ccbc3a048fea8566088e44ec34843 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-94c945087ad106a768915b6797c4e82576f739750ac6791fc364786a77d1c805 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-1ebc5982297301c6c514639617b90c474f683618fb3fc8259d9ee5f24d7e9d3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-54eb3c7f63588a2bc8a2b23637eb31a1d5a21621c828c11496e55247e9ec86e2 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-368f705c95cc5efab1d87bda3b1536db666299e6b0494303a45618ce7e649788 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-9c24700383b4cc70e22e509cb4643926b5c3d80ca775b47631605f107447b104 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-45ad8c3d8ca524508cf768b61476d0c55d6999d0bbeb121dec5437579973763f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
-232c3c74241c29c8e6091f3cc2923729176ace7a79ce5cbbab0b879dca19f3ac | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
-1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-5b23b6fc712a689dea2ea42a796fc3b8651e2cbccb31e2738ff32acfebe5d725 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-fe9440cfbcc6f59c206b8d58dd49c7abdcab1348578f0981cd678e2e38f6ed46 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
-19532b5c2a1c1084a6127cad4911c332a13a7bd05c9a1c150443b7d0a56a9a84 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
-dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-5a209b6424536a9543e58bba531251df26e5d91a3decf7809b033e7c958c4e22 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-ec48cd5fa2897191f7082ec8e5c4a1cacfb86c581983dd5c5f0c2361c8f4f896 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-78d310a6cfcc5baf904c025b6fbadee92f54b073d4aeb2a29a6d5ecb8d8bdb3f | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-7308dce9b721f087c6a394ce001657f549a60f6a3158816c4fac2e7e97dc4dcc | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-0587d723e8b167f99850021a7ccdd60312a1557fb208c8191ae35535d0f6d0c6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-ad8a2a5087c1d4d873e52297257b46921323e9dc11f6cbc83b71b1db437afa87 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-a0d535fa4f6f16d8d8e3f27c15a66678ad416e1585640e7f7bb2c6fd67bdcfd2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
-d449cb50ac1c2d22c8db56c9e372fd43a50abc384b43117d74e02fe77bfadaba | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
-47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-165fee2a8438d1efc56902b8ea0947a53719a7d62add43d845364a4ee71cf292 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-e437fd8d3700f81c4895b7fbcde449ac50b8479fe71aea27df7fc3b054d363fb | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-dcc6409cc82183c441408b2fecb410bf4643e63f515f78a4bc867104851f23e7 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-33d4d03bd99af0e5b7660b602129973000c30f42a078117efb2f1e5321f15fe0 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-6fb0c6ae92850fdc6e6eeeae2b2d39ad6eb38699cc54d1f8333085c8fc43244c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
-0a3c762613f798ea2aa5abce6ccbb7800325467072e374f12234eb5fcb88013d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
-bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
-2f7ed08f80f23e1e4d0c9a291ad94f42a9db2dd72218e755d907e5d1ec2f491e | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
-b9e2605937c5cd47ae5e0ba93c31dda48b8e210345f862ebf14890ae58be6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-830297a76265932bf0e316beaf8e8f72e262026960266ad77ba7e8435c797166 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
-0b1e13252210fc0f6c5aea8dd09af73aabc2efc1e393496f7acee7ca134e32ab | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
+91d28649b8d92040e48b2b8b40257b9f25f6914884de9068f72cd4e0824d30e2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+1b7eb8073dc9600feb1c406a3ff006dcb325e42c4a19e5d90aeb74087300b659 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+6d1fcaae980a408ebb621574742dc2a80c6f58af71d14e2f0d3087be69a072f1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+021ce5b482f1a17ab099ab813ffeec2f4785f6d11e077634876a00a667aad009 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+f726ddcc421be58678c0e7943793705d076bc7a39556623ce54145d6850a39d9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+c259446d965d4e3119c09bca2b8601de46c6498e5cbc0208edde1f9b0a6b4cfd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+1a56b6ab25aac1fa57c109201a1fd5a7580b5a9c8bcbbba5bf34fbb204d9f5a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+cfeac2bf0c7e9fbc8479643bebe44842fd5344d7216628b2665caba413f8bb28 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+a164280cef70fc790bab403e6acb473069ba9b980b1ef0911c311e6e0d7904bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+a36dad98dacbd5be700f37b1589b9e49141f1c4562d489240e8ac7b069c52181 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+60361967261a6a2ada30043e6316b50e49f862f00a36e9854130c38266dc969f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+80c7e02d3a9063b089e6a85447aa25a9ee5f70be0e39dae7e126f1e42a1c0e72 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+c241700d2620e6e662af61f705af8a76420387e265f68327a6ac9e4d813076a7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+a670be5b1623edda90c00fa05522bb60156cea68a49b879aa2939fcf31e0ade6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+8f97195c5f12d312d87bd9e0d9e242003f2c6b6e95acab647f4d436a275c6686 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+43b9daa0afae7f3465a24db48db034b09fa6fd16b2a60ec91a11be88c0e80f62 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+557ae336f2daabce80954ebc953c1b66c7e0e7ca11dfa1aa8554d242f2e3545c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+5b2df0511f7791ec1be7fb1a9fb8158c9ac30c910227ea979caa3cec415a2bf9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+655cc12d3d0230e3556d964a3f185092d5c9d0b30f6fdd924d6ae1200bcd06c7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+27012332e4485401f3adf6a39a9e474960e17e9c6e90c318c7a7b4f9106d1e5d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+9f0e3735b823a6e946b23320d40fd33b4040ded336a7376b786c1364685d726e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+c9bf71e6bad7d1e09b581beee0d8cf294ae98acff2cf2744240cddb0843ed63f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+82184f91aee968a37c0d610507187ded2de991495fc2da93dd797d29a20c8f11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+dd46df536267de99ede7477128039ce5109be6848e6f7898c6d0e10062ba00d7 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+60cac203a3013cfdd076fa328359664c3d7591586558738d4c22afa7e03aa43e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+0c951769cd5148eb7adde30b8f6c530be81d57aef2e4561c58f2129e36df1069 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+77f50673eb9d9bebb7eff44316d226ea8c81cd557dd8b26c4f0f3bf393406502 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+04898afc50f4bbc19e7ea9c5395cf7c739e35c321bae14e17201452c5d88d5c5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+3abc63c2b0e6d074e06a94d931bc9c955e0d729004b3e1d75b23fc79f28c3f21 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+aebf6981b57b1d3530822a1369a7f4f1bc3fd41a93ff6ad6275959edaf1aed23 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+1bcac3de55141b371318843f89dee859d2cd864cdca8f40db2b86640b54b5687 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+380acbb5063e319a3f8b4ba19b8d502b0ed51f8ea0fe96c6c29608472fd0f76b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+de317b1780181fed56a4ed1307713aa7e9b44a407a6a4cb25ea7421bc7b26975 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+de91f10313f9668fd4139dbff8fd1cd96f1af62fbdff68709006bac09d38fdd5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+f8399fe9498872f93229109b6135a05457edd7ab1acbce9bdf3f7716df9e2f8d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+37506a7f38b7971e4e2fe720106399f0b3726d2546f5af0d5e29c9e0546e6a3d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+35e677cca0f19c26a2247572859f868185e9f64f54b1cf011eb3c31d4b23944d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+18ac624f2ddc74d60f68382c8780ad46e475021c414f960e3f127132cb8929c3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+ac8838358a0c3bbad9c03b229a3af976f2ce6ccdabea5c0e08275b9e5f487baf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+6894407b5a527d2134143644870e2ba484279e3b558d2ede136a789ad0ab4e96 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+5d9820b47a408763eea6db7af95cd59c399ca1e17ae6374ad8f5bc9c9ae97962 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+d40571e533bad2742adbc9415ea396e4fce2bc1a7e679c38499ee6130180e2aa | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+940cb2c8a288b03ec9cac317707361307d9e2e00983f5aa8c550c5d4d7c24b0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+a21fdfb161f845da2e6ecf9f9621f62979818b774fc992076f5401cd68ec498f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+33eb2befdfe8d4126badfd18c374f8b391c0987a3b4d14278826543525265d89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+98d9df3c41387d97c35d394c6b3a7f02e0d7cad7e55e7b82798638e968b8199b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+77db3de124ca6ee35ed471682e172dff6ecec1a24278e451534431740273f4e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+76f39f45dc173972ef933cdf639c121f99bd85e640009fedf0481a3593d145bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+9af10991dc1745a41e69965fc27f7a63395d5767296939f1ec14ea8ffff1c0f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+14156794cc33cdb49f5089e4d16eab1ed483d0923ba2e95db70e93ec954bacfd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+0507e4dec84215f6eeb7579cfe7f6956a984866c7f031d1aa3c7f4c2aa041f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+b2ede0b13e2490a27f5fb8b87852d147491c7d58abdd518eba7ccb78fe741867 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+d2f0640683b9b2efd6969ae14f0c513e95f1ae672aafaaec6d38d8e9466be9b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cb0afd2570ae76bbd4896e345cdb0057fec3bac60092e350da8868a70e8372f6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+279e259b6623d14f5efb92666fb79ae5912ea6876a625beae63d3c5a3937ac2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+9c62a939864cb65a54b369a98fc70d597c6081458dd0a44c9f8ecbba2a3fd173 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+293a472c1d58f8a03699f9726bdc0c25c92546474fa7e469b10aa60e4d7cfe01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+e6b1df4d3acea01bfabafbee9b0155a09a0e5f4dace32231bbaa0ac93a9cc8d9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+caef0e284488c94c2475512e68b9dac28a704457869a83cc91076ab1a068686a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+275dbff44718a7eb664e339f9ef9f96a00ad209885f801b3fd426e2948a77317 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+63ce0e37bbd147ab4d6bff02f658043cc5b81bf4281254c49b144194efc1771b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+7e19f0095aaa519dc1200d2e81df66ce0de2f06482441f1d39bbb25334c10d4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+f58d4398ef5bb995825e686a774f982ff35fb8543a8cd37f4e592f6f48998cba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+7d1bcc1fc351733a747bea4585489cda9d5c69efddbafee0f37437fc61ca2a50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.13…
+1fef42437accec06406b715c5fd6a25ccf8812f6dc909712516dddcf6cbea36e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.13…
+975c837c308362d2df6b4672bd2dbdd930e12a03c269b1bda94e171ca40bb4ba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.13/…
+0888e32360ff06ad7353bca199f3923e0a749f8b06c6a12b7344bea455ca4d8b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.13/…
+6123ea728c59b017107b8482d5ba66748dd635e1a87d197ced9c32a6cf7d1841 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+6227e15421d47f10baa71af7ffbd9fc58082b64e8729420a062f2d60b829cd0a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+677ced5f44c799a707957f063bf9399b50fe2f0f2457d575f5e1e9aeb56bb6a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+b525b6084e6510f31f3c40e5ce9605790be25c63dd0a3ef8cac5d02a3e248a02 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+83a51128be76f11dfc68df503359fd6c32f68dbc1aa5de255a71c65b5cb7e89f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+7cf81aa522378ba774b88085ac915c72ed752d0474a33b4e232a336400022ba2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+f6a839e55b7b18912e77833ebf1db17fbf39f38ca8036cc3aa4caff842fcc208 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+e9317195ae0492fbea0942c867f5658676a81d4d20fdbf3bdd1da33068fd663b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+a49a10e4bd6857984e41382cef687e2a6602eead1ad02c7791679fb83e3d9d04 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+235a8ac6e8ec453d5aeef5d4ffb75ad8f946ae935afccfe0bedf1a1b7227ac60 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9e2b40772412ed13f71fab9af601a869309311c65b52a61ad79156a3b6a95277 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+606c4e089748da2f3773ff4b8db348097cfa8f8631bfe55ec7fc531fefa0b061 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+2ae0158f04cc0ea572011639a9ac4d773f7031f68244ad7c16a51ab9251575e0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+a18f97e910b911cbbdb1aac87df01c5ce41a9ea60b8c76dd2c2a070d8ae904bf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+dd82b6f6ece2ce67470917eec698b7d1c6a35eff00803667cdd9ffd9528c7767 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+0904755dec83764d2e34ee1eceeb6bf4f22667da35e2473f9c6b07b9cae5c293 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+4cc7e5323b2c6c25b97d66427a79a7bb12bd06e70b62f41ce4030a14c90e654a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+4b98bce9c7a002e154785432b60b3a258c962018bf44f3c0435b6b39c3478bd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+d7c18a756831b051a3c1699f56d1db0045e8cbfdee0772c4c36e26cac171339e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+683c5cf88b798b0ce47a1024dc484cca8b970a7a1260939485bec9f1f182b88e | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.13/l…
+07c4b6ba5f1dd104e0bee8a275c24d3f3f7d011263cb67950a93c27956916b5d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.13/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+91401c5248e05ec5453798b9a7bdbe459e115dbf40b9a6e6d5c5fc8c3e82ac77 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+19523208ee5ddae35ddcfdfcfbe238bcbbab6cfd9f55d4ae6e041b9f1366c94b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+9530380131286cd350df787277522994751ea671948d63d053bd7e66368daa3b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.13/l…
+547c6ddf8d2e555795da581514002d7ae0690c51c18731b83430e8121b4fc3fc | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.13/l…
+26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+4a36a41e727eec4ea5a71db5c48fba42ed61d2767bbb9fb98935be1c8d94f554 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+095b57804200167ba9443cdc39679734223a0738c90a36f6533f27e7fde95abe | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+c4aee77273306e4136a97e45a3cb44424787e2a032e652a145411ece2df6f1f4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+6fdc24d3754ff82df6b300d9aa77a4f87e8ea24b3a95545f8f09f120ab976483 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+bd5b22d3a79544f934fff5558269565c12e8c8c4ce0e1f998922270a6c223a06 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+1ebc5982297301c6c514639617b90c474f683618fb3fc8259d9ee5f24d7e9d3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+50231a2662befb3379d4661ab4d87d13a1b15111d556614cc4d103541d00cc4c | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+7a6bab4b21f9e8923f4266ab1ce72e0dd729db3e7cd4a58588758a25e4a3a931 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+96ff68a18d8e78d698d915410cf67800df8687a3387c95e35c667f18c0b1315e | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+ed86ed8df9395bbf6fb54f4feb35aa7174d8f9a2c2d2f85bfd49fc5eb8cf29e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+36f45d42fef65ec3be408b8924ab0bff71a12a13cdb0928ef2c95e654107f87f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+68915e04460ebff5e50ab7c21cbc854c8066dcd7878c398ef55ea8be602875a1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+fe9440cfbcc6f59c206b8d58dd49c7abdcab1348578f0981cd678e2e38f6ed46 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.13…
+877a3f4c8a95484cd93074473268534a595bce41e90bb7241093a8f2a0476000 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.13…
+dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+a4a7a8c8b9871607661d7d0130c84ee6bb0757f1eb435e9e5c6805f31bcd96fc | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+4e02a5374d923faa8c73fd7a6b832ce91a07d9f02ad47ac81e5e1f022c047d17 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+b4fdcbd9444f2c396722a900d3cb7557b61ffe6445eb2529dc67f2c308ab6146 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+41b13d81faad55316d3f14219ae5f7a87d9e1cdddbe4d338fbe076d00f39338c | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+3818cc484eedba019e90d93b0a4caa9b69cd2aaf334e0b74ce909bb6ac664db4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+0ea2dcbc541a51c217be7bfab7f26397d8781cdff4f2d147d6cc78b6039e7f56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+116ea97bf83fab9e8ba716b843c8306a3892a4abc8475ec6be9d47c0be193054 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+a671b3edad0e5e343ddf0f5dfe6d20f8b171064f166dce9ef282a4c8739b739b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+aa20b1bdbee00e2d396d6bd001d4ac60f08034e1b6a2df81c3efec61b94e453b | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+19467f08a57598e032c75e6b75e8b2862a72adc87b8d230014992917656c69d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+8d94f2b5d3cf2e43bb229a923144d03277bfdc3db4c7ada66f17f6ffddc4b22d | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+6e244c5d5947b40341d297cc99934b52d94630b99b9717078b59b8b8c70417da | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+0eba0c795c636d672726ec25ed847786b2df92be056c640c5c655e55b1d9d17a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.13/u…
+a8f90774efaf451377f9ab61905728fb50ad8c75394b0897ce76895cc7b8033d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.13/u…
+bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.13/ui…
+14e4088c32d7b4915c56305770a702b580945e2decea9e79a7dfc5c36b259b9c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.13/ui…
+b9e2605937c5cd47ae5e0ba93c31dda48b8e210345f862ebf14890ae58be6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+8a97687a44d3f559a9b4d93ce37a0fb9eee788577ae5ef26a28fb1606741fa69 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.13/…
+eb96d33e767058997c3a16c4429d09d796249866c4be0e8ed30b3227f7975b0b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.13/…
cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
-4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
-52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+72a76c4fa3ae7f124803ec831cf3b9789310bf7db1d79f2f8bf32ae258981292 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+5f4bba20be1099c4a1f156099155fe159efcedf796130874315f02a99260bee5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
@@ -1006,8 +1003,10 @@ e0050c158cfee4dbc2532e82eab7aebea1d7cd7e34752c9aa27b809c252def2b | https://repo.
f27cd652e9e1fd4abbf24c074f1ca7a1d8a09518f48e067eb0e941b8cc9ccae2 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
e6046e6d0b36cc116fedf4e63cd0f595360a7f05d6ba67672f5e36665b570f55 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
ccaf4317b1776af25c9a32f69688063f651ee6206c3a7e2edc157e9633aa5bc0 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
+bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-uti…
b2b9bc9029d446e2c8cecf709f92196106d11ff7974092880fefdd67ba1b9a49 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
1efcac305ddab304c2206bb1e511095c11d7e23c0df5374373b1526610188ff3 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
+4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-sam-with-r…
76c0cac89d5e25bfa789cd988810da3ec6fa832bd839d772618766fdedacbf57 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
d833b01e8539e580dadb806397bdd20062c3046eea1436d9ae153ae60f00575c | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
3c6308bd5926e57890d299afc748f22fd77c555b67ac5c692d205ff3c2092112 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
diff --git a/projects/geckoview/config b/projects/geckoview/config
index af9ec0f..844fd82 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 88.0
+ geckoview_version: 88.0.1
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 5ef51dd..c5b31f7 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2021.1.27
+version: 2021.4.15
git_url: https://git.torproject.org/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index 7258805..c5c5e18 100644
--- a/projects/tor-browser/allowed_addons.json
+++ b/projects/tor-browser/allowed_addons.json
@@ -17,7 +17,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/13/13299/13299734.png?mo…"
}
],
- "average_daily_users": 620722,
+ "average_daily_users": 612002,
"categories": {
"android": [
"experimental",
@@ -31,7 +31,7 @@
"contributions_url": "https://opencollective.com/darkreader?utm_content=product-page-contribute&u…",
"created": "2017-09-19T07:03:00Z",
"current_version": {
- "id": 5210981,
+ "id": 5219368,
"compatibility": {
"firefox": {
"min": "54.0",
@@ -42,19 +42,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52109…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52193…",
"files": [
{
- "id": 3755341,
- "created": "2021-04-05T09:05:03Z",
- "hash": "sha256:43da8e70e4d3d2ebde549f5a8dea54b59c8793d32049cdaf8868f3da02e94faa",
+ "id": 3763728,
+ "created": "2021-04-21T13:54:44Z",
+ "hash": "sha256:6d0d1ec5ba638bd0b897d3ff2b2e785770302b58c4ba0e735e10b3f9c4227bf6",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 533559,
+ "size": 535888,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3755341/dark_reader-4.9.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3763728/dark_reader-4.9.3…",
"permissions": [
"storage",
"tabs",
@@ -97,10 +97,10 @@
"url": "http://www.opensource.org/licenses/mit-license.php"
},
"release_notes": {
- "en-US": "- Fixed performance bottleneck for websites with CSS variables.\n- Users' fixes for websites."
+ "en-US": "- Dynamic mode bug fixes.\n- Users' fixes for websites."
},
"reviewed": null,
- "version": "4.9.31"
+ "version": "4.9.32"
},
"default_locale": "en-US",
"description": {
@@ -164,7 +164,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-05T10:12:36Z",
+ "last_updated": "2021-04-21T15:04:05Z",
"name": {
"ar": "Dark Reader",
"bn": "Dark Reader",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5609,
- "bayesian_average": 4.559483678512808,
- "count": 3503,
- "text_count": 1155
+ "average": 4.5588,
+ "bayesian_average": 4.557413617113341,
+ "count": 3586,
+ "text_count": 1181
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/reviews/",
"requires_payment": false,
@@ -337,7 +337,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/versions/",
- "weekly_downloads": 23774
+ "weekly_downloads": 22377
},
"notes": null
},
@@ -353,8 +353,11 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 748146,
+ "average_daily_users": 727486,
"categories": {
+ "android": [
+ "security-privacy"
+ ],
"firefox": [
"privacy-security"
]
@@ -362,7 +365,7 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2010-09-16T15:09:10Z",
"current_version": {
- "id": 5172099,
+ "id": 5216160,
"compatibility": {
"firefox": {
"min": "42.0",
@@ -373,19 +376,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/https-everywhere/versions…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/https-everywhere/versions…",
"files": [
{
- "id": 3716461,
- "created": "2021-01-28T01:33:53Z",
- "hash": "sha256:da049748bba7282c0f8c0ab85ac8f494e795e79d6bdc6f9f726d687aa8cc2a1f",
+ "id": 3760520,
+ "created": "2021-04-15T09:00:17Z",
+ "hash": "sha256:8f6342077515669f73ae377346da4447428544559c870678488fa5b6b63d2500",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 1748610,
+ "size": 1752551,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3716461/https_everywhere-…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3760520/https_everywhere-…",
"permissions": [
"webNavigation",
"webRequest",
@@ -406,18 +409,18 @@
"name": {
"en-US": "Multiple"
},
- "url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/license/202…"
+ "url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/license/202…"
},
"release_notes": {
- "en-US": "2021.1.27\n* EASE Mode UI Changes\n* NPM Dependency updates\n* Geckodriver pull update\n* Chromedriver pull update\n* Integrate CSS Grid for Options Page and EASE UI\n* Put Options in new tab"
+ "en-US": "2021.4.15\n* Add DuckDuckGo Smarter Encryption update channel\n* Bloom filter for rulesets\n* Firefox Fenix option page updates for Android users\n* Move to Python 3 from Python 3.6\n* Fix undefined type access\n* Fix empty default types"
},
"reviewed": null,
- "version": "2021.1.27"
+ "version": "2021.4.15"
},
"default_locale": "en-US",
"description": {
"de": "Viele Webseiten unterstützen zwar Verschlüsslung über HTTPS, machen es aber nicht einfach, diese auch zu nutzen. Manchmal bieten diese beispielsweise standardmäßig nur unverschlüsseltes HTTP an oder haben auf verschlüsselten Seiten Links gesetzt, die Sie zurück zu einer unverschlüsselten Version führen.\n\nDie HTTPS-Everywhere Erweiterung löst dieses Problem, indem sie alle Anfragen zu diesen Seiten automatisch zu HTTPS ändert.",
- "en-US": "Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site.\n\nThe HTTPS Everywhere extension fixes these problems by rewriting all requests to these sites to HTTPS.",
+ "en-US": "Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site.\n\nThe HTTPS Everywhere extension fixes these problems by rewriting all requests to these sites to HTTPS.\n\nThe DuckDuckGo Smarter Encryption list is publicly available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0. International license. If you'd like to license the list for commercial use, please reach out to: <a href=\"https://outgoing.prod.mozaws.net/v1/afc2012d629a8b8f6c7fd0704db9ae59ddedc91…" rel=\"nofollow\">https://help.duckduckgo.com/duckduckgo-help-pages/company/contact-us/</a>",
"es": "Muchos sitios en la web ofrecen soporte limitado para cifrado sobre HTTPS, pero hacen difícil su uso. Por ejemplo, puede que usen HTTP no cifrado por defecto o que llenen páginas cifradas con enlaces que vuelvan al sitio no cifrado.\n\nLa extensión HTTPS Everywhere corrige estos problemas reescribiendo todas las peticiones a estos sitios a HTTPS.",
"fr": "Beaucoup de sites web offrent une prise en charge limitée pour le chiffrement via HTTPS, mais la rendent difficile à utiliser. Par exemple, ils peuvent utiliser une adresse par défaut non chiffrée avec HTTPS, ou proposer sur des pages chiffrées uniquement des liens qui retournent sur le site non chiffré.\n\nL’extension HTTPS Everywhere résout le problème en redirigeant toutes les requêtes de ces sites vers HTTPS.",
"it": "Molti siti web offrono un limitato supporto per la crittografia HTTPS, ma lo rendono difficile da usare. Ad esempio, possono avere come impostazione predefinita HTTP non crittato, o inserire in pagine crittate collegamenti che indirizzano a siti non crittati.\n\nL'estensione HTTPS Everywhere consente di correggere questi problemi riscrivendo tutte le richieste a questi siti in HTTPS.",
@@ -448,7 +451,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-01-28T11:24:44Z",
+ "last_updated": "2021-04-15T09:13:13Z",
"name": {
"de": "HTTPS Everywhere",
"en-US": "HTTPS Everywhere",
@@ -483,10 +486,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6686,
- "bayesian_average": 4.66611233297302,
- "count": 2049,
- "text_count": 412
+ "average": 4.6654,
+ "bayesian_average": 4.662905382291137,
+ "count": 2047,
+ "text_count": 402
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -520,7 +523,7 @@
"type": "extension",
"url": "https://www.eff.org/https-everywhere",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/versions/",
- "weekly_downloads": 20809
+ "weekly_downloads": 13172
},
"notes": null
},
@@ -536,7 +539,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 211211,
+ "average_daily_users": 203144,
"categories": {
"android": [
"security-privacy"
@@ -749,10 +752,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.8051,
- "bayesian_average": 4.800280079721486,
- "count": 1093,
- "text_count": 213
+ "average": 4.8015,
+ "bayesian_average": 4.796715220442379,
+ "count": 1103,
+ "text_count": 216
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -848,7 +851,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions/",
- "weekly_downloads": 5083
+ "weekly_downloads": 4579
},
"notes": null
},
@@ -864,7 +867,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 999485,
+ "average_daily_users": 973105,
"categories": {
"android": [
"security-privacy"
@@ -1408,10 +1411,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7882,
- "bayesian_average": 4.785251109857352,
- "count": 1780,
- "text_count": 362
+ "average": 4.7895,
+ "bayesian_average": 4.786580314622787,
+ "count": 1805,
+ "text_count": 369
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1431,7 +1434,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/versions/",
- "weekly_downloads": 18656
+ "weekly_downloads": 17013
},
"notes": null
},
@@ -1447,7 +1450,7 @@
"picture_url": null
}
],
- "average_daily_users": 5028879,
+ "average_daily_users": 4907631,
"categories": {
"android": [
"security-privacy"
@@ -1459,7 +1462,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5196606,
+ "id": 5224615,
"compatibility": {
"firefox": {
"min": "57.0",
@@ -1470,19 +1473,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/51…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
"files": [
{
- "id": 3740966,
- "created": "2021-03-10T13:37:51Z",
- "hash": "sha256:96783b4e9abed66af81a30f7dbb6560911a9d828b12aadf0ec88b181200c3bfe",
+ "id": 3768975,
+ "created": "2021-04-30T14:01:04Z",
+ "hash": "sha256:8eccfa436bc5852b91ddb9628dca4bfd0ff5d2a302f2e9e595d801fa228c3975",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2758798,
+ "size": 2781722,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3740966/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3768975/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1538,10 +1541,10 @@
"url": "http://www.gnu.org/licenses/gpl-3.0.html"
},
"release_notes": {
- "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/993c4844a604f9df4adc7d0327dfedbaacd28a1…" rel=\"nofollow\">Complete release notes</a>.\n\n<b>Closed as fixed:</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/cb47cb2c01a2d7d899dd8ef6772c49d6af16956…" rel=\"nofollow\">Picker glitch with elements with special characters in their tag name</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/6e6b773c126fb1313b0eb5553db2155115cc012…" rel=\"nofollow\">Expose CNAME-uncloaking as a Privacy option in the Settings pane</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/5a91bdb688dcfe2a791c54906113d2130664c9d…" rel=\"nofol
low\">Impossible to add explicit exception for implicit strict blocking</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/d79b53998d6800c05d5d65263fe4b708b2a9b51…" rel=\"nofollow\">Invalid network filters suggested in element picker</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7f4bccb793a0720711a3e3fe72d3c6104474769…" rel=\"nofollow\">Use +/- in the popup to indicate whether 3-p frames were blocked</a></li></ul>\n<b>Notable commits without en entry in the issue tracker</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/719412530be187ade75ed847aac498911d78886…" rel=\"nofollow\">Fix no-scripting switch not working for SVG-based documents</a></li><li><a href=\"https://outgoing.prod.
mozaws.net/v1/9369af26872b10a885b78d6a99a5ef102c5bea64d4bd78cc219abcf93c51c…" rel=\"nofollow\">Upgrade CodeMirror to 5.59.2</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/fd96d2d87c29688b7d2a7743d0724ea20654338…" rel=\"nofollow\">Fix 'adsbygoogle' neutered script</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/a03a3a9cae294846e9071e87f309b72e323e1e0…" rel=\"nofollow\">Inject procedural cosmetic filterer's code only when needed</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/6b8477f5206b215b8e4c77dad49cd5a04bb787c…" rel=\"nofollow\">Commits history since 1.33.2</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/e3f0fb79aad48d24933c2312664d2c2ddb9b6c9…" rel=\"nofollow\">Complete release notes</a>.\n\n<b>Closed as fixed:</b>\n\n<b>Firefox 66.0 and earlier.</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/ce7103184888b46bb9b994eecefc040917aaa32…" rel=\"nofollow\">Element picker, zapper and procedural filtering not working on facebook.com</a></li></ul>\n<b>Notable commits without en entry in the issue tracker</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/623f9bb88e2f9638897e90afb8cd8eb70a0b34e…" rel=\"nofollow\">Better handle network error when fetching sublist</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7acf95901ef3
82bdab66819d1ce18c42036757d26ee197910e6a094c607c1435/https%3A//github.com/g…" rel=\"nofollow\">Stop autoplay for unset media source with no-large-media-elements</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/d9b8bc963e9aedba4390a9304d27b62e143f601…" rel=\"nofollow\">Use CDN URLs as fall back URLs</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/8de3be3247bb7a5cf133ee29a4eafa70a585262…" rel=\"nofollow\">Commits history since 1.35.0</a>."
},
"reviewed": null,
- "version": "1.34.0"
+ "version": "1.35.2"
},
"default_locale": "en-US",
"description": {
@@ -1631,7 +1634,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-03-14T13:25:14Z",
+ "last_updated": "2021-05-04T07:47:26Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1776,10 +1779,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7668,
- "bayesian_average": 4.766347193086615,
- "count": 11539,
- "text_count": 3179
+ "average": 4.767,
+ "bayesian_average": 4.766553668766709,
+ "count": 11750,
+ "text_count": 3228
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1834,7 +1837,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions/",
- "weekly_downloads": 116901
+ "weekly_downloads": 113254
},
"notes": null
},
@@ -1850,7 +1853,7 @@
"picture_url": null
}
],
- "average_daily_users": 72477,
+ "average_daily_users": 59717,
"categories": {
"android": [
"photos-media"
@@ -1862,26 +1865,30 @@
"contributions_url": "",
"created": "2017-05-03T08:36:43Z",
"current_version": {
- "id": 5085817,
+ "id": 5220332,
"compatibility": {
+ "firefox": {
+ "min": "42.0",
+ "max": "*"
+ },
"android": {
"min": "48.0",
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
"files": [
{
- "id": 3630185,
- "created": "2020-08-22T20:57:23Z",
- "hash": "sha256:733462096633e1d3f295488552d53db205f3daa93422fc559886a017b686c763",
+ "id": 3764692,
+ "created": "2021-04-22T21:46:53Z",
+ "hash": "sha256:73cfa682e0398ca1b51890340e4a6df3fcea945f54e9e677e9db942152aa614d",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 11927,
+ "size": 12088,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3630185/videowiedergabe_i…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3764692/videowiedergabe_i…",
"permissions": [
"*://*.youtube.com/*",
"*://*.youtube-nocookie.com/*",
@@ -1923,16 +1930,18 @@
"url": "http://www.opensource.org/licenses/mit-license.php"
},
"release_notes": {
- "de": "Neue Version für <a href=\"http://addons.mozilla.org\" rel=\"nofollow\">addons.mozilla.org</a> – kein anderweitigen Änderungen am Code.",
- "en-US": "Version bump for <a href=\"http://addons.mozilla.org\" rel=\"nofollow\">addons.mozilla.org</a> – no code changes."
+ "de": "Experimentelle Verbesserungen der Handhabung von Youtube.",
+ "en-US": "Experimental improvement of Youtube handling.",
+ "ro": "Îmbunătățiri experimentale pentru Youtube."
},
"reviewed": null,
- "version": "1.5.1"
+ "version": "1.6.0"
},
"default_locale": "en-US",
"description": {
- "de": "ACHTUNG: Im neuen Firefox für Android (Version 79 und neuer) funktioniert Videowiedergabe im Hintergrund funktioniert erst <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">ab Firefox 82</a> korrekt.\n\nUnterstützt momentan folgende Seiten:\n<ul><li>Youtube</li><li>Vimeo (Wiedergabe nicht unterbrechen wenn Vollbildmodus beendet wird)</li></ul>",
- "en-US": "ATTENTION: With the new Firefox on Android (Firefox 79 and newer), background playback only properly works starting <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">from Firefox 82</a>.\n\nThe following pages are currently supported:\n<ul><li>Youtube</li><li>Vimeo (don't stop playback when existing fullscreen)</li></ul>"
+ "de": "ACHTUNG: Im neuen Firefox für Android (Version 79 und neuer) funktioniert Videowiedergabe im Hintergrund erst <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">ab Firefox 82</a> korrekt.\n\nUnterstützt momentan folgende Seiten:\n<ul><li>Youtube</li><li>Vimeo (Wiedergabe nicht unterbrechen wenn Vollbildmodus beendet wird)</li></ul>",
+ "en-US": "ATTENTION: With the new Firefox on Android (Firefox 79 and newer), background playback only properly works starting <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">from Firefox 82</a>.\n\nThe following pages are currently supported:\n<ul><li>Youtube</li><li>Vimeo (don't stop playback when existing fullscreen)</li></ul>",
+ "ro": "ATENȚIE: În noul Firefox pentru Android (versiunea 79+), redarea video în fundal funcționează corect abia de la <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">Firefox 82</a>.\n\nÎn prezent este compatibil cu următoarele site-uri:\n<ul><li>Youtube</li><li>Vimeo (nu întrerupeți redarea atunci când ieșiți din modul fullscreen)</li></ul>"
},
"developer_comments": null,
"edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
@@ -1950,10 +1959,11 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-08-24T07:07:02Z",
+ "last_updated": "2021-04-23T07:50:05Z",
"name": {
"de": "Videowiedergabe im Hintergrund",
- "en-US": "Video Background Play Fix"
+ "en-US": "Video Background Play Fix",
+ "ro": "Redare video în fundal"
},
"previews": [],
"promoted": {
@@ -1964,9 +1974,9 @@
},
"ratings": {
"average": 4.5177,
- "bayesian_average": 4.512756205641316,
+ "bayesian_average": 4.512746722127399,
"count": 991,
- "text_count": 374
+ "text_count": 375
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -1975,12 +1985,14 @@
"status": "public",
"summary": {
"de": "Manches Seiten verhindern die Wiedergabe von Videos im Hintergrund. Dieses Add-on blockiert die von den Webseiten dazu genutzten APIs und ermöglicht so das Abspielen von Videos, auch wenn der betreffende Tab nicht im Vordergrund ist.",
- "en-US": "Some sites may not work with Firefox for Android video background play feature. This add-on provides a quick fix by blocking the Page Visibility API and the Fullscreen API."
+ "en-US": "Some sites may not work with Firefox for Android video background play feature. This add-on provides a quick fix by blocking the Page Visibility API and the Fullscreen API.",
+ "ro": "Unele site-uri împiedică redarea videoclipurilor în fundal. Acest add-on blochează API-urile utilizate de site-urile web pentru acest lucru, permițând redarea videoclipurilor chiar și atunci când tab-ul respectiv nu se află în prim-plan."
},
"support_email": null,
"support_url": {
"de": "https://github.com/mozilla/video-bg-play/issues",
- "en-US": "https://github.com/mozilla/video-bg-play/issues"
+ "en-US": "https://github.com/mozilla/video-bg-play/issues",
+ "ro": "https://github.com/mozilla/video-bg-play/issues"
},
"tags": [
"fullscreen",
@@ -1992,7 +2004,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/ve…",
- "weekly_downloads": 38
+ "weekly_downloads": 268
},
"notes": null
},
@@ -2008,7 +2020,7 @@
"picture_url": null
}
],
- "average_daily_users": 95564,
+ "average_daily_users": 90104,
"categories": {
"android": [
"experimental",
@@ -2147,10 +2159,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4873,
- "bayesian_average": 4.471953145299084,
- "count": 316,
- "text_count": 88
+ "average": 4.4969,
+ "bayesian_average": 4.48168428583015,
+ "count": 320,
+ "text_count": 89
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2176,7 +2188,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/versions/",
- "weekly_downloads": 1304
+ "weekly_downloads": 1221
},
"notes": null
},
@@ -2189,10 +2201,10 @@
"name": "Armin Sebastian",
"url": "https://addons.mozilla.org/en-US/firefox/user/12929064/",
"username": "dessant",
- "picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
+ "picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 178150,
+ "average_daily_users": 171484,
"categories": {
"android": [
"photos-media",
@@ -2206,7 +2218,7 @@
"contributions_url": "https://www.paypal.com/donate?hosted_button_id=GLL4UNSNU6SQN&utm_content=pr…",
"created": "2017-06-17T15:23:33Z",
"current_version": {
- "id": 5177612,
+ "id": 5222866,
"compatibility": {
"firefox": {
"min": "68.0",
@@ -2217,19 +2229,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
"files": [
{
- "id": 3721973,
- "created": "2021-02-05T20:40:26Z",
- "hash": "sha256:9acdc2c4fe0653119721d43eacce04733f138abd440252fc6a416a2bba8994e3",
+ "id": 3767226,
+ "created": "2021-04-27T19:37:13Z",
+ "hash": "sha256:2419da33e09e330f7f03af1aa3d5725f54324f74f774fa55dc07a088c979ff96",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 653210,
+ "size": 653389,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3721973/search_by_image-3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3767226/search_by_image-3…",
"permissions": [
"contextMenus",
"storage",
@@ -2280,7 +2292,7 @@
"en-US": "Learn more about this release from the <a href=\"https://outgoing.prod.mozaws.net/v1/034fc31c913b4c441795892fe3d65db9f7edbe6…" rel=\"nofollow\">changelog</a>."
},
"reviewed": null,
- "version": "3.6.0"
+ "version": "3.6.2"
},
"default_locale": "en-US",
"description": {
@@ -2302,7 +2314,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-02-08T14:37:26Z",
+ "last_updated": "2021-04-28T06:05:03Z",
"name": {
"en-US": "Search by Image"
},
@@ -2414,10 +2426,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6475,
- "bayesian_average": 4.64166350289875,
- "count": 868,
- "text_count": 173
+ "average": 4.6555,
+ "bayesian_average": 4.649806788971981,
+ "count": 894,
+ "text_count": 177
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2453,7 +2465,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/versions/",
- "weekly_downloads": 3793
+ "weekly_downloads": 3821
},
"notes": null
},
@@ -2476,7 +2488,7 @@
"picture_url": null
}
],
- "average_daily_users": 44681,
+ "average_daily_users": 39630,
"categories": {
"android": [
"other"
@@ -2758,10 +2770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4551,
- "bayesian_average": 4.450236090325366,
- "count": 991,
- "text_count": 267
+ "average": 4.456,
+ "bayesian_average": 4.451164313203212,
+ "count": 1000,
+ "text_count": 272
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2781,7 +2793,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/versions/",
- "weekly_downloads": 62
+ "weekly_downloads": 70
},
"notes": null
},
@@ -2797,7 +2809,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 390704,
+ "average_daily_users": 375892,
"categories": {
"android": [
"performance",
@@ -2811,7 +2823,7 @@
"contributions_url": "https://www.paypal.me/NoScript?utm_content=product-page-contribute&utm_medi…",
"created": "2005-05-13T10:51:32Z",
"current_version": {
- "id": 5206025,
+ "id": 5226253,
"compatibility": {
"firefox": {
"min": "59.0",
@@ -2822,19 +2834,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5206025",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5226253",
"files": [
{
- "id": 3750385,
- "created": "2021-03-26T19:23:21Z",
- "hash": "sha256:278ee526d7c3ce5236c1a04aa5b6605c81b82399b846e43cdf6f93f11fef1ec9",
+ "id": 3770613,
+ "created": "2021-05-04T07:27:00Z",
+ "hash": "sha256:d089f1db05570fef88b54feb723585a4a52b22e3956bb49d28279fa00f4dfd21",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 612139,
+ "size": 622976,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3750385/noscript_security…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3770613/noscript_security…",
"permissions": [
"contextMenus",
"storage",
@@ -2844,8 +2856,8 @@
"webRequest",
"webRequestBlocking",
"<all_urls>",
- "file://*/*",
- "ftp://*/*"
+ "ftp://*/*",
+ "file://*/*"
],
"optional_permissions": []
}
@@ -2881,10 +2893,10 @@
"url": "http://www.gnu.org/licenses/gpl-2.0.html"
},
"release_notes": {
- "en-US": "v 11.2.4\n============================================================\nx CSS resources prefetching as a mitigation against CSS PP0\n (<a href=\"https://outgoing.prod.mozaws.net/v1/4c9c509b2dcb75bd1907cb1eacded56e1b55224…" rel=\"nofollow\">https://github.com/Yossioren/pp0</a>)\nx [L10n] Updated br, de, el, es, fr, he, is, nl, pl, pt_BR,\n ru, sq, tr, zh_CN\nx [nscl] Inteception of webgl context creation in\n OffscreenCanvas too\n x Fixed configuration upgrades not applied on manual updates\n (thanks Nan for reporting)\nx Mitigation for misbehaving pages repeating failed requests\n in a tight loop\nx [UI] More understandable label for the cascading\n restrictions option\nx [nscl] More refactoring out in NoScript Commons Library\nx [nscl] patchWindow improvements"
+ "en-US": "v 11.2.6\n============================================================\nx [nscl] Various webgl blocking enhancements\nx Remove also sticky-positioned elements with click+DEL on\n scriptless pages (thanks skriptimaahinen for RFE)\nx [L10n] Updated bn, br, ca, da, de, el, es, fr, he, is, it,\n ja, lt, mk, ms, nb, nl, pl, pt_BR, ru, sq, sv_SE, tr,\n zh_CN, zh_TW\nx Fixed race condition causing external CSS not to be\n rendered sometimes when unrestricted CSS is disabled\nx Avoid document rewriting for noscript meta refresh\n emulation in most cases\nx [nscl] Fixed XHTML pages broken when served with\n application/xml MIME type and no \"object\" capability\nx [nscl] Switch early content script configuration to use\n /nscl/service/DocStartInjection.js\nx Configurable \"unrestricted CSS\" capability to for sites\n where the CSS PP0 mitigation should be disabled\n (e.g TRUSTED)\nx [nscl] Fix CSS PP0 mitigation still interfering with some\n WebExtensions (tha
nks barbaz for report)\nx [XSS] Increased sensitivity and specificity of risky\n operator pre-checks"
},
"reviewed": null,
- "version": "11.2.4"
+ "version": "11.2.6"
},
"default_locale": "en-US",
"description": {
@@ -2934,7 +2946,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-01T22:30:12Z",
+ "last_updated": "2021-05-04T12:31:44Z",
"name": {
"de": "NoScript",
"el": "NoScript",
@@ -3022,10 +3034,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.3626,
- "bayesian_average": 4.359934440648107,
- "count": 1765,
- "text_count": 720
+ "average": 4.365,
+ "bayesian_average": 4.36234415371495,
+ "count": 1778,
+ "text_count": 723
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/",
"requires_payment": false,
@@ -3082,7 +3094,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/versions/",
- "weekly_downloads": 9239
+ "weekly_downloads": 8743
},
"notes": null
},
@@ -3098,7 +3110,7 @@
"picture_url": null
}
],
- "average_daily_users": 130107,
+ "average_daily_users": 119252,
"categories": {
"android": [
"performance",
@@ -3231,10 +3243,10 @@
"category": "recommended"
},
"ratings": {
- "average": 3.9206,
- "bayesian_average": 3.9162193335341775,
- "count": 945,
- "text_count": 340
+ "average": 3.9145,
+ "bayesian_average": 3.910179019078069,
+ "count": 959,
+ "text_count": 346
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3273,7 +3285,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/vers…",
- "weekly_downloads": 1591
+ "weekly_downloads": 1671
},
"notes": null
}
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 58cf4bc..c78f71e 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -78,9 +78,9 @@ input_files:
enable: '[% c("var/snowflake") && ! c("var/android") %]'
- filename: Bundle-Data
enable: '[% ! c("var/android") %]'
- - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
+ - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
name: noscript
- sha256sum: 278ee526d7c3ce5236c1a04aa5b6605c81b82399b846e43cdf6f93f11fef1ec9
+ sha256sum: d089f1db05570fef88b54feb723585a4a52b22e3956bb49d28279fa00f4dfd21
- filename: 'RelativeLink/start-tor-browser.desktop'
enable: '[% c("var/linux") %]'
- filename: 'RelativeLink/execdesktop'
1
0

[tor-browser-build/maint-10.0-android] Bug 25934: Disable building of rust docs
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit a7604bd5f8963de896a54d6723e04cfb2b472e2a
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Mar 22 13:51:22 2021 +0100
Bug 25934: Disable building of rust docs
---
projects/rust/build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/rust/build b/projects/rust/build
index 31e1070..9609758 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -60,7 +60,7 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
mkdir build
cd build
-../configure --prefix=$distdir [% c("var/configure_opt") %]
+../configure --prefix=$distdir --disable-docs --disable-compiler-docs [% c("var/configure_opt") %]
make -j[% c("buildconf/num_procs") %]
make install
1
0

[tor-browser-build/maint-10.0-android] Bug 40259: Update components for mozilla88-based Fenix (GeckoView part)
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 1af3fb3ab394e85be844d0f577c57607c4a38a8a
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon Apr 5 21:38:47 2021 +0000
Bug 40259: Update components for mozilla88-based Fenix (GeckoView part)
Now Geckoview uses build-tools 30.0.2, so this patch updates
android-toolchain, as well.
---
projects/android-toolchain/build | 38 ++++++++++++------------
projects/android-toolchain/config | 36 +++++++++++-----------
projects/geckoview/config | 8 ++---
projects/geckoview/list_toolchain_updates_checks | 2 +-
4 files changed, 43 insertions(+), 41 deletions(-)
diff --git a/projects/android-toolchain/build b/projects/android-toolchain/build
index e352b67..29d79e5 100644
--- a/projects/android-toolchain/build
+++ b/projects/android-toolchain/build
@@ -3,9 +3,9 @@
export PROJECT_PATH=/var/tmp/dist/[% project %]
export SDK_HOME=$PROJECT_PATH/android-sdk-linux
export NDK_HOME=$PROJECT_PATH/android-ndk
-android_release_dir=android-10
-android_release_dir_old=android-9
-android_release_dir_new=android-11
+android_release_dir_9=android-9
+android_release_dir_10=android-10
+android_release_dir_11=android-11
# Make directories
mkdir -p $NDK_HOME $SDK_HOME
@@ -26,27 +26,27 @@ done
# Tool Archives
cd $SDK_HOME
unzip -qq $HOME/[% c("input_files_by_name/build_tools") %] -d $SDK_HOME
-mkdir -p build-tools/[% c("version") %]
-mv $android_release_dir/* build-tools/[% c("version") %]
+mkdir -p build-tools/[% c("var/version_30") %]
+mv $android_release_dir_11/* build-tools/[% c("var/version_30") %]
+
+unzip -qq $HOME/[% c("input_files_by_name/platform") %] -d $SDK_HOME
+mkdir -p platforms/android-[% c("var/android_api_level") %]
+mv $android_release_dir_11/* platforms/android-[% c("var/android_api_level") %]
# Apart from GeckoView all other projects do still need build-tools 28.0.3 as
# they are using the Gradle plugin 3.2.1 - 3.6.0 without specifying
# `buildToolsVersion`.
-unzip -qq $HOME/[% c("input_files_by_name/build_tools_old") %] -d $SDK_HOME
-mkdir -p build-tools/[% c("version_old") %]
-mv $android_release_dir_old/* build-tools/[% c("version_old") %]
-
-unzip -qq $HOME/[% c("input_files_by_name/platform") %] -d $SDK_HOME
-mkdir -p platforms/android-[% c("var/android_api_level") %]
-mv $android_release_dir/* platforms/android-[% c("var/android_api_level") %]
+unzip -qq $HOME/[% c("input_files_by_name/build_tools_28") %] -d $SDK_HOME
+mkdir -p build-tools/[% c("var/version_28") %]
+mv $android_release_dir_9/* build-tools/[% c("var/version_28") %]
-unzip -qq $HOME/[% c("input_files_by_name/build_tools_new") %] -d $SDK_HOME
-mkdir -p build-tools/[% c("var/android_api_level_new") %]
-mv $android_release_dir_new/* build-tools/[% c("var/android_api_level_new") %]
+unzip -qq $HOME/[% c("input_files_by_name/build_tools_29") %] -d $SDK_HOME
+mkdir -p build-tools/[% c("var/version_29") %]
+mv $android_release_dir_10/* build-tools/[% c("var/version_29") %]
-unzip -qq $HOME/[% c("input_files_by_name/platform_new") %] -d $SDK_HOME
-mkdir -p platforms/android-[% c("var/android_api_level_new") %]
-mv $android_release_dir_new/* platforms/android-[% c("var/android_api_level_new") %]
+unzip -qq $HOME/[% c("input_files_by_name/platform_29") %] -d $SDK_HOME
+mkdir -p platforms/android-[% c("var/android_api_level_29") %]
+mv $android_release_dir_10/* platforms/android-[% c("var/android_api_level_29") %]
unzip -qq $HOME/[% c("input_files_by_name/platform_tools") %] -d $SDK_HOME
@@ -56,7 +56,7 @@ mkdir emulator
cp tools/emulator emulator/
# Cleanup
-rm -fR $android_release_dir $android_release_dir_old $android_release_dir_new
+rm -fR $android_release_dir_9 $android_release_dir_10 $android_release_dir_11
# Archive dist directory
cd /var/tmp/dist
diff --git a/projects/android-toolchain/config b/projects/android-toolchain/config
index 6d78b37..5196528 100644
--- a/projects/android-toolchain/config
+++ b/projects/android-toolchain/config
@@ -1,8 +1,10 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
-version: 29.0.2
-version_old: 28.0.3
+version: '[% c("var/version_28") %]+[% c("var/version_29") %]+[% c("var/version_30") %]'
var:
+ version_30: 30.0.2
+ version_29: 29.0.2
+ version_28: 28.0.3
container:
use_container: 1
deps:
@@ -25,36 +27,36 @@ var:
export PATH=$PATH:$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$GRADLE_HOME/gradle/bin
mkdir -p "$GRADLE_HOME"
google_repo: https://dl.google.com/android/repository
- android_api_level: 29
- android_platform_revision: 04
- android_api_level_new: 30
- android_platform_revision_new: 03
+ android_api_level: 30
+ android_platform_revision: 03
+ android_api_level_29: 29
+ android_platform_revision_29: 04
android_ndk_version: 21
android_ndk_revision: d
sdk_tools_version: 4333796
input_files:
- project: container-image
- - URL: '[% c("var/google_repo") %]/build-tools_r[% c("version") %]-linux.zip'
+ - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_30") %]-linux.zip'
name: build_tools
+ sha256sum: 565af786dc0cc1941002174fb945122eabd080b222cd4c7c3d9a2ae0fabf5dc4
+ - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_29") %]-linux.zip'
+ name: build_tools_29
sha256sum: 1e9393cbfd4a4b82e30e7f55ab38db4a5a3259db93d5821c63597bc74522fa08
- - URL: '[% c("var/google_repo") %]/build-tools_r[% c("version_old") %]-linux.zip'
- name: build_tools_old
+ - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/version_28") %]-linux.zip'
+ name: build_tools_28
sha256sum: 7954956a40633c88f693d638cbc23f68e9e2499dc7a4b7dfdaf6a3e91387749a
+ - URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level_29") %]_r[% c("var/android_platform_revision_29") %].zip'
+ name: platform_29
+ sha256sum: c9eaf2ce4e8fa6f5a8036bd3c95363d003733bf0a1bd349718cadf802db44c69
- URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level") %]_r[% c("var/android_platform_revision") %].zip'
name: platform
- sha256sum: c9eaf2ce4e8fa6f5a8036bd3c95363d003733bf0a1bd349718cadf802db44c69
- - URL: '[% c("var/google_repo") %]/build-tools_r[% c("var/android_api_level_new") %]-linux.zip'
- name: build_tools_new
- sha256sum: ed3b7f9b2d15e90a12c2e739adb749d7d834e2f953e677380206bd14db135c6c
- - URL: '[% c("var/google_repo") %]/platform-[% c("var/android_api_level_new") %]_r[% c("var/android_platform_revision_new") %].zip'
- name: platform_new
sha256sum: f3f5b75744dbf6ee6ed3e8174a71e513bfee502d0bc3463ea97e517bff68d84e
# ./mach bootstrap is fetching the latest version, so it does not seem to
# matter which particular version we are using. Pin to the one fitting best to
# SDK version/build-tools version.
- - URL: '[% c("var/google_repo") %]/platform-tools_r[% c("version") %]-linux.zip'
+ - URL: '[% c("var/google_repo") %]/platform-tools_r[% c("var/version_30") %]-linux.zip'
name: platform_tools
- sha256sum: 633b6dfa245f5dc58d15da9ead655bcd14de5784196ec0f0dc7e37a5acb61be4
+ sha256sum: f7306a7c66d8149c4430aff270d6ed644c720ea29ef799dc613d3dc537485c6e
- URL: '[% c("var/google_repo") %]/sdk-tools-linux-[% c("var/sdk_tools_version") %].zip'
name: android_sdk_tools
sha256sum: 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 84d212d..4cc3408 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 87.0
+ geckoview_version: 88.0b4
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
@@ -138,10 +138,10 @@ steps:
- torbrowser-android-x86_64
list_toolchain_updates:
- git_url: https://github.com/mozilla/gecko-dev.git
+ #git_url: https://github.com/mozilla/gecko-dev.git
# 88.0b8
- git_hash: 43ab49774f70a5c70b2cd69a2b2a8bc0a3be20bf
- tag_gpg_id: 0
+ #git_hash: 43ab49774f70a5c70b2cd69a2b2a8bc0a3be20bf
+ #tag_gpg_id: 0
input_files: []
var:
container:
diff --git a/projects/geckoview/list_toolchain_updates_checks b/projects/geckoview/list_toolchain_updates_checks
index ffc5e23..f31fa51 100644
--- a/projects/geckoview/list_toolchain_updates_checks
+++ b/projects/geckoview/list_toolchain_updates_checks
@@ -44,7 +44,7 @@ if (m/build_tools_version\\s*=\\s*"([^"]+)"/) {
}
EOF
needed=$(cat build/moz.configure/android-sdk.configure | perl -ne "$p")
-current='[% pc("android-toolchain", "version") %]'
+current='[% pc("android-toolchain", "var/version_30") %]'
check_update_needed build_tools "$needed" "$current"
1
0

[tor-browser-build/maint-10.0-android] Bug 40251: Fix indentation in projects/android-toolchain/build
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 4fe725400c5d9ad9c41ced7c4a944c6f0aa3d3ad
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Mar 23 15:41:19 2021 +0100
Bug 40251: Fix indentation in projects/android-toolchain/build
---
projects/android-toolchain/build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/android-toolchain/build b/projects/android-toolchain/build
index cd6caec..e352b67 100644
--- a/projects/android-toolchain/build
+++ b/projects/android-toolchain/build
@@ -20,7 +20,7 @@ unzip -qq [% c("input_files_by_name/android_ndk_compiler")%] -d $NDK_HOME
# so we only have to take care of one. See: #33557 (comment 2674649).
cd $NDK_HOME/android-ndk-r[% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %]/toolchains/llvm/prebuilt/linux-x86_64/bin
for f in `ls arm-linux-androideabi-*`; do
- ln -s $f ${f//arm-linux-androideabi/armv7a-linux-androideabi}
+ ln -s $f ${f//arm-linux-androideabi/armv7a-linux-androideabi}
done
# Tool Archives
1
0

[tor-browser-build/maint-10.0-android] Bug 34108: Add scripts to check for needed toolchain updates
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 9696b8e15ce1c766311c43b821997654e074af08
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Apr 5 13:15:17 2021 +0200
Bug 34108: Add scripts to check for needed toolchain updates
Checking toolchain updates can be done with the following commands:
make list_toolchain_updates-geckoview
make list_toolchain_updates-application-services
make list_toolchain_updates-android-components
make list_toolchain_updates-fenix
---
Makefile | 12 ++
projects/android-components/config | 20 ++
.../list_toolchain_updates_checks | 85 +++++++++
projects/android-toolchain/config | 3 +-
projects/application-services/config | 7 +
.../list_toolchain_updates_checks | 97 ++++++++++
projects/common/list_toolchain_updates | 38 ++++
projects/fenix/config | 7 +
projects/fenix/list_toolchain_updates_checks | 73 ++++++++
projects/geckoview/config | 5 +
projects/geckoview/list_toolchain_updates_checks | 202 +++++++++++++++++++++
projects/glean/config | 9 +
projects/llvm-project/config | 2 +-
rbm.conf | 3 +
14 files changed, 561 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 7e2e104..fa613e1 100644
--- a/Makefile
+++ b/Makefile
@@ -201,6 +201,18 @@ dmg2mar-alpha: submodule-update
tools/update-responses/download_missing_versions alpha
CHECK_CODESIGNATURE_EXISTS=1 MAR_SKIP_EXISTING=1 tools/update-responses/gen_incrementals alpha
+list_toolchain_updates-fenix: submodule-update
+ $(rbm) build fenix --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-android-components: submodule-update
+ $(rbm) build android-components --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-application-services: submodule-update
+ $(rbm) build application-services --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
+list_toolchain_updates-geckoview: submodule-update
+ $(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+
submodule-update:
git submodule update --init
diff --git a/projects/android-components/config b/projects/android-components/config
index eb1b7de..c9c5d55 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -50,3 +50,23 @@ input_files:
- URL: https://people.torproject.org/~gk/mirrors/sources/glean-parser-[% c('var/glean_parser') %].tar.bz2
sha256sum: 19dbdd4958022a1a638e0217489ab722fe7d4f588f1978a4ae162f93e75694c2
enable: '[% !c("var/fetch_gradle_dependencies") %]'
+
+steps:
+ list_toolchain_updates:
+ var:
+ container:
+ use_container: 0
+ get_glean_version: |
+ #!/bin/bash
+ read -d '' p << 'EOF' || true
+ if (m/const\\sval\\smozilla_glean\\s=\\s"([^"]+)"/) {
+ print $1;
+ exit;
+ }
+ EOF
+ perl -ne "$p" < buildSrc/src/main/java/Dependencies.kt
+ glean_version: '[% exec(c("var/get_glean_version")) %]'
+ input_files:
+ - name: glean
+ project: glean
+ pkg_type: src
diff --git a/projects/android-components/list_toolchain_updates_checks b/projects/android-components/list_toolchain_updates_checks
new file mode 100644
index 0000000..a46afb4
--- /dev/null
+++ b/projects/android-components/list_toolchain_updates_checks
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+# compileSdkVersion
+read -d '' p << 'EOF' || true
+if (m/compileSdkVersion:\\s+(.*)$/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat .config.yml | perl -ne "$p")
+current=30
+check_update_needed compileSdkVersion "$needed" "$current"
+
+
+# targetSdkVersion
+read -d '' p << 'EOF' || true
+if (m/targetSdkVersion:\\s+(.*)$/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat .config.yml | perl -ne "$p")
+current=30
+check_update_needed targetSdkVersion "$needed" "$current"
+
+
+# minSdkVersion
+read -d '' p << 'EOF' || true
+if (m/minSdkVersion:\\s+(.*)$/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat .config.yml | perl -ne "$p")
+current=21
+check_update_needed minSdkVersion "$needed" "$current"
+
+
+# application-services
+read -d '' p << 'EOF' || true
+if (m/const\\sval\\smozilla_appservices\\s=\\s"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Dependencies.kt | perl -ne "$p")
+current='[% pc("application-services", "version") %]'
+check_update_needed application-services "$needed" "$current"
+
+
+# glean_parser
+read -d '' p << 'EOF' || true
+if (m/^\\s*"glean_parser==([^"]+)",/) {
+ print $1;
+ exit;
+}
+EOF
+tar xf $rootdir/[% c('input_files_by_name/glean') %]
+needed=$(cat glean-[% c("var/glean_version") %]/glean-core/python/setup.py | perl -ne "$p")
+current='[% c("var/glean_parser") %]'
+check_update_needed glean_parser "$needed" "$current"
+
+
+# gradle
+read -d '' p << 'EOF' || true
+if (m|distributionUrl=https\\\\://services.gradle.org/distributions/gradle-(.*)…) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat gradle/wrapper/gradle-wrapper.properties | perl -ne "$p")
+current='[% c("var/gradle_version") %]'
+check_update_needed gradle "$needed" "$current"
+
+
+# android-gradle-plugin
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+android_gradle_plugin\\s+=\\s+"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Dependencies.kt | perl -ne "$p")
+current='4.0.1'
+check_update_needed android-gradle-plugin "$needed" "$current"
diff --git a/projects/android-toolchain/config b/projects/android-toolchain/config
index dc30b4d..6d78b37 100644
--- a/projects/android-toolchain/config
+++ b/projects/android-toolchain/config
@@ -31,6 +31,7 @@ var:
android_platform_revision_new: 03
android_ndk_version: 21
android_ndk_revision: d
+ sdk_tools_version: 4333796
input_files:
- project: container-image
- URL: '[% c("var/google_repo") %]/build-tools_r[% c("version") %]-linux.zip'
@@ -54,7 +55,7 @@ input_files:
- URL: '[% c("var/google_repo") %]/platform-tools_r[% c("version") %]-linux.zip'
name: platform_tools
sha256sum: 633b6dfa245f5dc58d15da9ead655bcd14de5784196ec0f0dc7e37a5acb61be4
- - URL: '[% c("var/google_repo") %]/sdk-tools-linux-4333796.zip'
+ - URL: '[% c("var/google_repo") %]/sdk-tools-linux-[% c("var/sdk_tools_version") %].zip'
name: android_sdk_tools
sha256sum: 92ffee5a1d98d856634e8b71132e8a95d96c83a63fde1099be3d86df3106def9
- URL: '[% c("var/google_repo") %]/android-ndk-r[% c("var/android_ndk_version") %][% c("var/android_ndk_revision") %]-linux-x86_64.zip'
diff --git a/projects/application-services/config b/projects/application-services/config
index 951d5b0..6a80ffc 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -81,3 +81,10 @@ input_files:
- filename: viaduct-workaround.patch
- filename: viaduct-workaround2.patch
- filename: update-cargo-lock.patch
+
+steps:
+ list_toolchain_updates:
+ input_files: []
+ var:
+ container:
+ use_container: 0
diff --git a/projects/application-services/list_toolchain_updates_checks b/projects/application-services/list_toolchain_updates_checks
new file mode 100644
index 0000000..69c232c
--- /dev/null
+++ b/projects/application-services/list_toolchain_updates_checks
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+# ndkVersion
+read -d '' p << 'EOF' || true
+if (m/^\\s*ndkVersion:\\s"([^"]*)",/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build.gradle | perl -ne "$p")
+current='21.3.6528147'
+check_update_needed ndkVersion "$needed" "$current"
+
+
+# compileSdkVersion
+read -d '' p << 'EOF' || true
+if (m/^\\s*compileSdkVersion:\\s([^"]*),/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build.gradle | perl -ne "$p")
+current=29
+check_update_needed compileSdkVersion "$needed" "$current"
+
+
+# minSdkVersion
+read -d '' p << 'EOF' || true
+if (m/^\\s*minSdkVersion:\\s([^"]*),/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build.gradle | perl -ne "$p")
+current=21
+check_update_needed minSdkVersion "$needed" "$current"
+
+
+# gradle
+read -d '' p << 'EOF' || true
+if (m|distributionUrl=https\\\\://services.gradle.org/distributions/gradle-(.*)…) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat gradle/wrapper/gradle-wrapper.properties | perl -ne "$p")
+current='[% c("var/gradle_version") %]'
+check_update_needed gradle "$needed" "$current"
+
+
+# nss-nspr
+read -d '' p << 'EOF' || true
+if (m/NSS_ARCHIVE="nss-(.*-with-nspr-.*)\\.tar\\.gz"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat libs/build-all.sh | perl -ne "$p")
+current='[% pc("nss", "version") %]-with-nspr-[% pc("nss", "nspr_version") %]'
+check_update_needed nss-nspr "$needed" "$current"
+
+
+# sqlcipher
+read -d '' p << 'EOF' || true
+if (m/SQLCIPHER_VERSION="([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat libs/build-all.sh | perl -ne "$p")
+current='[% pc("sqlcipher", "version") %]'
+check_update_needed sqlcipher "$needed" "$current"
+
+
+# android-gradle-plugin
+read -d '' p << 'EOF' || true
+if (m/^\\s*ext\\.android_gradle_plugin_version\\s=\\s'([^']*)'/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build.gradle | perl -ne "$p")
+current='4.0.1'
+check_update_needed android-gradle-plugin "$needed" "$current"
+
+
+# android-components
+read -d '' p << 'EOF' || true
+if (m/^\\s*ext\\.android_components_version\\s=\\s'([^']*)'/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build.gradle | perl -ne "$p")
+current=71.0.0
+check_update_needed android-components "$needed" "$current"
+
diff --git a/projects/common/list_toolchain_updates b/projects/common/list_toolchain_updates
new file mode 100644
index 0000000..4cfd829
--- /dev/null
+++ b/projects/common/list_toolchain_updates
@@ -0,0 +1,38 @@
+#!/usr/bin/bash
+
+set -e
+
+rootdir="$(pwd)"
+no_updates="$rootdir/no_updates.txt"
+updates="$rootdir/updates.txt"
+
+tar -xf [% project %]-[% c('version') %].tar.gz
+cd [% project %]-[% c('version') %]
+
+function check_update_needed() {
+ name="$1"
+ v1="$2"
+ v2="$3"
+ if test "$v1" = "$v2"
+ then
+ echo "* $name ($v1)" >> "$no_updates"
+ else
+ echo "* $name needs to be updated to $v1 (currently at $v2)" >> "$updates"
+ fi
+}
+
+[% INCLUDE list_toolchain_updates_checks %]
+
+echo '### Component: [% project %] ([% c("git_hash") %])'
+
+if test -f "$updates"
+then
+ echo "The following components need to be updated:"
+ cat "$updates"
+ echo
+fi
+if test -f "$no_updates"
+then
+ echo "The following components don't need to be updated:"
+ cat "$no_updates"
+fi
diff --git a/projects/fenix/config b/projects/fenix/config
index cabdb55..a72fff4 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -61,3 +61,10 @@ input_files:
name: tor-android-service
- project: tor-onion-proxy-library
name: topl
+
+steps:
+ list_toolchain_updates:
+ input_files: []
+ var:
+ container:
+ use_container: 0
diff --git a/projects/fenix/list_toolchain_updates_checks b/projects/fenix/list_toolchain_updates_checks
new file mode 100644
index 0000000..43dd1b4
--- /dev/null
+++ b/projects/fenix/list_toolchain_updates_checks
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# android-components
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+VERSION\\s+=\\s+"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/AndroidComponents.kt | perl -ne "$p")
+current='[% pc("android-components", "var/android_components_version") %]'
+check_update_needed android-components "$needed" "$current"
+
+
+# targetSdkVersion
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+targetSdkVersion\\s+=\\s+([^"]+)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Config.kt | perl -ne "$p")
+current=29
+check_update_needed targetSdkVersion "$needed" "$current"
+
+
+# compileSdkVersion
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+compileSdkVersion\\s+=\\s+([^"]+)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Config.kt | perl -ne "$p")
+current=29
+check_update_needed compileSdkVersion "$needed" "$current"
+
+
+# minSdkVersion
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+minSdkVersion\\s+=\\s+([^"]+)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Config.kt | perl -ne "$p")
+current=21
+check_update_needed compileSdkVersion "$needed" "$current"
+
+
+# gradle
+read -d '' p << 'EOF' || true
+if (m|distributionUrl=https\\\\://services.gradle.org/distributions/gradle-(.*)…) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat gradle/wrapper/gradle-wrapper.properties | perl -ne "$p")
+current='[% c("var/gradle_version") %]'
+check_update_needed gradle "$needed" "$current"
+
+
+# android-gradle-plugin
+read -d '' p << 'EOF' || true
+if (m/const\\s+val\\s+android_gradle_plugin\\s+=\\s+"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat buildSrc/src/main/java/Dependencies.kt | perl -ne "$p")
+current='4.0.1'
+check_update_needed android-gradle-plugin "$needed" "$current"
+
diff --git a/projects/geckoview/config b/projects/geckoview/config
index a893d31..d186c8b 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -137,6 +137,11 @@ steps:
target_prepend:
- torbrowser-android-x86_64
+ list_toolchain_updates:
+ input_files: []
+ var:
+ container:
+ use_container: 0
targets:
nightly:
diff --git a/projects/geckoview/list_toolchain_updates_checks b/projects/geckoview/list_toolchain_updates_checks
new file mode 100644
index 0000000..ffc5e23
--- /dev/null
+++ b/projects/geckoview/list_toolchain_updates_checks
@@ -0,0 +1,202 @@
+#!/bin/bash
+
+# ndk version
+read -d '' p << 'EOF' || true
+if (m/^\\s*NDK_VERSION\\s*=\\s*"(.+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat python/mozboot/mozboot/android.py | perl -ne "$p")
+current='r[% pc("android-toolchain", "var/android_ndk_version") %][% pc("android-toolchain", "var/android_ndk_revision") %]'
+check_update_needed ndk_version "$needed" "$current"
+
+
+# rust
+read -d '' p << 'EOF' || true
+my $d = YAML::XS::LoadFile('taskcluster/ci/toolchain/rust.yml');
+foreach my $t (keys %$d) {
+ if ($d->{$t}{run}{'toolchain-alias'} eq 'linux64-rust-android') {
+ my $channel;
+ foreach my $arg (@{$d->{$t}{run}{arguments}}) {
+ if ($arg eq '--channel') {
+ $channel = 1;
+ next;
+ }
+ if ($channel) {
+ print $arg;
+ exit;
+ }
+ }
+ }
+}
+EOF
+needed=$(perl -MYAML::XS -e "$p")
+current='[% pc("rust", "version") %]'
+check_update_needed rust "$needed" "$current"
+
+
+# build_tools
+read -d '' p << 'EOF' || true
+if (m/build_tools_version\\s*=\\s*"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build/moz.configure/android-sdk.configure | perl -ne "$p")
+current='[% pc("android-toolchain", "version") %]'
+check_update_needed build_tools "$needed" "$current"
+
+
+# target_sdk
+read -d '' p << 'EOF' || true
+if (m/target_sdk_version\\s*=\\s*"(.+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build/moz.configure/android-sdk.configure | perl -ne "$p")
+current='[% pc("android-toolchain", "var/android_api_level") %]'
+check_update_needed target_sdk "$needed" "$current"
+
+
+# sdk-tools
+read -d '' p << 'EOF' || true
+if (m|https://dl\\.google\\.com/android/repository/sdk-tools-.+-([^-]+).zip|) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat python/mozboot/mozboot/android.py | perl -ne "$p")
+current='[% pc("android-toolchain", "var/sdk_tools_version") %]'
+check_update_needed sdk-tools "$needed" "$current"
+
+
+# min-android
+read -d '' p << 'EOF' || true
+use Path::Tiny;
+use Digest::SHA qw(sha256_hex);
+my $f;
+my $min_indent;
+foreach (path('build/moz.configure/android-ndk.configure')->lines_utf8) {
+ if ($_ eq "def min_android_version(target):\\n") {
+ $f = $_;
+ next;
+ } else {
+ next unless $f;
+ }
+ m/^(\\s*)/;
+ my $indent = length $1;
+ $min_indent = $indent unless $min_indent;
+ last if $indent < $min_indent;
+ $f .= $_;
+}
+print substr(sha256_hex($f), 0, 10);
+EOF
+needed=$(perl -e "$p")
+# We can't easily parse the min_android_version function.
+# Instead we get a checksum of the function, and manually check it when
+# it was updated.
+# Current value of min_android_version is:
+# 21 on aarch64, x86_64
+# 16 on other archs
+current=303de6de36
+check_update_needed min-android "$needed" "$current"
+
+
+# min_sdk
+read -d '' p << 'EOF' || true
+if (m/^\\s*MOZ_ANDROID_MIN_SDK_VERSION\\s*=\\s*([^\\s]+)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat mobile/android/confvars.sh | perl -ne "$p")
+current=16
+check_update_needed min_sdk "$needed" "$current"
+
+
+# gradle
+read -d '' p << 'EOF' || true
+if (m|distributionUrl=https\\\\://services.gradle.org/distributions/gradle-(.*)…) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat gradle/wrapper/gradle-wrapper.properties | perl -ne "$p")
+current='[% c("var/gradle_version") %]'
+check_update_needed gradle "$needed" "$current"
+
+
+# cbindgen
+read -d '' p << 'EOF' || true
+if (m/^\\s*cbindgen_min_version\\s*=\\s*Version\\("([^"]+)"\\)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build/moz.configure/bindgen.configure | perl -ne "$p")
+current='[% pc("cbindgen", "version") %]'
+check_update_needed cbindgen "$needed" "$current"
+
+
+# nasm
+read -d '' p << 'EOF' || true
+if (m/^\\s*MODERN_NASM_VERSION\\s*=\\s*LooseVersion\\("([^"]+)"\\)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat python/mozboot/mozboot/base.py | perl -ne "$p")
+current='2.14'
+check_update_needed nasm "$needed" "$current"
+
+
+# clang
+read -d '' p << 'EOF' || true
+my $d = YAML::XS::LoadFile('taskcluster/ci/toolchain/clang.yml');
+my $clang_toolchain;
+foreach my $t (keys %$d) {
+ if ($d->{$t}{run}{'toolchain-alias'} eq 'linux64-clang-android-cross') {
+ foreach my $fetch (@{$d->{$t}{fetches}{fetch}}) {
+ $clang_toolchain = $fetch if $fetch =~ m/^clang-.*/;
+ }
+ last;
+ }
+}
+
+if (!$clang_toolchain) {
+ print STDERR "Error: could not find clang toolchain";
+ exit 1;
+}
+
+my $fetch = YAML::XS::LoadFile('taskcluster/ci/fetch/toolchains.yml');
+print $fetch->{$clang_toolchain}{fetch}{revision};
+EOF
+needed=$(perl -MYAML::XS -e "$p")
+current='[% pc("llvm-project", "git_hash") %]'
+check_update_needed clang "$needed" "$current"
+
+
+# node
+read -d '' p << 'EOF' || true
+if (m/^\\s*NODE_MIN_VERSION\\s*=\\s*StrictVersion\\("([^"]+)"\\)/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat python/mozbuild/mozbuild/nodeutil.py | perl -ne "$p")
+current='[% pc("node", "version") %]'
+check_update_needed node "$needed" "$current"
+
+
+# python
+read -d '' p << 'EOF' || true
+if (m/find_python3_executable\\(min_version\\s*=\\s*"([^"]+)"/) {
+ print $1;
+ exit;
+}
+EOF
+needed=$(cat build/moz.configure/init.configure | perl -ne "$p")
+current=3.6.0
+check_update_needed python "$needed" "$current"
diff --git a/projects/glean/config b/projects/glean/config
new file mode 100644
index 0000000..45bc43b
--- /dev/null
+++ b/projects/glean/config
@@ -0,0 +1,9 @@
+# vim: filetype=yaml sw=2
+git_hash: 'v[% c("version") %]'
+git_url: https://github.com/mozilla/glean.git
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
+version: '[% pc(c("origin_project"), "var/glean_version", { step => "list_toolchain_updates" }) %]'
+
+src: |
+ #!/bin/bash
+ mv -f [% project %]-[% c('version') %].tar.gz [% dest_dir %]/[% c('filename') %]
diff --git a/projects/llvm-project/config b/projects/llvm-project/config
index 822f08d..c6fa2d8 100644
--- a/projects/llvm-project/config
+++ b/projects/llvm-project/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
version: 11.0.1
-git_hash: 43ff75f2c3feef64f9d73328230d34dac8832a9
+git_hash: 43ff75f2c3feef64f9d73328230d34dac8832a91
git_url: https://github.com/llvm/llvm-project
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
diff --git a/rbm.conf b/rbm.conf
index cbc705a..646f353 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -15,6 +15,9 @@ steps:
set -e
mkdir -p '[% dest_dir %]'
mv -vf '[% project %]-[% c("version") %].tar.xz' '[% dest_dir %]/[% c("filename") %]'
+ list_toolchain_updates:
+ build_log: '-'
+ list_toolchain_updates: '[% INCLUDE list_toolchain_updates %]'
# buildconf contains build options that the user can change in rbm.local.conf
# When adding a new option to buildconf, a default value should be defined
1
0

[tor-browser-build/maint-10.0-android] Bug 40266: Make the list of components updates for switch to mozilla88-based Fenix
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 55478c86e335f1716f9506ec7c17b1eeb9e38e47
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Apr 5 13:46:10 2021 +0200
Bug 40266: Make the list of components updates for switch to mozilla88-based Fenix
---
projects/android-components/config | 3 +++
projects/application-services/config | 1 +
projects/fenix/config | 3 +++
projects/geckoview/config | 4 ++++
4 files changed, 11 insertions(+)
diff --git a/projects/android-components/config b/projects/android-components/config
index c9c5d55..ce9eafd 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -53,6 +53,9 @@ input_files:
steps:
list_toolchain_updates:
+ git_url: https://github.com/mozilla-mobile/android-components.git
+ git_hash: v74.0.6
+ tag_gpg_id: 0
var:
container:
use_container: 0
diff --git a/projects/application-services/config b/projects/application-services/config
index 6a80ffc..0cf0dd2 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -84,6 +84,7 @@ input_files:
steps:
list_toolchain_updates:
+ git_hash: 'v74.0.1'
input_files: []
var:
container:
diff --git a/projects/fenix/config b/projects/fenix/config
index a72fff4..9336d9e 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -64,6 +64,9 @@ input_files:
steps:
list_toolchain_updates:
+ git_url: https://github.com/mozilla-mobile/fenix.git
+ git_hash: v88.0.0-beta.4
+ tag_gpg_id: 0
input_files: []
var:
container:
diff --git a/projects/geckoview/config b/projects/geckoview/config
index d186c8b..84d212d 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -138,6 +138,10 @@ steps:
- torbrowser-android-x86_64
list_toolchain_updates:
+ git_url: https://github.com/mozilla/gecko-dev.git
+ # 88.0b8
+ git_hash: 43ab49774f70a5c70b2cd69a2b2a8bc0a3be20bf
+ tag_gpg_id: 0
input_files: []
var:
container:
1
0

[tor-browser-build/maint-10.0-android] Bug 40272: Add script to generate glean depencies tarballs
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit ccd393a67f8c8aba2944fae23a52b07f951a048a
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Fri Apr 9 17:28:55 2021 +0200
Bug 40272: Add script to generate glean depencies tarballs
---
Makefile | 6 ++++
projects/common/how-to-update-glean-parser.txt | 30 +++++++-----------
projects/glean/config | 44 ++++++++++++++++++++++++++
3 files changed, 62 insertions(+), 18 deletions(-)
diff --git a/Makefile b/Makefile
index fa613e1..d4562ac 100644
--- a/Makefile
+++ b/Makefile
@@ -213,6 +213,12 @@ list_toolchain_updates-application-services: submodule-update
list_toolchain_updates-geckoview: submodule-update
$(rbm) build geckoview --step list_toolchain_updates --target nightly --target torbrowser-android-armv7
+create_glean_deps_tarball: submodule-update
+ $(rbm)build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7
+
+create_glean_deps_tarball-with_torsocks: submodule-update
+ $(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
+
submodule-update:
git submodule update --init
diff --git a/projects/common/how-to-update-glean-parser.txt b/projects/common/how-to-update-glean-parser.txt
index a125f5f..625049e 100644
--- a/projects/common/how-to-update-glean-parser.txt
+++ b/projects/common/how-to-update-glean-parser.txt
@@ -3,42 +3,36 @@ distribute Glean dependencies beforehand.[1]
There are three steps involved in the process:
1) Finding out the `glean_parser` version
- 2) Downloading and verifying the dependencies
- 3) Bundling the dependencies up and pushing them to the sources mirror
+ 2) Downloading and verifying the dependencies, and creating the tarball
+ 3) Pushing it to the sources mirror
1)
-The `glean_parser` version is available in glean-core/python/setup.py in the
-Glean code repositoroy.[2] So, make sure which Glean version your
-`android-components` tag is using (`mozilla_glean` in
-buildSrc/src/main/java/Dependencies.kt has it) and then track `glean_parser`
-down in the respective Glean tag.
+Running `make list_toolchain_updates-android-components` should tell
+you which version of `glean_parser` is needed.
2)
-Create a directory `glean-wheels` and change into it. Then download packages for
-`glean_parser` and its dependencies using
+Update `steps/create_glean_deps_tarball/version` in `projects/glean/config`
+to the version from step 1 above.
-`python3 -m pip download glean_parser==$glean_parser`
+Run this command to generate the tarball:
-($glean_parser being the version from step 1 above and Python 3 needs to be 3.6;
-ideally, we take the artifact we built and will use during the build later on as
-well.)
+ make create_glean_deps_tarball
There is no really good way (yet) to verify that `pip` gave us actually what we
wanted. We can download `glean_parser` and its dependencies using a different
network path, though, e.g. by using `torsocks`. Comparing the results of both
downloads should yield the exact same binaries.
-3)
+If you want to use torsocks, you can use this command:
-Update the `glean_parser` version in `rbm.conf, tar `glean-wheels` up and
-compress it:
+ make create_glean_deps_tarball-with_torsocks
-`tar cfj glean-wheels-$glean_parser.tar.bz2 glean-wheels`
+3)
Upload the compressed tarball to the sources mirror and update the SHA-256 sum of
-it in the respective projects.
+it as well as the `glean_parser` version in the respective projects.
[1] See: https://bugzilla.mozilla.org/show_bug.cgi?id=1651662 for details.
[2] https://github.com/mozilla/glean
diff --git a/projects/glean/config b/projects/glean/config
index 45bc43b..6fd6ce2 100644
--- a/projects/glean/config
+++ b/projects/glean/config
@@ -7,3 +7,47 @@ version: '[% pc(c("origin_project"), "var/glean_version", { step => "list_toolch
src: |
#!/bin/bash
mv -f [% project %]-[% c('version') %].tar.gz [% dest_dir %]/[% c('filename') %]
+
+steps:
+ create_glean_deps_tarball:
+ git_url: ''
+ version: 2.2.0
+ filename: 'glean-wheels-[% c("version") %].tar.xz'
+ build_log: '-'
+ var:
+ container:
+ use_container: 1
+ create_glean_deps_tarball: |
+ #!/bin/bash
+ [% c("var/set_default_env") -%]
+ [% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %]
+ mkdir glean-wheels
+ cd glean-wheels
+ [% IF c("var/use_torsocks") %]torsocks [% END%]python3 -m pip download glean_parser==[% c("version") %]
+ cd ..
+ [% c('tar', {
+ tar_src => [ 'glean-wheels' ],
+ tar_args => '-cJf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
+ cd '[% dest_dir %]'
+ sha256sum [% c('filename') %]
+ echo 'The file is ready to be uploaded:'
+ echo ' scp -p out/glean/[% c("filename") %] people.torproject.org:public_html/mirrors/sources/'
+ input_files:
+ - project: container-image
+ pkg_type: build
+ - project: python
+ name: python
+ pkg_type: build
+
+targets:
+ with_torsocks:
+ var:
+ # The `container-image` project looks at the deps list in origin_project
+ # in the same step (build), so we cannot put this inside the
+ # `create_glean_deps_tarball` step.
+ # rbm#40020 should allow us to fix that.
+ deps:
+ - torsocks
+ - xz-utils
+ use_torsocks: 1
1
0

[tor-browser-build/maint-10.0-android] Bug 40259: Update components for mozilla88-based Fenix (android-components part)
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 960d035da16bb8c247ea2a98b6280b1ac8fa1c1d
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Fri Apr 9 18:47:52 2021 +0200
Bug 40259: Update components for mozilla88-based Fenix (android-components part)
---
projects/android-components/build | 2 +-
projects/android-components/config | 16 +-
.../gradle-dependencies-list.txt | 186 ++++++++++-----------
projects/android-components/mavenLocal.patch | 29 ++--
4 files changed, 119 insertions(+), 114 deletions(-)
diff --git a/projects/android-components/build b/projects/android-components/build
index 279525c..896ba3a 100644
--- a/projects/android-components/build
+++ b/projects/android-components/build
@@ -44,7 +44,7 @@ patch -p1 < $rootdir/git.patch
gradle --debug --no-daemon assemble
[% ELSE %]
# Prepare Glean dependencies for offline build
- tar -xjf $rootdir/glean-parser-[% c('var/glean_parser') %].tar.bz2
+ tar -xf $rootdir/[% c('input_files_by_name/glean') %]
# We need to set `LC_ALL` and `LANG` to something that is not ASCII as encoding
# otherwise `click` barfs. See: https://click.palletsprojects.com/python3/
export LC_ALL=C.UTF-8
diff --git a/projects/android-components/config b/projects/android-components/config
index ce9eafd..531b278 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -8,16 +8,17 @@ gpg_keyring: torbutton.gpg
variant: '[% IF c("var/release") %]Release[% ELSE %]Beta[% END %]'
var:
- android_components_version: 73.0.11
+ android_components_version: 74.0.6
torbrowser_branch: 10.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 21
+ gradle_dependencies_version: 22
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit before support for new GeckoView interfaces gets added.
fetch_gradle_dependencies: 0
gradle_version: 6.6.1
+ glean_parser: 2.2.0
targets:
nightly:
@@ -47,15 +48,16 @@ input_files:
- filename: git.patch
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- - URL: https://people.torproject.org/~gk/mirrors/sources/glean-parser-[% c('var/glean_parser') %].tar.bz2
- sha256sum: 19dbdd4958022a1a638e0217489ab722fe7d4f588f1978a4ae162f93e75694c2
+ - URL: https://people.torproject.org/~boklm/mirrors/sources/glean-wheels-[% c('var/glean_parser') %].tar.xz
+ name: glean
+ sha256sum: 24ceaaadaf155445e8ad135173d894e05c0745b41ab5fee150f9548550acf2a6
enable: '[% !c("var/fetch_gradle_dependencies") %]'
steps:
list_toolchain_updates:
- git_url: https://github.com/mozilla-mobile/android-components.git
- git_hash: v74.0.6
- tag_gpg_id: 0
+ #git_url: https://github.com/mozilla-mobile/android-components.git
+ #git_hash: v74.0.6
+ #tag_gpg_id: 0
var:
container:
use_container: 0
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index 1debd7f..ab3da10 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -29,8 +29,8 @@ f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b | https://dl.go
48167eeedc8da79c4d29deaf0d0cd9b5d8fedcae01f1a6efb3f28f08e8982f71 | https://dl.google.com/dl/android/maven2/androidx/asynclayoutinflater/asyncl…
270c7b7d99942d5ec1dd88594e4648feb33d8e31d8c3c2ab2321d49d9abdfc1f | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
aeb69e76988f43b06c84fca25efab2e418bb98b5aabcd03fa7913bd3ed1bcaa9 | https://dl.google.com/dl/android/maven2/androidx/biometric/biometric/1.1.0/…
-8a28c71070271b6f802f5a285ab9ae5b424e60a4f4bb4e73c0c6f53c1375506d | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
-0125474b4ff9dd64d9ebaa003ba0a19f782354e4490e270fc9fb2a39b33c1115 | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.2.0/brow…
+e740b1beeac82303415d68bee9d5c1f259716f560a829ca07c7ce97e60850e1b | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.3.0/brow…
+d82e1df52624a1fe2757055258e225ccc3aebc3f5a3d523414d7f1bbc80055f8 | https://dl.google.com/dl/android/maven2/androidx/browser/browser/1.3.0/brow…
1193c04c22a3d6b5946dae9f4e8c59d6adde6a71b6bd5d87fb99d82dda1afec7 | https://dl.google.com/dl/android/maven2/androidx/cardview/cardview/1.0.0/ca…
e64ef4e08b58358fe27b599e6fe80a1b153db014c644beee630ab271061c3e6c | https://dl.google.com/dl/android/maven2/androidx/cardview/cardview/1.0.0/ca…
a7913a5275ad68e555d2612ebe8c14c367b153e14ca48a1872a64899020e54ef | https://dl.google.com/dl/android/maven2/androidx/collection/collection/1.0.…
@@ -345,85 +345,34 @@ efe2431a01a188d3037d02a08e60900ec7406de626e4bd5b4995f28d409c0ebd | https://dl.go
d7a2ff3a2fdbd0801f832df3de81dab06d9db7e4a57dfa6d768e7c6e5fa22280 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messag…
79b705ecf5140d3a2601b44ef058b4588878432eb6fb2f9d65da0551cb0a8e20 | https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-messag…
e953cbf59b797ceb11ce312e8da19bb8afc013ef548d8946711c116bc2500482 | https://download.jetbrains.com/kotlin/native/builds/releases/1.4.30/linux/k…
-07c3d82ca7eaf4722f00b2da807dc7860f6169ae60cfedcf5d40218f90880a46 | https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.…
-940676b124a8eea8ad7576f9be072c82d7dc7fe350ad895a36081f0c93ae99a6 | https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/3.12.1/okhttp-3.12.…
-f57c6f089beeedb5b73cdaca7167998ce74505ae9a3d9aeacd72e0ebb0fbf4bc | https://jcenter.bintray.com/com/squareup/okhttp3/parent/3.12.1/parent-3.12.…
-e81f40146f2a0eb394b10fa3a175c85ab9fbe757aa418aa44d4b760efe16f024 | https://jcenter.bintray.com/com/squareup/okio/okio-parent/1.17.2/okio-paren…
-f80ce42d2ffac47ad4c47e1d6f980d604d247ceb1a886705cf4581ab0c9fe2b8 | https://jcenter.bintray.com/com/squareup/okio/okio/1.17.2/okio-1.17.2.jar
-cd57f75443ab6a714b203da51994ee64ed0e919fea81f04e4f4b5324e4bb03f0 | https://jcenter.bintray.com/com/squareup/okio/okio/1.17.2/okio-1.17.2.pom
-ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
-965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://jcenter.bintray.com/org/jetbrains/annotations/13.0/annotations-13.0…
-affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
-310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://jcenter.bintray.com/org/jetbrains/intellij/deps/trove4j/1.0.2018121…
-79500b867b1194cf781ac98d5c706331a3d3ce8448437f536f8d4cc2faff50c3 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-2bad6c031302519db14517bcc33af09f137845de40e5b223b778e8a38c561fd7 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-compiler-embeddable…
-1a4b999a2d9051382430994126c4bebd143c853e26d6bca4fd4c31924072ef5e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-eabab80e05fe2a31e2f2395cedf589cd72fb8df0a82e08e93c2e36fe953b8d59 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-daemon-embeddable/1…
-b0e6d0ab0c1f1dd2e2e5f540eeb6e5791820bdbe4f34597b4af183145dd2a493 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-eedb363ba1f4b999e62b34d264f1b37492f986169d808ec94ca72a67938291db | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1…
-110fc7e4602f7aa47286a74756b673903ff3db5044312a16172eac38f7ba1224 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-fce78c0c595493d89f90fa4ddba466abf4497e61aac6f2f0449ca1541c167413 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin-model…
-bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
-21d04a0720be4a46804e1b73b733c72269c16900896ae463a9e87a1d04ed50c6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-native-utils/1.3.72…
-a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
-61653ccfae8caa4203e267b479821bd90faab3fef744a7ab0fdd9f61150f970c | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotl…
-8e525c7a19a94aea294403d531fd61eed3f08b2992e313a594cb531b75ffc35d | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
-4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-sam-with-receiver/1…
-d372f2dc8051f3d1d4fae3bd50e5fa109d3ec870c4a4830112f9afc8560aacfd | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
-65a3e614b27b2372f350cc015848d44cb14ca3225d8d41e1c54e60ce95e2131f | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-script-runtime/1.3.…
-420198546b466bfa9c38d1d7fb2ffcdfb8f518026e8f4a7ca3851fbdd525a538 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-ad6cfeaefa234918fde058ab1f376168abe54cd1e7d12824fb15cc8a07aa0f03 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-common/1.…
-e91befa8242e5894158c0275d26d883599fe6e6c57b6952129aebec17a2ef0aa | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-de70f4db2a9d7d7aa42f88f217d59b61ed4357d4de138fadd3e459320abe52ba | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-d9a1cb78976db75b6173b51ad04efaebc2b3772636ad0b45cac4cd2d53222dc9 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-0e1311cc6bcd06f373cf8ef7c4d7380087f36de70d9c72acc432e02dabc30a9b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-compiler-…
-5a9cced336697fbf2fb4b6c8a321787747f5e375227b7e355ebf3259365c024e | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
-6a1ba16592546ab118186a5634c9b24589ae2ed64f0cdd41a913ffb3c2b13db6 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3.7…
-5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.7…
-40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.72/…
-133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.72/…
-3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kotli…
-9ef3d0277fe54384104a01089c8c718a9c2a7ab2b5292ff803ecfc9d38e7d6cb | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
-8131897af3fb30af2464efe56161a349087bca1544cbf57495158714875163e4 | https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-util-io/1.3.72/kotl…
-7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://jcenter.bintray.com/org/jetbrains/kotlinx/kotlinx-coroutines-core/1…
-1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
-5c415a9d8585200de4be1947e15291cc79f599b06249375f5c9ea22d4b2d090f | https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-…
-b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://jcenter.bintray.com/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-13009fb5ede3cf2be5a8d0f1602155aeaa0ce5ef5f9366892bd258d8d3d4d2b1 | https://jcenter.bintray.com/org/yaml/snakeyaml/1.23/snakeyaml-1.23.jar
-1e1beb22ca906209700122b5cacf6f2719324538c5b1e3c27bf91564c8d31dbd | https://jcenter.bintray.com/org/yaml/snakeyaml/1.23/snakeyaml-1.23.pom
-8f618bf515269c02037d89a555295e39422c759f7b550a74ea3edbe355ebd1ee | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
-a1fe528647f8e20b45ea0e32bbec271c32e68b865622c42c9a37816a076be998 | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/71.0.0/au…
-d85f563fe91e796d3bc213ee32e98137f0cd92f00cd495d703135d29834d63c7 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord-forU…
-adb969fb3bfef2fc3bb3db62365dd2f68d86203d26746f3c44952c63442f0282 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord-forU…
-17dbf3d3f2cdcdbd666e6770161066214cc15f58298a9188ee8d58e27e4e5ee6 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
-8f9fd5e44dacf9f7b5e6e6ca09fde27f8c9877f09f68cd7539f5a3d980a060ff | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/71.0…
-525d738af64c99669369b374154dd0d7e4ce32bc034f9736aaa05dc64f373743 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
-4f1e345f4e1f41ea2463befa35413ee12b465b3e60f0ab03758b53a17136a091 | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/71.0.0/f…
-373c9e30a547da6931309ba988242409292f752b0bd41b8a49972bb78546f0a0 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
-3cb0d177eb6e731633140b2e854c48edee90ef755026b128016e964e5dfbc3e3 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/71.0.0/…
-4cea81555a8c822e382f18495e2c852a6baa4d599ecde4a11ddd5dc27685e247 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
-86e8a90f5deeb76843286c3afd5e65216b4f05729b4b0d7e93aca51d74b98f48 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/71.0.0/logi…
-fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
-382af2131c727357578c4fdab03a03232a9bdfca3b1036d52fd71ef65a8cf701 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/71.…
-8d72e31784fac0c350e063453d537b1d2389f928c67235c897fc4cadfb3a2ca5 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
-d11541433d5795a8d801e03637fc68e6a8baf684a3b7f56ec19684428b5575bf | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/71.0.0/nimb…
-54934a2cd59b9562345e019e9b44dd1e23d1e2ede61ae7184e29e4e510e4d422 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
-88e9eed6c49b167ed69864d1d0825123d7c48edfe542cafa203897a75b8fc272 | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/71.0.0/plac…
-16bc9f4070b9e8bfe0be8a8ce70e922dda4e4fb74d1e20db9dc1739a8d5c5c0d | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
-a882723e6aca50bb0438a21f2ae1447d9cab19f433181459cf9b7086c2d54892 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/71.0.0/push-7…
-04e220d599dd5d5071bc5ee127c5d9db3e6fe378a831c8d002fb1363883711d4 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
-eed6764e8fd13edbaa2ceccf976174b4dd618f9807e2ca265c7b193007b2de69 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/71.0.0/rus…
-57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
-b9a7f2da1c0af1f88fd8bb47d04d11b4cc14f19a0f7dee13bc960ac75e87fd74 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/71.0.0/sync…
-a50a7c02a36e5950ab0ca0c3a9486b87fd8de95582d0ddbcaa72af173230254b | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
-3b180681c076339b42e20967f95881fa11b5753ae7f597e3c3c8288c09aa9b5e | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/71.0.0…
-6d23b30049cae26d35cbc1c892a785e6bdf9e0399cbbedf5584a48a8dc5cf5c9 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
-383823dd20adbea1eec86fd59097feb3f84f4dda77531a1d79ebe801b4d6d283 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/71.0.0/tabs-7…
+6d600e6f04708c1393db6a3fb57ee273068fd8e7f95dcc32c184e3c2bb767599 | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/74.0.1/au…
+ca74e10892b729a0026257b89e953c03e77e44582d1686f65e8796d969ba16fd | https://maven.mozilla.org/maven2/org/mozilla/appservices/autofill/74.0.1/au…
+5c40c0df6784f1d6ae1748196945c3c314d626153c81fc626c9dfd9847719bfa | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord-forU…
+fe0fefe2babe6d2dbfab5357e649c4bf6eefc9806fba8a9cb1de22fe24f70bfd | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord-forU…
+27f6e3a04e31d8053e832a446b4bf20bcfd04da56d4a390a28f3392378b88fa1 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/74.0…
+c91395a9254a9bb3c836440397d1cca9fd3b541e528d4570c646594fbd448436 | https://maven.mozilla.org/maven2/org/mozilla/appservices/full-megazord/74.0…
+71c137d337bdd5448e12d6dfd8054089e4a137be234d1f6f632f5b86d351a3bf | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/74.0.1/f…
+02a188b095ee842e4e4b0abd94267fa4e5d927c9c1254c10fa33ccdabd1b1eba | https://maven.mozilla.org/maven2/org/mozilla/appservices/fxaclient/74.0.1/f…
+d14aed2d965a26b800233d2cfde8af9c0b3ffcd407755c8573ce3d95d32b4295 | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/74.0.1/…
+b871986d31a139a52b7c48125eccf4a4ee051397340c34610e852b2fa5d2d8ba | https://maven.mozilla.org/maven2/org/mozilla/appservices/httpconfig/74.0.1/…
+088949b73a203b67f985b4176f000a76eccd81b6a9aed6306860593ab52a8b6a | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/74.0.1/logi…
+72b5589ae447235096e976b35cf492283a51f47ff89dcb9aecc221128cc3aab7 | https://maven.mozilla.org/maven2/org/mozilla/appservices/logins/74.0.1/logi…
+fa8d2f9ab6a387a164e0c0b78fd72012db661b3d43848f778fb9288f17de0e52 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/74.…
+411555e4106ad9a1530aeed5b669f6ffed5aad31d238c11dd954e9fd16aecff0 | https://maven.mozilla.org/maven2/org/mozilla/appservices/native-support/74.…
+3897c1ad3624ed1804dc673e3dbf5b3002304c41d78fb355e76c3d1008e34b7d | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/74.0.1/nimb…
+8cf93085518e4573284a88ab0446149f088c602942b83237cc553a22e436f380 | https://maven.mozilla.org/maven2/org/mozilla/appservices/nimbus/74.0.1/nimb…
+25e7dc1ab9c98d45fb4cfafb66835ec6bc6a90e984101745700175a35088db2e | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/74.0.1/plac…
+34f6b257886def31cec92fa6425fd1a455471a0fbb635dc1b4691dfcf1f3fbac | https://maven.mozilla.org/maven2/org/mozilla/appservices/places/74.0.1/plac…
+b8840f92f21c7c0785d10eb55e14f3bcdff6e35544ab1b08b56f8fc74d91f6e2 | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/74.0.1/push-7…
+202dbe51a9abc34f3448d9430507dd89411188da630ed5797129ab0fbdcea61f | https://maven.mozilla.org/maven2/org/mozilla/appservices/push/74.0.1/push-7…
+ea871f7d5fab5a4315f41402de15f94e13481d03366396ea1bf3880f4f242c1a | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/74.0.1/rus…
+83bcb4a06dfea23a55d24bef657827cd6b09e534a3426d857a458332e356c2d4 | https://maven.mozilla.org/maven2/org/mozilla/appservices/rustlog/74.0.1/rus…
+57c4acea81f73043ab62dd4dc341a524d38682d6bc2e69bb48822f9e0ac7f48b | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/74.0.1/sync…
+81dc9452086d8e8fe360bfc4b9bf4345acd6888863fa07ac5f02110fa887c558 | https://maven.mozilla.org/maven2/org/mozilla/appservices/sync15/74.0.1/sync…
+264d997abfd49412dc0ef5b2d1811d6b9dc62dea06011ee07fc105002b314a4a | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
+cc7f7850bc9e5fecd8c699d0464e96bdb6765778e6463bcfc1c1efed08ba6ceb | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
+4ecc86b606e1713faa7b75b01fbcd52d7d521f0c5c99784f07d87188cd73ea9c | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
+c93fe881fec0df7da21f151b05652ea79157f08ad680d674d9591f6bd9843cea | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
e5801430997ccd358df0b4b48f101402b924a72de87cc5f12d80a32bb6d61865 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/71.0.0…
5d08cc1bb3c2432ab3ecaaa6c06ca0603a9957ece9524643b9db4fb77a01f7b8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/71.0.0…
bfbb680afd838af36e4609d1b7236dbef93f47e92b386bb7ca08efca910e2e59 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/71.0.…
@@ -436,19 +385,19 @@ d1741144ed2ea215a84f5d94d779cafcfaf778cce8cc7224437a2884cb1101bc | https://maven
7b0a3bd6d32c8002f785db8fdbf3b08e3541366e784cac1304cb3f49642b916a | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/71.0.0/…
f7bf27270904abd8639b543151b6eaf268b821b8e6235c8decf8031e02ec8648 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
0b80acf7d1dd0d9484b0e82cd1a04ae57270d7f7e6b339ce39424554d48798e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
-587abedeb0d539781c3a64e1d97f94e4e58598d59a110ec35a5291f5c471f441 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
-04a3e6fb38caf74c58fe80b36ba585aba5ba4a22d06e40ffc2d9f7a47015fa99 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/87.0.…
-005dc96a0f19c75ac3e83661a4c4e4b6b39fd71ab4d26d4903735fa860da8293 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/88…
-cce46579b4a5fd731d5c12f62170287bec4f1ed8a2f24e8cb9a31998c1ea59ab | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/88…
-e019974021cfdc86752984eba6309e7f865e3efe6d4ad40a012be212f4925251 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-66ad663a2b60d756dadefa2024f664b7befe6fb22535da80aa88b024fe9b64f5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-c9a1855277e7863529fd20a6bdfd09659b472026a98b547b5fa6a19c5ef0d67e | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-22cc8c400823e3fc8eda2e644083b137a9fe867333845ea29c57051349afbb3a | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
-60e34ac4879aa0f8e32fb117669b09ee8946aa34e9372cfe0008995807e876a7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
-0b981a04d70ee3b438359a3da2548f56b188d594dd67bd297a09f0fa0845e348 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+4c496ab63c3900ebbd9bde50d520c28c29ddd594ae3958f161f41a5810ba60fa | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+e55a5d7ebdd6cae43d2a820c16f771ad8d87f25b181828ebd10c721f8ad445dc | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+d622b92149ed8477aca47dabe0fd53de75191a29ff4d79a0cfc718736bb4aa2a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
+8d6bc0c248af8f3d1f4f45abd4e04bf76044fbce518ca3c384ff83fe9acb38b4 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
+418b2052928c75f4071b533cf864baaf22d0f134f6418200b8ab807c93428161 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+9c4b5dd3e37936890909a0795be552664dd861f9f28a9815a72a4abc7660c700 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
+624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
+93d7a411ea527507fb1510d58c764aed2ec029cdd0b3c42df00ceea01afa8f45 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
d6394ad35c63daca22246363ff826749deb62d514a1843eea27d8f39dfb778e6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/33.1.2/glean-3…
-5d942e4a68aef1fab1b219f51e2882eb61dfd27d4bdcd9265b6d375ce5e5fb3b | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
-681374f4e97bd97098c1266973d89167ff9c592ccb89617832e224135af72637 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/34.1.0/glean-3…
+953648b707c804301df08d70db75086b70c141e72d66826e88f34f7aa9ab880e | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/35.0.0/glean-3…
+9acbb9dba515f2142695a17cb9ac123032dcba24423b660f5e0f0b95adfd22bf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean/35.0.0/glean-3…
8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27 | https://plugins.gradle.org/m2/com/google/code/gson/gson-parent/2.8.5/gson-p…
233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092 | https://plugins.gradle.org/m2/com/google/code/gson/gson/2.8.5/gson-2.8.5.pom
@@ -461,24 +410,65 @@ aa42cf65e9f7475bc7cb2fa7cb7dbf99938dd47de864bbed68135e5a12d3a482 | https://plugi
74a54eb154e18b54fc69ac03ab8d186f3ba293b976eca8b336566248ea2633b4 | https://plugins.gradle.org/m2/org/gradle/kotlin/kotlin-dsl/org.gradle.kotli…
bdce53a751fdb27af6608039df81214ba22d902ed4169540a3daeb5828c99cad | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
785f12a193912d77fe3b8714567ad5f01d727512a47c5a43aef57852cc1bc9e2 | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
+ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
+965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
77d7638a32bcae42c929eea307c9a3b48ae1a5abd00cd29f7abf6d51079d83a9 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
92f058aef966deca25ddcf1b1ad028d822f94891bf61491ebc914a08a3481e86 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
e9215460b1bb674b616cb9c8f1a1b172cdd7b3f4749662d864ebd3f319f0d73d | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
f41e2f85d75abe256ae3f522066ad40ff9b3dc90b0f6e455508a90ba78046871 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
+affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
+310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
30278f88cfefb7bb328bedd73374242f8e3e55211e53884e4820dba271132fab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
5d87527b1f65a82d0a6a4f56cceab960522001a0fd010159a723ab897d58da0c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
35d8e287a1d74dc55024a42bd788567e1f73e2059eb804319876d652f249ef59 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-proces…
2d97af231b25d4f463438a66c7c368a8e395e49ebb623b595ca860cef917334a | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-annotation-proces…
dc0d14042176647d0bde5954aba8a435f6a8857f9648bbc454b94366bc1cff06 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.…
5a6bb0d142ed04c1df96200c35bb72bc63c3ae7ea6c876834f37d83938f1e3d4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-common/1.3.…
+79500b867b1194cf781ac98d5c706331a3d3ce8448437f536f8d4cc2faff50c3 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddab…
+2bad6c031302519db14517bcc33af09f137845de40e5b223b778e8a38c561fd7 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddab…
a2d8622ef0e2877577e368ec3a2ffbe7978b4512aab456d0db6427d9fae39d47 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1…
6816c427914a4e4ead92300c0b643339b07e7cbb3355d48d5932dbcdaac7d058 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1…
8f3ef9192e17768cd4e1f3c1f1c225ebd3b500a67ad05a735b31aa16e01c181c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3…
215e6f1bb1980a8bdbef9c155557d17e5a16fbae84d5cae5bf2fd20b86b87d2b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.3…
+1a4b999a2d9051382430994126c4bebd143c853e26d6bca4fd4c31924072ef5e | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable…
+eabab80e05fe2a31e2f2395cedf589cd72fb8df0a82e08e93c2e36fe953b8d59 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable…
+b0e6d0ab0c1f1dd2e2e5f540eeb6e5791820bdbe4f34597b4af183145dd2a493 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api…
+eedb363ba1f4b999e62b34d264f1b37492f986169d808ec94ca72a67938291db | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api…
+110fc7e4602f7aa47286a74756b673903ff3db5044312a16172eac38f7ba1224 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-mod…
+fce78c0c595493d89f90fa4ddba466abf4497e61aac6f2f0449ca1541c167413 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-mod…
b914cbcd8e55e76f221cc863912c38b1fe6ce56800300c147f85410aaa8789ab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3…
8ec81474695b94779488b99183955cf0e1f50fe4d048af920b756ca71b72ac90 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.3…
+bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.…
+21d04a0720be4a46804e1b73b733c72269c16900896ae463a9e87a1d04ed50c6 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.3.…
+a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/ko…
+61653ccfae8caa4203e267b479821bd90faab3fef744a7ab0fdd9f61150f970c | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/ko…
+8e525c7a19a94aea294403d531fd61eed3f08b2992e313a594cb531b75ffc35d | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver…
+4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-sam-with-receiver…
+d372f2dc8051f3d1d4fae3bd50e5fa109d3ec870c4a4830112f9afc8560aacfd | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.…
+65a3e614b27b2372f350cc015848d44cb14ca3225d8d41e1c54e60ce95e2131f | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-script-runtime/1.…
+420198546b466bfa9c38d1d7fb2ffcdfb8f518026e8f4a7ca3851fbdd525a538 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/…
+ad6cfeaefa234918fde058ab1f376168abe54cd1e7d12824fb15cc8a07aa0f03 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/…
+e91befa8242e5894158c0275d26d883599fe6e6c57b6952129aebec17a2ef0aa | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+de70f4db2a9d7d7aa42f88f217d59b61ed4357d4de138fadd3e459320abe52ba | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+d9a1cb78976db75b6173b51ad04efaebc2b3772636ad0b45cac4cd2d53222dc9 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+0e1311cc6bcd06f373cf8ef7c4d7380087f36de70d9c72acc432e02dabc30a9b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compile…
+5a9cced336697fbf2fb4b6c8a321787747f5e375227b7e355ebf3259365c024e | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3…
+6a1ba16592546ab118186a5634c9b24589ae2ed64f0cdd41a913ffb3c2b13db6 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.3…
+5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3…
+24781edf5b0934804930dcafc8911b9e710d146239a82699889132e7b37be9dc | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3…
+40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.7…
+9d5a13d9abc33445e1366d258af0a77e42f01945acef7c0917b9d539854e2fce | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.7…
+133da70cfc07b56094282eac5c59bccd59f167ee2ead22e5282876d8bc10bf95 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.7…
+a6d50f0321bdb52838c99136930c8dcc78c3074a592d526862ec01be91fa622b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.7…
+3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kot…
+4f0d574a969ea93c45628a163e1ed3ffabb4584278d72c647ec124f8c8109481 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-stdlib/1.3.72/kot…
+9ef3d0277fe54384104a01089c8c718a9c2a7ab2b5292ff803ecfc9d38e7d6cb | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.72/ko…
+8131897af3fb30af2464efe56161a349087bca1544cbf57495158714875163e4 | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.3.72/ko…
3825cbc39ac9b557bf11ed52ed8552200831004a60e845eba61c77ba972a2d9f | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
0e10935a94077c217ec5107b451c0859e89a27f67fd09543bd044c798cb154cf | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.3.72/…
+7177ed4629704537e0252537629886f5409526ecd041d8d8e308e20624b14394 | https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core…
+6f7523ea8a56d7f12d11a004cfe5a4577bfba3ed6c84cc5ac48b72d54975552c | https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core…
+b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454 | https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom
f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
770471090ca40a17b9e436ee2ec00819be42042da6f4085ece1d37916dc08ff9 | https://repo.maven.apache.org/maven2/backport-util-concurrent/backport-util…
2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3 | https://repo.maven.apache.org/maven2/classworlds/classworlds/1.1-alpha-2/cl…
@@ -616,13 +606,19 @@ efd442f0c35276739da19b5f6c8c3792a87bb309df199e0478dacc8c8c6de4fe | https://repo.
efb8644c55fffaf1f229893ac5c99864c9cef677478a206a729af96262ba9078 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp-urlconnect…
4aca3e552afb1ceb47f8956685f6295a276e49fa03f9066f8b6be83bec56fb66 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.10.0/okh…
d94e3316e6b8e49897d10bb3aa0e2e7d0693be526a4aa265ca0792bc77ebc333 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.10.0/okh…
+07c3d82ca7eaf4722f00b2da807dc7860f6169ae60cfedcf5d40218f90880a46 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/okh…
+940676b124a8eea8ad7576f9be072c82d7dc7fe350ad895a36081f0c93ae99a6 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.12.1/okh…
0ab41a713e2a638efc1f4610ef34c07fef398f9d7b9d79a6f5406b779b0011a5 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.13.1/okh…
73416ac947490016bb1269faf8dc354841abe4c0c08ce455f34d281fecd09160 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/okhttp/3.13.1/okh…
2c35da6696e905e8c116caef4d6b92c9d6130532c4974ad1b70cd9fe78e4250e | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.10.0/par…
+f57c6f089beeedb5b73cdaca7167998ce74505ae9a3d9aeacd72e0ebb0fbf4bc | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.12.1/par…
4e374858730d3ec488695db9710d28fd476ea84a040900ff6b47bc1c9e7b4218 | https://repo.maven.apache.org/maven2/com/squareup/okhttp3/parent/3.13.1/par…
18d1f68a7d7d03b0e935c03ae335c51b15d2ba4664964b96e07542af390aee85 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.14.0/o…
+e81f40146f2a0eb394b10fa3a175c85ab9fbe757aa418aa44d4b760efe16f024 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.17.2/o…
4633c331f50642ebe795dc089d6a5928aff43071c9d17e7840a009eea2fe95a3 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.14.0/okio-1.1…
0922137559cb91f6fe88e2643f4d986f566913883f9a82ef91e5d0675466f81e | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.14.0/okio-1.1…
+f80ce42d2ffac47ad4c47e1d6f980d604d247ceb1a886705cf4581ab0c9fe2b8 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.17.2/okio-1.1…
+cd57f75443ab6a714b203da51994ee64ed0e919fea81f04e4f4b5324e4bb03f0 | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.17.2/okio-1.1…
e58c97406a6bb1138893750299ac63c6aa04b38b6b49eae1bfcad1a63ef9ba1b | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.…
fd621988f7f6957025735dc6dd090b00a20f3a3bb8d77ca79036077f629b140b | https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.…
1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4 | https://repo.maven.apache.org/maven2/com/sun/activation/all/1.2.0/all-1.2.0…
@@ -891,6 +887,8 @@ f8c8b7485d4a575e38e5e94945539d1d4eccd3228a199e1a9aa094e8c26174ee | https://repo.
497a7639820ba0758d4e0c1d6f82fdc8a9b6f6c2a28d91fe03c6b0776db4be40 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutin…
e49454af130e066a4e1c31255c5fd9a23f31105324f48e98406325b051638908 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-metadata…
f928d533d912546b6d97904bab53e983f8fe2cda303af9fa953c1438ccf38470 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-metadata…
+1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7 | https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824…
+c94b0b73790c70c709bcd445a01247908888211e38cc59e946ff6fe900785ae9 | https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824…
518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.j…
c7e660c50bf4ecda0fc81ab62b489db9171e207fa784ddcb48c6c85bb40b49f5 | https://repo.maven.apache.org/maven2/org/json/json/20180813/json-20180813.p…
95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77 | https://repo.maven.apache.org/maven2/org/jvnet/staxex/stax-ex/1.8/stax-ex-1…
@@ -934,5 +932,7 @@ c513995cf019d9213d4fda666589937b2bf1bea5c4cdd337e6170e80b18406ee | https://repo.
fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a | https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-pare…
a45da61abed61568a533fdece125093180828edeb0d4b6f6d572e0cf457465f6 | https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.25.2/sqlite-j…
5806cf36dd28bfe961f7fe12679f4a2748a03e7a1d0070c22c411c19f01f266a | https://repo.maven.apache.org/maven2/org/xerial/sqlite-jdbc/3.25.2/sqlite-j…
+13009fb5ede3cf2be5a8d0f1602155aeaa0ce5ef5f9366892bd258d8d3d4d2b1 | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.23/snakeyaml-1.23…
+1e1beb22ca906209700122b5cacf6f2719324538c5b1e3c27bf91564c8d31dbd | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.23/snakeyaml-1.23…
d3f7f09989d5b0ce5c4791818ef937ee7663f1e359c2ef2d312f938aad0763da | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.24/snakeyaml-1.24…
174d423722256823edbe2af8d7e3385c4645cf72382a22da0485b3b674394f37 | https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.24/snakeyaml-1.24…
diff --git a/projects/android-components/mavenLocal.patch b/projects/android-components/mavenLocal.patch
index 9d6d66c..3b5f064 100644
--- a/projects/android-components/mavenLocal.patch
+++ b/projects/android-components/mavenLocal.patch
@@ -1,11 +1,17 @@
-From 6a88b59457dd38f0e8d69f0c2988bb2952075536 Mon Sep 17 00:00:00 2001
+From d1263dbcc33e3f587abbc4bbf8c24c0bb567f194 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Wed, 20 May 2020 14:18:12 +0000
Subject: [PATCH] mavenLocal() fixes
+---
+ build.gradle | 2 ++
+ buildSrc/build.gradle | 1 +
+ buildSrc/settings.gradle | 7 ++++++-
+ settings.gradle | 7 +++++++
+ 4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/build.gradle b/build.gradle
-index 9f298887a..278245d30 100644
+index f412f91f4..944a19e9a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,6 +6,7 @@ import static org.gradle.api.tasks.testing.TestResult.ResultType
@@ -16,7 +22,7 @@ index 9f298887a..278245d30 100644
if (project.hasProperty("googleRepo")) {
maven {
name "Google"
-@@ -48,6 +49,7 @@ plugins {
+@@ -39,6 +40,7 @@ plugins {
allprojects {
repositories {
@@ -25,7 +31,7 @@ index 9f298887a..278245d30 100644
maven {
name "Google"
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
-index 9f05b8434..f97029ccf 100644
+index c9f83be52..c01e9ab01 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -7,6 +7,7 @@ plugins {
@@ -33,9 +39,9 @@ index 9f05b8434..f97029ccf 100644
repositories {
+ mavenLocal()
- jcenter()
- }
+ mavenCentral()
+ if (project.hasProperty("centralRepo")) {
diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle
index c31ad3840..fb6526db3 100644
--- a/buildSrc/settings.gradle
@@ -59,7 +65,7 @@ index c31ad3840..fb6526db3 100644
\ No newline at end of file
+}
diff --git a/settings.gradle b/settings.gradle
-index a6e8dfa49..049fa29d6 100644
+index e1204312f..428e9ddcd 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,8 +4,15 @@
@@ -75,9 +81,6 @@ index a6e8dfa49..049fa29d6 100644
buildscript {
repositories {
+ mavenLocal()
- jcenter()
- }
-
---
-2.28.0
-
+ if (hasProperty("centralRepo")) {
+ maven {
+ name "MavenCentral"
1
0

[tor-browser-build/maint-10.0-android] Bug 40259: Update components for mozilla88-based Fenix (application-services part)
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 2a344744b12060d66641130fa5e378c0b001a9c6
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Apr 7 12:54:00 2021 +0200
Bug 40259: Update components for mozilla88-based Fenix (application-services part)
---
projects/application-services/build | 1 -
projects/application-services/config | 14 ++--
.../application-services/update-cargo-lock.patch | 93 +++++++++-----------
.../application-services/viaduct-workaround.patch | 12 +--
.../application-services/viaduct-workaround2.patch | 98 ----------------------
5 files changed, 52 insertions(+), 166 deletions(-)
diff --git a/projects/application-services/build b/projects/application-services/build
index 4d1ab07..b7461bf 100644
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -52,7 +52,6 @@ EOF
patch -p1 < $rootdir/update-cargo-lock.patch
cd components/external/nimbus-sdk
patch -p1 < $rootdir/viaduct-workaround.patch
-patch -p1 < $rootdir/viaduct-workaround2.patch
cd ../../../
# Move NSS and SQLCipher to the right place
diff --git a/projects/application-services/config b/projects/application-services/config
index 0cf0dd2..588d573 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: 71.0.0
-git_hash: 1ee6b32f3ee569036fdf1015cf7ffc01ded2860f
+version: 74.0.1
+git_hash: ad7b64fa03eeeb00815125e635d1fb8809befd40
git_url: https://github.com/mozilla/application-services
git_submodule: 1
@@ -11,7 +11,7 @@ var:
# This should be updated when the list of gradle dependencies is changed.
gradle_dependencies_version: 5
# This should be updated when the list of rust dependencies is changed.
- rust_vendor_version: 4
+ rust_vendor_version: 5
# Switch to make it easier to grab all dependencies during a dry-run.
fetch_gradle_dependencies: 0
gradle_version: 6.5
@@ -70,21 +70,19 @@ input_files:
enable: '[% !c("var/fetch_gradle_dependencies") %]'
# `cargo vendor vendor -s components/external/nimbus-sdk/nimbus/Cargo.toml`
# in the `application-services` directory has vendored the sources,
- # after applying update-cargo-lock.patch, viaduct-workaround.patch and
- # viaduct-workaround2.patch
+ # after applying update-cargo-lock.patch and viaduct-workaround.patch
- URL: https://people.torproject.org/~boklm/mirrors/sources/application-services-v… c('var/rust_vendor_version') %].tar.bz2
- sha256sum: 500d0fa471c8ad2037c4bbe648e716e77da1ff1fc5678542b144cd257a34abbf
+ sha256sum: 5f1c9e1bc0db283e88516bd1d78187145bacbf4aeb72972ac09875c1147d2215
- filename: no-git.patch
- filename: mavenLocal.patch
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: target.patch
- filename: viaduct-workaround.patch
- - filename: viaduct-workaround2.patch
- filename: update-cargo-lock.patch
steps:
list_toolchain_updates:
- git_hash: 'v74.0.1'
+ #git_hash: 'v74.0.1'
input_files: []
var:
container:
diff --git a/projects/application-services/update-cargo-lock.patch b/projects/application-services/update-cargo-lock.patch
index 5e28cca..3a42019 100644
--- a/projects/application-services/update-cargo-lock.patch
+++ b/projects/application-services/update-cargo-lock.patch
@@ -1,14 +1,14 @@
-From cdcce5ffd9e49d4648dd6b23a6dfbc8011352883 Mon Sep 17 00:00:00 2001
+From 3d6b82d24bcf05b26c69702f6dcb1a0ac91c13a1 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Fri, 27 Nov 2020 09:55:49 +0000
Subject: [PATCH] update cargo.lock
---
- Cargo.lock | 390 +++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 273 insertions(+), 117 deletions(-)
+ Cargo.lock | 384 +++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 267 insertions(+), 117 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
-index 813c475c..20b6e4d0 100644
+index 69d2dae0..2c1a3aa3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -86,9 +86,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
@@ -176,7 +176,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "cpuid-bool"
-@@ -548,7 +577,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -559,7 +588,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
dependencies = [
"cfg-if 1.0.0",
@@ -185,7 +185,7 @@ index 813c475c..20b6e4d0 100644
]
[[package]]
-@@ -559,18 +588,18 @@ checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
+@@ -570,18 +599,18 @@ checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
dependencies = [
"cfg-if 1.0.0",
"crossbeam-epoch",
@@ -208,7 +208,7 @@ index 813c475c..20b6e4d0 100644
"lazy_static",
"memoffset",
"scopeguard",
-@@ -578,26 +607,20 @@ dependencies = [
+@@ -589,26 +618,20 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
@@ -241,7 +241,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "csv"
-@@ -743,7 +766,7 @@ version = "1.2.1"
+@@ -754,7 +777,7 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53d97f19730c1eb3332d0657d0f3ca72795d77c61d8eb26bdd7f15edc0c61eb2"
dependencies = [
@@ -250,7 +250,7 @@ index 813c475c..20b6e4d0 100644
"byteorder",
"once_cell",
"serde",
-@@ -1039,6 +1062,16 @@ version = "0.1.1"
+@@ -1042,6 +1065,16 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
@@ -267,7 +267,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "fuchsia-cprng"
version = "0.1.1"
-@@ -1061,53 +1094,59 @@ version = "0.3.3"
+@@ -1064,53 +1097,59 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
@@ -340,7 +340,7 @@ index 813c475c..20b6e4d0 100644
"pin-utils",
"slab",
]
-@@ -1117,7 +1156,7 @@ name = "fxa-client"
+@@ -1120,7 +1159,7 @@ name = "fxa-client"
version = "0.1.0"
dependencies = [
"anyhow",
@@ -349,7 +349,7 @@ index 813c475c..20b6e4d0 100644
"error-support",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hex",
-@@ -1278,7 +1317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1275,7 +1314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7539c8d8699bae53238aacd3f93cfb0bcaef77b85dc963902b9367c5d7a84c48"
dependencies = [
"anyhow",
@@ -358,7 +358,7 @@ index 813c475c..20b6e4d0 100644
"log 0.4.11",
"once_cell",
"thiserror",
-@@ -1367,7 +1406,7 @@ dependencies = [
+@@ -1364,7 +1403,7 @@ dependencies = [
"httparse",
"httpdate",
"itoa",
@@ -367,7 +367,7 @@ index 813c475c..20b6e4d0 100644
"socket2",
"tokio",
"tower-service",
-@@ -1494,7 +1533,7 @@ dependencies = [
+@@ -1491,7 +1530,7 @@ dependencies = [
name = "jwcrypto"
version = "0.1.0"
dependencies = [
@@ -376,7 +376,7 @@ index 813c475c..20b6e4d0 100644
"rc_crypto",
"serde",
"serde_derive",
-@@ -1527,6 +1566,19 @@ version = "1.4.0"
+@@ -1524,6 +1563,19 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
@@ -600,7 +600,7 @@ index 813c475c..20b6e4d0 100644
"web-sys",
"winreg",
]
-@@ -2852,14 +2929,14 @@ dependencies = [
+@@ -2829,14 +2906,14 @@ dependencies = [
[[package]]
name = "rust-argon2"
@@ -619,7 +619,7 @@ index 813c475c..20b6e4d0 100644
]
[[package]]
-@@ -2902,6 +2979,12 @@ dependencies = [
+@@ -2879,6 +2956,12 @@ dependencies = [
"winapi 0.3.9",
]
@@ -632,7 +632,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "scopeguard"
version = "1.1.0"
-@@ -2910,9 +2993,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+@@ -2887,9 +2970,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "security-framework"
@@ -644,7 +644,7 @@ index 813c475c..20b6e4d0 100644
dependencies = [
"bitflags 1.2.1",
"core-foundation",
-@@ -2923,9 +3006,9 @@ dependencies = [
+@@ -2900,9 +2983,9 @@ dependencies = [
[[package]]
name = "security-framework-sys"
@@ -656,7 +656,7 @@ index 813c475c..20b6e4d0 100644
dependencies = [
"core-foundation-sys",
"libc",
-@@ -3018,6 +3101,18 @@ dependencies = [
+@@ -2995,6 +3078,18 @@ dependencies = [
"url",
]
@@ -675,7 +675,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "sha2"
version = "0.9.2"
-@@ -3051,11 +3146,11 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+@@ -3028,11 +3123,11 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]]
name = "socket2"
@@ -690,20 +690,7 @@ index 813c475c..20b6e4d0 100644
"libc",
"redox_syscall",
"winapi 0.3.9",
-@@ -3072,6 +3167,12 @@ dependencies = [
- "rusqlite",
- ]
-
-+[[package]]
-+name = "static_assertions"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-+
- [[package]]
- name = "strsim"
- version = "0.8.0"
-@@ -3104,9 +3205,9 @@ dependencies = [
+@@ -3087,9 +3182,9 @@ dependencies = [
[[package]]
name = "syn"
@@ -715,7 +702,7 @@ index 813c475c..20b6e4d0 100644
dependencies = [
"proc-macro2",
"quote",
-@@ -3117,7 +3218,7 @@ dependencies = [
+@@ -3100,7 +3195,7 @@ dependencies = [
name = "sync-guid"
version = "0.1.0"
dependencies = [
@@ -724,7 +711,7 @@ index 813c475c..20b6e4d0 100644
"rand 0.7.3",
"rusqlite",
"serde",
-@@ -3129,7 +3230,7 @@ name = "sync-test"
+@@ -3112,7 +3207,7 @@ name = "sync-test"
version = "0.1.0"
dependencies = [
"anyhow",
@@ -733,7 +720,7 @@ index 813c475c..20b6e4d0 100644
"env_logger",
"fxa-client",
"interrupt-support",
-@@ -3157,7 +3258,7 @@ version = "0.1.0"
+@@ -3140,7 +3235,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"base16",
@@ -742,7 +729,7 @@ index 813c475c..20b6e4d0 100644
"env_logger",
"error-support",
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-@@ -3324,6 +3425,12 @@ dependencies = [
+@@ -3295,6 +3390,12 @@ dependencies = [
"viaduct",
]
@@ -755,7 +742,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "tempdir"
version = "0.3.7"
-@@ -3371,18 +3478,18 @@ dependencies = [
+@@ -3342,18 +3443,18 @@ dependencies = [
[[package]]
name = "termcolor"
@@ -778,7 +765,7 @@ index 813c475c..20b6e4d0 100644
dependencies = [
"libc",
"winapi 0.3.9",
-@@ -3458,6 +3565,15 @@ dependencies = [
+@@ -3429,6 +3530,15 @@ dependencies = [
"winapi 0.3.9",
]
@@ -794,7 +781,7 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "tinytemplate"
version = "1.1.0"
-@@ -3470,15 +3586,24 @@ dependencies = [
+@@ -3441,15 +3551,24 @@ dependencies = [
[[package]]
name = "tinyvec"
@@ -823,7 +810,7 @@ index 813c475c..20b6e4d0 100644
dependencies = [
"bytes",
"fnv",
-@@ -3488,7 +3613,7 @@ dependencies = [
+@@ -3459,7 +3578,7 @@ dependencies = [
"memchr",
"mio",
"num_cpus",
@@ -832,7 +819,7 @@ index 813c475c..20b6e4d0 100644
"slab",
]
-@@ -3512,7 +3637,7 @@ dependencies = [
+@@ -3483,7 +3602,7 @@ dependencies = [
"futures-core",
"futures-sink",
"log 0.4.11",
@@ -841,7 +828,7 @@ index 813c475c..20b6e4d0 100644
"tokio",
]
-@@ -3533,13 +3658,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
+@@ -3504,13 +3623,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
[[package]]
name = "tracing"
@@ -859,7 +846,7 @@ index 813c475c..20b6e4d0 100644
"tracing-core",
]
-@@ -3604,18 +3729,18 @@ dependencies = [
+@@ -3575,18 +3694,18 @@ dependencies = [
[[package]]
name = "unicode-normalization"
@@ -882,16 +869,16 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "unicode-width"
-@@ -3647,7 +3772,7 @@ dependencies = [
+@@ -3618,7 +3737,7 @@ dependencies = [
"ffi-support 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static",
"log 0.4.11",
- "paste 1.0.2",
+ "paste 1.0.3",
+ "static_assertions",
]
- [[package]]
-@@ -3678,10 +3803,11 @@ dependencies = [
+@@ -3662,10 +3781,11 @@ dependencies = [
[[package]]
name = "url"
@@ -905,7 +892,7 @@ index 813c475c..20b6e4d0 100644
"idna",
"matches",
"percent-encoding",
-@@ -3843,6 +3969,30 @@ version = "0.2.68"
+@@ -3827,6 +3947,30 @@ version = "0.2.68"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
@@ -936,16 +923,16 @@ index 813c475c..20b6e4d0 100644
[[package]]
name = "web-sys"
version = "0.3.45"
-@@ -3906,7 +4056,7 @@ version = "0.11.0"
+@@ -3890,7 +4034,7 @@ version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
+ checksum = "610950904727748ca09682e857f0d6d6437f0ca862f32f9229edba8cec8b2635"
dependencies = [
- "nom",
+ "nom 5.1.2",
]
[[package]]
-@@ -3986,6 +4136,12 @@ dependencies = [
+@@ -3970,6 +4114,12 @@ dependencies = [
"winapi-build",
]
diff --git a/projects/application-services/viaduct-workaround.patch b/projects/application-services/viaduct-workaround.patch
index b5b0121..933b4bf 100644
--- a/projects/application-services/viaduct-workaround.patch
+++ b/projects/application-services/viaduct-workaround.patch
@@ -1,7 +1,7 @@
-From 5020520a2b240512284a7396e99ed22c54042257 Mon Sep 17 00:00:00 2001
+From 4a7eb7890108939993444ad350dd064dc7448160 Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk(a)torproject.org>
Date: Wed, 2 Dec 2020 09:26:24 +0000
-Subject: [PATCH 1/2] Bug 40156: viaduct*-workaround
+Subject: [PATCH] Bug 40156: viaduct*-workaround
See: https://github.com/mozilla/application-services/issues/3732.
---
@@ -9,7 +9,7 @@ See: https://github.com/mozilla/application-services/issues/3732.
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/nimbus/Cargo.toml b/nimbus/Cargo.toml
-index b19acc9..fd267b5 100644
+index 4dc51b3..0e30dd0 100644
--- a/nimbus/Cargo.toml
+++ b/nimbus/Cargo.toml
@@ -26,7 +26,7 @@ serde_derive = "1"
@@ -20,9 +20,9 @@ index b19acc9..fd267b5 100644
+viaduct = { path = "../../../viaduct" }
thiserror = "1"
url = "2.1"
- rkv = "0.15"
-@@ -41,7 +41,7 @@ uniffi = { version = "0.7", optional = true }
- uniffi_build = { version = "0.7", features = [ "builtin-bindgen" ], optional = true }
+ rkv = "0.17"
+@@ -41,7 +41,7 @@ uniffi = { version = "^0.8.0", optional = true }
+ uniffi_build = { version = "^0.8.0", features = [ "builtin-bindgen" ], optional = true }
[dev-dependencies]
-viaduct-reqwest = { git = "https://github.com/mozilla/application-services", rev = "8a576fbe79199fa8664f64285524017f74ebcc5f"}
diff --git a/projects/application-services/viaduct-workaround2.patch b/projects/application-services/viaduct-workaround2.patch
deleted file mode 100644
index 1bc27bb..0000000
--- a/projects/application-services/viaduct-workaround2.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 9f3cf867a22a807cf997d2b0af283c7ce9d298fe Mon Sep 17 00:00:00 2001
-From: Georg Koppen <gk(a)torproject.org>
-Date: Wed, 2 Dec 2020 09:26:43 +0000
-Subject: [PATCH 2/2] Bug 40156: Cargo.lock update after viaduct*-workaround
-
----
- nimbus/Cargo.lock | 43 +++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 41 insertions(+), 2 deletions(-)
-
-diff --git a/nimbus/Cargo.lock b/nimbus/Cargo.lock
-index 9caa76c..a73e464 100644
---- a/nimbus/Cargo.lock
-+++ b/nimbus/Cargo.lock
-@@ -223,6 +223,16 @@ dependencies = [
- "winapi 0.3.9",
- ]
-
-+[[package]]
-+name = "console_error_panic_hook"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
-+dependencies = [
-+ "cfg-if 0.1.10",
-+ "wasm-bindgen",
-+]
-+
- [[package]]
- name = "core-foundation"
- version = "0.9.1"
-@@ -1326,6 +1336,7 @@ dependencies = [
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
- "web-sys",
- "winreg",
- ]
-@@ -1369,6 +1380,12 @@ dependencies = [
- "winapi 0.3.9",
- ]
-
-+[[package]]
-+name = "scoped-tls"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-+
- [[package]]
- name = "security-framework"
- version = "2.0.0"
-@@ -1850,7 +1867,6 @@ checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
- [[package]]
- name = "viaduct"
- version = "0.1.0"
--source = "git+https://github.com/mozilla/application-services?rev=8a576fbe79199fa8664…"
- dependencies = [
- "ffi-support",
- "log",
-@@ -1866,7 +1882,6 @@ dependencies = [
- [[package]]
- name = "viaduct-reqwest"
- version = "0.1.0"
--source = "git+https://github.com/mozilla/application-services?rev=8a576fbe79199fa8664…"
- dependencies = [
- "ffi-support",
- "lazy_static",
-@@ -1959,6 +1974,30 @@ version = "0.2.69"
- source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
-
-+[[package]]
-+name = "wasm-bindgen-test"
-+version = "0.3.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34d1cdc8b98a557f24733d50a1199c4b0635e465eecba9c45b214544da197f64"
-+dependencies = [
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "scoped-tls",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test-macro",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-macro"
-+version = "0.3.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8fb9c67be7439ee8ab1b7db502a49c05e51e2835b66796c705134d9b8e1a585"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+]
-+
- [[package]]
- name = "web-sys"
- version = "0.3.46"
1
0

[tor-browser-build/maint-10.0-android] Bug 40270: Improve process to generate gradle-dependencies-list.txt
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 0ef5812083c3cdd2d4aedf15144fc75074645aa8
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue Apr 13 17:59:12 2021 +0200
Bug 40270: Improve process to generate gradle-dependencies-list.txt
---
Makefile | 9 +++++
projects/android-components/build | 4 ++-
projects/android-components/config | 14 ++++++--
projects/application-services/build | 4 ++-
projects/application-services/config | 23 +++++++++++--
{tools => projects/common}/gen_gradle_deps_file.sh | 0
.../how-to-create-gradle-dependencies-list.txt | 40 ++++++++++++++++------
projects/fenix/build | 7 +++-
projects/fenix/config | 33 ++++++++++++------
9 files changed, 105 insertions(+), 29 deletions(-)
diff --git a/Makefile b/Makefile
index d4562ac..c30c70b 100644
--- a/Makefile
+++ b/Makefile
@@ -219,6 +219,15 @@ create_glean_deps_tarball: submodule-update
create_glean_deps_tarball-with_torsocks: submodule-update
$(rbm) build glean --step create_glean_deps_tarball --target alpha --target torbrowser-android-armv7 --target with_torsocks
+get_gradle_dependencies_list-fenix: submodule-update
+ $(rbm) build fenix --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
+get_gradle_dependencies_list-application-services: submodule-update
+ $(rbm) build application-services --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
+get_gradle_dependencies_list-android-components: submodule-update
+ $(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+
submodule-update:
git submodule update --init
diff --git a/projects/android-components/build b/projects/android-components/build
index 896ba3a..e14b803 100644
--- a/projects/android-components/build
+++ b/projects/android-components/build
@@ -41,7 +41,9 @@ patch -p1 < $rootdir/git.patch
# XXX: fetching deps for `assembleGeckoBeta -x lint` by using that same target
# results in some missing dependencies for yet unknown reasons. Thus, we use
# `assemble` instead for now.
- gradle --debug --no-daemon assemble
+ gradle --debug --no-daemon assemble > gradle.log 2>&1 || ( cat gradle.log; exit 1 )
+ $rootdir/gen_gradle_deps_file.sh gradle.log
+ mv gradle-dependencies-list.txt '[% dest_dir _ "/" _ c("filename") %]'
[% ELSE %]
# Prepare Glean dependencies for offline build
tar -xf $rootdir/[% c('input_files_by_name/glean') %]
diff --git a/projects/android-components/config b/projects/android-components/config
index 531b278..33bcdaf 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -14,9 +14,6 @@ var:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
gradle_dependencies_version: 22
- # Switch to make it easier to grab all dependencies during a dry-run.
- # Note: Use the commit before support for new GeckoView interfaces gets added.
- fetch_gradle_dependencies: 0
gradle_version: 6.6.1
glean_parser: 2.2.0
@@ -27,10 +24,13 @@ targets:
input_files:
- project: container-image
+ pkg_type: build
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
+ pkg_type: build
- project: gradle
name: gradle
+ pkg_type: build
- name: geckoview
project: geckoview
pkg_type: merge_aars
@@ -52,6 +52,8 @@ input_files:
name: glean
sha256sum: 24ceaaadaf155445e8ad135173d894e05c0745b41ab5fee150f9548550acf2a6
enable: '[% !c("var/fetch_gradle_dependencies") %]'
+ - filename: gen_gradle_deps_file.sh
+ enable: '[% c("var/fetch_gradle_dependencies") %]'
steps:
list_toolchain_updates:
@@ -75,3 +77,9 @@ steps:
- name: glean
project: glean
pkg_type: src
+
+ get_gradle_dependencies_list:
+ filename: 'gradle-dependencies-list-[% c("var/android_components_version") %].txt'
+ get_gradle_dependencies_list: '[% INCLUDE build %]'
+ var:
+ fetch_gradle_dependencies: 1
diff --git a/projects/application-services/build b/projects/application-services/build
index b7461bf..40001cd 100644
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -83,7 +83,9 @@ patch -p1 < $rootdir/target.patch
[% IF c('var/fetch_gradle_dependencies') %]
# XXX: `assemble` is still not enough to see all fetched dependencies via
# Gradle's --debug. See: tor-browser-build#40056.
- gradle --debug --no-daemon assemble
+ gradle --debug --no-daemon assemble > gradle.log 2>&1 || ( cat gradle.log; exit 1 )
+ $rootdir/gen_gradle_deps_file.sh gradle.log
+ mv gradle-dependencies-list.txt '[% dest_dir _ "/" _ c("filename") %]'
[% ELSE %]
# Prepare Glean dependencies for offline build
tar -xjf $rootdir/glean-parser-[% c('var/glean_parser') %].tar.bz2
diff --git a/projects/application-services/config b/projects/application-services/config
index 588d573..456ce87 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -12,50 +12,61 @@ var:
gradle_dependencies_version: 5
# This should be updated when the list of rust dependencies is changed.
rust_vendor_version: 5
- # Switch to make it easier to grab all dependencies during a dry-run.
- fetch_gradle_dependencies: 0
gradle_version: 6.5
input_files:
- project: container-image
+ pkg_type: build
- project: '[% c("var/compiler") %]'
name: '[% c("var/compiler") %]'
+ pkg_type: build
- project: gradle
name: gradle
+ pkg_type: build
- project: rust
name: rust
+ pkg_type: build
- project: uniffi-rs
name: uniffi-rs
+ pkg_type: build
- project: nss
name: nss-armv7
+ pkg_type: build
target_prepend:
- android-armv7
- project: nss
name: nss-aarch64
+ pkg_type: build
target_prepend:
- android-aarch64
- project: nss
name: nss-x86
+ pkg_type: build
target_prepend:
- android-x86
- project: nss
name: nss-x86_64
+ pkg_type: build
target_prepend:
- android-x86_64
- project: sqlcipher
name: sqlcipher-armv7
+ pkg_type: build
target_prepend:
- android-armv7
- project: sqlcipher
name: sqlcipher-aarch64
+ pkg_type: build
target_prepend:
- android-aarch64
- project: sqlcipher
name: sqlcipher-x86
+ pkg_type: build
target_prepend:
- android-x86
- project: sqlcipher
name: sqlcipher-x86_64
+ pkg_type: build
target_prepend:
- android-x86_64
- name: python
@@ -79,6 +90,8 @@ input_files:
- filename: target.patch
- filename: viaduct-workaround.patch
- filename: update-cargo-lock.patch
+ - filename: gen_gradle_deps_file.sh
+ enable: '[% c("var/fetch_gradle_dependencies") %]'
steps:
list_toolchain_updates:
@@ -87,3 +100,9 @@ steps:
var:
container:
use_container: 0
+
+ get_gradle_dependencies_list:
+ filename: 'gradle-dependencies-list-[% c("version") %].txt'
+ get_gradle_dependencies_list: '[% INCLUDE build %]'
+ var:
+ fetch_gradle_dependencies: 1
diff --git a/tools/gen_gradle_deps_file.sh b/projects/common/gen_gradle_deps_file.sh
similarity index 100%
rename from tools/gen_gradle_deps_file.sh
rename to projects/common/gen_gradle_deps_file.sh
diff --git a/projects/common/how-to-create-gradle-dependencies-list.txt b/projects/common/how-to-create-gradle-dependencies-list.txt
index 940f810..b233eec 100644
--- a/projects/common/how-to-create-gradle-dependencies-list.txt
+++ b/projects/common/how-to-create-gradle-dependencies-list.txt
@@ -3,9 +3,17 @@ If additional Android dependencies are required by the project's build, then
the Gradle build will fail due to missing dependencies. To find out what the
missing dependencies are take the following steps.
-If the dependencies for `application-services`, `android-components`, or `fenix`
-are needed, set the `fetch_gradle_dependencies` flag in their `config` files to
-`1`.
+1) Updating gradle dependencies for `application-services`, `android-components`
+ or `fenix`
+
+The following makefile rules can be used:
+
+ make get_gradle_dependencies_list-application-services
+ make get_gradle_dependencies_list-android-components
+ make get_gradle_dependencies_list-fenix
+
+which should create the gradle-dependencies-list.txt files in the
+corresponding out/$project directory, using nightly's branch.
Note: `android-components` and `fenix` require modified `geckoview` and
`android-components` artifacts to compile successfully. In order to generate the
@@ -18,7 +26,16 @@ breaks). For `fenix` dependencies there is still a manual processing required
afterwards right now as e.g. our tor-android-service related artifacts are not
picked up.
-For the firefox project, comment out the following line in the project's build file:
+
+2) Updating gradle dependencies for `geckoview`, `tor-android-service`
+ or `tor-onion-proxy-library`
+
+The `geckoview`, `tor-android-service` and `tor-onion-proxy-library`
+projects don't have (yet) a makefile rule to generate their
+gradle-dependencies-list.txt file, so a few more steps are needed.
+
+For the geckoview project, comment out the following line in the project's
+build file:
export GRADLE_MAVEN_REPOSITORIES="file://$gradle_repo"
@@ -34,11 +51,14 @@ Finally, allow network access during the build by setting
Dependent artifacts will show up as downloads in the logs. You can pull out
these dependencies into a list by passing the log file to the gradle dependency
-list script in the tools directory:
+list script in the projects/common directory:
+
+`projects/common/gen_gradle_deps_file.sh /path/to/log/file`
+
-`./gen_gradle_deps_file.sh /path/to/log/file`
+3) Copying the resulting `gradle-dependencies-list.txt`
-Copy the resulting `gradle-dependencies-list.txt` over the one in the respective
-project. Then, in the project's config file, increment the
-`var/gradle_dependencies_version` and make sure to restore the project's build
-file back to original or set `fetch_gradle_dependencies` to `0` again.
+Copy the resulting `gradle-dependencies-list.txt` (from step 1. or 2.)
+over the one in the respective project. Then, in the project's config
+file, increment the `var/gradle_dependencies_version` and make sure to
+restore the project's build file back to original if you modified it.
diff --git a/projects/fenix/build b/projects/fenix/build
index b118cdc..6de75cf 100644
--- a/projects/fenix/build
+++ b/projects/fenix/build
@@ -42,7 +42,12 @@ cp $rootdir/[% c('input_files_by_name/tor-android-service') %]/* app/
# XXX We need the build variant in lower case. Do something smarter here.
v=[% c("variant") %]
[% IF c("var/fetch_gradle_dependencies") %]
- $GRADLE_HOME/gradle/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] app:assembleAndroidTest -x lint -PtestBuildType=${v,} -PdisableOptimization
+ $GRADLE_HOME/gradle/bin/gradle --debug --no-daemon app:assemble[% c('variant') %] \
+ app:assembleAndroidTest -x lint -PtestBuildType=${v,} -PdisableOptimization \
+ > gradle.log 2>&1 \
+ || ( cat gradle.log; exit 1 )
+ $rootdir/gen_gradle_deps_file.sh gradle.log
+ mv gradle-dependencies-list.txt '[% dest_dir _ "/" _ c("filename") %]'
[% ELSE %]
# Add our localized strings
[% FOREACH lang = c('var/locales_mobile');
diff --git a/projects/fenix/config b/projects/fenix/config
index af2772e..b9371d9 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -15,9 +15,6 @@ var:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
gradle_dependencies_version: 24
- # Switch to make it easier to grab all dependencies during a dry-run.
- # Note: Use the commit that integrates Tor.
- fetch_gradle_dependencies: 0
gradle_version: 6.5.1
glean_parser: 2.2.0
@@ -35,30 +32,22 @@ input_files:
name: gradle
- name: android-components
project: android-components
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- name: application-services
project: application-services
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- name: geckoview
project: geckoview
pkg_type: merge_aars
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- name: python
project: python
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- name: tba-translation
project: tba-translation
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: 'gradle-dependencies-[% c("var/gradle_dependencies_version") %]'
name: gradle-dependencies
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
exec: '[% INCLUDE "fetch-gradle-dependencies" %]'
- URL: https://people.torproject.org/~boklm/mirrors/sources/glean-wheels-[% c('var/glean_parser') %].tar.xz
name: glean
sha256sum: 24ceaaadaf155445e8ad135173d894e05c0745b41ab5fee150f9548550acf2a6
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- filename: mavenLocal.patch
- enable: '[% !c("var/fetch_gradle_dependencies") %]'
- project: tor-android-service
name: tor-android-service
- project: tor-onion-proxy-library
@@ -73,3 +62,25 @@ steps:
var:
container:
use_container: 0
+
+ get_gradle_dependencies_list:
+ filename: 'gradle-dependencies-list-[% c("var/fenix_version") %].txt'
+ get_gradle_dependencies_list: '[% INCLUDE build %]'
+ var:
+ fetch_gradle_dependencies: 1
+ input_files:
+ - project: container-image
+ pkg_type: build
+ - filename: gen_gradle_deps_file.sh
+ - name: '[% c("var/compiler") %]'
+ project: '[% c("var/compiler") %]'
+ pkg_type: build
+ - project: gradle
+ name: gradle
+ pkg_type: build
+ - project: tor-android-service
+ name: tor-android-service
+ pkg_type: build
+ - project: tor-onion-proxy-library
+ name: topl
+ pkg_type: build
1
0

[tor-browser-build/maint-10.0-android] Bug 40293: Patch app-services' vendored uniffi_bindgen
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 30388aad1a5b284893c623ed8fefefb87245e040
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed Apr 28 19:38:39 2021 +0000
Bug 40293: Patch app-services' vendored uniffi_bindgen
---
...niverse-of-known-types-in-an-ordered-BTre.patch | 51 ++++++++++++++++++++++
projects/application-services/build | 9 ++++
projects/application-services/config | 1 +
3 files changed, 61 insertions(+)
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
new file mode 100644
index 0000000..947b2f6
--- /dev/null
+++ b/projects/application-services/0001-Store-the-universe-of-known-types-in-an-ordered-BTre.patch
@@ -0,0 +1,51 @@
+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 40001cd..b22b4c7 100644
--- a/projects/application-services/build
+++ b/projects/application-services/build
@@ -49,6 +49,15 @@ 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
+
patch -p1 < $rootdir/update-cargo-lock.patch
cd components/external/nimbus-sdk
patch -p1 < $rootdir/viaduct-workaround.patch
diff --git a/projects/application-services/config b/projects/application-services/config
index ba5acc1..efbe321 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -90,6 +90,7 @@ input_files:
- filename: update-cargo-lock.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:
1
0

[tor-browser-build/maint-10.0-android] Bug 40271: Improve process to generate rust vendor tarballs
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 11420c1d0785bbf38dbfabeb1ab29a9faa9f8f96
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Apr 21 17:23:40 2021 +0200
Bug 40271: Improve process to generate rust vendor tarballs
---
Makefile | 15 +++++++++++++++
projects/application-services/config | 17 ++++++++++++++---
projects/cbindgen/config | 9 +++++++++
projects/lucetc/config | 10 ++++++++--
projects/uniffi-rs/config | 9 ++++++++-
rbm.conf | 30 ++++++++++++++++++++++++++++++
6 files changed, 84 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index c30c70b..0092cc2 100644
--- a/Makefile
+++ b/Makefile
@@ -228,6 +228,21 @@ get_gradle_dependencies_list-application-services: submodule-update
get_gradle_dependencies_list-android-components: submodule-update
$(rbm) build android-components --step get_gradle_dependencies_list --target nightly --target torbrowser-android-armv7
+cargo_vendor-application-services: submodule-update
+ $(rbm) build application-services --step cargo_vendor --target nightly
+
+cargo_vendor-cbindgen-android: submodule-update
+ $(rbm) build cbindgen --step cargo_vendor --target nightly --target android
+
+cargo_vendor-cbindgen: submodule-update
+ $(rbm) build cbindgen --step cargo_vendor --target nightly
+
+cargo_vendor-lucetc: submodule-update
+ $(rbm) build lucetc --step cargo_vendor --target nightly
+
+cargo_vendor-uniffi-rs: submodule-update
+ $(rbm) build uniffi-rs --step cargo_vendor --target nightly
+
submodule-update:
git submodule update --init
diff --git a/projects/application-services/config b/projects/application-services/config
index 456ce87..ba5acc1 100644
--- a/projects/application-services/config
+++ b/projects/application-services/config
@@ -79,9 +79,7 @@ input_files:
- URL: https://people.torproject.org/~gk/mirrors/sources/glean-parser-[% c('var/glean_parser') %].tar.bz2
sha256sum: 19dbdd4958022a1a638e0217489ab722fe7d4f588f1978a4ae162f93e75694c2
enable: '[% !c("var/fetch_gradle_dependencies") %]'
- # `cargo vendor vendor -s components/external/nimbus-sdk/nimbus/Cargo.toml`
- # in the `application-services` directory has vendored the sources,
- # after applying update-cargo-lock.patch and viaduct-workaround.patch
+ # Use `make cargo_vendor-application-services` to re-generate the vendor tarball
- URL: https://people.torproject.org/~boklm/mirrors/sources/application-services-v… c('var/rust_vendor_version') %].tar.bz2
sha256sum: 5f1c9e1bc0db283e88516bd1d78187145bacbf4aeb72972ac09875c1147d2215
- filename: no-git.patch
@@ -106,3 +104,16 @@ steps:
get_gradle_dependencies_list: '[% INCLUDE build %]'
var:
fetch_gradle_dependencies: 1
+
+ cargo_vendor:
+ filename: '[% project %]-vendor-[% c("version") %].tar.bz2'
+ var:
+ cargo_vendor_opts: '-s components/external/nimbus-sdk/nimbus/Cargo.toml'
+ pre_cargo_vendor: |
+ patch -p1 < $rootdir/update-cargo-lock.patch
+ patch -d components/external/nimbus-sdk -p1 < $rootdir/viaduct-workaround.patch
+ input_files:
+ - project: container-image
+ pkg_type: build
+ - filename: viaduct-workaround.patch
+ - filename: update-cargo-lock.patch
diff --git a/projects/cbindgen/config b/projects/cbindgen/config
index a4e9cb7..43c2fb8 100644
--- a/projects/cbindgen/config
+++ b/projects/cbindgen/config
@@ -23,5 +23,14 @@ input_files:
- name: rust
project: rust
# `cargo vendor vendor` in the `cbindgen` directory has vendored the sources.
+ # Use `make cargo_vendor-cbindgen` or `make cargo_vendor-cbindgen-android`
+ # (for the Android version) to re-generate the vendor tarball
- URL: https://people.torproject.org/~gk/mirrors/sources/cbindgen-vendor-[% c('version') %].tar.bz2
sha256sum: '[% c("var/cbindgen_vendor_hash") %]'
+
+steps:
+ cargo_vendor:
+ filename: '[% project %]-vendor-[% c("version") %].tar.bz2'
+ input_files:
+ - project: container-image
+ pkg_type: build
diff --git a/projects/lucetc/config b/projects/lucetc/config
index 72b79fe..e806685 100644
--- a/projects/lucetc/config
+++ b/projects/lucetc/config
@@ -27,7 +27,13 @@ input_files:
project: rust
- name: wasi-sysroot
project: wasi-sysroot
- # `cargo vendor vendor` in the `lucetc-sandbox-compiler` directory has vendored
- # the sources.
+ # Use `make cargo_vendor-lucetc` to re-generate the vendor tarball
- URL: https://people.torproject.org/~gk/mirrors/sources/lucetc-vendor.tar.bz2
sha256sum: 12ba97fca12177e7ed5b5409fcfdbd31dc7db2e82282768d99dee5bcb1b1246a
+
+steps:
+ cargo_vendor:
+ filename: '[% project %]-vendor-[% c("version") %].tar.bz2'
+ input_files:
+ - project: container-image
+ pkg_type: build
diff --git a/projects/uniffi-rs/config b/projects/uniffi-rs/config
index acd9d2d..c8ad51c 100644
--- a/projects/uniffi-rs/config
+++ b/projects/uniffi-rs/config
@@ -12,7 +12,14 @@ input_files:
- project: container-image
- name: rust
project: rust
- # `cargo vendor vendor` in the `uniffi-rs` directory has vendored the sources.
+ # Use `make cargo_vendor-uniffi-rs` to re-generate the vendor tarball
- URL: https://people.torproject.org/~boklm/mirrors/sources/uniffi-rs-vendor-[% c('version') %].tar.bz2
sha256sum: 8f201df618b3e7bcaaf01a87e0d55171605b80abeb1b660fe4dd0b9bfc10a0d8
- filename: btreeset.patch
+
+steps:
+ cargo_vendor:
+ filename: '[% project %]-vendor-[% c("version") %].tar.bz2'
+ input_files:
+ - project: container-image
+ pkg_type: build
diff --git a/rbm.conf b/rbm.conf
index 646f353..3228453 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -15,10 +15,40 @@ steps:
set -e
mkdir -p '[% dest_dir %]'
mv -vf '[% project %]-[% c("version") %].tar.xz' '[% dest_dir %]/[% c("filename") %]'
+
list_toolchain_updates:
build_log: '-'
list_toolchain_updates: '[% INCLUDE list_toolchain_updates %]'
+ cargo_vendor:
+ output_dir: "out/[% project %]/cargo_vendor"
+ var:
+ container:
+ suite: buster
+ arch: amd64
+ pre_pkginst: ''
+ deps:
+ - cargo
+ - patch
+ cargo_vendor: |
+ #!/bin/bash
+ [% c("var/set_default_env") %]
+ tar -xf [% project %]-[% c('version') %].tar.gz
+ cd [% project %]-[% c('version') %]
+ [% c("var/pre_cargo_vendor") %]
+ cargo vendor vendor [% c("var/cargo_vendor_opts") %]
+ [% c('tar', {
+ tar_src => [ 'vendor' ],
+ tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
+ }) %]
+ cd [% dest_dir %]
+ fname="out/[% project %]/cargo_vendor/[% c('filename') %]"
+ echo
+ echo "Finished creating $fname"
+ sha256sum "[% c('filename') %]"
+ echo "You can upload it with:"
+ echo " scp -p $fname people.torproject.org:public_html/mirrors/sources"
+
# buildconf contains build options that the user can change in rbm.local.conf
# When adding a new option to buildconf, a default value should be defined
# in var/build_id, so that changing this option does not affect the build_id.
1
0

[tor-browser-build/maint-10.0-android] Bug 40291: Correctly print the fenix minSdkVersion
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 06c8072b2a0e1abcc2cb9beacadf93c788118bf7
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Apr 28 10:52:11 2021 +0200
Bug 40291: Correctly print the fenix minSdkVersion
---
projects/fenix/list_toolchain_updates_checks | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/fenix/list_toolchain_updates_checks b/projects/fenix/list_toolchain_updates_checks
index 43dd1b4..1b8e02c 100644
--- a/projects/fenix/list_toolchain_updates_checks
+++ b/projects/fenix/list_toolchain_updates_checks
@@ -45,7 +45,7 @@ if (m/const\\s+val\\s+minSdkVersion\\s+=\\s+([^"]+)/) {
EOF
needed=$(cat buildSrc/src/main/java/Config.kt | perl -ne "$p")
current=21
-check_update_needed compileSdkVersion "$needed" "$current"
+check_update_needed minSdkVersion "$needed" "$current"
# gradle
1
0

06 May '21
commit b46315564e30f78a78f97a377b969e52a36a1c1e
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Mon May 3 13:02:29 2021 +0000
Pickup Fenix 88.1.1
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 8 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 366 ++++++++++-----------
projects/geckoview/config | 2 +-
5 files changed, 191 insertions(+), 193 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index 33bcdaf..a9fc612 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -8,12 +8,12 @@ gpg_keyring: torbutton.gpg
variant: '[% IF c("var/release") %]Release[% ELSE %]Beta[% END %]'
var:
- android_components_version: 74.0.6
+ android_components_version: 74.0.11
torbrowser_branch: 10.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 22
+ gradle_dependencies_version: 23
gradle_version: 6.6.1
glean_parser: 2.2.0
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index ab3da10..9e2db74 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -385,12 +385,12 @@ d1741144ed2ea215a84f5d94d779cafcfaf778cce8cc7224437a2884cb1101bc | https://maven
7b0a3bd6d32c8002f785db8fdbf3b08e3541366e784cac1304cb3f49642b916a | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/71.0.0/…
f7bf27270904abd8639b543151b6eaf268b821b8e6235c8decf8031e02ec8648 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
0b80acf7d1dd0d9484b0e82cd1a04ae57270d7f7e6b339ce39424554d48798e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/71.0.…
-4c496ab63c3900ebbd9bde50d520c28c29ddd594ae3958f161f41a5810ba60fa | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
-e55a5d7ebdd6cae43d2a820c16f771ad8d87f25b181828ebd10c721f8ad445dc | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
d622b92149ed8477aca47dabe0fd53de75191a29ff4d79a0cfc718736bb4aa2a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
8d6bc0c248af8f3d1f4f45abd4e04bf76044fbce518ca3c384ff83fe9acb38b4 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
-418b2052928c75f4071b533cf864baaf22d0f134f6418200b8ab807c93428161 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-9c4b5dd3e37936890909a0795be552664dd861f9f28a9815a72a4abc7660c700 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/fenix/config b/projects/fenix/config
index b9371d9..f91f67e 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,13 +8,13 @@ gpg_keyring: torbutton.gpg
variant: Release
var:
- fenix_version: 88.0.0b4
+ fenix_version: 88.1.1
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 24
+ gradle_dependencies_version: 25
gradle_version: 6.5.1
glean_parser: 2.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index 1cbaeee..a0e9eca 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -383,190 +383,188 @@ ea871f7d5fab5a4315f41402de15f94e13481d03366396ea1bf3880f4f242c1a | https://maven
cc7f7850bc9e5fecd8c699d0464e96bdb6765778e6463bcfc1c1efed08ba6ceb | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
4ecc86b606e1713faa7b75b01fbcd52d7d521f0c5c99784f07d87188cd73ea9c | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
c93fe881fec0df7da21f151b05652ea79157f08ad680d674d9591f6bd9843cea | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
-fe1e719d3e6f67da989ec022648f044e828dd2743b20b4ab75ae3668321cc559 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-3052024c9cd7e93c912dbb79ab0922e282c266e2abb00488fc649a88dc958d22 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-f7d172219ec271e133876c588fb178546738d8370a70fa905cb2e8712b7e6231 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-284f8334776bae99a6bae81f51a81e3493579387fb4ba0303147ed2f4b4d82be | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-36e2db414e4da8b7a393d050bb83bc5338060ee38ea42ee50165060dd8a76a30 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-faa9e3d9128cfa319864b3bfd57e5c45b0b7e34bd4577c61e2f5ecc8a94efcdf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-3dae363ce6471bac82619a8026d351a9eff52dc68a0e653ffea5fe1cb43b7623 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-ccc0cb52a61bedc6cd0947063b254bfd19c14fb6b2bad798cae50a1457351482 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-7f86a7743824290a4c29058cb3c7db1ca38973c2b3b10c5c1f11a1b200b76577 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-8aaee820665cb79334fb8fd0f1566c34e65162891602e103814ce23b82cd2c51 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-914c93db7a7e8160e42faa31d5c780272b54d823b0b1cff57f3c3942b161d911 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-360f6c685f86b45d53ebe5f764f65d1c55c21e2cd477e4f48c7a43e68a02688e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-8aa60b548d44f8045fa5dcfe57668c37be4aed9f89d4ec7a726ef358f2f4477d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.6…
-d0d5c9ecf53496171c93dd6e570799b58d13540f5d4323f583696e38f8b3644c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.6…
-72fd22d37e91937532e2dcb7bc020f9550935a1756c568d43dfd79b285747af6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-b620c2b4c4f92c7ae3bc611fff60270fafd5de47e450bed08f3b7b3f481431a5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-27ccf086a3aa15d7f74d915280e4bad2b691c70bc9536cef5665d7294a6563a6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-a50da79d6a5f2dc007ab8536da9f2d30cb88edbb049cdf7a0eddc232c54d8f93 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-f92153ebfc80f08fb43b1ed9b70d184dfa8aeafb2d2bc0be150d4c030027dbbf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-ede870618f5b88b0ef077355d9cb3d057c3629d05c2937adfe982612b4568c5f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-e9bf6891352eaf4670d9f73e4dd5617d12b56b20161c710c0fa8b5b86174cbf3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-aedd88b79115ff6d624153fdd74633cd247bccddd29c37d04ee415d4beabb097 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-7f3619432f6c3f3c3b175d8e889580f11d7a5e4c7fd3ef734cb18a0467f9b670 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-a3fde0838584d7fed341c137c866b2ff1d0682ead0004c58d713719f6e0f5203 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-0aeb6e48056fe340d627b50550b9487f0be677ed97e1af8120ecd79840414416 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-324290f86c4af76d7a50e5d3716003d6db563e67f1b68341e5597d3950add367 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-0e2bfd55aab6b16c979a2475a4b68fecc6cef25493927a1cf3915ad17ae3585c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.6…
-9191898038cfde89df3aff01da3b27d02bfff0673ee543f7939d337577af0fed | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.6…
-5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-56c8ba56874cc37461b9075c996cae699ea7d77670022962366b983517039850 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-b3d266d989c919633be1b86c5470c5850669debcb7c0cd5243a0712299f41eb9 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-5aa455421948ff9b82eceadd7550190be2fa61abd3baa47849ec4c9aad8be86c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.6…
-835b2d73b97efe6df414e75a29b992280e9b2e29ad4b1ed1a0628e734f9203ff | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.6…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.6…
-ca106a9dfb6cbf4e4f14e1a483f48818af243f9c23c0afa9903922c19d952618 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.6…
-613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-91755d537157780e37cd42ed94162c13bb1a2ebc2501a7673d301a7c9629444a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.6…
-904368510520103d6253f1bc9b0a6e0a0de854af12deb005828eb7ffcf1e17b3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.6…
-70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-2d2e96d8a6f1d6812b038f5ade1dd87d984e3d66368d63cf0c5f3b03f43518c0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-c4c3dc06472ca89007665785da83be702dbde967e6de0e11e2d52926b309ea49 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-ffc7c97a784b834817f64df199c4f195c0622999469685f42fb8078f6f3725be | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-a4e0cdd659ce77cd4f569a208d937b8f9d9c8e359b60ab96886e9b265decfde4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-bdc7dc3837527154e092940ddf5e98efb863d63bfd9746761c9b74646ce5fb7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-f7a305b9bd0dbf2c4d6ac5a718813e58ab9556d61770d7373bc15c4c05c23550 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-7ba82739848724e3ebdd6e5f7e1435d96ce26d91d99dc957e92067d18a4264a7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-41d8b04339dbafc26479cc39638d5aa88f363efaa10c3188213feede5c5c5cd6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-71d725deda68d950275eaf70de15900071d8bd34f3ca0cb485d4183ab046da89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-c110f65b18fe350f2f6c25dc3dbc9cada683351fccc0d3b48ceb036588226590 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-1bf7f6a2514d73b3ed6a432e5bb4dbbeff0db3bed0d9849ca8c1f6f5a79e6988 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-a01b988fc3a0f467d0b2ea46f419b6f5908862093afc6128b2271d3786452ca2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-f861ca0322ee096027de6604ae6d36581efa36878ac44bdde92fe3e9fa3ae190 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-a44903fdfaf763d39090e70765b112148e36b0008237d0225cb02bd2ea203cf7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-94c15f0f8322cc0999584f157af93e9a385e1f636eefdea6ce78174122a6c580 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-47d3178458da48bbab21dc5a2338c62661855ae7a6a7e2f875a56b67e0e67980 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-7cf4ffeebdf72a1127232ce3ee91041a3bf63ae778b6db13bb18c486ff791214 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-8fd2c45a46c3814d612cb312e963a277f94ebf84b60b3da884825354b129360f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-9d84569630948659a5278ebdfb5b8463e32c6282113e581c568c039847d1f31b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-134078e44e2bb5b0da67f33799baafdd3308723ae8a93365084b3179f7aaa28f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-8ae23ce03d57df8923d06458e394c2f508e6d1c5f980a78dc2d66f97f911959c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-7965f18b31eab9ab7909db4147ed7a967acb4aa7c5ec19b3d9a89a13d5b5786f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-bf7bd8f88277f327f98946ffe174820f3d49c561529e01e4ac0bc754c45311ea | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-87984b9488bce21f59dd7d5ca8e0eb78106aed43013243a1453186b63c361984 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-cf16058f8e49b9a00f52518460f359f17f0d63a5ae01d37fa11a67e9b461479d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-caaf0af18e8912ec794a22ca645a4c2e3f48ec7d633a041661a9e13b2591abc0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-7f8b55c74e16b5aa420a289c678285926fdab48529d1113b3ebc7c6cf13531a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-cbe78d0082e6d7d0808af8d376e71b5f4ee9c93294682918613326f44c0cd3d2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-c1b2083af1eec35d43eec4129bce56652a402bd44c35564d8f73b9b0d5b18e9f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.6…
-f97cc9ab41a5c1edf8d2b27815b838c029278cd65852afe042c531a2e508c218 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.6…
-165c91ac35da27fd05d606509bda0921dba2113d0df4fea4e696fcc4571ba006 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.6/…
-16d2a78a1c316d242ce8bdb1e371387c549b55c2728f2a3d72ad64db611bcd77 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.6/…
-f09ece651c3dd4f6322363e896236ea7256bb959b0a6a3f657b8ffe9f22ad8e2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.6/f…
-e70c41044ff003182f208548e3188be1a37101276343ec8aae63e5135ae9fd00 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.6/f…
-130a84d1d763535cdb397dd442702cef7183337c71644efd3a0178dd959d1388 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-d944e905ea766fe05a11f583a6548aab92215c31846b1f53e222963f95aecb1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-29687b737ab570a32508a6e7066f7b4b94a55d43849742fa61e4ac20dd968065 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-864ace86a007c6cef6cce201dfda76db95cf0bae34d7f1dd85d3ad4bca10035c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-195594b4bc2d7fe669052801f87315e40947791879e7ff3a5a57424a118e56e7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-2b069241fb17fe87b9feaf60093ec79cb97e630f0d1899421e8381ea9be67c28 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-6b7861bcfc25554efbd0c22b9a56b96524d73884dc3a6cf4c722ac14c61ae943 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-0838a30ba4f8a70f3bc07fe527d48c9cb3bca07ceef872e661dbe72f0b1db4a9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-fd7c7aea716595cd09e4c1eb581cf6a873c27c0abe4981442ab8a522ff242b94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-fcdc50588cb7c827f70b0c6eae5f446dc0cec0edd02825e42ae2fb28b6061185 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-63e88cb2a29709df2fce934db92750a804c319ae9c8ee4589fdf5e828b83c6ec | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.6…
-3f601c619aa2cf2da029e3e303dfbe8ebd84f31842691db3a9d08e88d06ed858 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.6…
-29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-bf5ea7e99b1326db116a07361e19e1d0f59075c259a48c9386671f759462ed21 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-7e624b60853cd5b3c3142628e67f0b62c5c029cefa9397e0e808e25250379815 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-2234c9c8fde00e987120fcbc667d43df941a28bc2bee74c8f411310315aecfa1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-8f49df4e3d6a541303badb0e360e5c2839ed854dedfc59dafb94fa881728101e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-ae21972ac805c01b7b2975a16c02d2afaa2b96445d35f46b16ab25571041b670 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-163be0e49e266d6ba97621a830c6acfba760e79293fb6ad16e0eab8a07889a6c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-afefe5259bf4630b1e26e93a77ac7fe327d3da26254b6f6af1291980fa70596c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-cd044ed7be200c8ea8733b920e335f3b51e33fb38ddb39cc425eed82859584fe | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.6/li…
-70096fb52edcd596cf01b9ac6fde438ef03bd79dd744c41cd6d026e01d9e7f98 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.6/li…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-4c57acd1a1e95a17c00e3bc525a6d236625fcb2e63919b6cdc0de0fbbc11b81a | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-4efe6b346499a7b7433e82fd30fc91f9e607727e82158610a6cb7c26c2328e69 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-157fdf33f5acad1ef7ee1e82ab7419b93fdc38e4bea46e45767d73e0201849df | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.6/li…
-5b2b208d8f1987bd7375b8eb0a366c7fa5081b2a27a01910e3928577f1f66406 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.6/li…
-26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-1fb1296b12d05efb445136e868c8e11cb792a74c1376b89cf12cd29a1b2b04ff | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-e9a3b3176cd8e94947494d56d605b3c11ebf29233dde0df974484af2a607c901 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-c7526e68869cd82aaafca955f9787b8b6bf3358e48bd1965958cdf76ec46c454 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-44cf79e99f09034377b7173c8734478d848c0e75727ac9d63c1429cfccd181d3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-9c919fdb9821b7a5b2a34ea45b2dd06113e3707b58d937046ed55271177415e5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-86b0370451f7b520e7d7f4f2001e1a270e5b6d575be556188b21f62a75a0d1ae | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-4ffb2f8f0b557359005fc40678cbd9019143191eafe97f91418bcc38309e176a | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-be64bb1c461fabd8ab98e97f4a670700611353d701688fe01ef4e19c64d4bba0 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-5831b29898d32fb28b0e250c13fc43c6671a05f4b0698e4a2d3b38e681ae59af | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-3f7925e839bc9b1a3ca9ba8026de0eee3ac8d0a40f97cc3cf662884dcbd90aa9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.6…
-61e1d9f9741f7c34ede17477cf43f1e26e76b6f00b3b8304a7625a0feb0c11ef | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.6…
-1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-3285299076b3b4f608b859ea827211020559a53394b389373d1fccb1e4fdac29 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-d5a3e32eeee210ed51976d15b477c64c26a9a661d17ecacd4a7027e2f6903054 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.6/…
-14fe7e1d7c44bbe74bdac6ea7525267c1764c013fc650808aeac51f5d66b6c61 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.6/…
-dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-3c466254f805494ddc23e05d3a01bb33beaf4b4ea2f17122333c9b845616bc81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-358d74e5fa4226119eb88002bb2006851995ca5a85b4c96aab7b4ac4cbfb513d | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-87089e42f15a5ee1cdc6b29f158b6bc626ed1baeac448648c94be030e745c4f0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-3b05493515192b3150c727acec2434f5fd47f9de3d079a476489ba9a25ed24f2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-d06ab1a930a5ed2d0e4b09da61e8af0ea52dd12673879e34a53dea0946816f75 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-d0eb9b70d2d192d5f86a0499f122a2d6101aac570fb8a3c6b1ffffacda1db1ce | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-4aa2fec5b64a87ef4b66f72d8600cfdeb6a94068d47240cdad882d76e01e4f37 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.6…
-18ebdd0eea1ee700ce694f156146f5ceebd412d14a782b674699578c27863881 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.6…
-47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-0e4e8c00b68f38efa6ce479bc546648c4ab51834dee9500d3dbc7e47d6cb4ae4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-38712d035306fcb2bf9512c08f6562f8b106370e5d419676d2509daebf4cbfcc | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-ee83c353d2de305d191033e818d3cb6070ed27d69a651471a3402dca3c57c7c6 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-42b25810a4f1d769f7140d8cc11e9b63077a6e6f678e814fabcfab2fd447f012 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-116562177219a949d178ce91dbf60041559a699cbfd4fbfde40b72723905118c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.6/ui…
-f755f891871ada458c70dcb5819af845819525bdb119337914a0283695f2f9d0 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.6/ui…
-bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.6/ui-…
-b0e77ca12374820e4aae44300c827b9b7605451bf7b1b4d4b5ced8730fe65f37 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.6/ui-…
-68f2d6a7519c47cb9c7ab41223b391c30247233958b7785f966753bbb4a64c79 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-43a558dbc5e511d875b78acebac4d218647cd9f38603e6155a6a9c3e652d7649 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.6/u…
-f59f0463227d7ed8d62a99e9e3f4d9a16a244744dc4e63173bbecb4f921a7edc | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.6/u…
-4c496ab63c3900ebbd9bde50d520c28c29ddd594ae3958f161f41a5810ba60fa | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
-e55a5d7ebdd6cae43d2a820c16f771ad8d87f25b181828ebd10c721f8ad445dc | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
-418b2052928c75f4071b533cf864baaf22d0f134f6418200b8ab807c93428161 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
-9c4b5dd3e37936890909a0795be552664dd861f9f28a9815a72a4abc7660c700 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/87.0.20210…
+91d28649b8d92040e48b2b8b40257b9f25f6914884de9068f72cd4e0824d30e2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+7ee3b696507847f5d5051c0d21578f6d63661e363037aa4b43a69e9a2b650478 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+81dc5552872644ba186e113035a51d5906ba1ec501cd1e9b7fa764ac72d48ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+43455b16679d6b5159658889c3b66eb2bca64e4a89eefab6ef15d105e2d1bf36 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+cb8e472d120ff88c30788aa2996ef03af8c2149ddbb3693cae0406bb1db49b32 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+5f9a2b207f265ab55d0eef3fa5c304a2a00470596c9521f6a8678fc5e54fd0a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+1a56b6ab25aac1fa57c109201a1fd5a7580b5a9c8bcbbba5bf34fbb204d9f5a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+0af9ddbcfeb1e23a90f8b87f737b89aae2987faf14d5fdbc30ded00894336903 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+7d85bfbe013d3d7188f4c24be0ba447f45ccf61b1e06f1a639ddbc8f577448b5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+0b8b969f1072a5bb6e7a1d9fbe955ffebaafddc7d604e2574b951c0d439659e4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+60361967261a6a2ada30043e6316b50e49f862f00a36e9854130c38266dc969f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+863a92cbbf750c2f4435f442fe5730332eab64874218b3b30368caaef596f582 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+c241700d2620e6e662af61f705af8a76420387e265f68327a6ac9e4d813076a7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+8d61a1ce2ecfb68fe8e184f7f5f6c58fc9e99c0e5b0bda67a36c60baab17ed9c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+572d8c1c5ae97ab0603ccf52e4b678062b802d5ed1b0238ddb4ac16a48ceae16 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+fe51142d019571f5ed216b5a1f016ca9de4c8b2386e8cc51e0281751837da1ae | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+cd0024994e1327b70d237ac8615beaf3f6d325f3a4b542f1a2e9dd522413cffd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+621006e0b77e489523abf44b197d903e431b315a20c301fbbfeec611d873b402 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+d2a6d0518c6a807c53e377508bc37420672c29f8c77f82153734066eebe3d28d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+dc0b076ca01637bf8ae555bdbe2f11dd002afc204bf2071be09478d5e55e7bbe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+1add2173f509d61234a18164d5ff7a8046fa72744e6d5664e7fc85489ebcbfb9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+c9bf71e6bad7d1e09b581beee0d8cf294ae98acff2cf2744240cddb0843ed63f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+54bbf68dedd3a65277f552a3ee0f3ab12c5ae80e6500a5eae5b0db00e61b7e51 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+22aa5c5f2f22c968d9b8fb7efbfd4b60e87fed380942857c1f716754bdaa4711 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+ed21eb942f8a30b42e20bc9afb3bf5ddee331fd3bd13487ace33fe13180be428 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+af741603dfea10d42cb2b087771046efbaa157fe610ed96638370459e2259265 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+803c6b7f264d77f1b24c4ffe414c8564363f51c73265b2ec2b18db3885742c79 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+1b5c41bf65ee369c3f1d895699908fb2c0ecdd23d79195f094a7d6b08a65fc9f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+98fceae0737bd057970dc295cc7bec31fcf74e021b4bd2528fa238bafe3b46d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+ea06f640b374195ea22d32f1f969e2184e26bb62e92f954fe58340375a709fa8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+1021683a04dcd97a68d2bd55e96641309dbb771faa45fe57474a057b79fa65d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+84b9814086568de488db1b7aee9cb0d6fd0b1777ff4be451fb071c7b9911aa46 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+0396630aa2fec50c88269d00cadf0e0fc8d115e4eb60bc2ef09e8f5ec8d44e96 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+3ea5cdf523fb6c06d85ad0bb00a1f98d9fa885fc17ae27f55c62346c82f3e70e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+ac5d6f4971f3745b290e8c4dd281872a5c630cb0ef4dd76e7128645b59a4fb94 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+5c777a6f3227f9c730e50c46d017bf10c3ac957e877584be2b5b39949bf1b5bb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+b896e55f7488bd2804a5e7b56c9b502802e03d94e1110968ffca2921a378e06f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+1487a150f48eb030e0cbf17eac1ce1c758712d6409f3aa6d0af0cb0c4743456c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+ac8838358a0c3bbad9c03b229a3af976f2ce6ccdabea5c0e08275b9e5f487baf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+7a42d05f3a1933067f100df862001e9e939fb86105f31609eb096f481c140111 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+5d9820b47a408763eea6db7af95cd59c399ca1e17ae6374ad8f5bc9c9ae97962 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+fc6370695ef1b8b9feab15fa5af1fbb41829b08733aea799d2bfb77e83294126 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+940cb2c8a288b03ec9cac317707361307d9e2e00983f5aa8c550c5d4d7c24b0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+a5c0695cd383d1bb328d18ab36c5fcf78c28fe2b701e7a84353a4ff60070894e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+33eb2befdfe8d4126badfd18c374f8b391c0987a3b4d14278826543525265d89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+f3c294cca8239af4a11c58129d7ba1f2d32ae03bd6e11d1d86cf7f6d6e456fe2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+77db3de124ca6ee35ed471682e172dff6ecec1a24278e451534431740273f4e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+e8e97dbfd6e578725e4da5c433df0005c4a81682e2a4f96ec3798340f12f88b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+9af10991dc1745a41e69965fc27f7a63395d5767296939f1ec14ea8ffff1c0f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+14087ea7bb805b32ebdd0f416ad09a29fafc628a1e7fda83a64b6820dd88babb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+0507e4dec84215f6eeb7579cfe7f6956a984866c7f031d1aa3c7f4c2aa041f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+11bbb86d536aa56b177ff0fb030129f31cdb3dce4afcc583bbabec613a3e4981 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+d2f0640683b9b2efd6969ae14f0c513e95f1ae672aafaaec6d38d8e9466be9b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+6aa6ed24864ae51f0061d4af4628e13018c81e2fb37fe80c5a75fedb4f90a61b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+81cd8e166b5694d060c713171b17715834b6f17a91bed486276ce6edcbd182ff | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+8a872cd37bdfd59eec1db26d99d2429f96dab9dde6a3072f5a06c37f1665c4b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+293a472c1d58f8a03699f9726bdc0c25c92546474fa7e469b10aa60e4d7cfe01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+4a54dca163ff801fc00b6d3c32588b83e37254c0f1da390785b7294464564601 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+caef0e284488c94c2475512e68b9dac28a704457869a83cc91076ab1a068686a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+59f81d63e90d61142b6e0b395e9da026d36ca9e797f766667f8d1f560f5e8590 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+63ce0e37bbd147ab4d6bff02f658043cc5b81bf4281254c49b144194efc1771b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+2a6f9edb777f44e817d391c57ac953aef52cae54dfca1eba96bce7eb358b9e08 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+2c57ba043bc19eda7e1982f45b6ca1a230c025b92ccd67feaef0bffcbdce5f3a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+7d1bcc1fc351733a747bea4585489cda9d5c69efddbafee0f37437fc61ca2a50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
+f3c339e152b89e887ee2e11667b320c0178f11242430016b1ce4467abc84fd2f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
+975c837c308362d2df6b4672bd2dbdd930e12a03c269b1bda94e171ca40bb4ba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
+edd05e3775f3f5686516b56a5c942aff57c9c07fff90f58349424ca2ea18673b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
+7f068f127650599b0d06892f2978ca782be9b73357b4bc1f47a22423c17b2a9c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+7277f56a8b25074f2fa6e24b71bb5691321a4133a8a5709fc658b4a186bf0d06 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+1788bcfa0d7407b5bcad23bfe59b7e337016972696324fa070e20e03eac26c28 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+9f651ffe19580c7d3564ef7b306c9f52f657557adfd5c66f46234e3e813a9e0d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+3a6f44a520b15b00406870a3983560eade1f12d47f1ad2218d496a820aeece78 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+dcbaa927b284b91c5f2aa682aed96cc54c7440535bb5f5b1a8b288258625d430 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+f6a839e55b7b18912e77833ebf1db17fbf39f38ca8036cc3aa4caff842fcc208 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+c8495e6b2e068fcf6a0e3713b5f20961bcfa93b7cd6fcd204d5200a5604d9ab9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+7ac202c09d0e0e1cfc912e296a0ade1fed9a31c99cd0ca544646545bc8e6961c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9e546e9230d49878be73e38e42b220be6a2bbff7344e8183ceca3ea8871639cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9e2b40772412ed13f71fab9af601a869309311c65b52a61ad79156a3b6a95277 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+e43bde64a6e6dfd6227cab01ff74b844f87a7de0db3e1e806c35216be0863c9e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+63ad4f3c396e6e393bbc4e6e59659927a245a4060afba49a21ae3ac83673e5fd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+39637137b625b341671fa4e5037ed2c8e0880c819dc688a5413981cfc869b553 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+e7738526af7fb4ab1de0fba6a1f7cb850d87be155ba8125589b668b7f6982d8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+f9f62aea49e90d6158cf70ff66584a8d443a11986dc5cb8709f5bcd9fc5820e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+02b96f91f7087330e53673fd243c62d834a19601246f62a939d6935938e0a59d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+4b98bce9c7a002e154785432b60b3a258c962018bf44f3c0435b6b39c3478bd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+fc0602bb978de4aa2259e474a226141e2765286bcde3b8483452614d838dc4b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+c2dedd842ad02a24caddd239fc6816a4e34de5816a86663da525c11432e4d765 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
+094b6a0a2382e13278616759d90f1f2c30df3a7b1f45f9ba68e7f238cc9a6b34 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+6f60f97e605580425bdad227f66050f883982e826df9bbbf49c11f951a9b8122 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+0171ea5b2aba203848c5301bd32ba2911ff538604ff246b32e4718e0ee140f9b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+0cc8481b1b9d4ec9ed1d698060fa6cb2bff044a49e9ab9cf7eb77fffbfcb3d8c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
+b9e58b1742083c28de48c0ce8cfa1a2bcdfced1adba33537139d02c6f0314855 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
+26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+f2350e12beb4b2814a23b1c9d23f9e7f14b477341f81cbf64d44456029b91d57 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+335a608a2d3e349edcd9befbb91caa2df4fb3de6be0d6d94785850c53f685962 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+8301a5cfffd5c2a627a6837f0262b58c9b2667872098f3c48573af3555e0db90 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+9aaecfb1d1a2d7dd181a7f0cba90989bec3ccbc3a048fea8566088e44ec34843 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+94c945087ad106a768915b6797c4e82576f739750ac6791fc364786a77d1c805 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+1ebc5982297301c6c514639617b90c474f683618fb3fc8259d9ee5f24d7e9d3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+54eb3c7f63588a2bc8a2b23637eb31a1d5a21621c828c11496e55247e9ec86e2 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+368f705c95cc5efab1d87bda3b1536db666299e6b0494303a45618ce7e649788 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+9c24700383b4cc70e22e509cb4643926b5c3d80ca775b47631605f107447b104 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+45ad8c3d8ca524508cf768b61476d0c55d6999d0bbeb121dec5437579973763f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+232c3c74241c29c8e6091f3cc2923729176ace7a79ce5cbbab0b879dca19f3ac | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+5b23b6fc712a689dea2ea42a796fc3b8651e2cbccb31e2738ff32acfebe5d725 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+fe9440cfbcc6f59c206b8d58dd49c7abdcab1348578f0981cd678e2e38f6ed46 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
+19532b5c2a1c1084a6127cad4911c332a13a7bd05c9a1c150443b7d0a56a9a84 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
+dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+5a209b6424536a9543e58bba531251df26e5d91a3decf7809b033e7c958c4e22 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+ec48cd5fa2897191f7082ec8e5c4a1cacfb86c581983dd5c5f0c2361c8f4f896 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+78d310a6cfcc5baf904c025b6fbadee92f54b073d4aeb2a29a6d5ecb8d8bdb3f | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+7308dce9b721f087c6a394ce001657f549a60f6a3158816c4fac2e7e97dc4dcc | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+0587d723e8b167f99850021a7ccdd60312a1557fb208c8191ae35535d0f6d0c6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+ad8a2a5087c1d4d873e52297257b46921323e9dc11f6cbc83b71b1db437afa87 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+a0d535fa4f6f16d8d8e3f27c15a66678ad416e1585640e7f7bb2c6fd67bdcfd2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+d449cb50ac1c2d22c8db56c9e372fd43a50abc384b43117d74e02fe77bfadaba | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+165fee2a8438d1efc56902b8ea0947a53719a7d62add43d845364a4ee71cf292 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+e437fd8d3700f81c4895b7fbcde449ac50b8479fe71aea27df7fc3b054d363fb | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+dcc6409cc82183c441408b2fecb410bf4643e63f515f78a4bc867104851f23e7 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+33d4d03bd99af0e5b7660b602129973000c30f42a078117efb2f1e5321f15fe0 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+6fb0c6ae92850fdc6e6eeeae2b2d39ad6eb38699cc54d1f8333085c8fc43244c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
+0a3c762613f798ea2aa5abce6ccbb7800325467072e374f12234eb5fcb88013d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
+bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
+2f7ed08f80f23e1e4d0c9a291ad94f42a9db2dd72218e755d907e5d1ec2f491e | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
+b9e2605937c5cd47ae5e0ba93c31dda48b8e210345f862ebf14890ae58be6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+830297a76265932bf0e316beaf8e8f72e262026960266ad77ba7e8435c797166 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
+0b1e13252210fc0f6c5aea8dd09af73aabc2efc1e393496f7acee7ca134e32ab | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
+cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
+4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 4cc3408..af9ec0f 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 88.0b4
+ geckoview_version: 88.0
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
1
0

[tor-browser-build/maint-10.0-android] Release preparation for 10.0.16
by sysrqb@torproject.org 06 May '21
by sysrqb@torproject.org 06 May '21
06 May '21
commit 2e939908bb04a63b0c8be93c4fbe570fc4c8a347
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu May 6 00:18:37 2021 +0000
Release preparation for 10.0.16
Versions bump and Changelog update
---
projects/tba-translation/config | 2 +-
projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt | 16 ++++++++++++++++
rbm.conf | 2 +-
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/projects/tba-translation/config b/projects/tba-translation/config
index 2675514..dddbab5 100644
--- a/projects/tba-translation/config
+++ b/projects/tba-translation/config
@@ -3,5 +3,5 @@ filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
git_url: https://git.torproject.org/translation.git
# We need to bump the commit before releasing but just pointing to a branch
# might cause too much rebuidling of the Firefox part.
-git_hash: a54899c8133efe536b48789e191fdd74fad64f53
+git_hash: 943734fde4dec8b6e024c8a2001c5109d252f149
version: '[% c("abbrev") %]'
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index 687723d..c04f17a 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,19 @@
+Tor Browser 10.0.16 -- May 7 2021
+ * Android
+ * Update Fenix to 88.1.3
+ * Update HTTPS Everywhere to 2021.4.15
+ * Update NoScript to 11.2.6
+ * Translations update
+ * Bug 40052: Rebase android-components patches for Fenix 88 [android-components]
+ * Bug 40162: Disable Numbus experiments [fenix]
+ * Bug 40163: Rebase Fenix patches to Fenix 88.1.3 [fenix]
+ * Bug 40423: Disable http/3 [tor-browser]
+ * Bug 40425: Rebase 10.5 patches on 88.0.1 [tor-browser]
+ * Build System
+ * Android
+ * Bug 40259: Update components for mozilla88-based Fenix [tor-browser-build]
+ * Bug 40293: Patch app-services' vendored uniffi_bindgen [tor-browser-build]
+
Tor Browser 10.0.15 -- April 7 2021
* Android
* Update Fenix to 87.0.0
diff --git a/rbm.conf b/rbm.conf
index 3228453..c5b0048 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -57,7 +57,7 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '10.0.15'
+ torbrowser_version: '10.0.16'
torbrowser_build: 'build1'
torbrowser_incremental_from:
- 10.5a1
1
0
commit 1cc57a59b13f0feb5429b9fd6f977cd3914f60c6
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed May 5 18:40:39 2021 +0000
Pick up Fenix 88.1.3
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 12 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 365 ++++++++++-----------
projects/geckoview/config | 2 +-
projects/https-everywhere/config | 2 +-
projects/tor-browser/allowed_addons.json | 284 ++++++++--------
projects/tor-browser/config | 4 +-
8 files changed, 344 insertions(+), 333 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index 02d4bc5..998ffe1 100644
--- a/projects/android-components/config
+++ b/projects/android-components/config
@@ -8,12 +8,12 @@ gpg_keyring: torbutton.gpg
variant: '[% IF c("var/release") %]Release[% ELSE %]Beta[% END %]'
var:
- android_components_version: 74.0.11
+ android_components_version: 74.0.13
torbrowser_branch: 10.5
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 23
+ gradle_dependencies_version: 24
gradle_version: 6.6.1
glean_parser: 2.2.0
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index 739f300..b9d721e 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -389,8 +389,8 @@ cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven
e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
d622b92149ed8477aca47dabe0fd53de75191a29ff4d79a0cfc718736bb4aa2a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
8d6bc0c248af8f3d1f4f45abd4e04bf76044fbce518ca3c384ff83fe9acb38b4 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/89…
-4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
-52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+72a76c4fa3ae7f124803ec831cf3b9789310bf7db1d79f2f8bf32ae258981292 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+5f4bba20be1099c4a1f156099155fe159efcedf796130874315f02a99260bee5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
@@ -412,10 +412,6 @@ bdce53a751fdb27af6608039df81214ba22d902ed4169540a3daeb5828c99cad | https://plugi
785f12a193912d77fe3b8714567ad5f01d727512a47c5a43aef57852cc1bc9e2 | https://plugins.gradle.org/m2/org/gradle/kotlin/plugins/1.3.6/plugins-1.3.6…
ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397 | https://plugins.gradle.org/m2/org/jetbrains/annotations/13.0/annotations-13…
-77d7638a32bcae42c929eea307c9a3b48ae1a5abd00cd29f7abf6d51079d83a9 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
-92f058aef966deca25ddcf1b1ad028d822f94891bf61491ebc914a08a3481e86 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-android-gradle-plug…
-e9215460b1bb674b616cb9c8f1a1b172cdd7b3f4749662d864ebd3f319f0d73d | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
-f41e2f85d75abe256ae3f522066ad40ff9b3dc90b0f6e455508a90ba78046871 | https://plugins.gradle.org/m2/org/jetbrains/dokka/dokka-gradle-plugin/0.9.1…
affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601 | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a | https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20181…
30278f88cfefb7bb328bedd73374242f8e3e55211e53884e4820dba271132fab | https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extension…
@@ -817,6 +813,10 @@ fde386a7905173a1b103de6ab820727584b50d0e32282e2797787c20a64ffa93 | https://repo.
6d535f94efb663bdb682c9f27a50335394688009642ba7a9677504bc1be4129b | https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcr…
1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5 | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar
47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d | https://repo.maven.apache.org/maven2/org/jdom/jdom2/2.0.6/jdom2-2.0.6.pom
+77847bd6b80f4f5932ad1e18f952641d3808a6866ae461fcc50f986dab14775a | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-android-grad…
+9c71162ce6428340e1e098f03b5fef504f0326c5577cc53517672765f853b624 | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-android-grad…
+bbed1d9f552cc5f99a6d7d2ea8181e54e11f7a02ae7dddf899533ff37ca93d6e | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-gradle-plugi…
+61894e448d1982b955802bd8b45816c252c0180b3c1cd8e296f78a078ce684b2 | https://repo.maven.apache.org/maven2/org/jetbrains/dokka/dokka-gradle-plugi…
303c422700f79d5d13d528b978c6abd9cd136d78d9f7f6f2556e85a81892f9f1 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
648025c01c56b234a7458cb6048ae8fcfa941f9ea8ebf059090733237b9df9b6 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
f120750af0c9e0c6024c3c76469fd4638ef898fc5bc2d4c49f2fe17568f47b9e | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-ex…
diff --git a/projects/fenix/config b/projects/fenix/config
index 3bf2801..ce140c6 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,13 +8,13 @@ gpg_keyring: torbutton.gpg
variant: Beta
var:
- fenix_version: 88.1.1
+ fenix_version: 88.1.3
torbrowser_branch: 10.5
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 25
+ gradle_dependencies_version: 26
gradle_version: 6.5.1
glean_parser: 2.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index 0ffe4ff..e56f600 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -310,11 +310,8 @@ e72912014b67151b689a7e820d3f1edf12fe2af5fbc308ab196ac392436ab771 | https://dl.go
a911c8a33f02942c10a5e730613a533c209d6ae8ddb0e7cd8e65fceb1162de56 | https://dl.google.com/dl/android/maven2/com/google/android/datatransport/tr…
1bfb68b9d898a682734faeaffaa86e3e63a1c70659438adfe7b38e63dec10ce2 | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
02314144f98d892df6ebca9ae1a81bec24f416b3e9eefe8729de71acd5d119bd | https://dl.google.com/dl/android/maven2/com/google/android/gms/oss-licenses…
-380b09bfc5389fff93b5719c04e57c99678c9c3af0402a91e26d89734babcc49 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
-d851ae0d9232951d36b1060eb8a3dc07ac5fcf668cb741b0a5a165c60519c898 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
dd0980edf729e0d346e2b58e70801dc237c1aed0c7ab274fa3f1c8c8efc64cc7 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
c30489d38be5d41e19272f6aa47d6c43de85034500bcb1864b79381c9634d924 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
-a3801d0841b3bf779ef74370e18399c3a2401c405a046a528cd7e60ae8073542 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
d324a1785bbc48bfe3639fc847cfd3cf43d49e967b5caf2794240a854557a39c | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
ffe9295d9eb2ec2d784bb4c3634f6a10175224d2111332fa2735320b52a24b66 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
3a5000df3d6b91f9b8b681b29331b4680d30c140f693b1c5d2969755b6fc4cf9 | https://dl.google.com/dl/android/maven2/com/google/android/gms/play-service…
@@ -383,188 +380,188 @@ ea871f7d5fab5a4315f41402de15f94e13481d03366396ea1bf3880f4f242c1a | https://maven
cc7f7850bc9e5fecd8c699d0464e96bdb6765778e6463bcfc1c1efed08ba6ceb | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/74.0.1…
4ecc86b606e1713faa7b75b01fbcd52d7d521f0c5c99784f07d87188cd73ea9c | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
c93fe881fec0df7da21f151b05652ea79157f08ad680d674d9591f6bd9843cea | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/74.0.1/tabs-7…
-91d28649b8d92040e48b2b8b40257b9f25f6914884de9068f72cd4e0824d30e2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-7ee3b696507847f5d5051c0d21578f6d63661e363037aa4b43a69e9a2b650478 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-81dc5552872644ba186e113035a51d5906ba1ec501cd1e9b7fa764ac72d48ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
-542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-43455b16679d6b5159658889c3b66eb2bca64e4a89eefab6ef15d105e2d1bf36 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-cb8e472d120ff88c30788aa2996ef03af8c2149ddbb3693cae0406bb1db49b32 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-5f9a2b207f265ab55d0eef3fa5c304a2a00470596c9521f6a8678fc5e54fd0a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-1a56b6ab25aac1fa57c109201a1fd5a7580b5a9c8bcbbba5bf34fbb204d9f5a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-0af9ddbcfeb1e23a90f8b87f737b89aae2987faf14d5fdbc30ded00894336903 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-7d85bfbe013d3d7188f4c24be0ba447f45ccf61b1e06f1a639ddbc8f577448b5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-0b8b969f1072a5bb6e7a1d9fbe955ffebaafddc7d604e2574b951c0d439659e4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
-60361967261a6a2ada30043e6316b50e49f862f00a36e9854130c38266dc969f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
-863a92cbbf750c2f4435f442fe5730332eab64874218b3b30368caaef596f582 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
-c241700d2620e6e662af61f705af8a76420387e265f68327a6ac9e4d813076a7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-8d61a1ce2ecfb68fe8e184f7f5f6c58fc9e99c0e5b0bda67a36c60baab17ed9c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
-2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-572d8c1c5ae97ab0603ccf52e4b678062b802d5ed1b0238ddb4ac16a48ceae16 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
-be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-fe51142d019571f5ed216b5a1f016ca9de4c8b2386e8cc51e0281751837da1ae | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-cd0024994e1327b70d237ac8615beaf3f6d325f3a4b542f1a2e9dd522413cffd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
-52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-621006e0b77e489523abf44b197d903e431b315a20c301fbbfeec611d873b402 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
-131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-d2a6d0518c6a807c53e377508bc37420672c29f8c77f82153734066eebe3d28d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-dc0b076ca01637bf8ae555bdbe2f11dd002afc204bf2071be09478d5e55e7bbe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
-936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-1add2173f509d61234a18164d5ff7a8046fa72744e6d5664e7fc85489ebcbfb9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-c9bf71e6bad7d1e09b581beee0d8cf294ae98acff2cf2744240cddb0843ed63f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-54bbf68dedd3a65277f552a3ee0f3ab12c5ae80e6500a5eae5b0db00e61b7e51 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-22aa5c5f2f22c968d9b8fb7efbfd4b60e87fed380942857c1f716754bdaa4711 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-ed21eb942f8a30b42e20bc9afb3bf5ddee331fd3bd13487ace33fe13180be428 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
-af741603dfea10d42cb2b087771046efbaa157fe610ed96638370459e2259265 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
-5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-803c6b7f264d77f1b24c4ffe414c8564363f51c73265b2ec2b18db3885742c79 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
-1b5c41bf65ee369c3f1d895699908fb2c0ecdd23d79195f094a7d6b08a65fc9f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-98fceae0737bd057970dc295cc7bec31fcf74e021b4bd2528fa238bafe3b46d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
-b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
-ea06f640b374195ea22d32f1f969e2184e26bb62e92f954fe58340375a709fa8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
-1021683a04dcd97a68d2bd55e96641309dbb771faa45fe57474a057b79fa65d3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
-613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-84b9814086568de488db1b7aee9cb0d6fd0b1777ff4be451fb071c7b9911aa46 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
-2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
-0396630aa2fec50c88269d00cadf0e0fc8d115e4eb60bc2ef09e8f5ec8d44e96 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
-70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-3ea5cdf523fb6c06d85ad0bb00a1f98d9fa885fc17ae27f55c62346c82f3e70e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
-ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-ac5d6f4971f3745b290e8c4dd281872a5c630cb0ef4dd76e7128645b59a4fb94 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
-a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-5c777a6f3227f9c730e50c46d017bf10c3ac957e877584be2b5b39949bf1b5bb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-b896e55f7488bd2804a5e7b56c9b502802e03d94e1110968ffca2921a378e06f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-1487a150f48eb030e0cbf17eac1ce1c758712d6409f3aa6d0af0cb0c4743456c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
-ac8838358a0c3bbad9c03b229a3af976f2ce6ccdabea5c0e08275b9e5f487baf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-7a42d05f3a1933067f100df862001e9e939fb86105f31609eb096f481c140111 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
-5d9820b47a408763eea6db7af95cd59c399ca1e17ae6374ad8f5bc9c9ae97962 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-fc6370695ef1b8b9feab15fa5af1fbb41829b08733aea799d2bfb77e83294126 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
-940cb2c8a288b03ec9cac317707361307d9e2e00983f5aa8c550c5d4d7c24b0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-a5c0695cd383d1bb328d18ab36c5fcf78c28fe2b701e7a84353a4ff60070894e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
-33eb2befdfe8d4126badfd18c374f8b391c0987a3b4d14278826543525265d89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-f3c294cca8239af4a11c58129d7ba1f2d32ae03bd6e11d1d86cf7f6d6e456fe2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-77db3de124ca6ee35ed471682e172dff6ecec1a24278e451534431740273f4e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-e8e97dbfd6e578725e4da5c433df0005c4a81682e2a4f96ec3798340f12f88b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-9af10991dc1745a41e69965fc27f7a63395d5767296939f1ec14ea8ffff1c0f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-14087ea7bb805b32ebdd0f416ad09a29fafc628a1e7fda83a64b6820dd88babb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-0507e4dec84215f6eeb7579cfe7f6956a984866c7f031d1aa3c7f4c2aa041f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-11bbb86d536aa56b177ff0fb030129f31cdb3dce4afcc583bbabec613a3e4981 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
-d2f0640683b9b2efd6969ae14f0c513e95f1ae672aafaaec6d38d8e9466be9b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-6aa6ed24864ae51f0061d4af4628e13018c81e2fb37fe80c5a75fedb4f90a61b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-81cd8e166b5694d060c713171b17715834b6f17a91bed486276ce6edcbd182ff | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
-d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-8a872cd37bdfd59eec1db26d99d2429f96dab9dde6a3072f5a06c37f1665c4b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
-293a472c1d58f8a03699f9726bdc0c25c92546474fa7e469b10aa60e4d7cfe01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-4a54dca163ff801fc00b6d3c32588b83e37254c0f1da390785b7294464564601 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
-caef0e284488c94c2475512e68b9dac28a704457869a83cc91076ab1a068686a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-59f81d63e90d61142b6e0b395e9da026d36ca9e797f766667f8d1f560f5e8590 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-63ce0e37bbd147ab4d6bff02f658043cc5b81bf4281254c49b144194efc1771b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-2a6f9edb777f44e817d391c57ac953aef52cae54dfca1eba96bce7eb358b9e08 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
-2c57ba043bc19eda7e1982f45b6ca1a230c025b92ccd67feaef0bffcbdce5f3a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
-7d1bcc1fc351733a747bea4585489cda9d5c69efddbafee0f37437fc61ca2a50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
-f3c339e152b89e887ee2e11667b320c0178f11242430016b1ce4467abc84fd2f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.11…
-975c837c308362d2df6b4672bd2dbdd930e12a03c269b1bda94e171ca40bb4ba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
-edd05e3775f3f5686516b56a5c942aff57c9c07fff90f58349424ca2ea18673b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.11/…
-7f068f127650599b0d06892f2978ca782be9b73357b4bc1f47a22423c17b2a9c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-7277f56a8b25074f2fa6e24b71bb5691321a4133a8a5709fc658b4a186bf0d06 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-1788bcfa0d7407b5bcad23bfe59b7e337016972696324fa070e20e03eac26c28 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-9f651ffe19580c7d3564ef7b306c9f52f657557adfd5c66f46234e3e813a9e0d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
-9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-3a6f44a520b15b00406870a3983560eade1f12d47f1ad2218d496a820aeece78 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
-90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-dcbaa927b284b91c5f2aa682aed96cc54c7440535bb5f5b1a8b288258625d430 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
-f6a839e55b7b18912e77833ebf1db17fbf39f38ca8036cc3aa4caff842fcc208 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-c8495e6b2e068fcf6a0e3713b5f20961bcfa93b7cd6fcd204d5200a5604d9ab9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-7ac202c09d0e0e1cfc912e296a0ade1fed9a31c99cd0ca544646545bc8e6961c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9e546e9230d49878be73e38e42b220be6a2bbff7344e8183ceca3ea8871639cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9e2b40772412ed13f71fab9af601a869309311c65b52a61ad79156a3b6a95277 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
-e43bde64a6e6dfd6227cab01ff74b844f87a7de0db3e1e806c35216be0863c9e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
-29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-63ad4f3c396e6e393bbc4e6e59659927a245a4060afba49a21ae3ac83673e5fd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
-04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-39637137b625b341671fa4e5037ed2c8e0880c819dc688a5413981cfc869b553 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
-60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-e7738526af7fb4ab1de0fba6a1f7cb850d87be155ba8125589b668b7f6982d8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
-5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-f9f62aea49e90d6158cf70ff66584a8d443a11986dc5cb8709f5bcd9fc5820e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-02b96f91f7087330e53673fd243c62d834a19601246f62a939d6935938e0a59d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
-4b98bce9c7a002e154785432b60b3a258c962018bf44f3c0435b6b39c3478bd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-fc0602bb978de4aa2259e474a226141e2765286bcde3b8483452614d838dc4b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-c2dedd842ad02a24caddd239fc6816a4e34de5816a86663da525c11432e4d765 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
-094b6a0a2382e13278616759d90f1f2c30df3a7b1f45f9ba68e7f238cc9a6b34 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.11/l…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-6f60f97e605580425bdad227f66050f883982e826df9bbbf49c11f951a9b8122 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
-d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-0171ea5b2aba203848c5301bd32ba2911ff538604ff246b32e4718e0ee140f9b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-0cc8481b1b9d4ec9ed1d698060fa6cb2bff044a49e9ab9cf7eb77fffbfcb3d8c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
-53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
-b9e58b1742083c28de48c0ce8cfa1a2bcdfced1adba33537139d02c6f0314855 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.11/l…
-26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-f2350e12beb4b2814a23b1c9d23f9e7f14b477341f81cbf64d44456029b91d57 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-335a608a2d3e349edcd9befbb91caa2df4fb3de6be0d6d94785850c53f685962 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-8301a5cfffd5c2a627a6837f0262b58c9b2667872098f3c48573af3555e0db90 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
-9aaecfb1d1a2d7dd181a7f0cba90989bec3ccbc3a048fea8566088e44ec34843 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-94c945087ad106a768915b6797c4e82576f739750ac6791fc364786a77d1c805 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
-1ebc5982297301c6c514639617b90c474f683618fb3fc8259d9ee5f24d7e9d3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-54eb3c7f63588a2bc8a2b23637eb31a1d5a21621c828c11496e55247e9ec86e2 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
-93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-368f705c95cc5efab1d87bda3b1536db666299e6b0494303a45618ce7e649788 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-9c24700383b4cc70e22e509cb4643926b5c3d80ca775b47631605f107447b104 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-45ad8c3d8ca524508cf768b61476d0c55d6999d0bbeb121dec5437579973763f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
-232c3c74241c29c8e6091f3cc2923729176ace7a79ce5cbbab0b879dca19f3ac | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
-1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-5b23b6fc712a689dea2ea42a796fc3b8651e2cbccb31e2738ff32acfebe5d725 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
-fe9440cfbcc6f59c206b8d58dd49c7abdcab1348578f0981cd678e2e38f6ed46 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
-19532b5c2a1c1084a6127cad4911c332a13a7bd05c9a1c150443b7d0a56a9a84 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.11…
-dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-5a209b6424536a9543e58bba531251df26e5d91a3decf7809b033e7c958c4e22 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
-ec48cd5fa2897191f7082ec8e5c4a1cacfb86c581983dd5c5f0c2361c8f4f896 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-78d310a6cfcc5baf904c025b6fbadee92f54b073d4aeb2a29a6d5ecb8d8bdb3f | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-7308dce9b721f087c6a394ce001657f549a60f6a3158816c4fac2e7e97dc4dcc | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-0587d723e8b167f99850021a7ccdd60312a1557fb208c8191ae35535d0f6d0c6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
-662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-ad8a2a5087c1d4d873e52297257b46921323e9dc11f6cbc83b71b1db437afa87 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-a0d535fa4f6f16d8d8e3f27c15a66678ad416e1585640e7f7bb2c6fd67bdcfd2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
-d449cb50ac1c2d22c8db56c9e372fd43a50abc384b43117d74e02fe77bfadaba | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
-47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-165fee2a8438d1efc56902b8ea0947a53719a7d62add43d845364a4ee71cf292 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
-ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-e437fd8d3700f81c4895b7fbcde449ac50b8479fe71aea27df7fc3b054d363fb | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-dcc6409cc82183c441408b2fecb410bf4643e63f515f78a4bc867104851f23e7 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-33d4d03bd99af0e5b7660b602129973000c30f42a078117efb2f1e5321f15fe0 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-6fb0c6ae92850fdc6e6eeeae2b2d39ad6eb38699cc54d1f8333085c8fc43244c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
-3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
-0a3c762613f798ea2aa5abce6ccbb7800325467072e374f12234eb5fcb88013d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.11/u…
-bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
-2f7ed08f80f23e1e4d0c9a291ad94f42a9db2dd72218e755d907e5d1ec2f491e | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.11/ui…
-b9e2605937c5cd47ae5e0ba93c31dda48b8e210345f862ebf14890ae58be6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-830297a76265932bf0e316beaf8e8f72e262026960266ad77ba7e8435c797166 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
-f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
-0b1e13252210fc0f6c5aea8dd09af73aabc2efc1e393496f7acee7ca134e32ab | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.11/…
+91d28649b8d92040e48b2b8b40257b9f25f6914884de9068f72cd4e0824d30e2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+1b7eb8073dc9600feb1c406a3ff006dcb325e42c4a19e5d90aeb74087300b659 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+6d1fcaae980a408ebb621574742dc2a80c6f58af71d14e2f0d3087be69a072f1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/74.…
+542d01c36d6a210d11870e0f45f0d4315730309e49b6f0923679644795686e7f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+021ce5b482f1a17ab099ab813ffeec2f4785f6d11e077634876a00a667aad009 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+f726ddcc421be58678c0e7943793705d076bc7a39556623ce54145d6850a39d9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+c259446d965d4e3119c09bca2b8601de46c6498e5cbc0208edde1f9b0a6b4cfd | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+1a56b6ab25aac1fa57c109201a1fd5a7580b5a9c8bcbbba5bf34fbb204d9f5a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+cfeac2bf0c7e9fbc8479643bebe44842fd5344d7216628b2665caba413f8bb28 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+a164280cef70fc790bab403e6acb473069ba9b980b1ef0911c311e6e0d7904bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+a36dad98dacbd5be700f37b1589b9e49141f1c4562d489240e8ac7b069c52181 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/74.0.…
+60361967261a6a2ada30043e6316b50e49f862f00a36e9854130c38266dc969f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+80c7e02d3a9063b089e6a85447aa25a9ee5f70be0e39dae7e126f1e42a1c0e72 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/74.0.1…
+c241700d2620e6e662af61f705af8a76420387e265f68327a6ac9e4d813076a7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+a670be5b1623edda90c00fa05522bb60156cea68a49b879aa2939fcf31e0ade6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/74.0.…
+2a0b963ea60daa25c7a16cbdb9dc50c4c96515637fed871f8c51a4cf3ccb6e90 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+8f97195c5f12d312d87bd9e0d9e242003f2c6b6e95acab647f4d436a275c6686 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/74.0…
+be331d858094dcef92f81dc8f33186431e0a773a717207602b8f57eef78ed934 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+43b9daa0afae7f3465a24db48db034b09fa6fd16b2a60ec91a11be88c0e80f62 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+2e4d468011b1fc4669369f2f57b79400762f974ee9b9df24c5138e54d9eaa380 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+557ae336f2daabce80954ebc953c1b66c7e0e7ca11dfa1aa8554d242f2e3545c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/74.…
+52e95df94d3b06a623e32c84e2f758f25bd401ddd9c423eec2a7a61c6561b4b8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+5b2df0511f7791ec1be7fb1a9fb8158c9ac30c910227ea979caa3cec415a2bf9 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/74.0.…
+131e793b28048b74b263e670f0709522a5fd4e862424b68c7b7d905fd116a6fa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+655cc12d3d0230e3556d964a3f185092d5c9d0b30f6fdd924d6ae1200bcd06c7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+7ca8e20ed29a82e8e315e75b081c42fde4c57a4f55f9ca2eed0c86ca64143b11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+27012332e4485401f3adf6a39a9e474960e17e9c6e90c318c7a7b4f9106d1e5d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/74…
+936a7ca6a767cf38a1c35923212da29c617069e89dea7c4cd170abf028568ba3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+9f0e3735b823a6e946b23320d40fd33b4040ded336a7376b786c1364685d726e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+c9bf71e6bad7d1e09b581beee0d8cf294ae98acff2cf2744240cddb0843ed63f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+82184f91aee968a37c0d610507187ded2de991495fc2da93dd797d29a20c8f11 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/74.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+dd46df536267de99ede7477128039ce5109be6848e6f7898c6d0e10062ba00d7 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+60cac203a3013cfdd076fa328359664c3d7591586558738d4c22afa7e03aa43e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+0c951769cd5148eb7adde30b8f6c530be81d57aef2e4561c58f2129e36df1069 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/74.0.1…
+5c5dd6f7365535d51d5a5896606e2810c67232ed97c8e51d7721c6318cde525d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+77f50673eb9d9bebb7eff44316d226ea8c81cd557dd8b26c4f0f3bf393406502 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/74.0…
+04898afc50f4bbc19e7ea9c5395cf7c739e35c321bae14e17201452c5d88d5c5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+3abc63c2b0e6d074e06a94d931bc9c955e0d729004b3e1d75b23fc79f28c3f21 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/74.0.…
+b6ded745da1c7f9f50d7f54fc1bbc05ec8bcebc6a63b34e486af7860ff104aec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+aebf6981b57b1d3530822a1369a7f4f1bc3fd41a93ff6ad6275959edaf1aed23 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/74.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+1bcac3de55141b371318843f89dee859d2cd864cdca8f40db2b86640b54b5687 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/74.0.1…
+613fca00692258d3f2716d614ea7d780d73e75918e536734b953ec3ca7f0d9c1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+380acbb5063e319a3f8b4ba19b8d502b0ed51f8ea0fe96c6c29608472fd0f76b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/74.…
+2b029b130b16efcb9e35b933fd697c35c3070869f61af7787d85994b61ee245c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+de317b1780181fed56a4ed1307713aa7e9b44a407a6a4cb25ea7421bc7b26975 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/74.0.1…
+70bfaf3bead6e66dd8ee7a8c107460292bf2cf4d99bf6688f136661b5653a9ec | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+de91f10313f9668fd4139dbff8fd1cd96f1af62fbdff68709006bac09d38fdd5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/74…
+ca06c09c285c8242388752889832fecc880ccbaa5382fa3a5af031dce695105f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+f8399fe9498872f93229109b6135a05457edd7ab1acbce9bdf3f7716df9e2f8d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/74.…
+a11c8fa8dbdeeb71d3391746a1d1da64f5e36b2176bc5c67ee6c634601f326b4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+37506a7f38b7971e4e2fe720106399f0b3726d2546f5af0d5e29c9e0546e6a3d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+35e677cca0f19c26a2247572859f868185e9f64f54b1cf011eb3c31d4b23944d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+18ac624f2ddc74d60f68382c8780ad46e475021c414f960e3f127132cb8929c3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/74…
+ac8838358a0c3bbad9c03b229a3af976f2ce6ccdabea5c0e08275b9e5f487baf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+6894407b5a527d2134143644870e2ba484279e3b558d2ede136a789ad0ab4e96 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/74.0…
+5d9820b47a408763eea6db7af95cd59c399ca1e17ae6374ad8f5bc9c9ae97962 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+d40571e533bad2742adbc9415ea396e4fce2bc1a7e679c38499ee6130180e2aa | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/7…
+940cb2c8a288b03ec9cac317707361307d9e2e00983f5aa8c550c5d4d7c24b0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+a21fdfb161f845da2e6ecf9f9621f62979818b774fc992076f5401cd68ec498f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/74…
+33eb2befdfe8d4126badfd18c374f8b391c0987a3b4d14278826543525265d89 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+98d9df3c41387d97c35d394c6b3a7f02e0d7cad7e55e7b82798638e968b8199b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+77db3de124ca6ee35ed471682e172dff6ecec1a24278e451534431740273f4e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+76f39f45dc173972ef933cdf639c121f99bd85e640009fedf0481a3593d145bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+9af10991dc1745a41e69965fc27f7a63395d5767296939f1ec14ea8ffff1c0f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+14156794cc33cdb49f5089e4d16eab1ed483d0923ba2e95db70e93ec954bacfd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+0507e4dec84215f6eeb7579cfe7f6956a984866c7f031d1aa3c7f4c2aa041f5e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+b2ede0b13e2490a27f5fb8b87852d147491c7d58abdd518eba7ccb78fe741867 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/7…
+d2f0640683b9b2efd6969ae14f0c513e95f1ae672aafaaec6d38d8e9466be9b2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cb0afd2570ae76bbd4896e345cdb0057fec3bac60092e350da8868a70e8372f6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+22c957b283609f62e3d3c7c43e04120096bbe3cd85e97be72d234c9ba8173e09 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+279e259b6623d14f5efb92666fb79ae5912ea6876a625beae63d3c5a3937ac2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/74.0…
+d426e4fe4cbe9cc1a8981096bef2918a9a87172e48d043e844b9a3a38835cc14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+9c62a939864cb65a54b369a98fc70d597c6081458dd0a44c9f8ecbba2a3fd173 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/74.0…
+293a472c1d58f8a03699f9726bdc0c25c92546474fa7e469b10aa60e4d7cfe01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+e6b1df4d3acea01bfabafbee9b0155a09a0e5f4dace32231bbaa0ac93a9cc8d9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/74.0.…
+caef0e284488c94c2475512e68b9dac28a704457869a83cc91076ab1a068686a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+275dbff44718a7eb664e339f9ef9f96a00ad209885f801b3fd426e2948a77317 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+63ce0e37bbd147ab4d6bff02f658043cc5b81bf4281254c49b144194efc1771b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+7e19f0095aaa519dc1200d2e81df66ce0de2f06482441f1d39bbb25334c10d4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/74.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+f58d4398ef5bb995825e686a774f982ff35fb8543a8cd37f4e592f6f48998cba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/74.0.1…
+7d1bcc1fc351733a747bea4585489cda9d5c69efddbafee0f37437fc61ca2a50 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.13…
+1fef42437accec06406b715c5fd6a25ccf8812f6dc909712516dddcf6cbea36e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/74.0.13…
+975c837c308362d2df6b4672bd2dbdd930e12a03c269b1bda94e171ca40bb4ba | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.13/…
+0888e32360ff06ad7353bca199f3923e0a749f8b06c6a12b7344bea455ca4d8b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/74.0.13/…
+6123ea728c59b017107b8482d5ba66748dd635e1a87d197ced9c32a6cf7d1841 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+6227e15421d47f10baa71af7ffbd9fc58082b64e8729420a062f2d60b829cd0a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+3aba091bef4dd68d8830a5d67d8a3e846830b2a2d0a0e4d82a02b0d714294083 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+677ced5f44c799a707957f063bf9399b50fe2f0f2457d575f5e1e9aeb56bb6a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f1e74848c9231e48b71222d07ae5304bf6b434b8b0ea44e61a7e240b10124f94 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+b525b6084e6510f31f3c40e5ce9605790be25c63dd0a3ef8cac5d02a3e248a02 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/74.0…
+9f294e19172e6b5ff8f3a9cec07899e9b58d2f9c28c15363ff8a6b3cdbc0a532 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+83a51128be76f11dfc68df503359fd6c32f68dbc1aa5de255a71c65b5cb7e89f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/74.…
+90c13017b92a18bac0e232439b9f3ff42e044b9a95c3c1ed59e7cb97c50e53ed | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+7cf81aa522378ba774b88085ac915c72ed752d0474a33b4e232a336400022ba2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/74.0.…
+f6a839e55b7b18912e77833ebf1db17fbf39f38ca8036cc3aa4caff842fcc208 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+e9317195ae0492fbea0942c867f5658676a81d4d20fdbf3bdd1da33068fd663b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+6dccc97e4ebef46f5b19778b573a866b54b2b5c942e0cd5ca9ed74e747661d68 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+a49a10e4bd6857984e41382cef687e2a6602eead1ad02c7791679fb83e3d9d04 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+4d1dfec02cdba1362fca06cd248eb9523fa25b9c4a95c6d20e8ed9fd17502955 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+235a8ac6e8ec453d5aeef5d4ffb75ad8f946ae935afccfe0bedf1a1b7227ac60 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9e2b40772412ed13f71fab9af601a869309311c65b52a61ad79156a3b6a95277 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+606c4e089748da2f3773ff4b8db348097cfa8f8631bfe55ec7fc531fefa0b061 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/74.0.1…
+29223b574a1906769fc2103a04d59088a421d2fdeba5d97e0f88e35b2ffb1f87 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+2ae0158f04cc0ea572011639a9ac4d773f7031f68244ad7c16a51ab9251575e0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/74.…
+04868ff39208030d8b80b27f6c808986f2c177a9595526d0b0bc66c683422135 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+a18f97e910b911cbbdb1aac87df01c5ce41a9ea60b8c76dd2c2a070d8ae904bf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/7…
+60d7babe2f55c3a83bf6c34c8bbbac9feb8ece7bcb1775a89b06f165110591a8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+dd82b6f6ece2ce67470917eec698b7d1c6a35eff00803667cdd9ffd9528c7767 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/74…
+5a3589efba2218ad0856d642c8beab46c6b61b4f125f902a13bbbb7a035aa995 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+0904755dec83764d2e34ee1eceeb6bf4f22667da35e2473f9c6b07b9cae5c293 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+22c4cec3ddc3c3a65d81c9e58a72e0d544b9def12e371706a3a34405bf48a8d8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+4cc7e5323b2c6c25b97d66427a79a7bb12bd06e70b62f41ce4030a14c90e654a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/7…
+4b98bce9c7a002e154785432b60b3a258c962018bf44f3c0435b6b39c3478bd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+d7c18a756831b051a3c1699f56d1db0045e8cbfdee0772c4c36e26cac171339e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+683c5cf88b798b0ce47a1024dc484cca8b970a7a1260939485bec9f1f182b88e | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.13/l…
+07c4b6ba5f1dd104e0bee8a275c24d3f3f7d011263cb67950a93c27956916b5d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/74.0.13/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+91401c5248e05ec5453798b9a7bdbe459e115dbf40b9a6e6d5c5fc8c3e82ac77 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/74.…
+d09c7c1f51dade8103f510c24e2c0b9ef1fe12848c5934b7de5fc74cd81d1055 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+19523208ee5ddae35ddcfdfcfbe238bcbbab6cfd9f55d4ae6e041b9f1366c94b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+9530380131286cd350df787277522994751ea671948d63d053bd7e66368daa3b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/7…
+53ff9a64082922b68e3a0f5fb2c1598f48ba2e07c28ff0376972dd3215cba5b7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.13/l…
+547c6ddf8d2e555795da581514002d7ae0690c51c18731b83430e8121b4fc3fc | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/74.0.13/l…
+26c2eac42e6a5bebf417d1aa2ea0524a34a073a8e021c96505162b033959e549 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+4a36a41e727eec4ea5a71db5c48fba42ed61d2767bbb9fb98935be1c8d94f554 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+1e2a8112e2bcb07c8bd95cd16a397c421d4c0a1e555a349668875323b94fc714 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+095b57804200167ba9443cdc39679734223a0738c90a36f6533f27e7fde95abe | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+32820376d60504d2740ec710257646a8d3e60954d1cae856519375029d9c2dd4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+c4aee77273306e4136a97e45a3cb44424787e2a032e652a145411ece2df6f1f4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/74.0.…
+6fdc24d3754ff82df6b300d9aa77a4f87e8ea24b3a95545f8f09f120ab976483 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+bd5b22d3a79544f934fff5558269565c12e8c8c4ce0e1f998922270a6c223a06 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/74…
+1ebc5982297301c6c514639617b90c474f683618fb3fc8259d9ee5f24d7e9d3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+50231a2662befb3379d4661ab4d87d13a1b15111d556614cc4d103541d00cc4c | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/74.0…
+93fc9cf55a878b6af1d17fef5e95a213b6208be6e98195f0432bc886a89069aa | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+7a6bab4b21f9e8923f4266ab1ce72e0dd729db3e7cd4a58588758a25e4a3a931 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+4edb9b8fb7cccf80875761a9713fe21dd26a40424304d3580f88155af1d338c6 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+96ff68a18d8e78d698d915410cf67800df8687a3387c95e35c667f18c0b1315e | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+ed86ed8df9395bbf6fb54f4feb35aa7174d8f9a2c2d2f85bfd49fc5eb8cf29e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+36f45d42fef65ec3be408b8924ab0bff71a12a13cdb0928ef2c95e654107f87f | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/74.0.1…
+1dd3d5b63227e03ec66a737249a69a7c9e086a318d0bcbb732a9ba16ebf68d81 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+68915e04460ebff5e50ab7c21cbc854c8066dcd7878c398ef55ea8be602875a1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/74.0…
+fe9440cfbcc6f59c206b8d58dd49c7abdcab1348578f0981cd678e2e38f6ed46 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.13…
+877a3f4c8a95484cd93074473268534a595bce41e90bb7241093a8f2a0476000 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/74.0.13…
+dc6f218467dcde954e63dd3530d5f16fe95a66ed4126ca1cba423137bab3a9e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+a4a7a8c8b9871607661d7d0130c84ee6bb0757f1eb435e9e5c6805f31bcd96fc | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/74.0…
+4e02a5374d923faa8c73fd7a6b832ce91a07d9f02ad47ac81e5e1f022c047d17 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+b4fdcbd9444f2c396722a900d3cb7557b61ffe6445eb2529dc67f2c308ab6146 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/7…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+41b13d81faad55316d3f14219ae5f7a87d9e1cdddbe4d338fbe076d00f39338c | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/74…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+3818cc484eedba019e90d93b0a4caa9b69cd2aaf334e0b74ce909bb6ac664db4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/74.…
+662e118a95c2d72aea8373e966163da6ba925a6abeb9163b69883d642dff2a18 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+0ea2dcbc541a51c217be7bfab7f26397d8781cdff4f2d147d6cc78b6039e7f56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+8468a81c26469afb1e1cec6ad846d6526b9e0a94be3f7f9a5c2099f4a41e6392 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+116ea97bf83fab9e8ba716b843c8306a3892a4abc8475ec6be9d47c0be193054 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+a671b3edad0e5e343ddf0f5dfe6d20f8b171064f166dce9ef282a4c8739b739b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/74.0.1…
+47c2bae8c0f030310bb8e1b9614f2f066e28fdb313b2697d9ad716b1bca5f472 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+aa20b1bdbee00e2d396d6bd001d4ac60f08034e1b6a2df81c3efec61b94e453b | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/74.0.…
+ae397fe3dc1ce4abdd956cc0c53d794a99dc390f91c43393ed6ac2528960e227 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+19467f08a57598e032c75e6b75e8b2862a72adc87b8d230014992917656c69d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+8d94f2b5d3cf2e43bb229a923144d03277bfdc3db4c7ada66f17f6ffddc4b22d | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+6e244c5d5947b40341d297cc99934b52d94630b99b9717078b59b8b8c70417da | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+f3b4815166f0176a17c9d0e4061752ebb554626b08144671142ec393cf238183 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+0eba0c795c636d672726ec25ed847786b2df92be056c640c5c655e55b1d9d17a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/74.…
+3e0e38eed080c2b10f56db91c6e0380b4c9730f440da239ee85c7a125d398f2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.13/u…
+a8f90774efaf451377f9ab61905728fb50ad8c75394b0897ce76895cc7b8033d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/74.0.13/u…
+bf092c353816ea029b579a63e3d3db2dfd08706bbabe4ddd67727551a5d5adaf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.13/ui…
+14e4088c32d7b4915c56305770a702b580945e2decea9e79a7dfc5c36b259b9c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/74.0.13/ui…
+b9e2605937c5cd47ae5e0ba93c31dda48b8e210345f862ebf14890ae58be6ed7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+8a97687a44d3f559a9b4d93ce37a0fb9eee788577ae5ef26a28fb1606741fa69 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/74.0.…
+f590de90365c4d2a7575582f89f6390b90599988e75601881e26d85c0aab48a1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.13/…
+eb96d33e767058997c3a16c4429d09d796249866c4be0e8ed30b3227f7975b0b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/74.0.13/…
cd7d0e09420351e9e69277083b263c8f0aad75a4bac3153776caf1424efae653 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
e1913ae393cae4186dd8603fbbf11f7b76720a216ce3132319a13d57d575f558 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/88.0.…
-4fa3e2cb40e9546b75deb79d829873de9aa85e6b0b0023da4f365eb2a06a9785 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
-52142b340ab2dbdd60c914e3c81e84896dba8a0fd40d89adee183a078c24ee7a | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+72a76c4fa3ae7f124803ec831cf3b9789310bf7db1d79f2f8bf32ae258981292 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
+5f4bba20be1099c4a1f156099155fe159efcedf796130874315f02a99260bee5 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/88.0.20210…
1eb5321d64bdd07865bd8599b6b981193b54661f25bbb8e3ccdc6f8210c9ae38 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
f62de54f66aa4086100f26884927dbff06a1cbea7fb17010312d10d71cea3f01 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
624e642862770feb72c22cd80cd96f0e5d53340ded862987b3ec9c537c8bed29 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
@@ -1006,8 +1003,10 @@ e0050c158cfee4dbc2532e82eab7aebea1d7cd7e34752c9aa27b809c252def2b | https://repo.
f27cd652e9e1fd4abbf24c074f1ca7a1d8a09518f48e067eb0e941b8cc9ccae2 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plu…
e6046e6d0b36cc116fedf4e63cd0f595360a7f05d6ba67672f5e36665b570f55 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
ccaf4317b1776af25c9a32f69688063f651ee6206c3a7e2edc157e9633aa5bc0 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commo…
+bf3e4edef51b7af7f1a8927fb58dca402e87668d246bfd0ad6520b9f2e3adebb | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-uti…
b2b9bc9029d446e2c8cecf709f92196106d11ff7974092880fefdd67ba1b9a49 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
1efcac305ddab304c2206bb1e511095c11d7e23c0df5374373b1526610188ff3 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.…
+4961812a7df6b98c49618bb67d497d5aeabf4e73ec3d346558f162f0c6d39d68 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-sam-with-r…
76c0cac89d5e25bfa789cd988810da3ec6fa832bd839d772618766fdedacbf57 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
d833b01e8539e580dadb806397bdd20062c3046eea1436d9ae153ae60f00575c | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-run…
3c6308bd5926e57890d299afc748f22fd77c555b67ac5c692d205ff3c2092112 | https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-…
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 78e8858..817a844 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 88.0
+ geckoview_version: 88.0.1
torbrowser_branch: 10.5
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 5ef51dd..c5b31f7 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2021.1.27
+version: 2021.4.15
git_url: https://git.torproject.org/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index ba8ad9d..c5c5e18 100644
--- a/projects/tor-browser/allowed_addons.json
+++ b/projects/tor-browser/allowed_addons.json
@@ -17,7 +17,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/13/13299/13299734.png?mo…"
}
],
- "average_daily_users": 628014,
+ "average_daily_users": 612002,
"categories": {
"android": [
"experimental",
@@ -31,7 +31,7 @@
"contributions_url": "https://opencollective.com/darkreader?utm_content=product-page-contribute&u…",
"created": "2017-09-19T07:03:00Z",
"current_version": {
- "id": 5210981,
+ "id": 5219368,
"compatibility": {
"firefox": {
"min": "54.0",
@@ -42,19 +42,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52109…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52193…",
"files": [
{
- "id": 3755341,
- "created": "2021-04-05T09:05:03Z",
- "hash": "sha256:43da8e70e4d3d2ebde549f5a8dea54b59c8793d32049cdaf8868f3da02e94faa",
+ "id": 3763728,
+ "created": "2021-04-21T13:54:44Z",
+ "hash": "sha256:6d0d1ec5ba638bd0b897d3ff2b2e785770302b58c4ba0e735e10b3f9c4227bf6",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 533559,
+ "size": 535888,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3755341/dark_reader-4.9.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3763728/dark_reader-4.9.3…",
"permissions": [
"storage",
"tabs",
@@ -97,10 +97,10 @@
"url": "http://www.opensource.org/licenses/mit-license.php"
},
"release_notes": {
- "en-US": "- Fixed performance bottleneck for websites with CSS variables.\n- Users' fixes for websites."
+ "en-US": "- Dynamic mode bug fixes.\n- Users' fixes for websites."
},
"reviewed": null,
- "version": "4.9.31"
+ "version": "4.9.32"
},
"default_locale": "en-US",
"description": {
@@ -164,7 +164,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-05T10:12:36Z",
+ "last_updated": "2021-04-21T15:04:05Z",
"name": {
"ar": "Dark Reader",
"bn": "Dark Reader",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5623,
- "bayesian_average": 4.560887109180352,
- "count": 3516,
- "text_count": 1160
+ "average": 4.5588,
+ "bayesian_average": 4.557413617113341,
+ "count": 3586,
+ "text_count": 1181
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/reviews/",
"requires_payment": false,
@@ -337,7 +337,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/versions/",
- "weekly_downloads": 24174
+ "weekly_downloads": 22377
},
"notes": null
},
@@ -353,8 +353,11 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 755615,
+ "average_daily_users": 727486,
"categories": {
+ "android": [
+ "security-privacy"
+ ],
"firefox": [
"privacy-security"
]
@@ -362,7 +365,7 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2010-09-16T15:09:10Z",
"current_version": {
- "id": 5172099,
+ "id": 5216160,
"compatibility": {
"firefox": {
"min": "42.0",
@@ -373,19 +376,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/https-everywhere/versions…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/https-everywhere/versions…",
"files": [
{
- "id": 3716461,
- "created": "2021-01-28T01:33:53Z",
- "hash": "sha256:da049748bba7282c0f8c0ab85ac8f494e795e79d6bdc6f9f726d687aa8cc2a1f",
+ "id": 3760520,
+ "created": "2021-04-15T09:00:17Z",
+ "hash": "sha256:8f6342077515669f73ae377346da4447428544559c870678488fa5b6b63d2500",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 1748610,
+ "size": 1752551,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3716461/https_everywhere-…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3760520/https_everywhere-…",
"permissions": [
"webNavigation",
"webRequest",
@@ -406,18 +409,18 @@
"name": {
"en-US": "Multiple"
},
- "url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/license/202…"
+ "url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/license/202…"
},
"release_notes": {
- "en-US": "2021.1.27\n* EASE Mode UI Changes\n* NPM Dependency updates\n* Geckodriver pull update\n* Chromedriver pull update\n* Integrate CSS Grid for Options Page and EASE UI\n* Put Options in new tab"
+ "en-US": "2021.4.15\n* Add DuckDuckGo Smarter Encryption update channel\n* Bloom filter for rulesets\n* Firefox Fenix option page updates for Android users\n* Move to Python 3 from Python 3.6\n* Fix undefined type access\n* Fix empty default types"
},
"reviewed": null,
- "version": "2021.1.27"
+ "version": "2021.4.15"
},
"default_locale": "en-US",
"description": {
"de": "Viele Webseiten unterstützen zwar Verschlüsslung über HTTPS, machen es aber nicht einfach, diese auch zu nutzen. Manchmal bieten diese beispielsweise standardmäßig nur unverschlüsseltes HTTP an oder haben auf verschlüsselten Seiten Links gesetzt, die Sie zurück zu einer unverschlüsselten Version führen.\n\nDie HTTPS-Everywhere Erweiterung löst dieses Problem, indem sie alle Anfragen zu diesen Seiten automatisch zu HTTPS ändert.",
- "en-US": "Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site.\n\nThe HTTPS Everywhere extension fixes these problems by rewriting all requests to these sites to HTTPS.",
+ "en-US": "Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site.\n\nThe HTTPS Everywhere extension fixes these problems by rewriting all requests to these sites to HTTPS.\n\nThe DuckDuckGo Smarter Encryption list is publicly available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0. International license. If you'd like to license the list for commercial use, please reach out to: <a href=\"https://outgoing.prod.mozaws.net/v1/afc2012d629a8b8f6c7fd0704db9ae59ddedc91…" rel=\"nofollow\">https://help.duckduckgo.com/duckduckgo-help-pages/company/contact-us/</a>",
"es": "Muchos sitios en la web ofrecen soporte limitado para cifrado sobre HTTPS, pero hacen difícil su uso. Por ejemplo, puede que usen HTTP no cifrado por defecto o que llenen páginas cifradas con enlaces que vuelvan al sitio no cifrado.\n\nLa extensión HTTPS Everywhere corrige estos problemas reescribiendo todas las peticiones a estos sitios a HTTPS.",
"fr": "Beaucoup de sites web offrent une prise en charge limitée pour le chiffrement via HTTPS, mais la rendent difficile à utiliser. Par exemple, ils peuvent utiliser une adresse par défaut non chiffrée avec HTTPS, ou proposer sur des pages chiffrées uniquement des liens qui retournent sur le site non chiffré.\n\nL’extension HTTPS Everywhere résout le problème en redirigeant toutes les requêtes de ces sites vers HTTPS.",
"it": "Molti siti web offrono un limitato supporto per la crittografia HTTPS, ma lo rendono difficile da usare. Ad esempio, possono avere come impostazione predefinita HTTP non crittato, o inserire in pagine crittate collegamenti che indirizzano a siti non crittati.\n\nL'estensione HTTPS Everywhere consente di correggere questi problemi riscrivendo tutte le richieste a questi siti in HTTPS.",
@@ -448,7 +451,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-01-28T11:24:44Z",
+ "last_updated": "2021-04-15T09:13:13Z",
"name": {
"de": "HTTPS Everywhere",
"en-US": "HTTPS Everywhere",
@@ -483,10 +486,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6668,
- "bayesian_average": 4.664301401571164,
- "count": 2041,
- "text_count": 399
+ "average": 4.6654,
+ "bayesian_average": 4.662905382291137,
+ "count": 2047,
+ "text_count": 402
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -520,7 +523,7 @@
"type": "extension",
"url": "https://www.eff.org/https-everywhere",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/versions/",
- "weekly_downloads": 20714
+ "weekly_downloads": 13172
},
"notes": null
},
@@ -536,7 +539,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 212322,
+ "average_daily_users": 203144,
"categories": {
"android": [
"security-privacy"
@@ -749,10 +752,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.8046,
- "bayesian_average": 4.799789454101996,
- "count": 1095,
- "text_count": 213
+ "average": 4.8015,
+ "bayesian_average": 4.796715220442379,
+ "count": 1103,
+ "text_count": 216
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -848,7 +851,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions/",
- "weekly_downloads": 4959
+ "weekly_downloads": 4579
},
"notes": null
},
@@ -864,7 +867,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 1007827,
+ "average_daily_users": 973105,
"categories": {
"android": [
"security-privacy"
@@ -1408,10 +1411,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7887,
- "bayesian_average": 4.785762842030909,
- "count": 1789,
- "text_count": 364
+ "average": 4.7895,
+ "bayesian_average": 4.786580314622787,
+ "count": 1805,
+ "text_count": 369
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1431,7 +1434,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/versions/",
- "weekly_downloads": 19145
+ "weekly_downloads": 17013
},
"notes": null
},
@@ -1447,7 +1450,7 @@
"picture_url": null
}
],
- "average_daily_users": 5097528,
+ "average_daily_users": 4907631,
"categories": {
"android": [
"security-privacy"
@@ -1459,7 +1462,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5196606,
+ "id": 5224615,
"compatibility": {
"firefox": {
"min": "57.0",
@@ -1470,19 +1473,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/51…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
"files": [
{
- "id": 3740966,
- "created": "2021-03-10T13:37:51Z",
- "hash": "sha256:96783b4e9abed66af81a30f7dbb6560911a9d828b12aadf0ec88b181200c3bfe",
+ "id": 3768975,
+ "created": "2021-04-30T14:01:04Z",
+ "hash": "sha256:8eccfa436bc5852b91ddb9628dca4bfd0ff5d2a302f2e9e595d801fa228c3975",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2758798,
+ "size": 2781722,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3740966/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3768975/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1538,10 +1541,10 @@
"url": "http://www.gnu.org/licenses/gpl-3.0.html"
},
"release_notes": {
- "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/993c4844a604f9df4adc7d0327dfedbaacd28a1…" rel=\"nofollow\">Complete release notes</a>.\n\n<b>Closed as fixed:</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/cb47cb2c01a2d7d899dd8ef6772c49d6af16956…" rel=\"nofollow\">Picker glitch with elements with special characters in their tag name</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/6e6b773c126fb1313b0eb5553db2155115cc012…" rel=\"nofollow\">Expose CNAME-uncloaking as a Privacy option in the Settings pane</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/5a91bdb688dcfe2a791c54906113d2130664c9d…" rel=\"nofol
low\">Impossible to add explicit exception for implicit strict blocking</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/d79b53998d6800c05d5d65263fe4b708b2a9b51…" rel=\"nofollow\">Invalid network filters suggested in element picker</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7f4bccb793a0720711a3e3fe72d3c6104474769…" rel=\"nofollow\">Use +/- in the popup to indicate whether 3-p frames were blocked</a></li></ul>\n<b>Notable commits without en entry in the issue tracker</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/719412530be187ade75ed847aac498911d78886…" rel=\"nofollow\">Fix no-scripting switch not working for SVG-based documents</a></li><li><a href=\"https://outgoing.prod.
mozaws.net/v1/9369af26872b10a885b78d6a99a5ef102c5bea64d4bd78cc219abcf93c51c…" rel=\"nofollow\">Upgrade CodeMirror to 5.59.2</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/fd96d2d87c29688b7d2a7743d0724ea20654338…" rel=\"nofollow\">Fix 'adsbygoogle' neutered script</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/a03a3a9cae294846e9071e87f309b72e323e1e0…" rel=\"nofollow\">Inject procedural cosmetic filterer's code only when needed</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/6b8477f5206b215b8e4c77dad49cd5a04bb787c…" rel=\"nofollow\">Commits history since 1.33.2</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/e3f0fb79aad48d24933c2312664d2c2ddb9b6c9…" rel=\"nofollow\">Complete release notes</a>.\n\n<b>Closed as fixed:</b>\n\n<b>Firefox 66.0 and earlier.</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/ce7103184888b46bb9b994eecefc040917aaa32…" rel=\"nofollow\">Element picker, zapper and procedural filtering not working on facebook.com</a></li></ul>\n<b>Notable commits without en entry in the issue tracker</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/623f9bb88e2f9638897e90afb8cd8eb70a0b34e…" rel=\"nofollow\">Better handle network error when fetching sublist</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7acf95901ef3
82bdab66819d1ce18c42036757d26ee197910e6a094c607c1435/https%3A//github.com/g…" rel=\"nofollow\">Stop autoplay for unset media source with no-large-media-elements</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/d9b8bc963e9aedba4390a9304d27b62e143f601…" rel=\"nofollow\">Use CDN URLs as fall back URLs</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/8de3be3247bb7a5cf133ee29a4eafa70a585262…" rel=\"nofollow\">Commits history since 1.35.0</a>."
},
"reviewed": null,
- "version": "1.34.0"
+ "version": "1.35.2"
},
"default_locale": "en-US",
"description": {
@@ -1631,7 +1634,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-06T14:25:16Z",
+ "last_updated": "2021-05-04T07:47:26Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1776,10 +1779,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7664,
- "bayesian_average": 4.765948302653514,
- "count": 11577,
- "text_count": 3191
+ "average": 4.767,
+ "bayesian_average": 4.766553668766709,
+ "count": 11750,
+ "text_count": 3228
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1834,7 +1837,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions/",
- "weekly_downloads": 119451
+ "weekly_downloads": 113254
},
"notes": null
},
@@ -1850,7 +1853,7 @@
"picture_url": null
}
],
- "average_daily_users": 72317,
+ "average_daily_users": 59717,
"categories": {
"android": [
"photos-media"
@@ -1862,26 +1865,30 @@
"contributions_url": "",
"created": "2017-05-03T08:36:43Z",
"current_version": {
- "id": 5085817,
+ "id": 5220332,
"compatibility": {
+ "firefox": {
+ "min": "42.0",
+ "max": "*"
+ },
"android": {
"min": "48.0",
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
"files": [
{
- "id": 3630185,
- "created": "2020-08-22T20:57:23Z",
- "hash": "sha256:733462096633e1d3f295488552d53db205f3daa93422fc559886a017b686c763",
+ "id": 3764692,
+ "created": "2021-04-22T21:46:53Z",
+ "hash": "sha256:73cfa682e0398ca1b51890340e4a6df3fcea945f54e9e677e9db942152aa614d",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 11927,
+ "size": 12088,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3630185/videowiedergabe_i…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3764692/videowiedergabe_i…",
"permissions": [
"*://*.youtube.com/*",
"*://*.youtube-nocookie.com/*",
@@ -1923,16 +1930,18 @@
"url": "http://www.opensource.org/licenses/mit-license.php"
},
"release_notes": {
- "de": "Neue Version für <a href=\"http://addons.mozilla.org\" rel=\"nofollow\">addons.mozilla.org</a> – kein anderweitigen Änderungen am Code.",
- "en-US": "Version bump for <a href=\"http://addons.mozilla.org\" rel=\"nofollow\">addons.mozilla.org</a> – no code changes."
+ "de": "Experimentelle Verbesserungen der Handhabung von Youtube.",
+ "en-US": "Experimental improvement of Youtube handling.",
+ "ro": "Îmbunătățiri experimentale pentru Youtube."
},
"reviewed": null,
- "version": "1.5.1"
+ "version": "1.6.0"
},
"default_locale": "en-US",
"description": {
- "de": "ACHTUNG: Im neuen Firefox für Android (Version 79 und neuer) funktioniert Videowiedergabe im Hintergrund funktioniert erst <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">ab Firefox 82</a> korrekt.\n\nUnterstützt momentan folgende Seiten:\n<ul><li>Youtube</li><li>Vimeo (Wiedergabe nicht unterbrechen wenn Vollbildmodus beendet wird)</li></ul>",
- "en-US": "ATTENTION: With the new Firefox on Android (Firefox 79 and newer), background playback only properly works starting <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">from Firefox 82</a>.\n\nThe following pages are currently supported:\n<ul><li>Youtube</li><li>Vimeo (don't stop playback when existing fullscreen)</li></ul>"
+ "de": "ACHTUNG: Im neuen Firefox für Android (Version 79 und neuer) funktioniert Videowiedergabe im Hintergrund erst <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">ab Firefox 82</a> korrekt.\n\nUnterstützt momentan folgende Seiten:\n<ul><li>Youtube</li><li>Vimeo (Wiedergabe nicht unterbrechen wenn Vollbildmodus beendet wird)</li></ul>",
+ "en-US": "ATTENTION: With the new Firefox on Android (Firefox 79 and newer), background playback only properly works starting <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">from Firefox 82</a>.\n\nThe following pages are currently supported:\n<ul><li>Youtube</li><li>Vimeo (don't stop playback when existing fullscreen)</li></ul>",
+ "ro": "ATENȚIE: În noul Firefox pentru Android (versiunea 79+), redarea video în fundal funcționează corect abia de la <a href=\"https://outgoing.prod.mozaws.net/v1/05bb7b1ef7f63358eeabcdf19bcac1644202dcd…" rel=\"nofollow\">Firefox 82</a>.\n\nÎn prezent este compatibil cu următoarele site-uri:\n<ul><li>Youtube</li><li>Vimeo (nu întrerupeți redarea atunci când ieșiți din modul fullscreen)</li></ul>"
},
"developer_comments": null,
"edit_url": "https://addons.mozilla.org/en-US/developers/addon/video-background-play-fix…",
@@ -1950,10 +1959,11 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-08-24T07:07:02Z",
+ "last_updated": "2021-04-23T07:50:05Z",
"name": {
"de": "Videowiedergabe im Hintergrund",
- "en-US": "Video Background Play Fix"
+ "en-US": "Video Background Play Fix",
+ "ro": "Redare video în fundal"
},
"previews": [],
"promoted": {
@@ -1963,10 +1973,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5186,
- "bayesian_average": 4.513657926911401,
- "count": 993,
- "text_count": 376
+ "average": 4.5177,
+ "bayesian_average": 4.512746722127399,
+ "count": 991,
+ "text_count": 375
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -1975,12 +1985,14 @@
"status": "public",
"summary": {
"de": "Manches Seiten verhindern die Wiedergabe von Videos im Hintergrund. Dieses Add-on blockiert die von den Webseiten dazu genutzten APIs und ermöglicht so das Abspielen von Videos, auch wenn der betreffende Tab nicht im Vordergrund ist.",
- "en-US": "Some sites may not work with Firefox for Android video background play feature. This add-on provides a quick fix by blocking the Page Visibility API and the Fullscreen API."
+ "en-US": "Some sites may not work with Firefox for Android video background play feature. This add-on provides a quick fix by blocking the Page Visibility API and the Fullscreen API.",
+ "ro": "Unele site-uri împiedică redarea videoclipurilor în fundal. Acest add-on blochează API-urile utilizate de site-urile web pentru acest lucru, permițând redarea videoclipurilor chiar și atunci când tab-ul respectiv nu se află în prim-plan."
},
"support_email": null,
"support_url": {
"de": "https://github.com/mozilla/video-bg-play/issues",
- "en-US": "https://github.com/mozilla/video-bg-play/issues"
+ "en-US": "https://github.com/mozilla/video-bg-play/issues",
+ "ro": "https://github.com/mozilla/video-bg-play/issues"
},
"tags": [
"fullscreen",
@@ -1992,7 +2004,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/ve…",
- "weekly_downloads": 27
+ "weekly_downloads": 268
},
"notes": null
},
@@ -2008,7 +2020,7 @@
"picture_url": null
}
],
- "average_daily_users": 95806,
+ "average_daily_users": 90104,
"categories": {
"android": [
"experimental",
@@ -2147,10 +2159,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.489,
- "bayesian_average": 4.4736798657345735,
- "count": 317,
- "text_count": 88
+ "average": 4.4969,
+ "bayesian_average": 4.48168428583015,
+ "count": 320,
+ "text_count": 89
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2176,7 +2188,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/versions/",
- "weekly_downloads": 1444
+ "weekly_downloads": 1221
},
"notes": null
},
@@ -2189,10 +2201,10 @@
"name": "Armin Sebastian",
"url": "https://addons.mozilla.org/en-US/firefox/user/12929064/",
"username": "dessant",
- "picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
+ "picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 179104,
+ "average_daily_users": 171484,
"categories": {
"android": [
"photos-media",
@@ -2206,7 +2218,7 @@
"contributions_url": "https://www.paypal.com/donate?hosted_button_id=GLL4UNSNU6SQN&utm_content=pr…",
"created": "2017-06-17T15:23:33Z",
"current_version": {
- "id": 5177612,
+ "id": 5222866,
"compatibility": {
"firefox": {
"min": "68.0",
@@ -2217,19 +2229,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
"files": [
{
- "id": 3721973,
- "created": "2021-02-05T20:40:26Z",
- "hash": "sha256:9acdc2c4fe0653119721d43eacce04733f138abd440252fc6a416a2bba8994e3",
+ "id": 3767226,
+ "created": "2021-04-27T19:37:13Z",
+ "hash": "sha256:2419da33e09e330f7f03af1aa3d5725f54324f74f774fa55dc07a088c979ff96",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 653210,
+ "size": 653389,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3721973/search_by_image-3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3767226/search_by_image-3…",
"permissions": [
"contextMenus",
"storage",
@@ -2280,7 +2292,7 @@
"en-US": "Learn more about this release from the <a href=\"https://outgoing.prod.mozaws.net/v1/034fc31c913b4c441795892fe3d65db9f7edbe6…" rel=\"nofollow\">changelog</a>."
},
"reviewed": null,
- "version": "3.6.0"
+ "version": "3.6.2"
},
"default_locale": "en-US",
"description": {
@@ -2302,7 +2314,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-02-08T14:37:26Z",
+ "last_updated": "2021-04-28T06:05:03Z",
"name": {
"en-US": "Search by Image"
},
@@ -2414,10 +2426,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6545,
- "bayesian_average": 4.6486879600831905,
- "count": 874,
- "text_count": 172
+ "average": 4.6555,
+ "bayesian_average": 4.649806788971981,
+ "count": 894,
+ "text_count": 177
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2453,7 +2465,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/versions/",
- "weekly_downloads": 3636
+ "weekly_downloads": 3821
},
"notes": null
},
@@ -2476,7 +2488,7 @@
"picture_url": null
}
],
- "average_daily_users": 44435,
+ "average_daily_users": 39630,
"categories": {
"android": [
"other"
@@ -2758,10 +2770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4562,
- "bayesian_average": 4.451337982622313,
- "count": 993,
- "text_count": 268
+ "average": 4.456,
+ "bayesian_average": 4.451164313203212,
+ "count": 1000,
+ "text_count": 272
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2781,7 +2793,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/versions/",
- "weekly_downloads": 55
+ "weekly_downloads": 70
},
"notes": null
},
@@ -2797,7 +2809,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 392735,
+ "average_daily_users": 375892,
"categories": {
"android": [
"performance",
@@ -2811,7 +2823,7 @@
"contributions_url": "https://www.paypal.me/NoScript?utm_content=product-page-contribute&utm_medi…",
"created": "2005-05-13T10:51:32Z",
"current_version": {
- "id": 5206025,
+ "id": 5226253,
"compatibility": {
"firefox": {
"min": "59.0",
@@ -2822,19 +2834,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5206025",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5226253",
"files": [
{
- "id": 3750385,
- "created": "2021-03-26T19:23:21Z",
- "hash": "sha256:278ee526d7c3ce5236c1a04aa5b6605c81b82399b846e43cdf6f93f11fef1ec9",
+ "id": 3770613,
+ "created": "2021-05-04T07:27:00Z",
+ "hash": "sha256:d089f1db05570fef88b54feb723585a4a52b22e3956bb49d28279fa00f4dfd21",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 612139,
+ "size": 622976,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3750385/noscript_security…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3770613/noscript_security…",
"permissions": [
"contextMenus",
"storage",
@@ -2844,8 +2856,8 @@
"webRequest",
"webRequestBlocking",
"<all_urls>",
- "file://*/*",
- "ftp://*/*"
+ "ftp://*/*",
+ "file://*/*"
],
"optional_permissions": []
}
@@ -2881,10 +2893,10 @@
"url": "http://www.gnu.org/licenses/gpl-2.0.html"
},
"release_notes": {
- "en-US": "v 11.2.4\n============================================================\nx CSS resources prefetching as a mitigation against CSS PP0\n (<a href=\"https://outgoing.prod.mozaws.net/v1/4c9c509b2dcb75bd1907cb1eacded56e1b55224…" rel=\"nofollow\">https://github.com/Yossioren/pp0</a>)\nx [L10n] Updated br, de, el, es, fr, he, is, nl, pl, pt_BR,\n ru, sq, tr, zh_CN\nx [nscl] Inteception of webgl context creation in\n OffscreenCanvas too\n x Fixed configuration upgrades not applied on manual updates\n (thanks Nan for reporting)\nx Mitigation for misbehaving pages repeating failed requests\n in a tight loop\nx [UI] More understandable label for the cascading\n restrictions option\nx [nscl] More refactoring out in NoScript Commons Library\nx [nscl] patchWindow improvements"
+ "en-US": "v 11.2.6\n============================================================\nx [nscl] Various webgl blocking enhancements\nx Remove also sticky-positioned elements with click+DEL on\n scriptless pages (thanks skriptimaahinen for RFE)\nx [L10n] Updated bn, br, ca, da, de, el, es, fr, he, is, it,\n ja, lt, mk, ms, nb, nl, pl, pt_BR, ru, sq, sv_SE, tr,\n zh_CN, zh_TW\nx Fixed race condition causing external CSS not to be\n rendered sometimes when unrestricted CSS is disabled\nx Avoid document rewriting for noscript meta refresh\n emulation in most cases\nx [nscl] Fixed XHTML pages broken when served with\n application/xml MIME type and no \"object\" capability\nx [nscl] Switch early content script configuration to use\n /nscl/service/DocStartInjection.js\nx Configurable \"unrestricted CSS\" capability to for sites\n where the CSS PP0 mitigation should be disabled\n (e.g TRUSTED)\nx [nscl] Fix CSS PP0 mitigation still interfering with some\n WebExtensions (tha
nks barbaz for report)\nx [XSS] Increased sensitivity and specificity of risky\n operator pre-checks"
},
"reviewed": null,
- "version": "11.2.4"
+ "version": "11.2.6"
},
"default_locale": "en-US",
"description": {
@@ -2934,7 +2946,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-01T22:30:12Z",
+ "last_updated": "2021-05-04T12:31:44Z",
"name": {
"de": "NoScript",
"el": "NoScript",
@@ -3022,10 +3034,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.363,
- "bayesian_average": 4.360331882290794,
- "count": 1766,
- "text_count": 719
+ "average": 4.365,
+ "bayesian_average": 4.36234415371495,
+ "count": 1778,
+ "text_count": 723
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/",
"requires_payment": false,
@@ -3082,7 +3094,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/versions/",
- "weekly_downloads": 9272
+ "weekly_downloads": 8743
},
"notes": null
},
@@ -3098,7 +3110,7 @@
"picture_url": null
}
],
- "average_daily_users": 130557,
+ "average_daily_users": 119252,
"categories": {
"android": [
"performance",
@@ -3231,10 +3243,10 @@
"category": "recommended"
},
"ratings": {
- "average": 3.9211,
- "bayesian_average": 3.916735742485764,
- "count": 950,
- "text_count": 341
+ "average": 3.9145,
+ "bayesian_average": 3.910179019078069,
+ "count": 959,
+ "text_count": 346
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3273,7 +3285,7 @@
"type": "extension",
"url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/",
"versions_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/vers…",
- "weekly_downloads": 1582
+ "weekly_downloads": 1671
},
"notes": null
}
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index 58cf4bc..c78f71e 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -78,9 +78,9 @@ input_files:
enable: '[% c("var/snowflake") && ! c("var/android") %]'
- filename: Bundle-Data
enable: '[% ! c("var/android") %]'
- - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
+ - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
name: noscript
- sha256sum: 278ee526d7c3ce5236c1a04aa5b6605c81b82399b846e43cdf6f93f11fef1ec9
+ sha256sum: d089f1db05570fef88b54feb723585a4a52b22e3956bb49d28279fa00f4dfd21
- filename: 'RelativeLink/start-tor-browser.desktop'
enable: '[% c("var/linux") %]'
- filename: 'RelativeLink/execdesktop'
1
0

05 May '21
commit 9699f2527b29cbf2e61854e61353f2b7e5b629a4
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed May 5 21:54:57 2021 +0000
Add stable changelog entries
---
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 41 +++++++++++++++++++++-
1 file changed, 40 insertions(+), 1 deletion(-)
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index ad7f31f..3ca5415 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -12,9 +12,17 @@ Tor Browser 10.5a15 -- April 23 2021
* Build System
* All Platforms
* Update Go to 1.15.11
- * Windows + OS X + Linux
+ * Android
* Bug 40259: Update components for mozilla88-based Fenix [tor-browser-build]
+Tor Browser 10.0.16 -- April 20 2021
+ * Windows + OS X + Linux
+ * Update Firefox to 78.10.0esr
+ * Update NoScript to 11.2.4
+ * Bug 40007: Update domain fronting config for Moat [tor-launcher]
+ * Bug 40390: Add Burmese as a new locale [tor-browser]
+ * Bug 40408: Disallow SVG Context Paint in all web content [tor-browser]
+
Tor Browser 10.5a14 -- April 11 2021
* All Platforms
* Update NoScript to 11.2.4
@@ -25,6 +33,27 @@ Tor Browser 10.5a14 -- April 11 2021
* Windows + OS X + Linux
* Bug 40007: Update domain fronting config for Moat [tor-launcher]
+Tor Browser 10.0.15 -- April 7 2021
+ * All Platforms
+ * Update Openssl to 1.1.1k
+ * Bug 40030: Add 'noscript' capability to NoScript [torbutton]
+ * Android
+ * Update Fenix to 87.0.0
+ * Update NoScript to 11.2.4
+ * Update Tor to 0.4.5.7
+ * Translations update
+ * Bug 40045: Add External App Prompt for Sharing Images [android-components]
+ * Bug 40047: Rebase android-components patches for Fenix 87.0.0 [android-components]
+ * Bug 40151: Remove survey banner on TBA-stable [fenix]
+ * Bug 40153: Rebase Fenix patches to Fenix 87.0.0 [fenix]
+ * Bug 40365: Rebase 10.5 patches on 87.0 [tor-browser]
+ * Bug 40383: Disable dom.enable_event_timing [tor-browser]
+ * Build System
+ * Android
+ * Bug 40162: Build Fenix instrumented tests apk [tor-browser-build]
+ * Bug 40172: Move Gradle compilers out of android-toolchain to own gradle project [tor-browser-build]
+ * Bug 40241: Update components for mozilla87-based Fenix [tor-browser-build]
+
Tor Browser 10.5a13 -- March 24 2021
* Windows + OS X + Linux
* Update Firefox to 78.9.0esr
@@ -48,6 +77,16 @@ Tor Browser 10.5a13 -- March 24 2021
* Windows
* Bug 40252: Bump mingw-w64 and clang for Firefox 78.9 [tor-browser-build]
+Tor Browser 10.0.14 -- March 23 2021
+ * Windows + OS X + Linux
+ * Update Firefox to 78.9.0esr
+ * Update NoScript to 11.2.3
+ * Update Tor to 0.4.5.7
+ * Bug 40031: Remove survey banner on TB-stable [torbutton]
+ * Build System
+ * Windows
+ * Bug 40249: Bump mingw-w64 and clang for Firefox 78.9 [tor-browser-build]
+
Tor Browser 10.5a12 -- March 20 2021
* Android
* Update Fenix to 87.0.0-beta.2
1
0

[Git][tpo/applications/fenix] Pushed new tag tor-browser-88.1.3-10.0-1-build1
by Matthew Finkel (@sysrqb) 05 May '21
by Matthew Finkel (@sysrqb) 05 May '21
05 May '21
Matthew Finkel pushed new tag tor-browser-88.1.3-10.0-1-build1 at The Tor Project / Applications / fenix
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/tree/tor-browser-88.…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix] Pushed new tag tor-browser-88.1.3-10.5-1-build1
by Matthew Finkel (@sysrqb) 05 May '21
by Matthew Finkel (@sysrqb) 05 May '21
05 May '21
Matthew Finkel pushed new tag tor-browser-88.1.3-10.5-1-build1 at The Tor Project / Applications / fenix
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/tree/tor-browser-88.…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix][tor-browser-88.1.3-10.0-1] 8 commits: Bug 40002: Add GitLab CI
by Matthew Finkel (@sysrqb) 05 May '21
by Matthew Finkel (@sysrqb) 05 May '21
05 May '21
Matthew Finkel pushed to branch tor-browser-88.1.3-10.0-1 at The Tor Project / Applications / fenix
Commits:
b26a58d4 by Matthew Finkel at 2021-05-05T15:51:30+00:00
Bug 40002: Add GitLab CI
Pin CI builds to runners with 32GB of RAM to avoid OOM conditions.
- - - - -
275e5be9 by Matthew Finkel at 2021-05-05T15:51:30+00: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
- - - - -
d49b5dac by Matthew Finkel at 2021-05-05T15:51:30+00: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
Bug 40162: Disable Numbus experiments
- - - - -
78dbedb2 by Georg Koppen at 2021-05-05T15:51:30+00: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.
- - - - -
1daefaa6 by Matthew Finkel at 2021-05-05T15:51:30+00: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
- - - - -
04c9b1d9 by Alex Catarineu at 2021-05-05T15:51:30+00: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
- - - - -
3a1b7e08 by Alex Catarineu at 2021-05-05T15:51:30+00: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
- - - - -
1dcd478b by Matthew Finkel at 2021-05-05T23:12:32+00:00
Add Security Level UI
Bug 40026: Implement Security Level settings
Bug 40026: Integrate Security Level 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/FeatureFlags.kt
- 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
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/a4f6a6859722…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/a4f6a6859722…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix][tor-browser-88.1.3-10.5-1] 8 commits: Bug 40002: Add GitLab CI
by Matthew Finkel (@sysrqb) 05 May '21
by Matthew Finkel (@sysrqb) 05 May '21
05 May '21
Matthew Finkel pushed to branch tor-browser-88.1.3-10.5-1 at The Tor Project / Applications / fenix
Commits:
b26a58d4 by Matthew Finkel at 2021-05-05T15:51:30+00:00
Bug 40002: Add GitLab CI
Pin CI builds to runners with 32GB of RAM to avoid OOM conditions.
- - - - -
275e5be9 by Matthew Finkel at 2021-05-05T15:51:30+00: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
- - - - -
d49b5dac by Matthew Finkel at 2021-05-05T15:51:30+00: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
Bug 40162: Disable Numbus experiments
- - - - -
78dbedb2 by Georg Koppen at 2021-05-05T15:51:30+00: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.
- - - - -
1daefaa6 by Matthew Finkel at 2021-05-05T15:51:30+00: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
- - - - -
04c9b1d9 by Alex Catarineu at 2021-05-05T15:51:30+00: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
- - - - -
3a1b7e08 by Alex Catarineu at 2021-05-05T15:51:30+00: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
- - - - -
1dcd478b by Matthew Finkel at 2021-05-05T23:12:32+00:00
Add Security Level UI
Bug 40026: Implement Security Level settings
Bug 40026: Integrate Security Level 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/FeatureFlags.kt
- 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
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/a4f6a6859722…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/a4f6a6859722…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/fenix] Pushed new branch tor-browser-88.1.3-10.0-1
by Matthew Finkel (@sysrqb) 05 May '21
by Matthew Finkel (@sysrqb) 05 May '21
05 May '21
Matthew Finkel pushed new branch tor-browser-88.1.3-10.0-1 at The Tor Project / Applications / fenix
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/tree/tor-browser-88.…
You're receiving this email because of your account on gitlab.torproject.org.
1
0