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
- 18632 discussions

[tor-browser/tor-browser-90.0-10.5-1] Bug 32658: Create a new MAR signing key
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 30742b287716bf327867d011efa44eed9acabc4f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Jan 17 12:54:31 2020 +0000
Bug 32658: Create a new MAR signing key
It's time for our rotation again: Move the backup key in the front
position and add a new backup key.
Bug 33803: Move our primary nightly MAR signing key to tor-browser
Bug 33803: Add a secondary nightly MAR signing key
---
.../update/updater/nightly_aurora_level3_primary.der | Bin 1225 -> 1245 bytes
.../updater/nightly_aurora_level3_secondary.der | Bin 1225 -> 1245 bytes
toolkit/mozapps/update/updater/release_primary.der | Bin 1225 -> 1229 bytes
toolkit/mozapps/update/updater/release_secondary.der | Bin 1225 -> 1229 bytes
4 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der b/toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der
index 44fd95dcff89..d579cf801e1a 100644
Binary files a/toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der and b/toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der differ
diff --git a/toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der b/toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der
index 90f8e6e82c63..7cbfa77d06e7 100644
Binary files a/toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der and b/toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der differ
diff --git a/toolkit/mozapps/update/updater/release_primary.der b/toolkit/mozapps/update/updater/release_primary.der
index 1d94f88ad73b..0103a171de88 100644
Binary files a/toolkit/mozapps/update/updater/release_primary.der and b/toolkit/mozapps/update/updater/release_primary.der differ
diff --git a/toolkit/mozapps/update/updater/release_secondary.der b/toolkit/mozapps/update/updater/release_secondary.der
index 474706c4b73c..fcee3944e9b7 100644
Binary files a/toolkit/mozapps/update/updater/release_secondary.der and b/toolkit/mozapps/update/updater/release_secondary.der differ
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 32220: Improve the letterboxing experience
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit e67c532e6d15bc8d3ff422ed5a09a6f1ba346862
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Oct 28 17:42:17 2019 -0700
Bug 32220: Improve the letterboxing experience
CSS and JS changes to alter the UX surrounding letterboxing. The
browser element containing page content is now anchored to the bottom
of the toolbar, and the remaining letterbox margin is the same color
as the firefox chrome. The letterbox margin and border are tied to
the currently selected theme.
Also adds a 'needsLetterbox' property to tabbrowser.xml to fix a race
condition present when using the 'isEmpty' property. Using 'isEmpty'
as a proxy for 'needsLetterbox' resulted in over-zealous/unnecessary
letterboxing of about:blank tabs.
---
browser/base/content/browser.css | 8 ++
browser/base/content/tabbrowser-tab.js | 9 +++
browser/themes/shared/tabs.inc.css | 6 ++
.../components/resistfingerprinting/RFPHelper.jsm | 94 +++++++++++++++++++---
4 files changed, 105 insertions(+), 12 deletions(-)
diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css
index ee7a87ea3b9d..c4ce845235de 100644
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -99,6 +99,14 @@ body {
display: none;
}
+
+.browserStack > browser.letterboxing {
+ border-color: var(--chrome-content-separator-color);
+ border-style: solid;
+ border-width : 1px;
+ border-top: none;
+}
+
%ifdef MENUBAR_CAN_AUTOHIDE
#toolbar-menubar[autohide="true"] {
overflow: hidden;
diff --git a/browser/base/content/tabbrowser-tab.js b/browser/base/content/tabbrowser-tab.js
index 09b088d59a90..d8d124439cc4 100644
--- a/browser/base/content/tabbrowser-tab.js
+++ b/browser/base/content/tabbrowser-tab.js
@@ -258,6 +258,15 @@
return true;
}
+ get needsLetterbox() {
+ let browser = this.linkedBrowser;
+ if (isBlankPageURL(browser.currentURI.spec)) {
+ return false;
+ }
+
+ return true;
+ }
+
get lastAccessed() {
return this._lastAccessed == Infinity ? Date.now() : this._lastAccessed;
}
diff --git a/browser/themes/shared/tabs.inc.css b/browser/themes/shared/tabs.inc.css
index 644d8d5fc97c..1732787434a0 100644
--- a/browser/themes/shared/tabs.inc.css
+++ b/browser/themes/shared/tabs.inc.css
@@ -70,6 +70,12 @@
background-color: var(--tabpanel-background-color);
}
+/* extend down the toolbar's colors when letterboxing is enabled*/
+#tabbrowser-tabpanels.letterboxing {
+ background-color: var(--toolbar-bgcolor);
+ background-image: var(--toolbar-bgimage);
+}
+
#tabbrowser-tabs,
#tabbrowser-arrowscrollbox,
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > .tabbrowser-tab[pinned] {
diff --git a/toolkit/components/resistfingerprinting/RFPHelper.jsm b/toolkit/components/resistfingerprinting/RFPHelper.jsm
index 166ad21e9013..9520d8720631 100644
--- a/toolkit/components/resistfingerprinting/RFPHelper.jsm
+++ b/toolkit/components/resistfingerprinting/RFPHelper.jsm
@@ -40,6 +40,7 @@ class _RFPHelper {
// ============================================================================
constructor() {
this._initialized = false;
+ this._borderDimensions = null;
}
init() {
@@ -361,6 +362,24 @@ class _RFPHelper {
});
}
+ getBorderDimensions(aBrowser) {
+ if (this._borderDimensions) {
+ return this._borderDimensions;
+ }
+
+ const win = aBrowser.ownerGlobal;
+ const browserStyle = win.getComputedStyle(aBrowser);
+
+ this._borderDimensions = {
+ top : parseInt(browserStyle.borderTopWidth),
+ right: parseInt(browserStyle.borderRightWidth),
+ bottom : parseInt(browserStyle.borderBottomWidth),
+ left : parseInt(browserStyle.borderLeftWidth),
+ };
+
+ return this._borderDimensions;
+ }
+
_addOrClearContentMargin(aBrowser) {
let tab = aBrowser.getTabBrowser().getTabForBrowser(aBrowser);
@@ -369,9 +388,13 @@ class _RFPHelper {
return;
}
+ // we add the letterboxing class even if the content does not need letterboxing
+ // in which case margins are set such that the borders are hidden
+ aBrowser.classList.add("letterboxing");
+
// We should apply no margin around an empty tab or a tab with system
// principal.
- if (tab.isEmpty || aBrowser.contentPrincipal.isSystemPrincipal) {
+ if (!tab.needsLetterbox || aBrowser.contentPrincipal.isSystemPrincipal) {
this._clearContentViewMargin(aBrowser);
} else {
this._roundContentView(aBrowser);
@@ -539,10 +562,29 @@ class _RFPHelper {
// Calculating the margins around the browser element in order to round the
// content viewport. We will use a 200x100 stepping if the dimension set
// is not given.
- let margins = calcMargins(containerWidth, containerHeight);
+
+ const borderDimensions = this.getBorderDimensions(aBrowser);
+ const marginDims = calcMargins(containerWidth, containerHeight - borderDimensions.top);
+
+ let margins = {
+ top : 0,
+ right : 0,
+ bottom : 0,
+ left : 0,
+ };
+
+ // snap browser element to top
+ margins.top = 0;
+ // and leave 'double' margin at the bottom
+ margins.bottom = 2 * marginDims.height - borderDimensions.bottom;
+ // identical margins left and right
+ margins.right = marginDims.width - borderDimensions.right;
+ margins.left = marginDims.width - borderDimensions.left;
+
+ const marginStyleString = `${margins.top}px ${margins.right}px ${margins.bottom}px ${margins.left}px`;
// If the size of the content is already quantized, we do nothing.
- if (aBrowser.style.margin == `${margins.height}px ${margins.width}px`) {
+ if (aBrowser.style.margin === marginStyleString) {
log("_roundContentView[" + logId + "] is_rounded == true");
if (this._isLetterboxingTesting) {
log(
@@ -563,19 +605,35 @@ class _RFPHelper {
"_roundContentView[" +
logId +
"] setting margins to " +
- margins.width +
- " x " +
- margins.height
+ marginStyleString
);
- // One cannot (easily) control the color of a margin unfortunately.
- // An initial attempt to use a border instead of a margin resulted
- // in offset event dispatching; so for now we use a colorless margin.
- aBrowser.style.margin = `${margins.height}px ${margins.width}px`;
+
+ // The margin background color is determined by the background color of the
+ // window's tabpanels#tabbrowser-tabpanels element
+ aBrowser.style.margin = marginStyleString;
});
}
_clearContentViewMargin(aBrowser) {
+ const borderDimensions = this.getBorderDimensions(aBrowser);
+ // set the margins such that the browser elements border is visible up top, but
+ // are rendered off-screen on the remaining sides
+ let margins = {
+ top : 0,
+ right : -borderDimensions.right,
+ bottom : -borderDimensions.bottom,
+ left : -borderDimensions.left,
+ };
+ const marginStyleString = `${margins.top}px ${margins.right}px ${margins.bottom}px ${margins.left}px`;
+
+ aBrowser.ownerGlobal.requestAnimationFrame(() => {
+ aBrowser.style.margin = marginStyleString;
+ });
+ }
+
+ _removeLetterboxing(aBrowser) {
aBrowser.ownerGlobal.requestAnimationFrame(() => {
+ aBrowser.classList.remove("letterboxing");
aBrowser.style.margin = "";
});
}
@@ -593,6 +651,11 @@ class _RFPHelper {
aWindow.gBrowser.addTabsProgressListener(this);
aWindow.addEventListener("TabOpen", this);
+ const tabPanel = aWindow.document.getElementById("tabbrowser-tabpanels");
+ if (tabPanel) {
+ tabPanel.classList.add("letterboxing");
+ }
+
// Rounding the content viewport.
this._updateMarginsForTabsInWindow(aWindow);
}
@@ -616,10 +679,17 @@ class _RFPHelper {
tabBrowser.removeTabsProgressListener(this);
aWindow.removeEventListener("TabOpen", this);
- // Clear all margins and tooltip for all browsers.
+ // revert tabpanel's background colors to default
+ const tabPanel = aWindow.document.getElementById("tabbrowser-tabpanels");
+ if (tabPanel) {
+ tabPanel.classList.remove("letterboxing");
+ }
+
+ // and revert each browser element to default,
+ // restore default margins and remove letterboxing class
for (let tab of tabBrowser.tabs) {
let browser = tab.linkedBrowser;
- this._clearContentViewMargin(browser);
+ this._removeLetterboxing(browser);
}
}
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 30237: Add v3 onion services client authentication prompt
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit b50c3862a45bc601c47885efdf18f154bcd93b21
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Nov 12 16:11:05 2019 -0500
Bug 30237: Add v3 onion services client authentication prompt
When Tor informs the browser that client authentication is needed,
temporarily load about:blank instead of about:neterror and prompt
for the user's key.
If a correctly formatted key is entered, use Tor's ONION_CLIENT_AUTH_ADD
control port command to add the key (via Torbutton's control port
module) and reload the page.
If the user cancels the prompt, display the standard about:neterror
"Unable to connect" page. This requires a small change to
browser/actors/NetErrorChild.jsm to account for the fact that the
docShell no longer has the failedChannel information. The failedChannel
is used to extract TLS-related error info, which is not applicable
in the case of a canceled .onion authentication prompt.
Add a leaveOpen option to PopupNotifications.show so we can display
error messages within the popup notification doorhanger without
closing the prompt.
Add support for onion services strings to the TorStrings module.
Add support for Tor extended SOCKS errors (Tor proposal 304) to the
socket transport and SOCKS layers. Improved display of all of these
errors will be implemented as part of bug 30025.
Also fixes bug 19757:
Add a "Remember this key" checkbox to the client auth prompt.
Add an "Onion Services Authentication" section within the
about:preferences "Privacy & Security section" to allow
viewing and removal of v3 onion client auth keys that have
been stored on disk.
Also fixes bug 19251: use enhanced error pages for onion service errors.
---
browser/actors/NetErrorChild.jsm | 7 +
browser/base/content/browser.js | 10 +
browser/base/content/browser.xhtml | 3 +
browser/base/content/certerror/aboutNetError.js | 10 +-
browser/base/content/certerror/aboutNetError.xhtml | 1 +
browser/base/content/tab-content.js | 6 +
browser/components/moz.build | 1 +
.../content/authNotificationIcon.inc.xhtml | 6 +
.../onionservices/content/authPopup.inc.xhtml | 16 ++
.../onionservices/content/authPreferences.css | 20 ++
.../content/authPreferences.inc.xhtml | 19 ++
.../onionservices/content/authPreferences.js | 66 +++++
.../components/onionservices/content/authPrompt.js | 316 +++++++++++++++++++++
.../components/onionservices/content/authUtil.jsm | 47 +++
.../onionservices/content/netError/browser.svg | 3 +
.../onionservices/content/netError/network.svg | 3 +
.../content/netError/onionNetError.css | 65 +++++
.../content/netError/onionNetError.js | 244 ++++++++++++++++
.../onionservices/content/netError/onionsite.svg | 7 +
.../onionservices/content/onionservices.css | 69 +++++
.../onionservices/content/savedKeysDialog.js | 259 +++++++++++++++++
.../onionservices/content/savedKeysDialog.xhtml | 42 +++
browser/components/onionservices/jar.mn | 9 +
browser/components/onionservices/moz.build | 1 +
browser/components/preferences/preferences.xhtml | 1 +
browser/components/preferences/privacy.inc.xhtml | 2 +
browser/components/preferences/privacy.js | 7 +
browser/themes/shared/notification-icons.inc.css | 3 +
docshell/base/nsDocShell.cpp | 81 +++++-
dom/ipc/BrowserParent.cpp | 21 ++
dom/ipc/BrowserParent.h | 3 +
dom/ipc/PBrowser.ipdl | 9 +
js/xpconnect/src/xpc.msg | 10 +
netwerk/base/nsSocketTransport2.cpp | 6 +
netwerk/socket/nsSOCKSIOLayer.cpp | 49 ++++
toolkit/modules/PopupNotifications.jsm | 6 +
toolkit/modules/RemotePageAccessManager.jsm | 1 +
.../lib/environments/frame-script.js | 1 +
xpcom/base/ErrorList.py | 22 ++
39 files changed, 1450 insertions(+), 2 deletions(-)
diff --git a/browser/actors/NetErrorChild.jsm b/browser/actors/NetErrorChild.jsm
index 82978412fe24..164fb7c95cd1 100644
--- a/browser/actors/NetErrorChild.jsm
+++ b/browser/actors/NetErrorChild.jsm
@@ -13,6 +13,8 @@ const { RemotePageChild } = ChromeUtils.import(
"resource://gre/actors/RemotePageChild.jsm"
);
+const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm");
+
XPCOMUtils.defineLazyServiceGetter(
this,
"gSerializationHelper",
@@ -33,6 +35,7 @@ class NetErrorChild extends RemotePageChild {
"RPMAddToHistogram",
"RPMRecordTelemetryEvent",
"RPMGetHttpResponseHeader",
+ "RPMGetTorStrings",
];
this.exportFunctions(exportableFunctions);
}
@@ -115,4 +118,8 @@ class NetErrorChild extends RemotePageChild {
return "";
}
+
+ RPMGetTorStrings() {
+ return Cu.cloneInto(TorStrings.onionServices, this.contentWindow);
+ }
}
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 32a35dd3dddc..501519db864e 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -230,6 +230,11 @@ XPCOMUtils.defineLazyScriptGetter(
["SecurityLevelButton"],
"chrome://browser/content/securitylevel/securityLevel.js"
);
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["OnionAuthPrompt"],
+ "chrome://browser/content/onionservices/authPrompt.js"
+);
XPCOMUtils.defineLazyScriptGetter(
this,
"gEditItemOverlay",
@@ -1804,6 +1809,9 @@ var gBrowserInit = {
// Init the SecuritySettingsButton
SecurityLevelButton.init();
+ // Init the OnionAuthPrompt
+ OnionAuthPrompt.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
@@ -2530,6 +2538,8 @@ var gBrowserInit = {
SecurityLevelButton.uninit();
+ OnionAuthPrompt.uninit();
+
gAccessibilityServiceIndicator.uninit();
if (gToolbarKeyNavEnabled) {
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 6b4120b34b4b..e4f3363e2180 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -33,6 +33,7 @@
<?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"?>
+<?xml-stylesheet href="chrome://browser/content/onionservices/onionservices.css" type="text/css"?>
# All DTD information is stored in a separate file so that it can be shared by
# hiddenWindowMac.xhtml.
@@ -654,6 +655,7 @@
#include ../../components/downloads/content/downloadsPanel.inc.xhtml
#include ../../../devtools/startup/enableDevToolsPopup.inc.xhtml
#include ../../components/securitylevel/content/securityLevelPanel.inc.xhtml
+#include ../../components/onionservices/content/authPopup.inc.xhtml
#include browser-allTabsMenu.inc.xhtml
<tooltip id="dynamic-shortcut-tooltip"
@@ -1947,6 +1949,7 @@
data-l10n-id="urlbar-indexed-db-notification-anchor"/>
<image id="password-notification-icon" class="notification-anchor-icon login-icon" role="button"
data-l10n-id="urlbar-password-notification-anchor"/>
+#include ../../components/onionservices/content/authNotificationIcon.inc.xhtml
<stack id="plugins-notification-icon" class="notification-anchor-icon" role="button" align="center" data-l10n-id="urlbar-plugins-notification-anchor">
<image class="plugin-icon" />
<image id="plugin-icon-badge" />
diff --git a/browser/base/content/certerror/aboutNetError.js b/browser/base/content/certerror/aboutNetError.js
index 31c4838a053d..e5b223025a8b 100644
--- a/browser/base/content/certerror/aboutNetError.js
+++ b/browser/base/content/certerror/aboutNetError.js
@@ -3,6 +3,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
/* eslint-env mozilla/frame-script */
+/* import-globals-from ../../components/onionservices/content/netError/onionNetError.js */
import "chrome://global/content/certviewer/pvutils_bundle.js";
import "chrome://global/content/certviewer/asn1js_bundle.js";
@@ -307,7 +308,10 @@ function initPage() {
errDesc = document.getElementById("ed_generic");
}
- setErrorPageStrings(err);
+ const isOnionError = err.startsWith("onionServices.");
+ if (!isOnionError) {
+ setErrorPageStrings(err);
+ }
var sd = document.getElementById("errorShortDescText");
if (sd) {
@@ -459,6 +463,10 @@ function initPage() {
span.textContent = HOST_NAME;
}
}
+
+ if (isOnionError) {
+ OnionServicesAboutNetError.initPage(document);
+ }
}
function setupBlockingReportingUI() {
diff --git a/browser/base/content/certerror/aboutNetError.xhtml b/browser/base/content/certerror/aboutNetError.xhtml
index c645a2f2cc77..bf9a8fd58347 100644
--- a/browser/base/content/certerror/aboutNetError.xhtml
+++ b/browser/base/content/certerror/aboutNetError.xhtml
@@ -209,5 +209,6 @@
</div>
</body>
<script src="chrome://browser/content/certerror/aboutNetErrorCodes.js"/>
+ <script src="chrome://browser/content/onionservices/netError/onionNetError.js"/>
<script type="module" src="chrome://browser/content/certerror/aboutNetError.js"/>
</html>
diff --git a/browser/base/content/tab-content.js b/browser/base/content/tab-content.js
index 83e55cf5ed87..96360a4307d2 100644
--- a/browser/base/content/tab-content.js
+++ b/browser/base/content/tab-content.js
@@ -7,4 +7,10 @@
var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+var { OnionAuthUtil } = ChromeUtils.import(
+ "chrome://browser/content/onionservices/authUtil.jsm"
+);
+
Services.obs.notifyObservers(this, "tab-content-frameloader-created");
+
+OnionAuthUtil.addCancelMessageListener(this, docShell);
diff --git a/browser/components/moz.build b/browser/components/moz.build
index e99fa19d896a..277d9ba42f3b 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -39,6 +39,7 @@ DIRS += [
"fxmonitor",
"migration",
"newtab",
+ "onionservices",
"originattributes",
"ion",
"places",
diff --git a/browser/components/onionservices/content/authNotificationIcon.inc.xhtml b/browser/components/onionservices/content/authNotificationIcon.inc.xhtml
new file mode 100644
index 000000000000..91274d612739
--- /dev/null
+++ b/browser/components/onionservices/content/authNotificationIcon.inc.xhtml
@@ -0,0 +1,6 @@
+# Copyright (c) 2020, The Tor Project, Inc.
+
+<image id="tor-clientauth-notification-icon"
+ class="notification-anchor-icon tor-clientauth-icon"
+ role="button"
+ tooltiptext="&torbutton.onionServices.authPrompt.tooltip;"/>
diff --git a/browser/components/onionservices/content/authPopup.inc.xhtml b/browser/components/onionservices/content/authPopup.inc.xhtml
new file mode 100644
index 000000000000..bd0ec3aa0b00
--- /dev/null
+++ b/browser/components/onionservices/content/authPopup.inc.xhtml
@@ -0,0 +1,16 @@
+# Copyright (c) 2020, The Tor Project, Inc.
+
+<popupnotification id="tor-clientauth-notification" hidden="true">
+ <popupnotificationcontent orient="vertical">
+ <description id="tor-clientauth-notification-desc"/>
+ <label id="tor-clientauth-notification-learnmore"
+ class="text-link popup-notification-learnmore-link"
+ is="text-link"/>
+ <html:div>
+ <html:input id="tor-clientauth-notification-key" type="password"/>
+ <html:div id="tor-clientauth-warning"/>
+ <checkbox id="tor-clientauth-persistkey-checkbox"
+ label="&torbutton.onionServices.authPrompt.persistCheckboxLabel;"/>
+ </html:div>
+ </popupnotificationcontent>
+</popupnotification>
diff --git a/browser/components/onionservices/content/authPreferences.css b/browser/components/onionservices/content/authPreferences.css
new file mode 100644
index 000000000000..b3fb79b26ddc
--- /dev/null
+++ b/browser/components/onionservices/content/authPreferences.css
@@ -0,0 +1,20 @@
+/* Copyright (c) 2020, The Tor Project, Inc. */
+
+#torOnionServiceKeys-overview-container {
+ margin-right: 30px;
+}
+
+#onionservices-savedkeys-tree treechildren::-moz-tree-cell-text {
+ font-size: 80%;
+}
+
+#onionservices-savedkeys-errorContainer {
+ margin-top: 4px;
+ min-height: 3em;
+}
+
+#onionservices-savedkeys-errorIcon {
+ margin-right: 4px;
+ list-style-image: url("chrome://browser/skin/warning.svg");
+ visibility: hidden;
+}
diff --git a/browser/components/onionservices/content/authPreferences.inc.xhtml b/browser/components/onionservices/content/authPreferences.inc.xhtml
new file mode 100644
index 000000000000..f69c9dde66a2
--- /dev/null
+++ b/browser/components/onionservices/content/authPreferences.inc.xhtml
@@ -0,0 +1,19 @@
+# Copyright (c) 2020, The Tor Project, Inc.
+
+<groupbox id="torOnionServiceKeys" orient="vertical"
+ data-category="panePrivacy" hidden="true">
+ <label><html:h2 id="torOnionServiceKeys-header"/></label>
+ <hbox>
+ <description id="torOnionServiceKeys-overview-container" flex="1">
+ <html:span id="torOnionServiceKeys-overview"
+ class="tail-with-learn-more"/>
+ <label id="torOnionServiceKeys-learnMore" class="learnMore text-link"
+ is="text-link"/>
+ </description>
+ <vbox align="end">
+ <button id="torOnionServiceKeys-savedKeys"
+ is="highlightable-button"
+ class="accessory-button"/>
+ </vbox>
+ </hbox>
+</groupbox>
diff --git a/browser/components/onionservices/content/authPreferences.js b/browser/components/onionservices/content/authPreferences.js
new file mode 100644
index 000000000000..52f8272020cc
--- /dev/null
+++ b/browser/components/onionservices/content/authPreferences.js
@@ -0,0 +1,66 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "TorStrings",
+ "resource:///modules/TorStrings.jsm"
+);
+
+/*
+ Onion Services Client Authentication Preferences Code
+
+ Code to handle init and update of onion services authentication section
+ in about:preferences#privacy
+*/
+
+const OnionServicesAuthPreferences = {
+ selector: {
+ groupBox: "#torOnionServiceKeys",
+ header: "#torOnionServiceKeys-header",
+ overview: "#torOnionServiceKeys-overview",
+ learnMore: "#torOnionServiceKeys-learnMore",
+ savedKeysButton: "#torOnionServiceKeys-savedKeys",
+ },
+
+ init() {
+ // populate XUL with localized strings
+ this._populateXUL();
+ },
+
+ _populateXUL() {
+ const groupbox = document.querySelector(this.selector.groupBox);
+
+ let elem = groupbox.querySelector(this.selector.header);
+ elem.textContent = TorStrings.onionServices.authPreferences.header;
+
+ elem = groupbox.querySelector(this.selector.overview);
+ elem.textContent = TorStrings.onionServices.authPreferences.overview;
+
+ elem = groupbox.querySelector(this.selector.learnMore);
+ elem.setAttribute("value", TorStrings.onionServices.learnMore);
+ elem.setAttribute("href", TorStrings.onionServices.learnMoreURL);
+
+ elem = groupbox.querySelector(this.selector.savedKeysButton);
+ elem.setAttribute(
+ "label",
+ TorStrings.onionServices.authPreferences.savedKeys
+ );
+ elem.addEventListener("command", () =>
+ OnionServicesAuthPreferences.onViewSavedKeys()
+ );
+ },
+
+ onViewSavedKeys() {
+ gSubDialog.open(
+ "chrome://browser/content/onionservices/savedKeysDialog.xhtml"
+ );
+ },
+}; // OnionServicesAuthPreferences
+
+Object.defineProperty(this, "OnionServicesAuthPreferences", {
+ value: OnionServicesAuthPreferences,
+ enumerable: true,
+ writable: false,
+});
diff --git a/browser/components/onionservices/content/authPrompt.js b/browser/components/onionservices/content/authPrompt.js
new file mode 100644
index 000000000000..d4a59ac46487
--- /dev/null
+++ b/browser/components/onionservices/content/authPrompt.js
@@ -0,0 +1,316 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+XPCOMUtils.defineLazyModuleGetters(this, {
+ OnionAuthUtil: "chrome://browser/content/onionservices/authUtil.jsm",
+ CommonUtils: "resource://services-common/utils.js",
+ TorStrings: "resource:///modules/TorStrings.jsm",
+});
+
+const OnionAuthPrompt = (function() {
+ // OnionServicesAuthPrompt objects run within the main/chrome process.
+ // aReason is the topic passed within the observer notification that is
+ // causing this auth prompt to be displayed.
+ function OnionServicesAuthPrompt(aBrowser, aFailedURI, aReason, aOnionName) {
+ this._browser = aBrowser;
+ this._failedURI = aFailedURI;
+ this._reasonForPrompt = aReason;
+ this._onionName = aOnionName;
+ }
+
+ OnionServicesAuthPrompt.prototype = {
+ show(aWarningMessage) {
+ let mainAction = {
+ label: TorStrings.onionServices.authPrompt.done,
+ accessKey: TorStrings.onionServices.authPrompt.doneAccessKey,
+ leaveOpen: true, // Callback is responsible for closing the notification.
+ callback: this._onDone.bind(this),
+ };
+
+ let dialogBundle = Services.strings.createBundle(
+ "chrome://global/locale/dialog.properties");
+
+ let cancelAccessKey = dialogBundle.GetStringFromName("accesskey-cancel");
+ if (!cancelAccessKey)
+ cancelAccessKey = "c"; // required by PopupNotifications.show()
+
+ let cancelAction = {
+ label: dialogBundle.GetStringFromName("button-cancel"),
+ accessKey: cancelAccessKey,
+ callback: this._onCancel.bind(this),
+ };
+
+ let _this = this;
+ let options = {
+ autofocus: true,
+ hideClose: true,
+ persistent: true,
+ removeOnDismissal: false,
+ eventCallback(aTopic) {
+ if (aTopic === "showing") {
+ _this._onPromptShowing(aWarningMessage);
+ } else if (aTopic === "shown") {
+ _this._onPromptShown();
+ } else if (aTopic === "removed") {
+ _this._onPromptRemoved();
+ }
+ }
+ };
+
+ this._prompt = PopupNotifications.show(this._browser,
+ OnionAuthUtil.domid.notification, "",
+ OnionAuthUtil.domid.anchor,
+ mainAction, [cancelAction], options);
+ },
+
+ _onPromptShowing(aWarningMessage) {
+ let xulDoc = this._browser.ownerDocument;
+ let descElem = xulDoc.getElementById(OnionAuthUtil.domid.description);
+ if (descElem) {
+ // Handle replacement of the onion name within the localized
+ // string ourselves so we can show the onion name as bold text.
+ // We do this by splitting the localized string and creating
+ // several HTML <span> elements.
+ while (descElem.firstChild)
+ descElem.removeChild(descElem.firstChild);
+
+ let fmtString = TorStrings.onionServices.authPrompt.description;
+ let prefix = "";
+ let suffix = "";
+ const kToReplace = "%S";
+ let idx = fmtString.indexOf(kToReplace);
+ if (idx < 0) {
+ prefix = fmtString;
+ } else {
+ prefix = fmtString.substring(0, idx);
+ suffix = fmtString.substring(idx + kToReplace.length);
+ }
+
+ const kHTMLNS = "http://www.w3.org/1999/xhtml";
+ let span = xulDoc.createElementNS(kHTMLNS, "span");
+ span.textContent = prefix;
+ descElem.appendChild(span);
+ span = xulDoc.createElementNS(kHTMLNS, "span");
+ span.id = OnionAuthUtil.domid.onionNameSpan;
+ span.textContent = this._onionName;
+ descElem.appendChild(span);
+ span = xulDoc.createElementNS(kHTMLNS, "span");
+ span.textContent = suffix;
+ descElem.appendChild(span);
+ }
+
+ // Set "Learn More" label and href.
+ let learnMoreElem = xulDoc.getElementById(OnionAuthUtil.domid.learnMore);
+ if (learnMoreElem) {
+ learnMoreElem.setAttribute("value", TorStrings.onionServices.learnMore);
+ learnMoreElem.setAttribute("href", TorStrings.onionServices.learnMoreURL);
+ }
+
+ this._showWarning(aWarningMessage);
+ let checkboxElem = this._getCheckboxElement();
+ if (checkboxElem) {
+ checkboxElem.checked = false;
+ }
+ },
+
+ _onPromptShown() {
+ let keyElem = this._getKeyElement();
+ if (keyElem) {
+ keyElem.setAttribute("placeholder",
+ TorStrings.onionServices.authPrompt.keyPlaceholder);
+ this._boundOnKeyFieldKeyPress = this._onKeyFieldKeyPress.bind(this);
+ this._boundOnKeyFieldInput = this._onKeyFieldInput.bind(this);
+ keyElem.addEventListener("keypress", this._boundOnKeyFieldKeyPress);
+ keyElem.addEventListener("input", this._boundOnKeyFieldInput);
+ keyElem.focus();
+ }
+ },
+
+ _onPromptRemoved() {
+ if (this._boundOnKeyFieldKeyPress) {
+ let keyElem = this._getKeyElement();
+ if (keyElem) {
+ keyElem.value = "";
+ keyElem.removeEventListener("keypress",
+ this._boundOnKeyFieldKeyPress);
+ this._boundOnKeyFieldKeyPress = undefined;
+ keyElem.removeEventListener("input", this._boundOnKeyFieldInput);
+ this._boundOnKeyFieldInput = undefined;
+ }
+ }
+ },
+
+ _onKeyFieldKeyPress(aEvent) {
+ if (aEvent.keyCode == aEvent.DOM_VK_RETURN) {
+ this._onDone();
+ } else if (aEvent.keyCode == aEvent.DOM_VK_ESCAPE) {
+ this._prompt.remove();
+ this._onCancel();
+ }
+ },
+
+ _onKeyFieldInput(aEvent) {
+ this._showWarning(undefined); // Remove the warning.
+ },
+
+ _onDone() {
+ let keyElem = this._getKeyElement();
+ if (!keyElem)
+ return;
+
+ let base64key = this._keyToBase64(keyElem.value);
+ if (!base64key) {
+ this._showWarning(TorStrings.onionServices.authPrompt.invalidKey);
+ return;
+ }
+
+ this._prompt.remove();
+
+ // Use Torbutton's controller module to add the private key to Tor.
+ let controllerFailureMsg =
+ TorStrings.onionServices.authPrompt.failedToSetKey;
+ try {
+ let { controller } =
+ Cu.import("resource://torbutton/modules/tor-control-port.js", {});
+ let torController = controller(aError => {
+ this.show(controllerFailureMsg);
+ });
+ let onionAddr = this._onionName.toLowerCase().replace(/\.onion$/, "");
+ let checkboxElem = this._getCheckboxElement();
+ let isPermanent = (checkboxElem && checkboxElem.checked);
+ torController.onionAuthAdd(onionAddr, base64key, isPermanent)
+ .then(aResponse => {
+ // Success! Reload the page.
+ this._browser.sendMessageToActor(
+ "Browser:Reload",
+ {},
+ "BrowserTab"
+ );
+ })
+ .catch(aError => {
+ if (aError.torMessage)
+ this.show(aError.torMessage);
+ else
+ this.show(controllerFailureMsg);
+ });
+ } catch (e) {
+ this.show(controllerFailureMsg);
+ }
+ },
+
+ _onCancel() {
+ // Arrange for an error page to be displayed.
+ this._browser.messageManager.sendAsyncMessage(
+ OnionAuthUtil.message.authPromptCanceled,
+ {failedURI: this._failedURI.spec,
+ reasonForPrompt: this._reasonForPrompt});
+ },
+
+ _getKeyElement() {
+ let xulDoc = this._browser.ownerDocument;
+ return xulDoc.getElementById(OnionAuthUtil.domid.keyElement);
+ },
+
+ _getCheckboxElement() {
+ let xulDoc = this._browser.ownerDocument;
+ return xulDoc.getElementById(OnionAuthUtil.domid.checkboxElement);
+ },
+
+ _showWarning(aWarningMessage) {
+ let xulDoc = this._browser.ownerDocument;
+ let warningElem =
+ xulDoc.getElementById(OnionAuthUtil.domid.warningElement);
+ let keyElem = this._getKeyElement();
+ if (warningElem) {
+ if (aWarningMessage) {
+ warningElem.textContent = aWarningMessage;
+ warningElem.removeAttribute("hidden");
+ if (keyElem)
+ keyElem.className = "invalid";
+ } else {
+ warningElem.setAttribute("hidden", "true");
+ if (keyElem)
+ keyElem.className = "";
+ }
+ }
+ },
+
+ // Returns undefined if the key is the wrong length or format.
+ _keyToBase64(aKeyString) {
+ if (!aKeyString)
+ return undefined;
+
+ let base64key;
+ if (aKeyString.length == 52) {
+ // The key is probably base32-encoded. Attempt to decode.
+ // Although base32 specifies uppercase letters, we accept lowercase
+ // as well because users may type in lowercase or copy a key out of
+ // a tor onion-auth file (which uses lowercase).
+ let rawKey;
+ try {
+ rawKey = CommonUtils.decodeBase32(aKeyString.toUpperCase());
+ } catch (e) {}
+
+ if (rawKey) try {
+ base64key = btoa(rawKey);
+ } catch (e) {}
+ } else if ((aKeyString.length == 44) &&
+ /^[a-zA-Z0-9+/]*=*$/.test(aKeyString)) {
+ // The key appears to be a correctly formatted base64 value. If not,
+ // tor will return an error when we try to add the key via the
+ // control port.
+ base64key = aKeyString;
+ }
+
+ return base64key;
+ },
+ };
+
+ let retval = {
+ init() {
+ Services.obs.addObserver(this, OnionAuthUtil.topic.clientAuthMissing);
+ Services.obs.addObserver(this, OnionAuthUtil.topic.clientAuthIncorrect);
+ },
+
+ uninit() {
+ Services.obs.removeObserver(this, OnionAuthUtil.topic.clientAuthMissing);
+ Services.obs.removeObserver(this, OnionAuthUtil.topic.clientAuthIncorrect);
+ },
+
+ // aSubject is the DOM Window or browser where the prompt should be shown.
+ // aData contains the .onion name.
+ observe(aSubject, aTopic, aData) {
+ if ((aTopic != OnionAuthUtil.topic.clientAuthMissing) &&
+ (aTopic != OnionAuthUtil.topic.clientAuthIncorrect)) {
+ return;
+ }
+
+ let browser;
+ if (aSubject instanceof Ci.nsIDOMWindow) {
+ let contentWindow = aSubject.QueryInterface(Ci.nsIDOMWindow);
+ browser = contentWindow.docShell.chromeEventHandler;
+ } else {
+ browser = aSubject.QueryInterface(Ci.nsIBrowser);
+ }
+
+ if (!gBrowser.browsers.some(aBrowser => aBrowser == browser)) {
+ return; // This window does not contain the subject browser; ignore.
+ }
+
+ let failedURI = browser.currentURI;
+ let authPrompt = new OnionServicesAuthPrompt(browser, failedURI,
+ aTopic, aData);
+ authPrompt.show(undefined);
+ }
+ };
+
+ return retval;
+})(); /* OnionAuthPrompt */
+
+
+Object.defineProperty(this, "OnionAuthPrompt", {
+ value: OnionAuthPrompt,
+ enumerable: true,
+ writable: false
+});
diff --git a/browser/components/onionservices/content/authUtil.jsm b/browser/components/onionservices/content/authUtil.jsm
new file mode 100644
index 000000000000..c9d83774da1f
--- /dev/null
+++ b/browser/components/onionservices/content/authUtil.jsm
@@ -0,0 +1,47 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+var EXPORTED_SYMBOLS = [
+ "OnionAuthUtil",
+];
+
+var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+const OnionAuthUtil = {
+ topic: {
+ clientAuthMissing: "tor-onion-services-clientauth-missing",
+ clientAuthIncorrect: "tor-onion-services-clientauth-incorrect",
+ },
+ message: {
+ authPromptCanceled: "Tor:OnionServicesAuthPromptCanceled",
+ },
+ domid: {
+ anchor: "tor-clientauth-notification-icon",
+ notification: "tor-clientauth",
+ description: "tor-clientauth-notification-desc",
+ learnMore: "tor-clientauth-notification-learnmore",
+ onionNameSpan: "tor-clientauth-notification-onionname",
+ keyElement: "tor-clientauth-notification-key",
+ warningElement: "tor-clientauth-warning",
+ checkboxElement: "tor-clientauth-persistkey-checkbox",
+ },
+
+ addCancelMessageListener(aTabContent, aDocShell) {
+ aTabContent.addMessageListener(this.message.authPromptCanceled,
+ (aMessage) => {
+ // Upon cancellation of the client authentication prompt, display
+ // the appropriate error page. When calling the docShell
+ // displayLoadError() function, we pass undefined for the failed
+ // channel so that displayLoadError() can determine that it should
+ // not display the client authentication prompt a second time.
+ let failedURI = Services.io.newURI(aMessage.data.failedURI);
+ let reasonForPrompt = aMessage.data.reasonForPrompt;
+ let errorCode =
+ (reasonForPrompt === this.topic.clientAuthMissing) ?
+ Cr.NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH :
+ Cr.NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH;
+ aDocShell.displayLoadError(errorCode, failedURI, undefined, undefined);
+ });
+ },
+};
diff --git a/browser/components/onionservices/content/netError/browser.svg b/browser/components/onionservices/content/netError/browser.svg
new file mode 100644
index 000000000000..b4c433b37bbb
--- /dev/null
+++ b/browser/components/onionservices/content/netError/browser.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="72" height="65" viewBox="0 0 72 65">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="M0.0 0.0C0.0 0.0 0.0 65.0 0.0 65.0C0.0 65.0 72.0 65.0 72.0 65.0C72.0 65.0 72.0 0.0 72.0 0.0C72.0 0.0 52.9019692 0.0 52.9019692 0.0C52.9019692 0.0 0.0 0.0 0.0 0.0C0.0 0.0 0.0 0.0 0.0 0.0M65.0 58.0C65.0 58.0 6.0 58.0 6.0 58.0C6.0 58.0 6.0 25.0 6.0 25.0C6.0 25.0 65.0 25.0 65.0 25.0C65.0 25.0 65.0 58.0 65.0 58.0C65.0 58.0 65.0 58.0 65.0 58.0M6.0 10.0C6.0 10.0 10.0 10.0 10.0 10.0C10.0 10.0 10.0 14.0 10.0 14.0C10.0 14.0 6.0 14.0 6.0 14.0C6.0 14.0 6.0 10.0 6.0 10.0C6.0 10.0 6.0 10.0 6.0 10.0M14.0 10.0C14.0 10.0 18.0 10.0 18.0 10.0C18.0 10.0 18.0 14.0 18.0 14.0C18.0 14.0 14.0 14.0 14.0 14.0C14.0 14.0 14.0 10.0 14.0 10.0C14.0 10.0 14.0 10.0 14.0 10.0M22.0 10.0C22.0 10.0 26.0 10.0 26.0 10.0C26.0 10.0 26.0 14.0 26.0 14.0C26.0 14.0 22.0 14.0 22.0 14.0C22.0 14.0 22.0 10.0 22.0 10.0C22.0 10.0 22.0 10.0 22.0 10.0" />
+</svg>
diff --git a/browser/components/onionservices/content/netError/network.svg b/browser/components/onionservices/content/netError/network.svg
new file mode 100644
index 000000000000..808c53dedd09
--- /dev/null
+++ b/browser/components/onionservices/content/netError/network.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="72" height="54" viewBox="0 0 72 54">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="M14.0487805 54.0C6.28990244 54.0 0.0 47.3306322 0.0 39.1034585C0.0 32.0105634 4.68716488 26.0867675 10.9481707 24.585103C10.6902 23.574652 10.5365854 22.5107596 10.5365854 21.4138156C10.5365854 14.7292347 15.6471278 9.3103384 21.9512195 9.3103384C24.8076351 9.3103384 27.4126741 10.4393194 29.4146341 12.2780088C32.1344254 5.0777841 38.77452 0.0 46.5365854 0.0C56.7201249 0.0 64.9756098 8.7536733 64.9756098 19.5517479C64.9756098 20.7691677 64.8471688 21.9453428 64.6463415 23.1013144C69.0576849 26.0679606 72.0 31.2693674 72.0 37.2413909C72.0 46.5256603 64.9510244 54.0 56.195122 54.0C56.195122 54.0 14.0487805 54.0 14.0487805 54.0C14.0487805 54.0 14.0487805 54.0 14.0487805 54.0" />
+</svg>
diff --git a/browser/components/onionservices/content/netError/onionNetError.css b/browser/components/onionservices/content/netError/onionNetError.css
new file mode 100644
index 000000000000..58117ab93223
--- /dev/null
+++ b/browser/components/onionservices/content/netError/onionNetError.css
@@ -0,0 +1,65 @@
+/* Copyright (c) 2020, The Tor Project, Inc. */
+
+:root {
+ --grey-70: #38383d;
+}
+
+#onionErrorDiagramContainer {
+ margin: 60px auto;
+ width: 460px; /* 3 columns @ 140px plus 2 column gaps @ 20px */
+ display: grid;
+ grid-row-gap: 15px;
+ grid-column-gap: 20px;
+ grid-template-columns: 1fr 1fr 1fr;
+}
+
+#onionErrorDiagramContainer > div {
+ margin: auto;
+ position: relative; /* needed to allow overlay of the ok or error icon */
+}
+
+.onionErrorImage {
+ width: 72px;
+ height: 72px;
+ background-position: center;
+ background-repeat: no-repeat;
+ -moz-context-properties: fill;
+ fill: var(--grey-70);
+}
+
+#onionErrorBrowserImage {
+ background-image: url("browser.svg");
+}
+
+#onionErrorNetworkImage {
+ background-image: url("network.svg");
+}
+
+#onionErrorOnionSiteImage {
+ background-image: url("onionsite.svg");
+}
+
+/* rules to support overlay of the ok or error icon */
+.onionErrorImage[status]::after {
+ content: " ";
+ position: absolute;
+ left: -18px;
+ top: 18px;
+ width: 36px;
+ height: 36px;
+ -moz-context-properties: fill;
+ fill: var(--in-content-page-background);
+ background-color: var(--grey-70);
+ background-repeat: no-repeat;
+ background-position: center;
+ border: 3px solid var(--in-content-page-background);
+ border-radius: 50%;
+}
+
+.onionErrorImage[status="ok"]::after {
+ background-image: url("chrome://global/skin/icons/check.svg");
+}
+
+.onionErrorImage[status="error"]::after {
+ background-image: url("chrome://browser/skin/stop.svg");
+}
diff --git a/browser/components/onionservices/content/netError/onionNetError.js b/browser/components/onionservices/content/netError/onionNetError.js
new file mode 100644
index 000000000000..8fabb3f38eb7
--- /dev/null
+++ b/browser/components/onionservices/content/netError/onionNetError.js
@@ -0,0 +1,244 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+/* eslint-env mozilla/frame-script */
+
+var OnionServicesAboutNetError = {
+ _selector: {
+ header: ".title-text",
+ longDesc: "#errorLongDesc",
+ learnMoreContainer: "#learnMoreContainer",
+ learnMoreLink: "#learnMoreLink",
+ contentContainer: "#errorLongContent",
+ tryAgainButtonContainer: "#netErrorButtonContainer",
+ },
+ _status: {
+ ok: "ok",
+ error: "error",
+ },
+
+ _diagramInfoMap: undefined,
+
+ // Public functions (called from outside this file).
+ //
+ // This initPage() function may need to be updated if the structure of
+ // browser/base/content/aboutNetError.xhtml changes. Specifically, it
+ // references the following elements:
+ // query string parameter e
+ // class title-text
+ // id errorLongDesc
+ // id learnMoreContainer
+ // id learnMoreLink
+ // id errorLongContent
+ initPage(aDoc) {
+ const searchParams = new URLSearchParams(aDoc.documentURI.split("?")[1]);
+ const err = searchParams.get("e");
+
+ const errPrefix = "onionServices.";
+ const errName = err.substring(errPrefix.length);
+
+ this._strings = RPMGetTorStrings();
+
+ const stringsObj = this._strings[errName];
+ if (!stringsObj) {
+ return;
+ }
+
+ this._insertStylesheet(aDoc);
+
+ const pageTitle = stringsObj.pageTitle;
+ const header = stringsObj.header;
+ const longDescription = stringsObj.longDescription; // optional
+ const learnMoreURL = stringsObj.learnMoreURL;
+
+ if (pageTitle) {
+ aDoc.title = pageTitle;
+ }
+
+ if (header) {
+ const headerElem = aDoc.querySelector(this._selector.header);
+ if (headerElem) {
+ headerElem.textContent = header;
+ }
+ }
+
+ const ld = aDoc.querySelector(this._selector.longDesc);
+ if (ld) {
+ if (longDescription) {
+ const hexErr = this._hexErrorFromName(errName);
+ ld.textContent = longDescription.replace("%S", hexErr);
+ } else {
+ // This onion service error does not have a long description. Since
+ // it is set to a generic error string by the code in
+ // browser/base/content/aboutNetError.js, hide it here.
+ ld.style.display = "none";
+ }
+ }
+
+ if (learnMoreURL) {
+ const lmContainer = aDoc.querySelector(this._selector.learnMoreContainer);
+ if (lmContainer) {
+ lmContainer.style.display = "block";
+ }
+ const lmLink = lmContainer.querySelector(this._selector.learnMoreLink);
+ if (lmLink) {
+ lmLink.setAttribute("href", learnMoreURL);
+ }
+ }
+
+ // Remove the "Try Again" button if the user made a typo in the .onion
+ // address since it is not useful in that case.
+ if (errName === "badAddress") {
+ const tryAgainButton = aDoc.querySelector(
+ this._selector.tryAgainButtonContainer
+ );
+ if (tryAgainButton) {
+ tryAgainButton.style.display = "none";
+ }
+ }
+
+ this._insertDiagram(aDoc, errName);
+ }, // initPage()
+
+ _insertStylesheet(aDoc) {
+ const url =
+ "chrome://browser/content/onionservices/netError/onionNetError.css";
+ let linkElem = aDoc.createElement("link");
+ linkElem.rel = "stylesheet";
+ linkElem.href = url;
+ linkElem.type = "text/css";
+ aDoc.head.appendChild(linkElem);
+ },
+
+ _insertDiagram(aDoc, aErrorName) {
+ // The onion error diagram consists of a grid of div elements.
+ // The first row contains three images (Browser, Network, Onionsite) and
+ // the second row contains labels for the images that are in the first row.
+ // The _diagramInfoMap describes for each type of onion service error
+ // whether a small ok or error status icon is overlaid on top of the main
+ // Browser/Network/Onionsite images.
+ if (!this._diagramInfoMap) {
+ this._diagramInfoMap = new Map();
+ this._diagramInfoMap.set("descNotFound", {
+ browser: this._status.ok,
+ network: this._status.ok,
+ onionSite: this._status.error,
+ });
+ this._diagramInfoMap.set("descInvalid", {
+ browser: this._status.ok,
+ network: this._status.error,
+ });
+ this._diagramInfoMap.set("introFailed", {
+ browser: this._status.ok,
+ network: this._status.error,
+ });
+ this._diagramInfoMap.set("rendezvousFailed", {
+ browser: this._status.ok,
+ network: this._status.error,
+ });
+ this._diagramInfoMap.set("clientAuthMissing", {
+ browser: this._status.error,
+ });
+ this._diagramInfoMap.set("clientAuthIncorrect", {
+ browser: this._status.error,
+ });
+ this._diagramInfoMap.set("badAddress", {
+ browser: this._status.error,
+ });
+ this._diagramInfoMap.set("introTimedOut", {
+ browser: this._status.ok,
+ network: this._status.error,
+ });
+ }
+
+ const diagramInfo = this._diagramInfoMap.get(aErrorName);
+
+ const container = this._createDiv(aDoc, "onionErrorDiagramContainer");
+ const imageClass = "onionErrorImage";
+
+ const browserImage = this._createDiv(
+ aDoc,
+ "onionErrorBrowserImage",
+ imageClass,
+ container
+ );
+ if (diagramInfo && diagramInfo.browser) {
+ browserImage.setAttribute("status", diagramInfo.browser);
+ }
+
+ const networkImage = this._createDiv(
+ aDoc,
+ "onionErrorNetworkImage",
+ imageClass,
+ container
+ );
+ if (diagramInfo && diagramInfo.network) {
+ networkImage.setAttribute("status", diagramInfo.network);
+ }
+
+ const onionSiteImage = this._createDiv(
+ aDoc,
+ "onionErrorOnionSiteImage",
+ imageClass,
+ container
+ );
+ if (diagramInfo && diagramInfo.onionSite) {
+ onionSiteImage.setAttribute("status", diagramInfo.onionSite);
+ }
+
+ let labelDiv = this._createDiv(aDoc, undefined, undefined, container);
+ labelDiv.textContent = this._strings.errorPage.browser;
+ labelDiv = this._createDiv(aDoc, undefined, undefined, container);
+ labelDiv.textContent = this._strings.errorPage.network;
+ labelDiv = this._createDiv(aDoc, undefined, undefined, container);
+ labelDiv.textContent = this._strings.errorPage.onionSite;
+
+ const contentContainer = aDoc.querySelector(
+ this._selector.contentContainer
+ );
+ if (contentContainer) {
+ contentContainer.insertBefore(container, contentContainer.firstChild);
+ }
+ }, // _insertDiagram()
+
+ _createDiv(aDoc, aID, aClass, aParentElem) {
+ const div = aDoc.createElement("div");
+ if (aID) {
+ div.id = aID;
+ }
+ if (aClass) {
+ div.setAttribute("class", aClass);
+ }
+ if (aParentElem) {
+ aParentElem.appendChild(div);
+ }
+
+ return div;
+ },
+
+ _hexErrorFromName(aErrorName) {
+ // We do not have access to the original Tor SOCKS error code here, so
+ // perform a reverse mapping from the error name.
+ switch (aErrorName) {
+ case "descNotFound":
+ return "0xF0";
+ case "descInvalid":
+ return "0xF1";
+ case "introFailed":
+ return "0xF2";
+ case "rendezvousFailed":
+ return "0xF3";
+ case "clientAuthMissing":
+ return "0xF4";
+ case "clientAuthIncorrect":
+ return "0xF5";
+ case "badAddress":
+ return "0xF6";
+ case "introTimedOut":
+ return "0xF7";
+ }
+
+ return "";
+ },
+};
diff --git a/browser/components/onionservices/content/netError/onionsite.svg b/browser/components/onionservices/content/netError/onionsite.svg
new file mode 100644
index 000000000000..1f2777e6acc7
--- /dev/null
+++ b/browser/components/onionservices/content/netError/onionsite.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="70" height="63" viewBox="0 0 70 63">
+ <g fill="context-fill" fill-opacity="context-fill-opacity">
+ <path d="M64.0 2.0C64.0 2.0 4.0 2.0 4.0 2.0C2.8954305 2.0 2.0 2.81148389 2.0 3.8125C2.0 3.8125 2.0 58.1875 2.0 58.1875C2.0 59.1885161 2.8954305 60.0 4.0 60.0C4.0 60.0 36.0 60.0 36.0 60.0C36.0 60.0 36.0 56.375 36.0 56.375C36.0 56.375 6.0 56.375 6.0 56.375C6.0 56.375 6.0 41.875 6.0 41.875C6.0 41.875 38.0 41.875 38.0 41.875C38.0 41.875 38.0 38.25 38.0 38.25C38.0 38.25 6.0 38.25 6.0 38.25C6.0 38.25 6.0 23.75 6.0 23.75C6.0 23.75 62.0 23.75 62.0 23.75C62.0 23.75 62.0 36.4375 62.0 36.4375C62.0 36.4375 66.0 36.4375 66.0 36.4375C66.0 36.4375 66.0 3.8125 66.0 3.8125C66.0 2.81148389 65.1045695 2.0 64.0 2.0C64.0 2.0 64.0 2.0 64.0 2.0M62.0 20.125C62.0 20.125 6.0 20.125 6.0 20.125C6.0 20.125 6.0 5.625 6.0 5.625C6.0 5.625 62.0 5.625 62.0 5.625C62.0 5.625 62.0 20.125 62.0 20.125C62.0 20.125 62.0 20.125 62.0 20.125" />
+ <path d="M24.0 47.0C24.0 47.0 24.0 51.0 24.0 51.0C24.0 51.0 20.0 51.0 20.0 51.0C20.0 51.0 20.0 47.0 20.0 47.0C20.0 47.0 24.0 47.0 24.0 47.0C24.0 47.0 24.0 47.0 24.0 47.0M16.0 47.0C16.0 47.0 16.0 51.0 16.0 51.0C16.0 51.0 12.0 51.0 12.0 51.0C12.0 51.0 12.0 47.0 12.0 47.0C12.0 47.0 16.0 47.0 16.0 47.0C16.0 47.0 16.0 47.0 16.0 47.0M56.0 29.0C56.0 29.0 56.0 33.0 56.0 33.0C56.0 33.0 52.0 33.0 52.0 33.0C52.0 33.0 52.0 29.0 52.0 29.0C52.0 29.0 56.0 29.0 56.0 29.0C56.0 29.0 56.0 29.0 56.0 29.0M48.0 29.0C48.0 29.0 48.0 33.0 48.0 33.0C48.0 33.0 12.0 33.0 12.0 33.0C12.0 33.0 12.0 29.0 12.0 29.0C12.0 29.0 48.0 29.0 48.0 29.0C48.0 29.0 48.0 29.0 48.0 29.0M22.0 11.0C22.0 11.0 22.0 15.0 22.0 15.0C22.0 15.0 10.0 15.0 10.0 15.0C10.0 15.0 10.0 11.0 10.0 11.0C10.0 11.0 22.0 11.0 22.0 11.0C22.0 11.0 22.0 11.0 22.0 11.0M70.0 0.0C70.0 0.0 70.0 36.5 70.0 36.5C70.0 36.5 65.0 36.5 65.0 36.5C65.0 36.5 65.0 4.5 65.0 4.5C65.0 4.5 5.0 4.5 5.0 4.5C5.0 4.5 5.0 58.5 5.0 58.5C5.0 58.5 36.0 58.5 36.0 58.5C36.0 58
.5 36.0 63.0 36.0 63.0C36.0 63.0 0.0 63.0 0.0 63.0C0.0 63.0 0.0 0.0 0.0 0.0C0.0 0.0 70.0 0.0 70.0 0.0C70.0 0.0 70.0 0.0 70.0 0.0M32.0 47.0C32.0 47.0 32.0 51.0 32.0 51.0C32.0 51.0 28.0 51.0 28.0 51.0C28.0 51.0 28.0 47.0 28.0 47.0C28.0 47.0 32.0 47.0 32.0 47.0C32.0 47.0 32.0 47.0 32.0 47.0M54.0 11.0C54.0 11.0 54.0 15.0 54.0 15.0C54.0 15.0 50.0 15.0 50.0 15.0C50.0 15.0 50.0 11.0 50.0 11.0C50.0 11.0 54.0 11.0 54.0 11.0C54.0 11.0 54.0 11.0 54.0 11.0M46.0 11.0C46.0 11.0 46.0 15.0 46.0 15.0C46.0 15.0 42.0 15.0 42.0 15.0C42.0 15.0 42.0 11.0 42.0 11.0C42.0 11.0 46.0 11.0 46.0 11.0C46.0 11.0 46.0 11.0 46.0 11.0M38.0 11.0C38.0 11.0 38.0 15.0 38.0 15.0C38.0 15.0 34.0 15.0 34.0 15.0C34.0 15.0 34.0 11.0 34.0 11.0C34.0 11.0 38.0 11.0 38.0 11.0C38.0 11.0 38.0 11.0 38.0 11.0M30.0 11.0C30.0 11.0 30.0 15.0 30.0 15.0C30.0 15.0 26.0 15.0 26.0 15.0C26.0 15.0 26.0 11.0 26.0 11.0C26.0 11.0 30.0 11.0 30.0 11.0C30.0 11.0 30.0 11.0 30.0 11.0" />
+ <path d="M61.0 46.0C61.0 46.0 59.0 46.0 59.0 46.0C59.0 46.0 59.0 40.0 59.0 40.0C59.0 38.8954305 58.1045695 38.0 57.0 38.0C57.0 38.0 49.0 38.0 49.0 38.0C47.8954305 38.0 47.0 38.8954305 47.0 40.0C47.0 40.0 47.0 46.0 47.0 46.0C47.0 46.0 45.0 46.0 45.0 46.0C43.8954305 46.0 43.0 46.8954305 43.0 48.0C43.0 48.0 43.0 60.0 43.0 60.0C43.0 61.1045695 43.8954305 62.0 45.0 62.0C45.0 62.0 61.0 62.0 61.0 62.0C62.1045695 62.0 63.0 61.1045695 63.0 60.0C63.0 60.0 63.0 48.0 63.0 48.0C63.0 46.8954305 62.1045695 46.0 61.0 46.0C61.0 46.0 61.0 46.0 61.0 46.0M51.0 42.0C51.0 42.0 55.0 42.0 55.0 42.0C55.0 42.0 55.0 46.0 55.0 46.0C55.0 46.0 51.0 46.0 51.0 46.0C51.0 46.0 51.0 42.0 51.0 42.0C51.0 42.0 51.0 42.0 51.0 42.0M59.0 58.0C59.0 58.0 47.0 58.0 47.0 58.0C47.0 58.0 47.0 50.0 47.0 50.0C47.0 50.0 59.0 50.0 59.0 50.0C59.0 50.0 59.0 58.0 59.0 58.0C59.0 58.0 59.0 58.0 59.0 58.0" />
+ </g>
+</svg>
diff --git a/browser/components/onionservices/content/onionservices.css b/browser/components/onionservices/content/onionservices.css
new file mode 100644
index 000000000000..e2621ec8266d
--- /dev/null
+++ b/browser/components/onionservices/content/onionservices.css
@@ -0,0 +1,69 @@
+/* Copyright (c) 2020, The Tor Project, Inc. */
+
+@namespace html url("http://www.w3.org/1999/xhtml");
+
+html|*#tor-clientauth-notification-onionname {
+ font-weight: bold;
+}
+
+html|*#tor-clientauth-notification-key {
+ box-sizing: border-box;
+ width: 100%;
+ margin-top: 15px;
+ padding: 6px;
+}
+
+/* Start of rules adapted from
+ * browser/components/newtab/css/activity-stream-mac.css (linux and windows
+ * use the same rules).
+ */
+html|*#tor-clientauth-notification-key.invalid {
+ border: 1px solid #D70022;
+ box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3);
+}
+
+html|*#tor-clientauth-warning {
+ display: inline-block;
+ animation: fade-up-tt 450ms;
+ background: #D70022;
+ border-radius: 2px;
+ color: #FFF;
+ inset-inline-start: 3px;
+ padding: 5px 12px;
+ position: relative;
+ top: 6px;
+ z-index: 1;
+}
+
+html|*#tor-clientauth-warning[hidden] {
+ display: none;
+}
+
+html|*#tor-clientauth-warning::before {
+ background: #D70022;
+ bottom: -8px;
+ content: '.';
+ height: 16px;
+ inset-inline-start: 12px;
+ position: absolute;
+ text-indent: -999px;
+ top: -7px;
+ transform: rotate(45deg);
+ white-space: nowrap;
+ width: 16px;
+ z-index: -1;
+}
+
+@keyframes fade-up-tt {
+ 0% {
+ opacity: 0;
+ transform: translateY(15px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+/* End of rules adapted from
+ * browser/components/newtab/css/activity-stream-mac.css
+ */
diff --git a/browser/components/onionservices/content/savedKeysDialog.js b/browser/components/onionservices/content/savedKeysDialog.js
new file mode 100644
index 000000000000..b1376bbabe85
--- /dev/null
+++ b/browser/components/onionservices/content/savedKeysDialog.js
@@ -0,0 +1,259 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "TorStrings",
+ "resource:///modules/TorStrings.jsm"
+);
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "controller",
+ "resource://torbutton/modules/tor-control-port.js"
+);
+
+var gOnionServicesSavedKeysDialog = {
+ selector: {
+ dialog: "#onionservices-savedkeys-dialog",
+ intro: "#onionservices-savedkeys-intro",
+ tree: "#onionservices-savedkeys-tree",
+ onionSiteCol: "#onionservices-savedkeys-siteCol",
+ onionKeyCol: "#onionservices-savedkeys-keyCol",
+ errorIcon: "#onionservices-savedkeys-errorIcon",
+ errorMessage: "#onionservices-savedkeys-errorMessage",
+ removeButton: "#onionservices-savedkeys-remove",
+ removeAllButton: "#onionservices-savedkeys-removeall",
+ },
+
+ _tree: undefined,
+ _isBusy: false, // true when loading data, deleting a key, etc.
+
+ // Public functions (called from outside this file).
+ async deleteSelectedKeys() {
+ this._setBusyState(true);
+
+ const indexesToDelete = [];
+ const count = this._tree.view.selection.getRangeCount();
+ for (let i = 0; i < count; ++i) {
+ const minObj = {};
+ const maxObj = {};
+ this._tree.view.selection.getRangeAt(i, minObj, maxObj);
+ for (let idx = minObj.value; idx <= maxObj.value; ++idx) {
+ indexesToDelete.push(idx);
+ }
+ }
+
+ if (indexesToDelete.length > 0) {
+ const controllerFailureMsg =
+ TorStrings.onionServices.authPreferences.failedToRemoveKey;
+ try {
+ const torController = controller(aError => {
+ this._showError(controllerFailureMsg);
+ });
+
+ // Remove in reverse index order to avoid issues caused by index changes.
+ for (let i = indexesToDelete.length - 1; i >= 0; --i) {
+ await this._deleteOneKey(torController, indexesToDelete[i]);
+ }
+ } catch (e) {
+ if (e.torMessage) {
+ this._showError(e.torMessage);
+ } else {
+ this._showError(controllerFailureMsg);
+ }
+ }
+ }
+
+ this._setBusyState(false);
+ },
+
+ async deleteAllKeys() {
+ this._tree.view.selection.selectAll();
+ await this.deleteSelectedKeys();
+ },
+
+ updateButtonsState() {
+ const haveSelection = this._tree.view.selection.getRangeCount() > 0;
+ const dialog = document.querySelector(this.selector.dialog);
+ const removeSelectedBtn = dialog.querySelector(this.selector.removeButton);
+ removeSelectedBtn.disabled = this._isBusy || !haveSelection;
+ const removeAllBtn = dialog.querySelector(this.selector.removeAllButton);
+ removeAllBtn.disabled = this._isBusy || this.rowCount === 0;
+ },
+
+ // Private functions.
+ _onLoad() {
+ document.mozSubdialogReady = this._init();
+ },
+
+ async _init() {
+ await this._populateXUL();
+
+ window.addEventListener("keypress", this._onWindowKeyPress.bind(this));
+
+ // We don't use await here because we want _loadSavedKeys() to run
+ // in the background and not block loading of this dialog.
+ this._loadSavedKeys();
+ },
+
+ async _populateXUL() {
+ const dialog = document.querySelector(this.selector.dialog);
+ const authPrefStrings = TorStrings.onionServices.authPreferences;
+ dialog.setAttribute("title", authPrefStrings.dialogTitle);
+
+ let elem = dialog.querySelector(this.selector.intro);
+ elem.textContent = authPrefStrings.dialogIntro;
+
+ elem = dialog.querySelector(this.selector.onionSiteCol);
+ elem.setAttribute("label", authPrefStrings.onionSite);
+
+ elem = dialog.querySelector(this.selector.onionKeyCol);
+ elem.setAttribute("label", authPrefStrings.onionKey);
+
+ elem = dialog.querySelector(this.selector.removeButton);
+ elem.setAttribute("label", authPrefStrings.remove);
+
+ elem = dialog.querySelector(this.selector.removeAllButton);
+ elem.setAttribute("label", authPrefStrings.removeAll);
+
+ this._tree = dialog.querySelector(this.selector.tree);
+ },
+
+ async _loadSavedKeys() {
+ const controllerFailureMsg =
+ TorStrings.onionServices.authPreferences.failedToGetKeys;
+ this._setBusyState(true);
+
+ try {
+ this._tree.view = this;
+
+ const torController = controller(aError => {
+ this._showError(controllerFailureMsg);
+ });
+
+ const keyInfoList = await torController.onionAuthViewKeys();
+ if (keyInfoList) {
+ // Filter out temporary keys.
+ this._keyInfoList = keyInfoList.filter(aKeyInfo => {
+ if (!aKeyInfo.Flags) {
+ return false;
+ }
+
+ const flags = aKeyInfo.Flags.split(",");
+ return flags.includes("Permanent");
+ });
+
+ // Sort by the .onion address.
+ this._keyInfoList.sort((aObj1, aObj2) => {
+ const hsAddr1 = aObj1.hsAddress.toLowerCase();
+ const hsAddr2 = aObj2.hsAddress.toLowerCase();
+ if (hsAddr1 < hsAddr2) {
+ return -1;
+ }
+ return hsAddr1 > hsAddr2 ? 1 : 0;
+ });
+ }
+
+ // Render the tree content.
+ this._tree.rowCountChanged(0, this.rowCount);
+ } catch (e) {
+ if (e.torMessage) {
+ this._showError(e.torMessage);
+ } else {
+ this._showError(controllerFailureMsg);
+ }
+ }
+
+ this._setBusyState(false);
+ },
+
+ // This method may throw; callers should catch errors.
+ async _deleteOneKey(aTorController, aIndex) {
+ const keyInfoObj = this._keyInfoList[aIndex];
+ await aTorController.onionAuthRemove(keyInfoObj.hsAddress);
+ this._tree.view.selection.clearRange(aIndex, aIndex);
+ this._keyInfoList.splice(aIndex, 1);
+ this._tree.rowCountChanged(aIndex + 1, -1);
+ },
+
+ _setBusyState(aIsBusy) {
+ this._isBusy = aIsBusy;
+ this.updateButtonsState();
+ },
+
+ _onWindowKeyPress(event) {
+ if (event.keyCode === KeyEvent.DOM_VK_ESCAPE) {
+ window.close();
+ } else if (event.keyCode === KeyEvent.DOM_VK_DELETE) {
+ this.deleteSelectedKeys();
+ }
+ },
+
+ _showError(aMessage) {
+ const dialog = document.querySelector(this.selector.dialog);
+ const errorIcon = dialog.querySelector(this.selector.errorIcon);
+ errorIcon.style.visibility = aMessage ? "visible" : "hidden";
+ const errorDesc = dialog.querySelector(this.selector.errorMessage);
+ errorDesc.textContent = aMessage ? aMessage : "";
+ },
+
+ // XUL tree widget view implementation.
+ get rowCount() {
+ return this._keyInfoList ? this._keyInfoList.length : 0;
+ },
+
+ getCellText(aRow, aCol) {
+ let val = "";
+ if (this._keyInfoList && aRow < this._keyInfoList.length) {
+ const keyInfo = this._keyInfoList[aRow];
+ if (aCol.id.endsWith("-siteCol")) {
+ val = keyInfo.hsAddress;
+ } else if (aCol.id.endsWith("-keyCol")) {
+ val = keyInfo.typeAndKey;
+ // Omit keyType because it is always "x25519".
+ const idx = val.indexOf(":");
+ if (idx > 0) {
+ val = val.substring(idx + 1);
+ }
+ }
+ }
+
+ return val;
+ },
+
+ isSeparator(index) {
+ return false;
+ },
+
+ isSorted() {
+ return false;
+ },
+
+ isContainer(index) {
+ return false;
+ },
+
+ setTree(tree) {},
+
+ getImageSrc(row, column) {},
+
+ getCellValue(row, column) {},
+
+ cycleHeader(column) {},
+
+ getRowProperties(row) {
+ return "";
+ },
+
+ getColumnProperties(column) {
+ return "";
+ },
+
+ getCellProperties(row, column) {
+ return "";
+ },
+};
+
+window.addEventListener("load", () => gOnionServicesSavedKeysDialog._onLoad());
diff --git a/browser/components/onionservices/content/savedKeysDialog.xhtml b/browser/components/onionservices/content/savedKeysDialog.xhtml
new file mode 100644
index 000000000000..3db9bb05ea82
--- /dev/null
+++ b/browser/components/onionservices/content/savedKeysDialog.xhtml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!-- Copyright (c) 2020, The Tor Project, Inc. -->
+
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/content/onionservices/authPreferences.css" type="text/css"?>
+
+<window id="onionservices-savedkeys-dialog"
+ windowtype="OnionServices:SavedKeys"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ style="width: 45em;">
+
+ <script src="chrome://browser/content/onionservices/savedKeysDialog.js"/>
+
+ <vbox id="onionservices-savedkeys" class="contentPane" flex="1">
+ <label id="onionservices-savedkeys-intro"
+ control="onionservices-savedkeys-tree"/>
+ <separator class="thin"/>
+ <tree id="onionservices-savedkeys-tree" flex="1" hidecolumnpicker="true"
+ width="750"
+ style="height: 20em;"
+ onselect="gOnionServicesSavedKeysDialog.updateButtonsState();">
+ <treecols>
+ <treecol id="onionservices-savedkeys-siteCol" flex="1" persist="width"/>
+ <splitter class="tree-splitter"/>
+ <treecol id="onionservices-savedkeys-keyCol" flex="1" persist="width"/>
+ </treecols>
+ <treechildren/>
+ </tree>
+ <hbox id="onionservices-savedkeys-errorContainer" align="baseline" flex="1">
+ <image id="onionservices-savedkeys-errorIcon"/>
+ <description id="onionservices-savedkeys-errorMessage" flex="1"/>
+ </hbox>
+ <separator class="thin"/>
+ <hbox id="onionservices-savedkeys-buttons">
+ <button id="onionservices-savedkeys-remove" disabled="true"
+ oncommand="gOnionServicesSavedKeysDialog.deleteSelectedKeys();"/>
+ <button id="onionservices-savedkeys-removeall"
+ oncommand="gOnionServicesSavedKeysDialog.deleteAllKeys();"/>
+ </hbox>
+ </vbox>
+</window>
diff --git a/browser/components/onionservices/jar.mn b/browser/components/onionservices/jar.mn
new file mode 100644
index 000000000000..9d6ce88d1841
--- /dev/null
+++ b/browser/components/onionservices/jar.mn
@@ -0,0 +1,9 @@
+browser.jar:
+ content/browser/onionservices/authPreferences.css (content/authPreferences.css)
+ content/browser/onionservices/authPreferences.js (content/authPreferences.js)
+ content/browser/onionservices/authPrompt.js (content/authPrompt.js)
+ content/browser/onionservices/authUtil.jsm (content/authUtil.jsm)
+ content/browser/onionservices/netError/ (content/netError/*)
+ content/browser/onionservices/onionservices.css (content/onionservices.css)
+ content/browser/onionservices/savedKeysDialog.js (content/savedKeysDialog.js)
+ content/browser/onionservices/savedKeysDialog.xhtml (content/savedKeysDialog.xhtml)
diff --git a/browser/components/onionservices/moz.build b/browser/components/onionservices/moz.build
new file mode 100644
index 000000000000..2661ad7cb9f3
--- /dev/null
+++ b/browser/components/onionservices/moz.build
@@ -0,0 +1 @@
+JAR_MANIFESTS += ["jar.mn"]
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index 0139abf95cbd..07ab5cc7b626 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/onionservices/authPreferences.css"?>
<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>
<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index 29179473aadd..eb410c13a8cc 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -493,6 +493,8 @@
<label id="fips-desc" hidden="true" data-l10n-id="forms-master-pw-fips-desc"></label>
</groupbox>
+#include ../onionservices/content/authPreferences.inc.xhtml
+
<!-- The form autofill section is inserted in to this box
after the form autofill extension has initialized. -->
<groupbox id="formAutofillGroupBox"
diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index 36259321dd06..0b1e28dfac92 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,
+ ["OnionServicesAuthPreferences"],
+ "chrome://browser/content/onionservices/authPreferences.js"
+);
+
// TODO: module import via ChromeUtils.defineModuleGetter
XPCOMUtils.defineLazyScriptGetter(
this,
@@ -529,6 +535,7 @@ var gPrivacyPane = {
this.trackingProtectionReadPrefs();
this.networkCookieBehaviorReadPrefs();
this._initTrackingProtectionExtensionControl();
+ OnionServicesAuthPreferences.init();
this._initSecurityLevel();
Services.telemetry.setEventRecordingEnabled("pwmgr", true);
diff --git a/browser/themes/shared/notification-icons.inc.css b/browser/themes/shared/notification-icons.inc.css
index f93db99f22bd..39eb59a04964 100644
--- a/browser/themes/shared/notification-icons.inc.css
+++ b/browser/themes/shared/notification-icons.inc.css
@@ -146,6 +146,9 @@
list-style-image: url(chrome://browser/skin/notification-icons/indexedDB.svg);
}
+/* Reuse Firefox's login (key) icon for the Tor onion services auth. prompt */
+.popup-notification-icon[popupid="tor-clientauth"],
+.tor-clientauth-icon,
.popup-notification-icon[popupid="password"],
.login-icon {
list-style-image: url(chrome://browser/skin/login.svg);
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index f1119393898d..94ceeb67f301 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -3814,6 +3814,7 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
}
} else {
// Errors requiring simple formatting
+ bool isOnionAuthError = false;
switch (aError) {
case NS_ERROR_MALFORMED_URI:
// URI is malformed
@@ -3896,10 +3897,44 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
// HTTP/2 or HTTP/3 stack detected a protocol error
error = "networkProtocolError";
break;
-
+ case NS_ERROR_TOR_ONION_SVC_NOT_FOUND:
+ error = "onionServices.descNotFound";
+ break;
+ case NS_ERROR_TOR_ONION_SVC_IS_INVALID:
+ error = "onionServices.descInvalid";
+ break;
+ case NS_ERROR_TOR_ONION_SVC_INTRO_FAILED:
+ error = "onionServices.introFailed";
+ break;
+ case NS_ERROR_TOR_ONION_SVC_REND_FAILED:
+ error = "onionServices.rendezvousFailed";
+ break;
+ case NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH:
+ error = "onionServices.clientAuthMissing";
+ isOnionAuthError = true;
+ break;
+ case NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH:
+ error = "onionServices.clientAuthIncorrect";
+ isOnionAuthError = true;
+ break;
+ case NS_ERROR_TOR_ONION_SVC_BAD_ADDRESS:
+ error = "onionServices.badAddress";
+ break;
+ case NS_ERROR_TOR_ONION_SVC_INTRO_TIMEDOUT:
+ error = "onionServices.introTimedOut";
+ break;
default:
break;
}
+
+ // The presence of aFailedChannel indicates that we arrived here due to a
+ // failed connection attempt. Note that we will arrive here a second time
+ // if the user cancels the Tor client auth prompt, but in that case we
+ // will not have a failed channel and therefore we will not prompt again.
+ if (isOnionAuthError && aFailedChannel) {
+ // Display about:blank while the Tor client auth prompt is open.
+ errorPage.AssignLiteral("blank");
+ }
}
// If the HTTPS-Only Mode upgraded this request and the upgrade might have
@@ -3982,6 +4017,20 @@ nsDocShell::DisplayLoadError(nsresult aError, nsIURI* aURI,
nsAutoString str;
rv =
stringBundle->FormatStringFromName(errorDescriptionID, formatStrs, str);
+ if (NS_FAILED(rv)) {
+ // As a fallback, check torbutton.properties for the error string.
+ const char bundleURL[] = "chrome://torbutton/locale/torbutton.properties";
+ nsCOMPtr<nsIStringBundleService> stringBundleService =
+ mozilla::services::GetStringBundleService();
+ if (stringBundleService) {
+ nsCOMPtr<nsIStringBundle> tbStringBundle;
+ if (NS_SUCCEEDED(stringBundleService->CreateBundle(
+ bundleURL, getter_AddRefs(tbStringBundle)))) {
+ rv = tbStringBundle->FormatStringFromName(errorDescriptionID,
+ formatStrs, str);
+ }
+ }
+ }
NS_ENSURE_SUCCESS(rv, rv);
messageStr.Assign(str);
}
@@ -6402,6 +6451,7 @@ nsresult nsDocShell::FilterStatusForErrorPage(
aStatus == NS_ERROR_FILE_ACCESS_DENIED ||
aStatus == NS_ERROR_CORRUPTED_CONTENT ||
aStatus == NS_ERROR_INVALID_CONTENT_ENCODING ||
+ NS_ERROR_GET_MODULE(aStatus) == NS_ERROR_MODULE_TOR ||
NS_ERROR_GET_MODULE(aStatus) == NS_ERROR_MODULE_SECURITY) {
// Errors to be shown for any frame
return aStatus;
@@ -8187,6 +8237,35 @@ nsresult nsDocShell::CreateContentViewer(const nsACString& aContentType,
FireOnLocationChange(this, aRequest, mCurrentURI, locationFlags);
}
+ // Arrange to show a Tor onion service client authentication prompt if
+ // appropriate.
+ if ((mLoadType == LOAD_ERROR_PAGE) && failedChannel) {
+ nsresult status = NS_OK;
+ if (NS_SUCCEEDED(failedChannel->GetStatus(&status)) &&
+ ((status == NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH) ||
+ (status == NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH))) {
+ nsAutoCString onionHost;
+ failedURI->GetHost(onionHost);
+ const char* topic = (status == NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH)
+ ? "tor-onion-services-clientauth-missing"
+ : "tor-onion-services-clientauth-incorrect";
+ if (XRE_IsContentProcess()) {
+ nsCOMPtr<nsIBrowserChild> browserChild = GetBrowserChild();
+ if (browserChild) {
+ static_cast<BrowserChild*>(browserChild.get())
+ ->SendShowOnionServicesAuthPrompt(onionHost, nsCString(topic));
+ }
+ } else {
+ nsCOMPtr<nsPIDOMWindowOuter> browserWin = GetWindow();
+ nsCOMPtr<nsIObserverService> obsSvc = services::GetObserverService();
+ if (browserWin && obsSvc) {
+ obsSvc->NotifyObservers(browserWin, topic,
+ NS_ConvertUTF8toUTF16(onionHost).get());
+ }
+ }
+ }
+ }
+
return NS_OK;
}
diff --git a/dom/ipc/BrowserParent.cpp b/dom/ipc/BrowserParent.cpp
index 378211d237a0..240b386f6dde 100644
--- a/dom/ipc/BrowserParent.cpp
+++ b/dom/ipc/BrowserParent.cpp
@@ -3805,6 +3805,27 @@ mozilla::ipc::IPCResult BrowserParent::RecvShowCanvasPermissionPrompt(
return IPC_OK();
}
+mozilla::ipc::IPCResult BrowserParent::RecvShowOnionServicesAuthPrompt(
+ const nsCString& aOnionName, const nsCString& aTopic) {
+ nsCOMPtr<nsIBrowser> browser =
+ mFrameElement ? mFrameElement->AsBrowser() : nullptr;
+ if (!browser) {
+ // If the tab is being closed, the browser may not be available.
+ // In this case we can ignore the request.
+ return IPC_OK();
+ }
+ nsCOMPtr<nsIObserverService> os = services::GetObserverService();
+ if (!os) {
+ return IPC_FAIL_NO_REASON(this);
+ }
+ nsresult rv = os->NotifyObservers(browser, aTopic.get(),
+ NS_ConvertUTF8toUTF16(aOnionName).get());
+ if (NS_FAILED(rv)) {
+ return IPC_FAIL_NO_REASON(this);
+ }
+ return IPC_OK();
+}
+
mozilla::ipc::IPCResult BrowserParent::RecvVisitURI(nsIURI* aURI,
nsIURI* aLastVisitedURI,
const uint32_t& aFlags) {
diff --git a/dom/ipc/BrowserParent.h b/dom/ipc/BrowserParent.h
index 0d4e3e1c9c8a..a37271da9544 100644
--- a/dom/ipc/BrowserParent.h
+++ b/dom/ipc/BrowserParent.h
@@ -740,6 +740,9 @@ class BrowserParent final : public PBrowserParent,
mozilla::ipc::IPCResult RecvShowCanvasPermissionPrompt(
const nsCString& aOrigin, const bool& aHideDoorHanger);
+ mozilla::ipc::IPCResult RecvShowOnionServicesAuthPrompt(
+ const nsCString& aOnionName, const nsCString& aTopic);
+
mozilla::ipc::IPCResult RecvSetSystemFont(const nsCString& aFontName);
mozilla::ipc::IPCResult RecvGetSystemFont(nsCString* aFontName);
diff --git a/dom/ipc/PBrowser.ipdl b/dom/ipc/PBrowser.ipdl
index df77d19287bd..29433edcde78 100644
--- a/dom/ipc/PBrowser.ipdl
+++ b/dom/ipc/PBrowser.ipdl
@@ -580,6 +580,15 @@ parent:
async RequestPointerCapture(uint32_t aPointerId) returns (bool aSuccess);
async ReleasePointerCapture(uint32_t aPointerId);
+ /**
+ * This function is used to notify the parent that it should display a
+ * onion services client authentication prompt.
+ *
+ * @param aOnionHost The hostname of the .onion that needs authentication.
+ * @param aTopic The reason for the prompt.
+ */
+ async ShowOnionServicesAuthPrompt(nsCString aOnionHost, nsCString aTopic);
+
child:
async NativeSynthesisResponse(uint64_t aObserverId, nsCString aResponse);
async UpdateEpoch(uint32_t aEpoch);
diff --git a/js/xpconnect/src/xpc.msg b/js/xpconnect/src/xpc.msg
index c7fbdd23f378..07f529957bd0 100644
--- a/js/xpconnect/src/xpc.msg
+++ b/js/xpconnect/src/xpc.msg
@@ -248,5 +248,15 @@ XPC_MSG_DEF(NS_ERROR_FINGERPRINTING_URI , "The URI is fingerprinti
XPC_MSG_DEF(NS_ERROR_CRYPTOMINING_URI , "The URI is cryptomining")
XPC_MSG_DEF(NS_ERROR_SOCIALTRACKING_URI , "The URI is social tracking")
+/* Codes related to Tor */
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_NOT_FOUND , "Tor onion service descriptor cannot be found")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_IS_INVALID , "Tor onion service descriptor is invalid")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_INTRO_FAILED , "Tor onion service introduction failed")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_REND_FAILED , "Tor onion service rendezvous failed")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH, "Tor onion service missing client authorization")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH , "Tor onion service wrong client authorization")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_BAD_ADDRESS , "Tor onion service bad address")
+XPC_MSG_DEF(NS_ERROR_TOR_ONION_SVC_INTRO_TIMEDOUT , "Tor onion service introduction timed out")
+
/* Profile manager error codes */
XPC_MSG_DEF(NS_ERROR_DATABASE_CHANGED , "Flushing the profiles to disk would have overwritten changes made elsewhere.")
diff --git a/netwerk/base/nsSocketTransport2.cpp b/netwerk/base/nsSocketTransport2.cpp
index 551fa4d50997..0cbc65e43c99 100644
--- a/netwerk/base/nsSocketTransport2.cpp
+++ b/netwerk/base/nsSocketTransport2.cpp
@@ -216,6 +216,12 @@ nsresult ErrorAccordingToNSPR(PRErrorCode errorCode) {
default:
if (psm::IsNSSErrorCode(errorCode)) {
rv = psm::GetXPCOMFromNSSError(errorCode);
+ } else {
+ // If we received a Tor extended error code via SOCKS, pass it through.
+ nsresult res = nsresult(errorCode);
+ if (NS_ERROR_GET_MODULE(res) == NS_ERROR_MODULE_TOR) {
+ rv = res;
+ }
}
break;
diff --git a/netwerk/socket/nsSOCKSIOLayer.cpp b/netwerk/socket/nsSOCKSIOLayer.cpp
index 0a16d6c7236f..c2bf0e951dda 100644
--- a/netwerk/socket/nsSOCKSIOLayer.cpp
+++ b/netwerk/socket/nsSOCKSIOLayer.cpp
@@ -1007,6 +1007,55 @@ PRStatus nsSOCKSSocketInfo::ReadV5ConnectResponseTop() {
"08, Address type not supported."));
c = PR_BAD_ADDRESS_ERROR;
break;
+ case 0xF0: // Tor SOCKS5_HS_NOT_FOUND
+ LOGERROR(
+ ("socks5: connect failed: F0,"
+ " Tor onion service descriptor can not be found."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_NOT_FOUND);
+ break;
+ case 0xF1: // Tor SOCKS5_HS_IS_INVALID
+ LOGERROR(
+ ("socks5: connect failed: F1,"
+ " Tor onion service descriptor is invalid."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_IS_INVALID);
+ break;
+ case 0xF2: // Tor SOCKS5_HS_INTRO_FAILED
+ LOGERROR(
+ ("socks5: connect failed: F2,"
+ " Tor onion service introduction failed."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_INTRO_FAILED);
+ break;
+ case 0xF3: // Tor SOCKS5_HS_REND_FAILED
+ LOGERROR(
+ ("socks5: connect failed: F3,"
+ " Tor onion service rendezvous failed."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_REND_FAILED);
+ break;
+ case 0xF4: // Tor SOCKS5_HS_MISSING_CLIENT_AUTH
+ LOGERROR(
+ ("socks5: connect failed: F4,"
+ " Tor onion service missing client authorization."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH);
+ break;
+ case 0xF5: // Tor SOCKS5_HS_BAD_CLIENT_AUTH
+ LOGERROR(
+ ("socks5: connect failed: F5,"
+ " Tor onion service wrong client authorization."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH);
+ break;
+ case 0xF6: // Tor SOCKS5_HS_BAD_ADDRESS
+ LOGERROR(
+ ("socks5: connect failed: F6,"
+ " Tor onion service bad address."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_BAD_ADDRESS);
+ break;
+ case 0xF7: // Tor SOCKS5_HS_INTRO_TIMEDOUT
+ LOGERROR(
+ ("socks5: connect failed: F7,"
+ " Tor onion service introduction timed out."));
+ c = static_cast<uint32_t>(NS_ERROR_TOR_ONION_SVC_INTRO_TIMEDOUT);
+ break;
+
default:
LOGERROR(("socks5: connect failed."));
break;
diff --git a/toolkit/modules/PopupNotifications.jsm b/toolkit/modules/PopupNotifications.jsm
index d6518723afab..9764cfd496c3 100644
--- a/toolkit/modules/PopupNotifications.jsm
+++ b/toolkit/modules/PopupNotifications.jsm
@@ -410,6 +410,8 @@ PopupNotifications.prototype = {
* will be dismissed instead of removed after running the callback.
* - [optional] disabled (boolean): If this is true, the button
* will be disabled.
+ * - [optional] leaveOpen (boolean): If this is true, the notification
+ * will not be removed after running the callback.
* - [optional] disableHighlight (boolean): If this is true, the button
* will not apply the default highlight style.
* If null, the notification will have a default "OK" action button
@@ -1916,6 +1918,10 @@ PopupNotifications.prototype = {
this._dismiss();
return;
}
+
+ if (action.leaveOpen) {
+ return;
+ }
}
this._remove(notification);
diff --git a/toolkit/modules/RemotePageAccessManager.jsm b/toolkit/modules/RemotePageAccessManager.jsm
index e5111ff83782..c12e71ac4d42 100644
--- a/toolkit/modules/RemotePageAccessManager.jsm
+++ b/toolkit/modules/RemotePageAccessManager.jsm
@@ -102,6 +102,7 @@ let RemotePageAccessManager = {
RPMAddToHistogram: ["*"],
RPMGetInnerMostURI: ["*"],
RPMGetHttpResponseHeader: ["*"],
+ RPMGetTorStrings: ["*"],
},
"about:plugins": {
RPMSendQuery: ["RequestPlugins"],
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/frame-script.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/frame-script.js
index 15c15615ad97..57458ba0bf5e 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/frame-script.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/frame-script.js
@@ -41,5 +41,6 @@ module.exports = {
RPMGetHttpResponseHeader: false,
RPMTryPingSecureWWWLink: false,
RPMOpenSecureWWWLink: false,
+ RPMGetTorStrings: false,
},
};
diff --git a/xpcom/base/ErrorList.py b/xpcom/base/ErrorList.py
index 9b9ce1a4acc5..7f860b127b8b 100755
--- a/xpcom/base/ErrorList.py
+++ b/xpcom/base/ErrorList.py
@@ -89,6 +89,7 @@ modules["ERRORRESULT"] = Mod(43)
# Win32 system error codes, which are not mapped to a specific other value,
# see Bug 1686041.
modules["WIN32"] = Mod(44)
+modules["TOR"] = Mod(45)
# NS_ERROR_MODULE_GENERAL should be used by modules that do not
# care if return code values overlap. Callers of methods that
@@ -1206,6 +1207,27 @@ with modules["ERRORRESULT"]:
errors["NS_ERROR_INTERNAL_ERRORRESULT_RANGEERROR"] = FAILURE(5)
+# =======================================================================
+# 45: Tor-specific error codes.
+# =======================================================================
+with modules["TOR"]:
+ # Tor onion service descriptor can not be found.
+ errors["NS_ERROR_TOR_ONION_SVC_NOT_FOUND"] = FAILURE(1)
+ # Tor onion service descriptor is invalid.
+ errors["NS_ERROR_TOR_ONION_SVC_IS_INVALID"] = FAILURE(2)
+ # Tor onion service introduction failed.
+ errors["NS_ERROR_TOR_ONION_SVC_INTRO_FAILED"] = FAILURE(3)
+ # Tor onion service rendezvous failed.
+ errors["NS_ERROR_TOR_ONION_SVC_REND_FAILED"] = FAILURE(4)
+ # Tor onion service missing client authorization.
+ errors["NS_ERROR_TOR_ONION_SVC_MISSING_CLIENT_AUTH"] = FAILURE(5)
+ # Tor onion service wrong client authorization.
+ errors["NS_ERROR_TOR_ONION_SVC_BAD_CLIENT_AUTH"] = FAILURE(6)
+ # Tor onion service bad address.
+ errors["NS_ERROR_TOR_ONION_SVC_BAD_ADDRESS"] = FAILURE(7)
+ # Tor onion service introduction timed out.
+ errors["NS_ERROR_TOR_ONION_SVC_INTRO_TIMEDOUT"] = FAILURE(8)
+
# =======================================================================
# 51: NS_ERROR_MODULE_GENERAL
# =======================================================================
1
0

[tor-browser/tor-browser-90.0-10.5-1] Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit c605c1576c1eeb44a290d2ade2f9dc5ff80481f4
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Fri Jun 12 02:07:45 2015 -0400
Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
See Bug 1357997 for partial uplift.
Also:
Bug 28051 - Use our Orbot for proxying our connections
Bug 31144 - ESR68 Network Code Review
---
.../java/org/mozilla/gecko/util/ProxySelector.java | 25 +++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
index dbd07a069de1..800c7cf96de8 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
@@ -29,6 +29,10 @@ import java.net.URLConnection;
import java.util.List;
public class ProxySelector {
+ private static final String TOR_PROXY_ADDRESS = "127.0.0.1";
+ private static final int TOR_SOCKS_PROXY_PORT = 9150;
+ private static final int TOR_HTTP_PROXY_PORT = 8218;
+
public static URLConnection openConnectionWithProxy(final URI uri) throws IOException {
final java.net.ProxySelector ps = java.net.ProxySelector.getDefault();
Proxy proxy = Proxy.NO_PROXY;
@@ -39,7 +43,26 @@ public class ProxySelector {
}
}
- return uri.toURL().openConnection(proxy);
+ /* Ignore the proxy we found from the VM, only use Tor. We can probably
+ * safely use the logic in this class in the future. */
+ return uri.toURL().openConnection(getProxy());
+ }
+
+ public static Proxy getProxy() {
+ // TODO make configurable
+ return new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(TOR_PROXY_ADDRESS, TOR_SOCKS_PROXY_PORT));
+ }
+
+ public static String getProxyHostAddress() {
+ return TOR_PROXY_ADDRESS;
+ }
+
+ public static int getSocksProxyPort() {
+ return TOR_SOCKS_PROXY_PORT;
+ }
+
+ public static int getHttpProxyPort() {
+ return TOR_HTTP_PROXY_PORT;
}
public ProxySelector() {
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 24796 - Comment out excess permissions from GeckoView
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 9bc32b4360fc3d334a8184f5738610b05feed0e5
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 17:52:59 2018 +0000
Bug 24796 - Comment out excess permissions from GeckoView
The GeckoView AndroidManifest.xml is not preprocessed unlike Fennec's
manifest, so we can't use the ifdef preprocessor guards around the
permissions we do not want. Commenting the permissions is the
next-best-thing.
---
.../android/geckoview/src/main/AndroidManifest.xml | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml
index a76b6a4754b6..7a2f30708fc3 100644
--- a/mobile/android/geckoview/src/main/AndroidManifest.xml
+++ b/mobile/android/geckoview/src/main/AndroidManifest.xml
@@ -6,20 +6,32 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mozilla.geckoview">
+<!--#ifdef MOZ_ANDROID_NETWORK_STATE-->
+ <!--
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+ -->
+<!--#endif-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+<!--#ifdef MOZ_ANDROID_LOCATION-->
+ <!--
<uses-feature
android:name="android.hardware.location"
android:required="false"/>
<uses-feature
android:name="android.hardware.location.gps"
android:required="false"/>
+ -->
+<!--#endif-->
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false"/>
+<!--#ifdef MOZ_WEBRTC-->
+ <!-- TODO preprocess AndroidManifest.xml so that we can
+ conditionally include WebRTC permissions based on MOZ_WEBRTC. -->
+ <!--
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
@@ -28,14 +40,16 @@
android:required="false"/>
<uses-feature
- android:name="android.hardware.audio.low_latency"
+ android:name="android.hardware.camera.any"
android:required="false"/>
<uses-feature
- android:name="android.hardware.microphone"
+ android:name="android.hardware.audio.low_latency"
android:required="false"/>
<uses-feature
- android:name="android.hardware.camera.any"
+ android:name="android.hardware.microphone"
android:required="false"/>
+ -->
+<!--#endif-->
<!-- GeckoView requires OpenGL ES 2.0 -->
<uses-feature
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 25741 - TBA: Disable GeckoNetworkManager
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit ff0ec87a117064f786d15c60001209bc61328e89
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Apr 26 22:22:51 2018 +0000
Bug 25741 - TBA: Disable GeckoNetworkManager
The browser should not need information related to the network
interface or network state, tor should take care of that.
---
.../src/main/java/org/mozilla/geckoview/GeckoRuntime.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java
index f084b522ad53..b94d8e803b6b 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java
@@ -122,7 +122,9 @@ public final class GeckoRuntime implements Parcelable {
mPaused = false;
// Monitor network status and send change notifications to Gecko
// while active.
- GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext());
+ if (BuildConfig.TOR_BROWSER_VERSION == "") {
+ GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext());
+ }
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
@@ -130,7 +132,9 @@ public final class GeckoRuntime implements Parcelable {
Log.d(LOGTAG, "Lifecycle: onPause");
mPaused = true;
// Stop monitoring network status while inactive.
- GeckoNetworkManager.getInstance().stop();
+ if (BuildConfig.TOR_BROWSER_VERSION == "") {
+ GeckoNetworkManager.getInstance().stop();
+ }
GeckoThread.onPause();
}
}
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 40002: Remove about:ion
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit d7e59a3013145daf352181be0e241d2e72b04899
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 e6cf3fe0ef9f..323c1b6fb653 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -122,8 +122,6 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::HIDE_FROM_ABOUTABOUT},
{"restartrequired", "chrome://browser/content/aboutRestartRequired.xhtml",
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 faf6107d6fa6..67f178ee23ff 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -13,7 +13,6 @@ pages = [
'logins',
'loginsimportreport',
'newtab',
- 'ion',
'pocket-home',
'pocket-saved',
'pocket-signup',
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 40091: Load HTTPS Everywhere as a builtin addon in desktop
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 808305b9c3cf0b1442d7dd80d0e4f7a720094d9b
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 e2e710237f47..dd4ba916313d 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -45,6 +45,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",
@@ -121,6 +122,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";
/**
@@ -1383,6 +1391,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 96054179fc3f..eb85fcf0390a 100644
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -226,6 +226,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`
@@ -372,7 +373,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)`,
@@ -420,7 +422,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);
}
@@ -2637,7 +2640,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-90.0-10.5-1] Bug 33342: Avoid disconnect search addon error after removal.
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 1e8101b9b67f3bef398b02845fdd59423b5902a9
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Mar 13 18:19:30 2020 +0100
Bug 33342: Avoid disconnect search addon error after removal.
We removed the addon in #32767, but it was still being loaded
from addonStartup.json.lz4 and throwing an error on startup
because its resource: location is not available anymore.
---
toolkit/mozapps/extensions/internal/XPIProvider.jsm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
index 939dd6a70b24..ddf6f0049054 100644
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -959,6 +959,12 @@ var BuiltInLocation = new (class _BuiltInLocation extends XPIStateLocation {
isLinkedAddon(/* aId */) {
return false;
}
+
+ restore(saved) {
+ super.restore(saved);
+ // Bug 33342: avoid restoring disconnect addon from addonStartup.json.lz4.
+ this.removeAddon("disconnect(a)search.mozilla.org");
+ }
})();
/**
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 40025: Remove Mozilla add-on install permissions
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 05956dd87eff2b6b232ecd7e7c0b7002b2cd5ad4
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 b75b839e366b..d8439d49346b 100644
--- a/browser/app/permissions
+++ b/browser/app/permissions
@@ -12,11 +12,6 @@
origin uitour 1 https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.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-90.0-10.5-1] Bug 40073: Disable remote Public Suffix List fetching
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit bbcf5b561d5179f798436a83bd9ac0fe9e09ddea
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 c23f926a2de2..e2e710237f47 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -71,7 +71,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",
@@ -2650,10 +2649,6 @@ BrowserGlue.prototype = {
this._addBreachesSyncHandler();
},
- () => {
- PublicSuffixList.init();
- },
-
() => {
RemoteSecuritySettings.init();
},
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 21952: Implement Onion-Location
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 38f0abd191236b397121262f5248deb44b6b5bc7
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu Mar 5 22:16:39 2020 +0100
Bug 21952: Implement Onion-Location
Whenever a valid Onion-Location HTTP header (or corresponding HTML
<meta> http-equiv attribute) is found in a document load, we either
redirect to it (if the user opted-in via preference) or notify the
presence of an onionsite alternative with a badge in the urlbar.
---
browser/base/content/browser.js | 12 ++
browser/base/content/browser.xhtml | 3 +
browser/components/BrowserGlue.jsm | 13 ++
.../onionservices/OnionLocationChild.jsm | 39 +++++
.../onionservices/OnionLocationParent.jsm | 168 +++++++++++++++++++++
.../content/onionlocation-notification-icons.css | 5 +
.../onionservices/content/onionlocation-urlbar.css | 27 ++++
.../content/onionlocation-urlbar.inc.xhtml | 10 ++
.../onionservices/content/onionlocation.svg | 3 +
.../content/onionlocationPreferences.inc.xhtml | 11 ++
.../content/onionlocationPreferences.js | 31 ++++
browser/components/onionservices/jar.mn | 2 +
browser/components/onionservices/moz.build | 2 +
browser/components/preferences/privacy.inc.xhtml | 2 +
browser/components/preferences/privacy.js | 17 +++
browser/themes/shared/notification-icons.inc.css | 2 +
browser/themes/shared/urlbar-searchbar.inc.css | 2 +
dom/base/Document.cpp | 34 ++++-
dom/base/Document.h | 2 +
dom/webidl/Document.webidl | 8 +
modules/libpref/init/StaticPrefList.yaml | 5 +
xpcom/ds/StaticAtoms.py | 1 +
22 files changed, 398 insertions(+), 1 deletion(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 7103cd2c374b..a443220ba6e8 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -50,6 +50,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
NetUtil: "resource://gre/modules/NetUtil.jsm",
NewTabUtils: "resource://gre/modules/NewTabUtils.jsm",
OpenInTabsUtils: "resource:///modules/OpenInTabsUtils.jsm",
+ OnionLocationParent: "resource:///modules/OnionLocationParent.jsm",
PageActions: "resource:///modules/PageActions.jsm",
PageThumbs: "resource://gre/modules/PageThumbs.jsm",
PanelMultiView: "resource:///modules/PanelMultiView.jsm",
@@ -5310,6 +5311,7 @@ var XULBrowserWindow = {
CFRPageActions.updatePageActions(gBrowser.selectedBrowser);
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
+ OnionLocationParent.updateOnionLocationBadge(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) {
// Bug 1108553 - Cannot rotate images with e10s
@@ -5800,6 +5802,16 @@ var CombinedStopReload = {
var TabsProgressListener = {
onStateChange(aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
+ // Clear OnionLocation UI
+ if (
+ aStateFlags & Ci.nsIWebProgressListener.STATE_START &&
+ aStateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK &&
+ aRequest &&
+ aWebProgress.isTopLevel
+ ) {
+ OnionLocationParent.onStateChange(aBrowser);
+ }
+
// Collect telemetry data about tab load times.
if (
aWebProgress.isTopLevel &&
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index e4f3363e2180..5b64d914d414 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -2039,6 +2039,9 @@
onclick="FullZoom.reset(); FullZoom.resetScalingZoom();"
tooltip="dynamic-shortcut-tooltip"
hidden="true"/>
+
+#include ../../components/onionservices/content/onionlocation-urlbar.inc.xhtml
+
<hbox id="pageActionButton"
class="urlbar-page-action urlbar-icon-wrapper"
role="button"
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 5b320bd989f0..c23f926a2de2 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -546,6 +546,19 @@ let JSWINDOWACTORS = {
allFrames: true,
},
+ OnionLocation: {
+ parent: {
+ moduleURI: "resource:///modules/OnionLocationParent.jsm",
+ },
+ child: {
+ moduleURI: "resource:///modules/OnionLocationChild.jsm",
+ events: {
+ pageshow: { mozSystemGroup: true },
+ },
+ },
+ messageManagerGroups: ["browsers"],
+ },
+
PageInfo: {
child: {
moduleURI: "resource:///actors/PageInfoChild.jsm",
diff --git a/browser/components/onionservices/OnionLocationChild.jsm b/browser/components/onionservices/OnionLocationChild.jsm
new file mode 100644
index 000000000000..9e00054ac56c
--- /dev/null
+++ b/browser/components/onionservices/OnionLocationChild.jsm
@@ -0,0 +1,39 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+var EXPORTED_SYMBOLS = ["OnionLocationChild"];
+
+class OnionLocationChild extends JSWindowActorChild {
+ handleEvent(event) {
+ this.onPageShow(event);
+ }
+
+ onPageShow(event) {
+ if (event.target != this.document) {
+ return;
+ }
+ const onionLocationURI = this.document.onionLocationURI;
+ if (onionLocationURI) {
+ this.sendAsyncMessage("OnionLocation:Set");
+ }
+ }
+
+ receiveMessage(aMessage) {
+ if (aMessage.name == "OnionLocation:Refresh") {
+ const doc = this.document;
+ const docShell = this.docShell;
+ const onionLocationURI = doc.onionLocationURI;
+ const refreshURI = docShell.QueryInterface(Ci.nsIRefreshURI);
+ if (onionLocationURI && refreshURI) {
+ refreshURI.refreshURI(
+ onionLocationURI,
+ doc.nodePrincipal,
+ 0,
+ false,
+ true
+ );
+ }
+ }
+ }
+}
diff --git a/browser/components/onionservices/OnionLocationParent.jsm b/browser/components/onionservices/OnionLocationParent.jsm
new file mode 100644
index 000000000000..f6250e554862
--- /dev/null
+++ b/browser/components/onionservices/OnionLocationParent.jsm
@@ -0,0 +1,168 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+var EXPORTED_SYMBOLS = ["OnionLocationParent"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { TorStrings } = ChromeUtils.import("resource:///modules/TorStrings.jsm");
+
+// Prefs
+const NOTIFICATION_PREF = "privacy.prioritizeonions.showNotification";
+const PRIORITIZE_ONIONS_PREF = "privacy.prioritizeonions.enabled";
+
+// Element IDs
+const ONIONLOCATION_BOX_ID = "onion-location-box";
+const ONIONLOCATION_BUTTON_ID = "onion-location-button";
+const ONIONLOCATION_LABEL_ID = "onion-label";
+
+// Notification IDs
+const NOTIFICATION_ID = "onion-location";
+const NOTIFICATION_ANCHOR_ID = "onionlocation";
+
+// Strings
+const STRING_ONION_AVAILABLE = TorStrings.onionLocation.onionAvailable;
+const NOTIFICATION_CANCEL_LABEL = TorStrings.onionLocation.notNow;
+const NOTIFICATION_CANCEL_ACCESSKEY = TorStrings.onionLocation.notNowAccessKey;
+const NOTIFICATION_OK_LABEL = TorStrings.onionLocation.alwaysPrioritize;
+const NOTIFICATION_OK_ACCESSKEY =
+ TorStrings.onionLocation.alwaysPrioritizeAccessKey;
+const NOTIFICATION_TITLE = TorStrings.onionLocation.tryThis;
+const NOTIFICATION_DESCRIPTION = TorStrings.onionLocation.description;
+const NOTIFICATION_LEARN_MORE_URL = TorStrings.onionLocation.learnMoreURL;
+
+class OnionLocationParent extends JSWindowActorParent {
+ // Listeners are added in BrowserGlue.jsm
+ receiveMessage(aMsg) {
+ switch (aMsg.name) {
+ case "OnionLocation:Set":
+ let browser = this.browsingContext.embedderElement;
+ OnionLocationParent.setOnionLocation(browser);
+ break;
+ }
+ }
+
+ static buttonClick(event) {
+ if (event.button !== 0) {
+ return;
+ }
+ const win = event.target.ownerGlobal;
+ if (win.gBrowser) {
+ const browser = win.gBrowser.selectedBrowser;
+ OnionLocationParent.redirect(browser);
+ }
+ }
+
+ static redirect(browser) {
+ let windowGlobal = browser.browsingContext.currentWindowGlobal;
+ let actor = windowGlobal.getActor("OnionLocation");
+ if (actor) {
+ actor.sendAsyncMessage("OnionLocation:Refresh", {});
+ OnionLocationParent.setDisabled(browser);
+ }
+ }
+
+ static onStateChange(browser) {
+ delete browser._onionLocation;
+ OnionLocationParent.hideNotification(browser);
+ }
+
+ static setOnionLocation(browser) {
+ browser._onionLocation = true;
+ let tabBrowser = browser.getTabBrowser();
+ if (tabBrowser && browser === tabBrowser.selectedBrowser) {
+ OnionLocationParent.updateOnionLocationBadge(browser);
+ }
+ }
+
+ static hideNotification(browser) {
+ const win = browser.ownerGlobal;
+ if (browser._onionLocationPrompt) {
+ win.PopupNotifications.remove(browser._onionLocationPrompt);
+ }
+ }
+
+ static showNotification(browser) {
+ const mustShow = Services.prefs.getBoolPref(NOTIFICATION_PREF, true);
+ if (!mustShow) {
+ return;
+ }
+
+ const win = browser.ownerGlobal;
+ Services.prefs.setBoolPref(NOTIFICATION_PREF, false);
+
+ const mainAction = {
+ label: NOTIFICATION_OK_LABEL,
+ accessKey: NOTIFICATION_OK_ACCESSKEY,
+ callback() {
+ Services.prefs.setBoolPref(PRIORITIZE_ONIONS_PREF, true);
+ OnionLocationParent.redirect(browser);
+ win.openPreferences("privacy-onionservices");
+ },
+ };
+
+ const cancelAction = {
+ label: NOTIFICATION_CANCEL_LABEL,
+ accessKey: NOTIFICATION_CANCEL_ACCESSKEY,
+ callback: () => {},
+ };
+
+ const options = {
+ autofocus: true,
+ persistent: true,
+ removeOnDismissal: false,
+ eventCallback(aTopic) {
+ if (aTopic === "removed") {
+ delete browser._onionLocationPrompt;
+ delete browser.onionpopupnotificationanchor;
+ }
+ },
+ learnMoreURL: NOTIFICATION_LEARN_MORE_URL,
+ displayURI: {
+ hostPort: NOTIFICATION_TITLE, // This is hacky, but allows us to have a title without extra markup/css.
+ },
+ hideClose: true,
+ popupIconClass: "onionlocation-notification-icon",
+ };
+
+ // A hacky way of setting the popup anchor outside the usual url bar icon box
+ // onionlocationpopupnotificationanchor comes from `${ANCHOR_ID}popupnotificationanchor`
+ // From https://searchfox.org/mozilla-esr68/rev/080f9ed47742644d2ff84f7aa0b10aea5c4…
+ browser.onionlocationpopupnotificationanchor = win.document.getElementById(
+ ONIONLOCATION_BUTTON_ID
+ );
+
+ browser._onionLocationPrompt = win.PopupNotifications.show(
+ browser,
+ NOTIFICATION_ID,
+ NOTIFICATION_DESCRIPTION,
+ NOTIFICATION_ANCHOR_ID,
+ mainAction,
+ [cancelAction],
+ options
+ );
+ }
+
+ static setEnabled(browser) {
+ const win = browser.ownerGlobal;
+ const label = win.document.getElementById(ONIONLOCATION_LABEL_ID);
+ label.textContent = STRING_ONION_AVAILABLE;
+ const elem = win.document.getElementById(ONIONLOCATION_BOX_ID);
+ elem.removeAttribute("hidden");
+ }
+
+ static setDisabled(browser) {
+ const win = browser.ownerGlobal;
+ const elem = win.document.getElementById(ONIONLOCATION_BOX_ID);
+ elem.setAttribute("hidden", true);
+ }
+
+ static updateOnionLocationBadge(browser) {
+ if (browser._onionLocation) {
+ OnionLocationParent.setEnabled(browser);
+ OnionLocationParent.showNotification(browser);
+ } else {
+ OnionLocationParent.setDisabled(browser);
+ }
+ }
+}
diff --git a/browser/components/onionservices/content/onionlocation-notification-icons.css b/browser/components/onionservices/content/onionlocation-notification-icons.css
new file mode 100644
index 000000000000..7c8a6d892c6f
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocation-notification-icons.css
@@ -0,0 +1,5 @@
+/* Copyright (c) 2020, The Tor Project, Inc. */
+
+.onionlocation-notification-icon {
+ display: none;
+}
\ No newline at end of file
diff --git a/browser/components/onionservices/content/onionlocation-urlbar.css b/browser/components/onionservices/content/onionlocation-urlbar.css
new file mode 100644
index 000000000000..91cad5f178d1
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocation-urlbar.css
@@ -0,0 +1,27 @@
+/* Copyright (c) 2020, The Tor Project, Inc. */
+
+#onion-location-button {
+ list-style-image: url(chrome://browser/content/onionservices/onionlocation.svg);
+}
+
+#onion-location-box {
+ border-radius: 3px;
+ background-color: #6200A4;
+ padding-left: 5px;
+ padding-right: 5px;
+ color: white;
+ -moz-context-properties: fill;
+ fill: white;
+}
+
+#onion-location-box:hover {
+ background-color: #0060DF !important;
+}
+
+toolbar[brighttext] #onion-location-box {
+ background-color: #9400ff;
+}
+
+toolbar[brighttext] #onion-location-box:hover {
+ background-color: #0060DF !important;
+}
diff --git a/browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml b/browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
new file mode 100644
index 000000000000..b612a4236f3c
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
@@ -0,0 +1,10 @@
+# Copyright (c) 2020, The Tor Project, Inc.
+
+<hbox id="onion-location-box"
+ class="urlbar-icon-wrapper urlbar-page-action"
+ role="button"
+ hidden="true"
+ onclick="OnionLocationParent.buttonClick(event);">
+ <image id="onion-location-button" role="presentation"/>
+ <hbox id="onion-label-container"><label id="onion-label"/></hbox>
+</hbox>
diff --git a/browser/components/onionservices/content/onionlocation.svg b/browser/components/onionservices/content/onionlocation.svg
new file mode 100644
index 000000000000..37f40ac1812f
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocation.svg
@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <path fill="context-fill" fill-opacity="context-fill-opacity" d="m8.016411 14.54499v-0.969784c3.071908-0.0089 5.559239-2.501304 5.559239-5.575429 0-3.073903-2.487331-5.566336-5.559239-5.575206v-0.9697843c3.607473 0.00909 6.528802 2.935521 6.528802 6.544991 0 3.609691-2.921329 6.536342-6.528802 6.545213zm0-3.394356c1.732661-0.0091 3.135111-1.415756 3.135111-3.150857 0-1.734878-1.402451-3.141542-3.135111-3.150634v-0.9695626c2.268448 0.00887 4.104895 1.849753 4.104895 4.120197 0 2.270666-1.836447 4.111549-4.104895 4.120419zm0-4.846926c0.9294227 0.00887 1.680545 0.7644289 1.680545 1.696069 0 0.9318627-0.7511226 1.687421-1.680545 1.696291zm-8.016411 1.696069c0 4.418473 3.581527 8.000222 8 8.000222 4.418251 0 8-3.581749 8-8.000222 0-4.418251-3.581749-7.999778-8-7.999778-4.418473 0-8 3.581527-8 7.999778z" />
+</svg>
\ No newline at end of file
diff --git a/browser/components/onionservices/content/onionlocationPreferences.inc.xhtml b/browser/components/onionservices/content/onionlocationPreferences.inc.xhtml
new file mode 100644
index 000000000000..c285f403f99b
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocationPreferences.inc.xhtml
@@ -0,0 +1,11 @@
+# Copyright (c) 2020, The Tor Project, Inc.
+
+<groupbox id="onionServicesGroup" data-category="panePrivacy" data-subcategory="onionservices" hidden="true">
+ <label><html:h2 id="onionServicesTitle"></html:h2></label>
+ <label><label class="tail-with-learn-more" id="prioritizeOnionsDesc"></label><label
+ class="learnMore" is="text-link" id="onionServicesLearnMore"></label></label>
+ <radiogroup id="prioritizeOnionsRadioGroup" aria-labelledby="prioritizeOnionsDesc" preference="privacy.prioritizeonions.enabled">
+ <radio id="onionServicesRadioAlways" value="true"/>
+ <radio id="onionServicesRadioAsk" value="false"/>
+ </radiogroup>
+</groupbox>
diff --git a/browser/components/onionservices/content/onionlocationPreferences.js b/browser/components/onionservices/content/onionlocationPreferences.js
new file mode 100644
index 000000000000..aa569b54721c
--- /dev/null
+++ b/browser/components/onionservices/content/onionlocationPreferences.js
@@ -0,0 +1,31 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "TorStrings",
+ "resource:///modules/TorStrings.jsm"
+);
+
+const OnionLocationPreferences = {
+ init() {
+ document.getElementById("onionServicesTitle").textContent =
+ TorStrings.onionLocation.onionServicesTitle;
+ document.getElementById("prioritizeOnionsDesc").textContent =
+ TorStrings.onionLocation.prioritizeOnionsDescription;
+ const learnMore = document.getElementById("onionServicesLearnMore");
+ learnMore.textContent = TorStrings.onionLocation.learnMore;
+ learnMore.href = TorStrings.onionLocation.learnMoreURL;
+ document.getElementById("onionServicesRadioAlways").label =
+ TorStrings.onionLocation.always;
+ document.getElementById("onionServicesRadioAsk").label =
+ TorStrings.onionLocation.askEverytime;
+ },
+};
+
+Object.defineProperty(this, "OnionLocationPreferences", {
+ value: OnionLocationPreferences,
+ enumerable: true,
+ writable: false,
+});
diff --git a/browser/components/onionservices/jar.mn b/browser/components/onionservices/jar.mn
index 9d6ce88d1841..f45b16dc5d29 100644
--- a/browser/components/onionservices/jar.mn
+++ b/browser/components/onionservices/jar.mn
@@ -7,3 +7,5 @@ browser.jar:
content/browser/onionservices/onionservices.css (content/onionservices.css)
content/browser/onionservices/savedKeysDialog.js (content/savedKeysDialog.js)
content/browser/onionservices/savedKeysDialog.xhtml (content/savedKeysDialog.xhtml)
+ content/browser/onionservices/onionlocationPreferences.js (content/onionlocationPreferences.js)
+ content/browser/onionservices/onionlocation.svg (content/onionlocation.svg)
diff --git a/browser/components/onionservices/moz.build b/browser/components/onionservices/moz.build
index 815685322024..8027233d65a6 100644
--- a/browser/components/onionservices/moz.build
+++ b/browser/components/onionservices/moz.build
@@ -4,4 +4,6 @@ EXTRA_JS_MODULES += [
"ExtensionMessaging.jsm",
"HttpsEverywhereControl.jsm",
"OnionAliasStore.jsm",
+ "OnionLocationChild.jsm",
+ "OnionLocationParent.jsm",
]
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index eb410c13a8cc..be629399bdb9 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -14,6 +14,8 @@
<html:h1 data-l10n-id="privacy-header"/>
</hbox>
+#include ../onionservices/content/onionlocationPreferences.inc.xhtml
+
<!-- Tracking / Content Blocking -->
<groupbox id="trackingGroup" data-category="panePrivacy" hidden="true" aria-describedby="contentBlockingDescription">
<label id="contentBlockingHeader"><html:h2 data-l10n-id="content-blocking-enhanced-tracking-protection"/></label>
diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index 0b1e28dfac92..290b22271807 100644
--- a/browser/components/preferences/privacy.js
+++ b/browser/components/preferences/privacy.js
@@ -93,6 +93,12 @@ XPCOMUtils.defineLazyScriptGetter(
"chrome://browser/content/securitylevel/securityLevel.js"
);
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["OnionLocationPreferences"],
+ "chrome://browser/content/onionservices/onionlocationPreferences.js"
+);
+
XPCOMUtils.defineLazyServiceGetter(
this,
"listManager",
@@ -169,6 +175,9 @@ Preferences.addAll([
// Do not track
{ id: "privacy.donottrackheader.enabled", type: "bool" },
+ // Onion Location
+ { id: "privacy.prioritizeonions.enabled", type: "bool" },
+
// Media
{ id: "media.autoplay.default", type: "int" },
@@ -330,6 +339,13 @@ var gPrivacyPane = {
window.addEventListener("unload", unload);
},
+ /**
+ * Show the OnionLocation preferences UI
+ */
+ _initOnionLocation() {
+ OnionLocationPreferences.init();
+ },
+
/**
* Whether the prompt to restart Firefox should appear when changing the autostart pref.
*/
@@ -537,6 +553,7 @@ var gPrivacyPane = {
this._initTrackingProtectionExtensionControl();
OnionServicesAuthPreferences.init();
this._initSecurityLevel();
+ this._initOnionLocation();
Services.telemetry.setEventRecordingEnabled("pwmgr", true);
diff --git a/browser/themes/shared/notification-icons.inc.css b/browser/themes/shared/notification-icons.inc.css
index 39eb59a04964..0312654b6bcf 100644
--- a/browser/themes/shared/notification-icons.inc.css
+++ b/browser/themes/shared/notification-icons.inc.css
@@ -536,3 +536,5 @@
border-radius: 50%;
}
} /** END not Proton **/
+
+%include ../../components/onionservices/content/onionlocation-notification-icons.css
diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
index 89e77b8ce90a..dc608af4b7fa 100644
--- a/browser/themes/shared/urlbar-searchbar.inc.css
+++ b/browser/themes/shared/urlbar-searchbar.inc.css
@@ -904,3 +904,5 @@ moz-input-box > menupopup .context-menu-add-engine > .menu-iconic-left::after {
opacity: 0.69;
}
} /*** END !proton ***/
+
+%include ../../components/onionservices/content/onionlocation-urlbar.css
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index c0494f7ccc74..c5592ec6bcbd 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
@@ -2781,6 +2781,7 @@ void Document::ResetToURI(nsIURI* aURI, nsILoadGroup* aLoadGroup,
// mDocumentURI.
mDocumentBaseURI = nullptr;
mChromeXHRDocBaseURI = nullptr;
+ mOnionLocationURI = nullptr;
// Check if the current document is the top-level DevTools document.
// For inner DevTools frames, mIsDevToolsDocument will be set when
@@ -6498,6 +6499,22 @@ void Document::GetHeaderData(nsAtom* aHeaderField, nsAString& aData) const {
}
}
+static bool IsValidOnionLocation(nsIURI* aDocumentURI,
+ nsIURI* aOnionLocationURI) {
+ bool isHttpish;
+ nsAutoCString host;
+ return aDocumentURI && aOnionLocationURI &&
+ NS_SUCCEEDED(aDocumentURI->SchemeIs("https", &isHttpish)) &&
+ isHttpish && NS_SUCCEEDED(aDocumentURI->GetAsciiHost(host)) &&
+ !StringEndsWith(host, ".onion"_ns) &&
+ ((NS_SUCCEEDED(aOnionLocationURI->SchemeIs("http", &isHttpish)) &&
+ isHttpish) ||
+ (NS_SUCCEEDED(aOnionLocationURI->SchemeIs("https", &isHttpish)) &&
+ isHttpish)) &&
+ NS_SUCCEEDED(aOnionLocationURI->GetAsciiHost(host)) &&
+ StringEndsWith(host, ".onion"_ns);
+}
+
void Document::SetHeaderData(nsAtom* aHeaderField, const nsAString& aData) {
if (!aHeaderField) {
NS_ERROR("null headerField");
@@ -6572,6 +6589,21 @@ void Document::SetHeaderData(nsAtom* aHeaderField, const nsAString& aData) {
aHeaderField == nsGkAtoms::handheldFriendly) {
mViewportType = Unknown;
}
+
+ if (aHeaderField == nsGkAtoms::headerOnionLocation && !aData.IsEmpty()) {
+ nsCOMPtr<nsIURI> onionURI;
+ if (NS_SUCCEEDED(NS_NewURI(getter_AddRefs(onionURI), aData)) &&
+ IsValidOnionLocation(Document::GetDocumentURI(), onionURI)) {
+ if (StaticPrefs::privacy_prioritizeonions_enabled()) {
+ nsCOMPtr<nsIRefreshURI> refresher(mDocumentContainer);
+ if (refresher) {
+ refresher->RefreshURI(onionURI, NodePrincipal(), 0, false, true);
+ }
+ } else {
+ mOnionLocationURI = onionURI;
+ }
+ }
+ }
}
void Document::TryChannelCharset(nsIChannel* aChannel, int32_t& aCharsetSource,
@@ -10681,7 +10713,7 @@ void Document::RetrieveRelevantHeaders(nsIChannel* aChannel) {
static const char* const headers[] = {
"default-style", "content-style-type", "content-language",
"content-disposition", "refresh", "x-dns-prefetch-control",
- "x-frame-options",
+ "x-frame-options", "onion-location",
// add more http headers if you need
// XXXbz don't add content-location support without reading bug
// 238654 and its dependencies/dups first.
diff --git a/dom/base/Document.h b/dom/base/Document.h
index 619484ceb2d0..18c28e40ed76 100644
--- a/dom/base/Document.h
+++ b/dom/base/Document.h
@@ -3374,6 +3374,7 @@ class Document : public nsINode,
void ReleaseCapture() const;
void MozSetImageElement(const nsAString& aImageElementId, Element* aElement);
nsIURI* GetDocumentURIObject() const;
+ nsIURI* GetOnionLocationURI() const { return mOnionLocationURI; }
// Not const because all the fullscreen goop is not const
const char* GetFullscreenError(CallerType);
bool FullscreenEnabled(CallerType aCallerType) {
@@ -4360,6 +4361,7 @@ class Document : public nsINode,
nsCOMPtr<nsIURI> mChromeXHRDocURI;
nsCOMPtr<nsIURI> mDocumentBaseURI;
nsCOMPtr<nsIURI> mChromeXHRDocBaseURI;
+ nsCOMPtr<nsIURI> mOnionLocationURI;
// The base domain of the document for third-party checks.
nsCString mBaseDomain;
diff --git a/dom/webidl/Document.webidl b/dom/webidl/Document.webidl
index 23a8f6a038b2..a3d06fb8e4be 100644
--- a/dom/webidl/Document.webidl
+++ b/dom/webidl/Document.webidl
@@ -717,3 +717,11 @@ partial interface Document {
[ChromeOnly]
void setNotifyFormOrPasswordRemoved(boolean aShouldNotify);
};
+
+/**
+ * Extension to allows chrome JS to know whether the document has a valid
+ * Onion-Location that we could redirect to.
+ */
+partial interface Document {
+ [ChromeOnly] readonly attribute URI? onionLocationURI;
+};
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index 238177c47894..0c8ea070ed45 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -10296,6 +10296,11 @@
value: ""
mirror: never
+- name: privacy.prioritizeonions.enabled
+ type: RelaxedAtomicBool
+ value: false
+ mirror: always
+
#---------------------------------------------------------------------------
# Prefs starting with "prompts."
#---------------------------------------------------------------------------
diff --git a/xpcom/ds/StaticAtoms.py b/xpcom/ds/StaticAtoms.py
index 0cc7799d4370..09a91aee3f2a 100644
--- a/xpcom/ds/StaticAtoms.py
+++ b/xpcom/ds/StaticAtoms.py
@@ -818,6 +818,7 @@ STATIC_ATOMS = [
Atom("oninputsourceschange", "oninputsourceschange"),
Atom("oninstall", "oninstall"),
Atom("oninvalid", "oninvalid"),
+ Atom("headerOnionLocation", "onion-location"),
Atom("onkeydown", "onkeydown"),
Atom("onkeypress", "onkeypress"),
Atom("onkeyup", "onkeyup"),
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 32418: Allow updates to be disabled via an enterprise policy.
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 363379b7b4fbdc6811879ca6583f7a8352e3ef0a
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Thu Apr 16 17:07:09 2020 -0400
Bug 32418: Allow updates to be disabled via an enterprise policy.
Restrict the Enterprise Policies mechanism to only consult a
policies.json file (avoiding the Windows Registry and macOS's
file system attributes).
Add a few disabledByPolicy() checks to the update service to
avoid extraneous (and potentially confusing) log messages when
updates are disabled by policy.
Sample content for distribution/policies.json:
{
"policies": {
"DisableAppUpdate": true
}
}
On Linux, avoid reading policies from /etc/firefox/policies/policies.json
---
.../enterprisepolicies/EnterprisePoliciesParent.jsm | 14 ++++++++++++--
toolkit/components/enterprisepolicies/moz.build | 3 +++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
index 775144e8a649..9fe916236cbc 100644
--- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
+++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.jsm
@@ -4,6 +4,10 @@
var EXPORTED_SYMBOLS = ["EnterprisePoliciesManager"];
+// To ensure that policies intended for Firefox or another browser will not
+// be used, Tor Browser only looks for policies in ${InstallDir}/distribution
+#define AVOID_SYSTEM_POLICIES MOZ_PROXY_BYPASS_PROTECTION
+
const { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);
@@ -13,9 +17,11 @@ const { AppConstants } = ChromeUtils.import(
);
XPCOMUtils.defineLazyModuleGetters(this, {
+#ifndef AVOID_SYSTEM_POLICIES
WindowsGPOParser: "resource://gre/modules/policies/WindowsGPOParser.jsm",
macOSPoliciesParser:
"resource://gre/modules/policies/macOSPoliciesParser.jsm",
+#endif
Policies: "resource:///modules/policies/Policies.jsm",
JsonSchemaValidator:
"resource://gre/modules/components-utils/JsonSchemaValidator.jsm",
@@ -140,11 +146,13 @@ EnterprisePoliciesManager.prototype = {
_chooseProvider() {
let platformProvider = null;
+#ifndef AVOID_SYSTEM_POLICIES
if (AppConstants.platform == "win") {
platformProvider = new WindowsGPOPoliciesProvider();
} else if (AppConstants.platform == "macosx") {
platformProvider = new macOSPoliciesProvider();
}
+#endif
let jsonProvider = new JSONPoliciesProvider();
if (platformProvider && platformProvider.hasPolicies) {
if (jsonProvider.hasPolicies) {
@@ -491,7 +499,7 @@ class JSONPoliciesProvider {
_getConfigurationFile() {
let configFile = null;
-
+#ifndef AVOID_SYSTEM_POLICIES
if (AppConstants.platform == "linux") {
let systemConfigFile = Cc["@mozilla.org/file/local;1"].createInstance(
Ci.nsIFile
@@ -504,7 +512,7 @@ class JSONPoliciesProvider {
return systemConfigFile;
}
}
-
+#endif
try {
let perUserPath = Services.prefs.getBoolPref(PREF_PER_USER_DIR, false);
if (perUserPath) {
@@ -585,6 +593,7 @@ class JSONPoliciesProvider {
}
}
+#ifndef AVOID_SYSTEM_POLICIES
class WindowsGPOPoliciesProvider {
constructor() {
this._policies = null;
@@ -686,3 +695,4 @@ class CombinedProvider {
return false;
}
}
+#endif
diff --git a/toolkit/components/enterprisepolicies/moz.build b/toolkit/components/enterprisepolicies/moz.build
index 09d2046e1bd7..3f685d3fbbd6 100644
--- a/toolkit/components/enterprisepolicies/moz.build
+++ b/toolkit/components/enterprisepolicies/moz.build
@@ -19,6 +19,9 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android":
EXTRA_JS_MODULES += [
"EnterprisePolicies.jsm",
"EnterprisePoliciesContent.jsm",
+ ]
+
+ EXTRA_PP_JS_MODULES += [
"EnterprisePoliciesParent.jsm",
]
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 28125 - Prevent non-Necko network connections
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 11b5ade88fa278a29ce23a621cd7ad11b7412b5e
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Oct 25 19:17:09 2018 +0000
Bug 28125 - Prevent non-Necko network connections
---
.../gecko/media/GeckoMediaDrmBridgeV21.java | 49 +---------------------
.../exoplayer2/upstream/DefaultHttpDataSource.java | 47 ++-------------------
2 files changed, 4 insertions(+), 92 deletions(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
index 6e75e6fb4dd5..7faa9bc2821d 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
@@ -490,54 +490,7 @@ public class GeckoMediaDrmBridgeV21 implements GeckoMediaDrm {
@Override
protected Void doInBackground(final Void... params) {
- HttpURLConnection urlConnection = null;
- BufferedReader in = null;
- try {
- final URI finalURI = new URI(mURL + "&signedRequest=" + URLEncoder.encode(new String(mDrmRequest), "UTF-8"));
- urlConnection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(finalURI);
- urlConnection.setRequestMethod("POST");
- if (DEBUG) Log.d(LOGTAG, "Provisioning, posting url =" + finalURI.toString());
-
- // Add data
- urlConnection.setRequestProperty("Accept", "*/*");
- urlConnection.setRequestProperty("User-Agent", getCDMUserAgent());
- urlConnection.setRequestProperty("Content-Type", "application/json");
-
- // Execute HTTP Post Request
- urlConnection.connect();
-
- final int responseCode = urlConnection.getResponseCode();
- if (responseCode == HttpURLConnection.HTTP_OK) {
- in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), UTF_8));
- String inputLine;
- final StringBuffer response = new StringBuffer();
-
- while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
- }
- in.close();
- mResponseBody = String.valueOf(response).getBytes(UTF_8);
- if (DEBUG) Log.d(LOGTAG, "Provisioning, response received.");
- if (mResponseBody != null) Log.d(LOGTAG, "response length=" + mResponseBody.length);
- } else {
- Log.d(LOGTAG, "Provisioning, server returned HTTP error code :" + responseCode);
- }
- } catch (final IOException e) {
- Log.e(LOGTAG, "Got exception during posting provisioning request ...", e);
- } catch (final URISyntaxException e) {
- Log.e(LOGTAG, "Got exception during creating uri ...", e);
- } finally {
- if (urlConnection != null) {
- urlConnection.disconnect();
- }
- try {
- if (in != null) {
- in.close();
- }
- } catch (final IOException e) {
- Log.e(LOGTAG, "Exception during closing in ...", e);
- }
- }
+ Log.i(LOGTAG, "This is Tor Browser. Skipping.");
return null;
}
diff --git a/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java b/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
index 6e5095b0a4c9..a585e283ed4e 100644
--- a/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
+++ b/mobile/android/geckoview/src/thirdparty/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
@@ -46,6 +46,7 @@ import java.util.regex.Pattern;
import java.util.zip.GZIPInputStream;
import org.mozilla.gecko.util.ProxySelector;
+
/**
* An {@link HttpDataSource} that uses Android's {@link HttpURLConnection}.
*
@@ -516,50 +517,8 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
boolean followRedirects,
Map<String, String> requestParameters)
throws IOException, URISyntaxException {
- /**
- * Tor Project modified the way the connection object was created. For the sake of
- * simplicity, instead of duplicating the whole file we changed the connection object
- * to use the ProxySelector.
- */
- HttpURLConnection connection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(url.toURI());
-
- connection.setConnectTimeout(connectTimeoutMillis);
- connection.setReadTimeout(readTimeoutMillis);
-
- Map<String, String> requestHeaders = new HashMap<>();
- if (defaultRequestProperties != null) {
- requestHeaders.putAll(defaultRequestProperties.getSnapshot());
- }
- requestHeaders.putAll(requestProperties.getSnapshot());
- requestHeaders.putAll(requestParameters);
-
- for (Map.Entry<String, String> property : requestHeaders.entrySet()) {
- connection.setRequestProperty(property.getKey(), property.getValue());
- }
-
- if (!(position == 0 && length == C.LENGTH_UNSET)) {
- String rangeRequest = "bytes=" + position + "-";
- if (length != C.LENGTH_UNSET) {
- rangeRequest += (position + length - 1);
- }
- connection.setRequestProperty("Range", rangeRequest);
- }
- connection.setRequestProperty("User-Agent", userAgent);
- connection.setRequestProperty("Accept-Encoding", allowGzip ? "gzip" : "identity");
- connection.setInstanceFollowRedirects(followRedirects);
- connection.setDoOutput(httpBody != null);
- connection.setRequestMethod(DataSpec.getStringForHttpMethod(httpMethod));
-
- if (httpBody != null) {
- connection.setFixedLengthStreamingMode(httpBody.length);
- connection.connect();
- OutputStream os = connection.getOutputStream();
- os.write(httpBody);
- os.close();
- } else {
- connection.connect();
- }
- return connection;
+ Log.i(TAG, "This is Tor Browser. Skipping.");
+ throw new IOException();
}
/** Creates an {@link HttpURLConnection} that is connected with the {@code url}. */
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 28005: Implement .onion alias urlbar rewrites
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit b4c6b1e785e7914fd986cb89bb0af6f83e6ebc17
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu Feb 13 13:24:33 2020 +0100
Bug 28005: Implement .onion alias urlbar rewrites
A custom HTTPS Everywhere update channel is installed,
which provides rules for locally redirecting some memorable
.tor.onion URLs to non-memorable .onion URLs.
When these redirects occur, we also rewrite the URL in the urlbar
to display the human-memorable hostname instead of the actual
.onion.
Bug 34196: Update site info URL with the onion name
---
browser/actors/ClickHandlerChild.jsm | 20 ++
browser/actors/ClickHandlerParent.jsm | 1 +
browser/actors/ContextMenuChild.jsm | 4 +
browser/base/content/browser-places.js | 12 +-
browser/base/content/browser-siteIdentity.js | 12 +-
browser/base/content/browser.js | 43 ++++-
browser/base/content/nsContextMenu.js | 18 ++
browser/base/content/pageinfo/pageInfo.js | 2 +-
browser/base/content/pageinfo/pageInfo.xhtml | 10 +
browser/base/content/pageinfo/security.js | 17 +-
browser/base/content/tabbrowser.js | 7 +
browser/base/content/utilityOverlay.js | 12 ++
browser/components/BrowserGlue.jsm | 8 +
.../onionservices/ExtensionMessaging.jsm | 77 ++++++++
.../onionservices/HttpsEverywhereControl.jsm | 119 ++++++++++++
.../components/onionservices/OnionAliasStore.jsm | 201 +++++++++++++++++++++
browser/components/onionservices/moz.build | 6 +
browser/components/urlbar/UrlbarInput.jsm | 13 +-
docshell/base/nsDocShell.cpp | 52 ++++++
docshell/base/nsDocShell.h | 6 +
docshell/base/nsDocShellLoadState.cpp | 8 +
docshell/base/nsIDocShell.idl | 5 +
docshell/base/nsIWebNavigation.idl | 5 +
docshell/shistory/SessionHistoryEntry.cpp | 14 ++
docshell/shistory/SessionHistoryEntry.h | 1 +
docshell/shistory/nsISHEntry.idl | 5 +
docshell/shistory/nsSHEntry.cpp | 22 ++-
docshell/shistory/nsSHEntry.h | 1 +
dom/interfaces/base/nsIBrowser.idl | 3 +-
dom/ipc/BrowserChild.cpp | 2 +
dom/ipc/BrowserParent.cpp | 3 +-
dom/ipc/PBrowser.ipdl | 1 +
modules/libpref/init/StaticPrefList.yaml | 6 +
netwerk/dns/effective_tld_names.dat | 2 +
netwerk/ipc/DocumentLoadListener.cpp | 10 +
toolkit/content/widgets/browser-custom-element.js | 13 +-
toolkit/modules/sessionstore/SessionHistory.jsm | 5 +
xpcom/reflect/xptinfo/xptinfo.h | 3 +-
38 files changed, 726 insertions(+), 23 deletions(-)
diff --git a/browser/actors/ClickHandlerChild.jsm b/browser/actors/ClickHandlerChild.jsm
index 4f5c2b0b7ea1..3ba2f11bf362 100644
--- a/browser/actors/ClickHandlerChild.jsm
+++ b/browser/actors/ClickHandlerChild.jsm
@@ -114,6 +114,26 @@ class ClickHandlerChild extends JSWindowActorChild {
json.originStoragePrincipal = ownerDoc.effectiveStoragePrincipal;
json.triggeringPrincipal = ownerDoc.nodePrincipal;
+ // Check if the link needs to be opened with .tor.onion urlbar rewrites
+ // allowed. Only when the owner doc has onionUrlbarRewritesAllowed = true
+ // and the same origin we should allow this.
+ json.onionUrlbarRewritesAllowed = false;
+ if (this.docShell.onionUrlbarRewritesAllowed) {
+ const sm = Services.scriptSecurityManager;
+ try {
+ let targetURI = Services.io.newURI(href);
+ let isPrivateWin =
+ ownerDoc.nodePrincipal.originAttributes.privateBrowsingId > 0;
+ sm.checkSameOriginURI(
+ docshell.currentDocumentChannel.URI,
+ targetURI,
+ false,
+ isPrivateWin
+ );
+ json.onionUrlbarRewritesAllowed = true;
+ } catch (e) {}
+ }
+
// If a link element is clicked with middle button, user wants to open
// the link somewhere rather than pasting clipboard content. Therefore,
// when it's clicked with middle button, we should prevent multiple
diff --git a/browser/actors/ClickHandlerParent.jsm b/browser/actors/ClickHandlerParent.jsm
index 0f658fccf7b8..ad8f6c2a27e2 100644
--- a/browser/actors/ClickHandlerParent.jsm
+++ b/browser/actors/ClickHandlerParent.jsm
@@ -98,6 +98,7 @@ class ClickHandlerParent extends JSWindowActorParent {
let params = {
charset: browser.characterSet,
referrerInfo: E10SUtils.deserializeReferrerInfo(data.referrerInfo),
+ onionUrlbarRewritesAllowed: data.onionUrlbarRewritesAllowed,
isContentWindowPrivate: data.isContentWindowPrivate,
originPrincipal: data.originPrincipal,
originStoragePrincipal: data.originStoragePrincipal,
diff --git a/browser/actors/ContextMenuChild.jsm b/browser/actors/ContextMenuChild.jsm
index a286eafe0f6d..d332cb41acc8 100644
--- a/browser/actors/ContextMenuChild.jsm
+++ b/browser/actors/ContextMenuChild.jsm
@@ -545,6 +545,9 @@ class ContextMenuChild extends JSWindowActorChild {
doc.defaultView
).getFieldContext(aEvent.composedTarget);
+ let parentAllowsOnionUrlbarRewrites = this.docShell
+ .onionUrlbarRewritesAllowed;
+
let disableSetDesktopBackground = null;
// Media related cache info parent needs for saving
@@ -656,6 +659,7 @@ class ContextMenuChild extends JSWindowActorChild {
frameID,
frameBrowsingContextID,
disableSetDesktopBackground,
+ parentAllowsOnionUrlbarRewrites,
};
if (context.inFrame && !context.inSrcdocFrame) {
diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
index a73e2090bbee..cb8fbeab9bf4 100644
--- a/browser/base/content/browser-places.js
+++ b/browser/base/content/browser-places.js
@@ -470,7 +470,8 @@ var PlacesCommandHook = {
*/
async bookmarkPage() {
let browser = gBrowser.selectedBrowser;
- let url = new URL(browser.currentURI.spec);
+ const uri = browser.currentOnionAliasURI || browser.currentURI;
+ let url = new URL(uri.spec);
let info = await PlacesUtils.bookmarks.fetch({ url });
let isNewBookmark = !info;
let showEditUI = !isNewBookmark || StarUI.showForNewBookmarks;
@@ -581,7 +582,7 @@ var PlacesCommandHook = {
tabs.forEach(tab => {
let browser = tab.linkedBrowser;
- let uri = browser.currentURI;
+ let uri = browser.currentOnionAliasURI || browser.currentURI;
let title = browser.contentTitle || tab.label;
let spec = uri.spec;
if (!(spec in uniquePages)) {
@@ -1828,14 +1829,17 @@ var BookmarkingUI = {
},
onLocationChange: function BUI_onLocationChange() {
- if (this._uri && gBrowser.currentURI.equals(this._uri)) {
+ const uri =
+ gBrowser.selectedBrowser.currentOnionAliasURI || gBrowser.currentURI;
+ if (this._uri && uri.equals(this._uri)) {
return;
}
this.updateStarState();
},
updateStarState: function BUI_updateStarState() {
- this._uri = gBrowser.currentURI;
+ this._uri =
+ gBrowser.selectedBrowser.currentOnionAliasURI || gBrowser.currentURI;
this._itemGuids.clear();
let guids = new Set();
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index 7c9a91ed5af1..7c132668f6b4 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -658,13 +658,13 @@ var gIdentityHandler = {
* nsIURI for which the identity UI should be displayed, already
* processed by createExposableURI.
*/
- updateIdentity(state, uri) {
+ updateIdentity(state, uri, onionAliasURI) {
let shouldHidePopup = this._uri && this._uri.spec != uri.spec;
this._state = state;
// Firstly, populate the state properties required to display the UI. See
// the documentation of the individual properties for details.
- this.setURI(uri);
+ this.setURI(uri, onionAliasURI);
this._secInfo = gBrowser.securityUI.secInfo;
this._isSecureContext = gBrowser.securityUI.isSecureContext;
@@ -687,17 +687,18 @@ var gIdentityHandler = {
* Attempt to provide proper IDN treatment for host names
*/
getEffectiveHost() {
+ let uri = this._onionAliasURI || this._uri;
if (!this._IDNService) {
this._IDNService = Cc["@mozilla.org/network/idn-service;1"].getService(
Ci.nsIIDNService
);
}
try {
- return this._IDNService.convertToDisplayIDN(this._uri.host, {});
+ return this._IDNService.convertToDisplayIDN(uri.host, {});
} catch (e) {
// If something goes wrong (e.g. host is an IP address) just fail back
// to the full domain.
- return this._uri.host;
+ return uri.host;
}
},
@@ -1140,11 +1141,12 @@ var gIdentityHandler = {
this._identityPopupContentVerif.textContent = verifier;
},
- setURI(uri) {
+ setURI(uri, onionAliasURI) {
if (uri.schemeIs("view-source")) {
uri = Services.io.newURI(uri.spec.replace(/^view-source:/i, ""));
}
this._uri = uri;
+ this._onionAliasURI = onionAliasURI;
try {
// Account for file: urls and catch when "" is the value
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 501519db864e..7103cd2c374b 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -82,6 +82,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
TabCrashHandler: "resource:///modules/ContentCrashHandlers.jsm",
TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.jsm",
Translation: "resource:///modules/translation/TranslationParent.jsm",
+ OnionAliasStore: "resource:///modules/OnionAliasStore.jsm",
UITour: "resource:///modules/UITour.jsm",
UpdateUtils: "resource://gre/modules/UpdateUtils.jsm",
UrlbarInput: "resource:///modules/UrlbarInput.jsm",
@@ -2286,6 +2287,7 @@ var gBrowserInit = {
// [9]: allowInheritPrincipal (bool)
// [10]: csp (nsIContentSecurityPolicy)
// [11]: nsOpenWindowInfo
+ // [12]: onionUrlbarRewritesAllowed (bool)
let userContextId =
window.arguments[5] != undefined
? window.arguments[5]
@@ -2305,7 +2307,8 @@ var gBrowserInit = {
// TODO fix allowInheritPrincipal to default to false.
// Default to true unless explicitly set to false because of bug 1475201.
window.arguments[9] !== false,
- window.arguments[10]
+ window.arguments[10],
+ window.arguments[12]
);
window.focus();
} else {
@@ -3085,7 +3088,8 @@ function loadURI(
forceAboutBlankViewerInCurrent,
triggeringPrincipal,
allowInheritPrincipal = false,
- csp = null
+ csp = null,
+ onionUrlbarRewritesAllowed = false
) {
if (!triggeringPrincipal) {
throw new Error("Must load with a triggering Principal");
@@ -3103,6 +3107,7 @@ function loadURI(
csp,
forceAboutBlankViewerInCurrent,
allowInheritPrincipal,
+ onionUrlbarRewritesAllowed,
});
} catch (e) {
Cu.reportError(e);
@@ -5227,11 +5232,24 @@ var XULBrowserWindow = {
this.reloadCommand.removeAttribute("disabled");
}
+ // The onion memorable alias needs to be used in gURLBar.setURI, but also in
+ // other parts of the code (like the bookmarks UI), so we save it.
+ if (gBrowser.selectedBrowser.onionUrlbarRewritesAllowed) {
+ gBrowser.selectedBrowser.currentOnionAliasURI = OnionAliasStore.getShortURI(
+ aLocationURI
+ );
+ } else {
+ gBrowser.selectedBrowser.currentOnionAliasURI = null;
+ }
+
// We want to update the popup visibility if we received this notification
// via simulated locationchange events such as switching between tabs, however
// if this is a document navigation then PopupNotifications will be updated
// via TabsProgressListener.onLocationChange and we do not want it called twice
- gURLBar.setURI(aLocationURI, aIsSimulated);
+ gURLBar.setURI(
+ gBrowser.selectedBrowser.currentOnionAliasURI || aLocationURI,
+ aIsSimulated
+ );
BookmarkingUI.onLocationChange();
// If we've actually changed document, update the toolbar visibility.
@@ -5426,6 +5444,7 @@ var XULBrowserWindow = {
// Don't need to do anything if the data we use to update the UI hasn't
// changed
let uri = gBrowser.currentURI;
+ let onionAliasURI = gBrowser.selectedBrowser.currentOnionAliasURI;
let spec = uri.spec;
let isSecureContext = gBrowser.securityUI.isSecureContext;
if (
@@ -5449,7 +5468,7 @@ var XULBrowserWindow = {
try {
uri = Services.io.createExposableURI(uri);
} catch (e) {}
- gIdentityHandler.updateIdentity(this._state, uri);
+ gIdentityHandler.updateIdentity(this._state, uri, onionAliasURI);
},
// simulate all change notifications after switching tabs
@@ -6956,6 +6975,21 @@ function handleLinkClick(event, href, linkNode) {
return true;
}
+ // Check if the link needs to be opened with .tor.onion urlbar rewrites
+ // allowed. Only when the owner doc has onionUrlbarRewritesAllowed = true
+ // and the same origin we should allow this.
+ let persistOnionUrlbarRewritesAllowedInChildTab = false;
+ if (where == "tab" && gBrowser.docShell.onionUrlbarRewritesAllowed) {
+ const sm = Services.scriptSecurityManager;
+ try {
+ let tURI = makeURI(href);
+ let isPrivateWin =
+ doc.nodePrincipal.originAttributes.privateBrowsingId > 0;
+ sm.checkSameOriginURI(doc.documentURIObject, tURI, false, isPrivateWin);
+ persistOnionUrlbarRewritesAllowedInChildTab = true;
+ } catch (e) {}
+ }
+
let frameID = WebNavigationFrames.getFrameId(doc.defaultView);
urlSecurityCheck(href, doc.nodePrincipal);
@@ -6967,6 +7001,7 @@ function handleLinkClick(event, href, linkNode) {
triggeringPrincipal: doc.nodePrincipal,
csp: doc.csp,
frameID,
+ onionUrlbarRewritesAllowed: persistOnionUrlbarRewritesAllowedInChildTab,
};
// The new tab/window must use the same userContextId
diff --git a/browser/base/content/nsContextMenu.js b/browser/base/content/nsContextMenu.js
index f84f5fb7d028..c6b1257e45be 100644
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -57,6 +57,7 @@ function openContextMenu(aMessage, aBrowser, aActor) {
selectionInfo: data.selectionInfo,
disableSetDesktopBackground: data.disableSetDesktopBackground,
loginFillInfo: data.loginFillInfo,
+ parentAllowsOnionUrlbarRewrites: data.parentAllowsOnionUrlbarRewrites,
userContextId: data.userContextId,
webExtContextData: data.webExtContextData,
cookieJarSettings: E10SUtils.deserializeCookieJarSettings(
@@ -1195,6 +1196,7 @@ class nsContextMenu {
triggeringPrincipal: this.principal,
csp: this.csp,
frameID: this.contentData.frameID,
+ onionUrlbarRewritesAllowed: false,
};
for (let p in extra) {
params[p] = extra[p];
@@ -1218,6 +1220,22 @@ class nsContextMenu {
}
params.referrerInfo = referrerInfo;
+
+ // Check if the link needs to be opened with .tor.onion urlbar rewrites
+ // allowed. Only when parent has onionUrlbarRewritesAllowed = true
+ // and the same origin we should allow this.
+ if (this.contentData.parentAllowsOnionUrlbarRewrites) {
+ let referrerURI = this.contentData.documentURIObject;
+ const sm = Services.scriptSecurityManager;
+ try {
+ let targetURI = this.linkURI;
+ let isPrivateWin =
+ this.browser.contentPrincipal.originAttributes.privateBrowsingId > 0;
+ sm.checkSameOriginURI(referrerURI, targetURI, false, isPrivateWin);
+ params.onionUrlbarRewritesAllowed = true;
+ } catch (e) {}
+ }
+
return params;
}
diff --git a/browser/base/content/pageinfo/pageInfo.js b/browser/base/content/pageinfo/pageInfo.js
index f63ee0a457e1..ae152f97f7b3 100644
--- a/browser/base/content/pageinfo/pageInfo.js
+++ b/browser/base/content/pageinfo/pageInfo.js
@@ -398,7 +398,7 @@ async function onNonMediaPageInfoLoad(browser, pageInfoData, imageInfo) {
);
}
onLoadPermission(uri, principal);
- securityOnLoad(uri, windowInfo);
+ securityOnLoad(uri, windowInfo, browser.currentOnionAliasURI);
}
function resetPageInfo(args) {
diff --git a/browser/base/content/pageinfo/pageInfo.xhtml b/browser/base/content/pageinfo/pageInfo.xhtml
index f40ffd3778d8..a23f2bb5748c 100644
--- a/browser/base/content/pageinfo/pageInfo.xhtml
+++ b/browser/base/content/pageinfo/pageInfo.xhtml
@@ -312,6 +312,16 @@
<input id="security-identity-domain-value" readonly="readonly"/>
</td>
</tr>
+ <!-- Onion Alias -->
+ <tr id="security-view-identity-onionalias-row">
+ <th>
+ <xul:label id="security-view-identity-onionalias"
+ control="security-view-identity-onionalias-value"/>
+ </th>
+ <td>
+ <input id="security-view-identity-onionalias-value" readonly="true"/>
+ </td>
+ </tr>
<!-- Owner -->
<tr>
<th>
diff --git a/browser/base/content/pageinfo/security.js b/browser/base/content/pageinfo/security.js
index 192e9f763700..7693a0304823 100644
--- a/browser/base/content/pageinfo/security.js
+++ b/browser/base/content/pageinfo/security.js
@@ -249,7 +249,7 @@ var security = {
},
};
-async function securityOnLoad(uri, windowInfo) {
+async function securityOnLoad(uri, windowInfo, onionAliasURI) {
await security.init(uri, windowInfo);
let info = security.securityInfo;
@@ -262,6 +262,21 @@ async function securityOnLoad(uri, windowInfo) {
}
document.getElementById("securityTab").hidden = false;
+ if (onionAliasURI) {
+ setText(
+ "security-view-identity-onionalias",
+ gTorButtonBundle.GetStringFromName("pageInfo_OnionName")
+ );
+ setText("security-view-identity-onionalias-value", onionAliasURI.host);
+ document.getElementById(
+ "security-view-identity-onionalias-row"
+ ).hidden = false;
+ } else {
+ document.getElementById(
+ "security-view-identity-onionalias-row"
+ ).hidden = true;
+ }
+
/* Set Identity section text */
setText("security-identity-domain-value", windowInfo.hostName);
diff --git a/browser/base/content/tabbrowser.js b/browser/base/content/tabbrowser.js
index 0081810bd43e..d1457a6638b7 100644
--- a/browser/base/content/tabbrowser.js
+++ b/browser/base/content/tabbrowser.js
@@ -1647,6 +1647,7 @@
var aFromExternal;
var aRelatedToCurrent;
var aAllowInheritPrincipal;
+ var aOnionUrlbarRewritesAllowed;
var aSkipAnimation;
var aForceNotRemote;
var aPreferredRemoteType;
@@ -1676,6 +1677,7 @@
aFromExternal = params.fromExternal;
aRelatedToCurrent = params.relatedToCurrent;
aAllowInheritPrincipal = !!params.allowInheritPrincipal;
+ aOnionUrlbarRewritesAllowed = params.onionUrlbarRewritesAllowed;
aSkipAnimation = params.skipAnimation;
aForceNotRemote = params.forceNotRemote;
aPreferredRemoteType = params.preferredRemoteType;
@@ -1716,6 +1718,7 @@
fromExternal: aFromExternal,
relatedToCurrent: aRelatedToCurrent,
skipAnimation: aSkipAnimation,
+ onionUrlbarRewritesAllowed: aOnionUrlbarRewritesAllowed,
forceNotRemote: aForceNotRemote,
createLazyBrowser: aCreateLazyBrowser,
preferredRemoteType: aPreferredRemoteType,
@@ -2548,6 +2551,7 @@
aURI,
{
allowInheritPrincipal,
+ onionUrlbarRewritesAllowed,
allowThirdPartyFixup,
bulkOrderedOpen,
charset,
@@ -2888,6 +2892,9 @@
// lands.
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_FIRST_LOAD;
}
+ if (onionUrlbarRewritesAllowed) {
+ flags |= Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES;
+ }
if (!allowInheritPrincipal) {
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL;
}
diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index 78eb18a203fd..342a92a766a4 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -367,6 +367,7 @@ function openLinkIn(url, where, params) {
: new ReferrerInfo(Ci.nsIReferrerInfo.EMPTY, true, null);
var aRelatedToCurrent = params.relatedToCurrent;
var aAllowInheritPrincipal = !!params.allowInheritPrincipal;
+ var aOnionUrlbarRewritesAllowed = params.onionUrlbarRewritesAllowed;
var aForceAllowDataURI = params.forceAllowDataURI;
var aInBackground = params.inBackground;
var aInitiatingDoc = params.initiatingDoc;
@@ -483,6 +484,11 @@ function openLinkIn(url, where, params) {
].createInstance(Ci.nsISupportsPRBool);
allowThirdPartyFixupSupports.data = aAllowThirdPartyFixup;
+ var onionUrlbarRewritesAllowed = Cc[
+ "@mozilla.org/supports-PRBool;1"
+ ].createInstance(Ci.nsISupportsPRBool);
+ onionUrlbarRewritesAllowed.data = aOnionUrlbarRewritesAllowed;
+
var userContextIdSupports = Cc[
"@mozilla.org/supports-PRUint32;1"
].createInstance(Ci.nsISupportsPRUint32);
@@ -499,6 +505,8 @@ function openLinkIn(url, where, params) {
sa.appendElement(aTriggeringPrincipal);
sa.appendElement(null); // allowInheritPrincipal
sa.appendElement(aCsp);
+ sa.appendElement(null); // nsOpenWindowInfo
+ sa.appendElement(onionUrlbarRewritesAllowed);
const sourceWindow = w || window;
let win;
@@ -616,6 +624,9 @@ function openLinkIn(url, where, params) {
if (aForceAllowDataURI) {
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_FORCE_ALLOW_DATA_URI;
}
+ if (aOnionUrlbarRewritesAllowed) {
+ flags |= Ci.nsIWebNavigation.LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES;
+ }
let { URI_INHERITS_SECURITY_CONTEXT } = Ci.nsIProtocolHandler;
if (
@@ -662,6 +673,7 @@ function openLinkIn(url, where, params) {
allowThirdPartyFixup: aAllowThirdPartyFixup,
relatedToCurrent: aRelatedToCurrent,
skipAnimation: aSkipTabAnimation,
+ onionUrlbarRewritesAllowed: aOnionUrlbarRewritesAllowed,
userContextId: aUserContextId,
originPrincipal: aPrincipal,
originStoragePrincipal: aStoragePrincipal,
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 6186479ac306..5b320bd989f0 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -86,6 +86,7 @@ XPCOMUtils.defineLazyModuleGetters(this, {
TabUnloader: "resource:///modules/TabUnloader.jsm",
TelemetryUtils: "resource://gre/modules/TelemetryUtils.jsm",
TRRRacer: "resource:///modules/TRRPerformance.jsm",
+ OnionAliasStore: "resource:///modules/OnionAliasStore.jsm",
UIState: "resource://services-sync/UIState.jsm",
UrlbarQuickSuggest: "resource:///modules/UrlbarQuickSuggest.jsm",
UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm",
@@ -1933,6 +1934,7 @@ BrowserGlue.prototype = {
Normandy.uninit();
RFPHelper.uninit();
ASRouterNewTabHook.destroy();
+ OnionAliasStore.uninit();
},
// Set up a listener to enable/disable the screenshots extension
@@ -2422,6 +2424,12 @@ BrowserGlue.prototype = {
},
},
+ {
+ task: () => {
+ OnionAliasStore.init();
+ },
+ },
+
{
task: () => {
Blocklist.loadBlocklistAsync();
diff --git a/browser/components/onionservices/ExtensionMessaging.jsm b/browser/components/onionservices/ExtensionMessaging.jsm
new file mode 100644
index 000000000000..c93b8c6edf85
--- /dev/null
+++ b/browser/components/onionservices/ExtensionMessaging.jsm
@@ -0,0 +1,77 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+const EXPORTED_SYMBOLS = ["ExtensionMessaging"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { ExtensionUtils } = ChromeUtils.import(
+ "resource://gre/modules/ExtensionUtils.jsm"
+);
+const { MessageChannel } = ChromeUtils.import(
+ "resource://gre/modules/MessageChannel.jsm"
+);
+const { AddonManager } = ChromeUtils.import(
+ "resource://gre/modules/AddonManager.jsm"
+);
+
+const { XPCOMUtils } = ChromeUtils.import(
+ "resource://gre/modules/XPCOMUtils.jsm"
+);
+
+XPCOMUtils.defineLazyModuleGetters(this, {
+ ExtensionParent: "resource://gre/modules/ExtensionParent.jsm",
+});
+
+class ExtensionMessaging {
+ constructor() {
+ this._callback = null;
+ this._handlers = new Map();
+ this._messageManager = Services.cpmm;
+ }
+
+ async sendMessage(message, extensionId) {
+ const addon = await AddonManager.getAddonByID(extensionId);
+ if (!addon) {
+ throw new Error(`extension '${extensionId} does not exist`);
+ }
+ await addon.startupPromise;
+
+ const { torSendExtensionMessage } = ExtensionParent;
+ return torSendExtensionMessage(extensionId, message);
+ }
+
+ unload() {
+ if (this._callback) {
+ this._handlers.clear();
+ this._messageManager.removeMessageListener(
+ "MessageChannel:Response",
+ this._callback
+ );
+ this._callback = null;
+ }
+ }
+
+ _onMessage({ data }) {
+ const channelId = data.messageName;
+ if (this._handlers.has(channelId)) {
+ const { resolve, reject } = this._handlers.get(channelId);
+ this._handlers.delete(channelId);
+ if (data.error) {
+ reject(new Error(data.error.message));
+ } else {
+ resolve(data.value);
+ }
+ }
+ }
+
+ _init() {
+ if (this._callback === null) {
+ this._callback = this._onMessage.bind(this);
+ this._messageManager.addMessageListener(
+ "MessageChannel:Response",
+ this._callback
+ );
+ }
+ }
+}
diff --git a/browser/components/onionservices/HttpsEverywhereControl.jsm b/browser/components/onionservices/HttpsEverywhereControl.jsm
new file mode 100644
index 000000000000..60c3b5fca282
--- /dev/null
+++ b/browser/components/onionservices/HttpsEverywhereControl.jsm
@@ -0,0 +1,119 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+const EXPORTED_SYMBOLS = ["HttpsEverywhereControl"];
+
+const { ExtensionMessaging } = ChromeUtils.import(
+ "resource:///modules/ExtensionMessaging.jsm"
+);
+const { setTimeout } = ChromeUtils.import("resource://gre/modules/Timer.jsm");
+
+const EXTENSION_ID = "https-everywhere-eff(a)eff.org";
+const SECUREDROP_TOR_ONION_CHANNEL = {
+ name: "SecureDropTorOnion",
+ jwk: {
+ kty: "RSA",
+ e: "AQAB",
+ n:
+ "p10BbUVc5Xj2S_-MH3bACNBaISo_r9e3PVPyTTjsGsdg2qSXvqUO42fBtpFAy0zUzIGS83v4JjiRdvKJaZTIvbC8AcpymzdsTqujMm8RPTSy3hO_8mXzGa4DEsIB1uNLnUWRBKXvSGCmT9kFyxhTpkYqokNBzafVihTU34tN2Md1xFHnmZGqfYtPtbJLWAa5Z1M11EyR4lIyUxIiPTV9t1XstDbWr3iS83REJrGEFmjG1-BAgx8_lDUTa41799N2yYEhgZud7bL0M3ei8s5OERjiion5uANkUV3-s2QqUZjiVA-XR_HizXjciaUWNd683KqekpNOZ_0STh_UGwpcwU-KwG07QyiCrLrRpz8S_vH8CqGrrcWY3GSzYe9dp34jJdO65oA-G8tK6fMXtvTCFDZI6oNNaXJH71F5J0YbqO2ZqwKYc2WSi0gKVl2wd9roOVjaBmkJqvocntYuNM7t38fDEWHn5KUkmrTbiG68Cy56tDUfpKl3D9Uj4LaMvxJ1tKGvzQ4k_60odT7gIxu6DqYjXUHZpwPsSGBq3njaD7boe4CUXF2K7ViOc87BsKxRNCzDD8OklRjjXzOTOBH3PqFJ93CJ-4ECE5t9STU20aZ8E-2zKB8vjKyCySE4-kcIvBBsnkwVaJTPy9Ft1qYybo-soXEWVEZATANNWklBt8k",
+ },
+ update_path_prefix: "https://securedrop.org/https-everywhere/",
+ scope:
+ "^https?:\\/\\/[a-z0-9-]+(?:\\.[a-z0-9-]+)*\\.securedrop\\.tor\\.onion\\/",
+ replaces_default_rulesets: false,
+};
+
+class HttpsEverywhereControl {
+ constructor() {
+ this._extensionMessaging = null;
+ }
+
+ async _sendMessage(type, object) {
+ return this._extensionMessaging.sendMessage(
+ {
+ type,
+ object,
+ },
+ EXTENSION_ID
+ );
+ }
+
+ static async wait(seconds = 1) {
+ return new Promise(resolve => setTimeout(resolve, seconds * 1000));
+ }
+
+ /**
+ * Installs the .tor.onion update channel in https-everywhere
+ */
+ async installTorOnionUpdateChannel(retries = 5) {
+ this._init();
+
+ // TODO: https-everywhere store is initialized asynchronously, so sending a message
+ // immediately results in a `store.get is undefined` error.
+ // For now, let's wait a bit and retry a few times if there is an error, but perhaps
+ // we could suggest https-everywhere to send a message when that happens and listen
+ // for that here.
+ await HttpsEverywhereControl.wait();
+
+ try {
+ // TODO: we may want a way to "lock" this update channel, so that it cannot be modified
+ // by the user via UI, but I think this is not possible at the time of writing via
+ // the existing messages in https-everywhere.
+ await this._sendMessage(
+ "create_update_channel",
+ SECUREDROP_TOR_ONION_CHANNEL.name
+ );
+ } catch (e) {
+ if (retries <= 0) {
+ throw new Error("Could not install SecureDropTorOnion update channel");
+ }
+ await this.installTorOnionUpdateChannel(retries - 1);
+ return;
+ }
+
+ await this._sendMessage(
+ "update_update_channel",
+ SECUREDROP_TOR_ONION_CHANNEL
+ );
+ }
+
+ /**
+ * Returns the .tor.onion rulesets available in https-everywhere
+ */
+ async getTorOnionRules() {
+ return this._sendMessage("get_simple_rules_ending_with", ".tor.onion");
+ }
+
+ /**
+ * Returns the timestamp of the last .tor.onion update channel update.
+ */
+ async getRulesetTimestamp() {
+ const rulesets = await this._sendMessage("get_ruleset_timestamps");
+ const securedrop =
+ rulesets &&
+ rulesets.find(([{ name }]) => name === SECUREDROP_TOR_ONION_CHANNEL.name);
+ if (securedrop) {
+ const [
+ updateChannel, // This has the same structure as SECUREDROP_TOR_ONION_CHANNEL
+ lastUpdatedTimestamp, // An integer, 0 if the update channel was never updated
+ ] = securedrop;
+ void updateChannel; // Ignore eslint unused warning for ruleset
+ return lastUpdatedTimestamp;
+ }
+ return null;
+ }
+
+ unload() {
+ if (this._extensionMessaging) {
+ this._extensionMessaging.unload();
+ this._extensionMessaging = null;
+ }
+ }
+
+ _init() {
+ if (!this._extensionMessaging) {
+ this._extensionMessaging = new ExtensionMessaging();
+ }
+ }
+}
diff --git a/browser/components/onionservices/OnionAliasStore.jsm b/browser/components/onionservices/OnionAliasStore.jsm
new file mode 100644
index 000000000000..66cf569227bf
--- /dev/null
+++ b/browser/components/onionservices/OnionAliasStore.jsm
@@ -0,0 +1,201 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+
+"use strict";
+
+const EXPORTED_SYMBOLS = ["OnionAliasStore"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import(
+ "resource://gre/modules/XPCOMUtils.jsm"
+);
+const { setTimeout, clearTimeout } = ChromeUtils.import(
+ "resource://gre/modules/Timer.jsm"
+);
+const { HttpsEverywhereControl } = ChromeUtils.import(
+ "resource:///modules/HttpsEverywhereControl.jsm"
+);
+
+// Logger adapted from CustomizableUI.jsm
+const kPrefOnionAliasDebug = "browser.onionalias.debug";
+XPCOMUtils.defineLazyPreferenceGetter(
+ this,
+ "gDebuggingEnabled",
+ kPrefOnionAliasDebug,
+ false,
+ (pref, oldVal, newVal) => {
+ if (typeof log != "undefined") {
+ log.maxLogLevel = newVal ? "all" : "log";
+ }
+ }
+);
+XPCOMUtils.defineLazyGetter(this, "log", () => {
+ let scope = {};
+ ChromeUtils.import("resource://gre/modules/Console.jsm", scope);
+ let consoleOptions = {
+ maxLogLevel: gDebuggingEnabled ? "all" : "log",
+ prefix: "OnionAlias",
+ };
+ return new scope.ConsoleAPI(consoleOptions);
+});
+
+function observe(topic, callback) {
+ let observer = {
+ observe(aSubject, aTopic, aData) {
+ if (topic === aTopic) {
+ callback(aSubject, aData);
+ }
+ },
+ };
+ Services.obs.addObserver(observer, topic);
+ return () => Services.obs.removeObserver(observer, topic);
+}
+
+class _OnionAliasStore {
+ static get RULESET_CHECK_INTERVAL() {
+ return 1000 * 60; // 1 minute
+ }
+
+ static get RULESET_CHECK_INTERVAL_FAST() {
+ return 1000 * 5; // 5 seconds
+ }
+
+ constructor() {
+ this._onionMap = new Map();
+ this._rulesetTimeout = null;
+ this._removeObserver = () => {};
+ this._canLoadRules = false;
+ this._rulesetTimestamp = null;
+ this._updateChannelInstalled = false;
+ }
+
+ async _periodicRulesetCheck() {
+ // TODO: it would probably be preferable to listen to some message broadcasted by
+ // the https-everywhere extension when some update channel is updated, instead of
+ // polling every N seconds.
+ log.debug("Checking for new rules");
+ const ts = await this.httpsEverywhereControl.getRulesetTimestamp();
+ log.debug(
+ `Found ruleset timestamp ${ts}, current is ${this._rulesetTimestamp}`
+ );
+ if (ts !== this._rulesetTimestamp) {
+ this._rulesetTimestamp = ts;
+ log.debug("New rules found, updating");
+ // We clear the mappings even if we cannot load the rules from https-everywhere,
+ // since we cannot be sure if the stored mappings are correct anymore.
+ this._clear();
+ if (this._canLoadRules) {
+ await this._loadRules();
+ }
+ }
+ // If the timestamp is 0, that means the update channel was not yet updated, so
+ // we schedule a check soon.
+ this._rulesetTimeout = setTimeout(
+ () => this._periodicRulesetCheck(),
+ ts === 0
+ ? _OnionAliasStore.RULESET_CHECK_INTERVAL_FAST
+ : _OnionAliasStore.RULESET_CHECK_INTERVAL
+ );
+ }
+
+ async init() {
+ this.httpsEverywhereControl = new HttpsEverywhereControl();
+
+ // Setup .tor.onion rule loading.
+ // The http observer is a fallback, and is removed in _loadRules() as soon as we are able
+ // to load some rules from HTTPS Everywhere.
+ this._loadHttpObserver();
+ try {
+ await this.httpsEverywhereControl.installTorOnionUpdateChannel();
+ this._updateChannelInstalled = true;
+ await this.httpsEverywhereControl.getTorOnionRules();
+ this._canLoadRules = true;
+ } catch (e) {
+ // Loading rules did not work, probably because "get_simple_rules_ending_with" is not yet
+ // working in https-everywhere. Use an http observer as a fallback for learning the rules.
+ log.debug(`Could not load rules: ${e.message}`);
+ }
+
+ // Setup checker for https-everywhere ruleset updates
+ if (this._updateChannelInstalled) {
+ this._periodicRulesetCheck();
+ }
+ }
+
+ /**
+ * Loads the .tor.onion mappings from https-everywhere.
+ */
+ async _loadRules() {
+ const rules = await this.httpsEverywhereControl.getTorOnionRules();
+ // Remove http observer if we are able to load some rules directly.
+ if (rules.length) {
+ this._removeObserver();
+ this._removeObserver = () => {};
+ }
+ this._clear();
+ log.debug(`Loading ${rules.length} rules`, rules);
+ for (const rule of rules) {
+ // Here we are trusting that the securedrop ruleset follows some conventions so that we can
+ // assume there is a host mapping from `rule.host` to the hostname of the URL in `rule.to`.
+ try {
+ const url = new URL(rule.to);
+ const shortHost = rule.host;
+ const longHost = url.hostname;
+ this._addMapping(shortHost, longHost);
+ } catch (e) {
+ log.error("Could not process rule:", rule);
+ }
+ }
+ }
+
+ /**
+ * Loads a http observer to listen for local redirects for populating
+ * the .tor.onion -> .onion mappings. Should only be used if we cannot ask https-everywhere
+ * directly for the mappings.
+ */
+ _loadHttpObserver() {
+ this._removeObserver = observe("http-on-before-connect", channel => {
+ if (
+ channel.isMainDocumentChannel &&
+ channel.originalURI.host.endsWith(".tor.onion")
+ ) {
+ this._addMapping(channel.originalURI.host, channel.URI.host);
+ }
+ });
+ }
+
+ uninit() {
+ this._clear();
+ this._removeObserver();
+ this._removeObserver = () => {};
+ if (this.httpsEverywhereControl) {
+ this.httpsEverywhereControl.unload();
+ delete this.httpsEverywhereControl;
+ }
+ clearTimeout(this._rulesetTimeout);
+ this._rulesetTimeout = null;
+ this._rulesetTimestamp = null;
+ }
+
+ _clear() {
+ this._onionMap.clear();
+ }
+
+ _addMapping(shortOnionHost, longOnionHost) {
+ this._onionMap.set(longOnionHost, shortOnionHost);
+ }
+
+ getShortURI(onionURI) {
+ if (
+ (onionURI.schemeIs("http") || onionURI.schemeIs("https")) &&
+ this._onionMap.has(onionURI.host)
+ ) {
+ return onionURI
+ .mutate()
+ .setHost(this._onionMap.get(onionURI.host))
+ .finalize();
+ }
+ return null;
+ }
+}
+
+let OnionAliasStore = new _OnionAliasStore();
diff --git a/browser/components/onionservices/moz.build b/browser/components/onionservices/moz.build
index 2661ad7cb9f3..815685322024 100644
--- a/browser/components/onionservices/moz.build
+++ b/browser/components/onionservices/moz.build
@@ -1 +1,7 @@
JAR_MANIFESTS += ["jar.mn"]
+
+EXTRA_JS_MODULES += [
+ "ExtensionMessaging.jsm",
+ "HttpsEverywhereControl.jsm",
+ "OnionAliasStore.jsm",
+]
diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
index e448f6f7ba83..827ea6f19128 100644
--- a/browser/components/urlbar/UrlbarInput.jsm
+++ b/browser/components/urlbar/UrlbarInput.jsm
@@ -330,7 +330,10 @@ class UrlbarInput {
// bar if the user has deleted the URL and we'd just put the same URL
// back. See bug 304198.
if (value === null) {
- uri = uri || this.window.gBrowser.currentURI;
+ uri =
+ uri ||
+ this.window.gBrowser.selectedBrowser.currentOnionAliasURI ||
+ this.window.gBrowser.currentURI;
// Strip off usernames and passwords for the location bar
try {
uri = Services.io.createExposableURI(uri);
@@ -2100,7 +2103,13 @@ class UrlbarInput {
}
let uri;
- if (this.getAttribute("pageproxystate") == "valid") {
+ // When we rewrite .onion to an alias, gBrowser.currentURI will be different than
+ // the URI displayed in the urlbar. We need to use the urlbar value to copy the
+ // alias instead of the actual .onion URI that is loaded.
+ if (
+ this.getAttribute("pageproxystate") == "valid" &&
+ !this.window.gBrowser.selectedBrowser.currentOnionAliasURI
+ ) {
uri = this.window.gBrowser.currentURI;
} else {
// The value could be:
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
index 94ceeb67f301..3f5c8eab97b3 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -5993,6 +5993,10 @@ void nsDocShell::OnRedirectStateChange(nsIChannel* aOldChannel,
return;
}
+ if (!mOnionUrlbarRewritesAllowed && IsTorOnionRedirect(oldURI, newURI)) {
+ mOnionUrlbarRewritesAllowed = true;
+ }
+
// DocumentChannel adds redirect chain to global history in the parent
// process. The redirect chain can't be queried from the content process, so
// there's no need to update global history here.
@@ -9405,6 +9409,20 @@ static bool NavigationShouldTakeFocus(nsDocShell* aDocShell,
return !Preferences::GetBool("browser.tabs.loadDivertedInBackground", false);
}
+/* static */
+bool nsDocShell::IsTorOnionRedirect(nsIURI* aOldURI, nsIURI* aNewURI) {
+ nsAutoCString oldHost;
+ nsAutoCString newHost;
+ if (aOldURI && aNewURI && NS_SUCCEEDED(aOldURI->GetHost(oldHost)) &&
+ StringEndsWith(oldHost, ".tor.onion"_ns) &&
+ NS_SUCCEEDED(aNewURI->GetHost(newHost)) &&
+ StringEndsWith(newHost, ".onion"_ns) &&
+ !StringEndsWith(newHost, ".tor.onion"_ns)) {
+ return true;
+ }
+ return false;
+}
+
nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
Maybe<uint32_t> aCacheKey) {
MOZ_ASSERT(aLoadState, "need a load state!");
@@ -9558,6 +9576,30 @@ nsresult nsDocShell::InternalLoad(nsDocShellLoadState* aLoadState,
mAllowKeywordFixup = aLoadState->HasInternalLoadFlags(
INTERNAL_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP);
+
+ if (mOnionUrlbarRewritesAllowed) {
+ mOnionUrlbarRewritesAllowed = false;
+ nsCOMPtr<nsIURI> referrer;
+ nsIReferrerInfo* referrerInfo = aLoadState->GetReferrerInfo();
+ if (referrerInfo) {
+ referrerInfo->GetOriginalReferrer(getter_AddRefs(referrer));
+ bool isPrivateWin = false;
+ Document* doc = GetDocument();
+ if (doc) {
+ isPrivateWin =
+ doc->NodePrincipal()->OriginAttributesRef().mPrivateBrowsingId > 0;
+ nsCOMPtr<nsIScriptSecurityManager> secMan =
+ do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID);
+ mOnionUrlbarRewritesAllowed =
+ secMan && NS_SUCCEEDED(secMan->CheckSameOriginURI(
+ aLoadState->URI(), referrer, false, isPrivateWin));
+ }
+ }
+ }
+ mOnionUrlbarRewritesAllowed =
+ mOnionUrlbarRewritesAllowed ||
+ aLoadState->HasInternalLoadFlags(INTERNAL_LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES);
+
mURIResultedInDocument = false; // reset the clock...
// See if this is actually a load between two history entries for the same
@@ -11916,6 +11958,7 @@ nsresult nsDocShell::AddToSessionHistory(
HistoryID(), GetCreatedDynamically(), originalURI,
resultPrincipalURI, loadReplace, referrerInfo, srcdoc,
srcdocEntry, baseURI, saveLayoutState, expired, userActivation);
+ entry->SetOnionUrlbarRewritesAllowed(mOnionUrlbarRewritesAllowed);
if (mBrowsingContext->IsTop() && GetSessionHistory()) {
bool shouldPersist = ShouldAddToSessionHistory(aURI, aChannel);
@@ -13815,3 +13858,12 @@ void nsDocShell::MaybeDisconnectChildListenersOnPageHide() {
mChannelToDisconnectOnPageHide = 0;
}
}
+
+NS_IMETHODIMP
+nsDocShell::GetOnionUrlbarRewritesAllowed(bool* aOnionUrlbarRewritesAllowed) {
+ NS_ENSURE_ARG(aOnionUrlbarRewritesAllowed);
+ *aOnionUrlbarRewritesAllowed =
+ StaticPrefs::browser_urlbar_onionRewrites_enabled() &&
+ mOnionUrlbarRewritesAllowed;
+ return NS_OK;
+}
diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h
index fe61eda9267d..30f7fcfe1bbd 100644
--- a/docshell/base/nsDocShell.h
+++ b/docshell/base/nsDocShell.h
@@ -134,6 +134,9 @@ class nsDocShell final : public nsDocLoader,
// Whether the load should go through LoadURIDelegate.
INTERNAL_LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE = 0x2000,
+
+ // Whether rewriting the urlbar to a short .onion alias is allowed.
+ INTERNAL_LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES = 0x4000,
};
// Event type dispatched by RestorePresentation
@@ -563,6 +566,8 @@ class nsDocShell final : public nsDocLoader,
virtual void DestroyChildren() override;
+ static bool IsTorOnionRedirect(nsIURI* aOldURI, nsIURI* aNewURI);
+
// Overridden from nsDocLoader, this provides more information than the
// normal OnStateChange with flags STATE_REDIRECTING
virtual void OnRedirectStateChange(nsIChannel* aOldChannel,
@@ -1254,6 +1259,7 @@ class nsDocShell final : public nsDocLoader,
bool mCSSErrorReportingEnabled : 1;
bool mAllowAuth : 1;
bool mAllowKeywordFixup : 1;
+ bool mOnionUrlbarRewritesAllowed : 1;
bool mDisableMetaRefreshWhenInactive : 1;
bool mIsAppTab : 1;
bool mDeviceSizeIsPageSize : 1;
diff --git a/docshell/base/nsDocShellLoadState.cpp b/docshell/base/nsDocShellLoadState.cpp
index 7122c2769119..5fb9f4aab2b5 100644
--- a/docshell/base/nsDocShellLoadState.cpp
+++ b/docshell/base/nsDocShellLoadState.cpp
@@ -847,6 +847,14 @@ void nsDocShellLoadState::CalculateLoadURIFlags() {
mInternalLoadFlags |= nsDocShell::INTERNAL_LOAD_FLAGS_FIRST_LOAD;
}
+ if (mLoadFlags & nsIWebNavigation::LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES) {
+ mInternalLoadFlags |= nsDocShell::INTERNAL_LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES;
+ }
+
+ if (mLoadFlags & nsIWebNavigation::LOAD_FLAGS_FIRST_LOAD) {
+ mInternalLoadFlags |= nsDocShell::INTERNAL_LOAD_FLAGS_FIRST_LOAD;
+ }
+
if (mLoadFlags & nsIWebNavigation::LOAD_FLAGS_BYPASS_CLASSIFIER) {
mInternalLoadFlags |= nsDocShell::INTERNAL_LOAD_FLAGS_BYPASS_CLASSIFIER;
}
diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl
index dcf0b8c00d70..15887de5cbda 100644
--- a/docshell/base/nsIDocShell.idl
+++ b/docshell/base/nsIDocShell.idl
@@ -864,4 +864,9 @@ interface nsIDocShell : nsIDocShellTreeItem
* until session history state is moved into the parent process.
*/
void persistLayoutHistoryState();
+
+ /**
+ * Whether rewriting the urlbar to a short .onion alias is allowed.
+ */
+ [infallible] readonly attribute boolean onionUrlbarRewritesAllowed;
};
diff --git a/docshell/base/nsIWebNavigation.idl b/docshell/base/nsIWebNavigation.idl
index bec4f13d8b2b..98f3b6a2f9a3 100644
--- a/docshell/base/nsIWebNavigation.idl
+++ b/docshell/base/nsIWebNavigation.idl
@@ -268,6 +268,11 @@ interface nsIWebNavigation : nsISupports
*/
const unsigned long LOAD_FLAGS_USER_ACTIVATION = 0x8000000;
+ /**
+ * Allow rewriting the urlbar to a short .onion alias.
+ */
+ const unsigned long LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES = 0x9000000;
+
/**
* Loads a given URI. This will give priority to loading the requested URI
* in the object implementing this interface. If it can't be loaded here
diff --git a/docshell/shistory/SessionHistoryEntry.cpp b/docshell/shistory/SessionHistoryEntry.cpp
index 61ec28bbb9be..9890c99b22dc 100644
--- a/docshell/shistory/SessionHistoryEntry.cpp
+++ b/docshell/shistory/SessionHistoryEntry.cpp
@@ -926,6 +926,20 @@ SessionHistoryEntry::SetPersist(bool aPersist) {
return NS_OK;
}
+NS_IMETHODIMP
+SessionHistoryEntry::GetOnionUrlbarRewritesAllowed(
+ bool* aOnionUrlbarRewritesAllowed) {
+ *aOnionUrlbarRewritesAllowed = mInfo->mOnionUrlbarRewritesAllowed;
+ return NS_OK;
+}
+
+NS_IMETHODIMP
+SessionHistoryEntry::SetOnionUrlbarRewritesAllowed(
+ bool aOnionUrlbarRewritesAllowed) {
+ mInfo->mOnionUrlbarRewritesAllowed = aOnionUrlbarRewritesAllowed;
+ return NS_OK;
+}
+
NS_IMETHODIMP
SessionHistoryEntry::GetScrollPosition(int32_t* aX, int32_t* aY) {
*aX = mInfo->mScrollPositionX;
diff --git a/docshell/shistory/SessionHistoryEntry.h b/docshell/shistory/SessionHistoryEntry.h
index e74311578368..aa4c86f2a368 100644
--- a/docshell/shistory/SessionHistoryEntry.h
+++ b/docshell/shistory/SessionHistoryEntry.h
@@ -170,6 +170,7 @@ class SessionHistoryInfo {
bool mPersist = true;
bool mHasUserInteraction = false;
bool mHasUserActivation = false;
+ bool mOnionUrlbarRewritesAllowed = false;
union SharedState {
SharedState();
diff --git a/docshell/shistory/nsISHEntry.idl b/docshell/shistory/nsISHEntry.idl
index 73ac40551d4e..622402456d07 100644
--- a/docshell/shistory/nsISHEntry.idl
+++ b/docshell/shistory/nsISHEntry.idl
@@ -260,6 +260,11 @@ interface nsISHEntry : nsISupports
*/
[infallible] attribute boolean persist;
+ /**
+ * Whether rewriting the urlbar to a short .onion alias is allowed.
+ */
+ [infallible] attribute boolean onionUrlbarRewritesAllowed;
+
/**
* Set/Get the visual viewport scroll position if session history is
* changed through anchor navigation or pushState.
diff --git a/docshell/shistory/nsSHEntry.cpp b/docshell/shistory/nsSHEntry.cpp
index 1e4000eacd2b..41ea6086df8b 100644
--- a/docshell/shistory/nsSHEntry.cpp
+++ b/docshell/shistory/nsSHEntry.cpp
@@ -44,7 +44,8 @@ nsSHEntry::nsSHEntry()
mLoadedInThisProcess(false),
mPersist(true),
mHasUserInteraction(false),
- mHasUserActivation(false) {}
+ mHasUserActivation(false),
+ mOnionUrlbarRewritesAllowed(false) {}
nsSHEntry::nsSHEntry(const nsSHEntry& aOther)
: mShared(aOther.mShared),
@@ -72,7 +73,8 @@ nsSHEntry::nsSHEntry(const nsSHEntry& aOther)
mLoadedInThisProcess(aOther.mLoadedInThisProcess),
mPersist(aOther.mPersist),
mHasUserInteraction(false),
- mHasUserActivation(aOther.mHasUserActivation) {}
+ mHasUserActivation(aOther.mHasUserActivation),
+ mOnionUrlbarRewritesAllowed(aOther.mOnionUrlbarRewritesAllowed) {}
nsSHEntry::~nsSHEntry() {
// Null out the mParent pointers on all our kids.
@@ -880,6 +882,18 @@ nsSHEntry::SetPersist(bool aPersist) {
return NS_OK;
}
+NS_IMETHODIMP
+nsSHEntry::GetOnionUrlbarRewritesAllowed(bool* aOnionUrlbarRewritesAllowed) {
+ *aOnionUrlbarRewritesAllowed = mOnionUrlbarRewritesAllowed;
+ return NS_OK;
+}
+
+NS_IMETHODIMP
+nsSHEntry::SetOnionUrlbarRewritesAllowed(bool aOnionUrlbarRewritesAllowed) {
+ mOnionUrlbarRewritesAllowed = aOnionUrlbarRewritesAllowed;
+ return NS_OK;
+}
+
NS_IMETHODIMP
nsSHEntry::CreateLoadInfo(nsDocShellLoadState** aLoadState) {
nsCOMPtr<nsIURI> uri = GetURI();
@@ -929,6 +943,10 @@ nsSHEntry::CreateLoadInfo(nsDocShellLoadState** aLoadState) {
} else {
srcdoc = VoidString();
}
+ if (GetOnionUrlbarRewritesAllowed()) {
+ flags |= nsDocShell::InternalLoad::
+ INTERNAL_LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES;
+ }
loadState->SetSrcdocData(srcdoc);
loadState->SetBaseURI(baseURI);
loadState->SetInternalLoadFlags(flags);
diff --git a/docshell/shistory/nsSHEntry.h b/docshell/shistory/nsSHEntry.h
index 326b0092cf94..76be0ac65050 100644
--- a/docshell/shistory/nsSHEntry.h
+++ b/docshell/shistory/nsSHEntry.h
@@ -66,6 +66,7 @@ class nsSHEntry : public nsISHEntry {
bool mPersist;
bool mHasUserInteraction;
bool mHasUserActivation;
+ bool mOnionUrlbarRewritesAllowed;
};
#endif /* nsSHEntry_h */
diff --git a/dom/interfaces/base/nsIBrowser.idl b/dom/interfaces/base/nsIBrowser.idl
index 1a05957dba83..1c42486da87c 100644
--- a/dom/interfaces/base/nsIBrowser.idl
+++ b/dom/interfaces/base/nsIBrowser.idl
@@ -130,7 +130,8 @@ interface nsIBrowser : nsISupports
in boolean aIsSynthetic,
in boolean aHasRequestContextID,
in uint64_t aRequestContextID,
- in AString aContentType);
+ in AString aContentType,
+ in boolean aOnionUrlbarRewritesAllowed);
/**
* Determine what process switching behavior this browser element should have.
diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp
index ce5e1ff14890..0830c22d0b5c 100644
--- a/dom/ipc/BrowserChild.cpp
+++ b/dom/ipc/BrowserChild.cpp
@@ -3621,6 +3621,8 @@ NS_IMETHODIMP BrowserChild::OnLocationChange(nsIWebProgress* aWebProgress,
docShell->GetMayEnableCharacterEncodingMenu();
locationChangeData->charsetAutodetected() =
docShell->GetCharsetAutodetected();
+ locationChangeData->onionUrlbarRewritesAllowed() =
+ docShell->GetOnionUrlbarRewritesAllowed();
locationChangeData->contentPrincipal() = document->NodePrincipal();
locationChangeData->contentPartitionedPrincipal() =
diff --git a/dom/ipc/BrowserParent.cpp b/dom/ipc/BrowserParent.cpp
index 240b386f6dde..fd14908abc85 100644
--- a/dom/ipc/BrowserParent.cpp
+++ b/dom/ipc/BrowserParent.cpp
@@ -2794,7 +2794,8 @@ mozilla::ipc::IPCResult BrowserParent::RecvOnLocationChange(
aLocationChangeData->isSyntheticDocument(),
aLocationChangeData->requestContextID().isSome(),
aLocationChangeData->requestContextID().valueOr(0),
- aLocationChangeData->contentType());
+ aLocationChangeData->contentType(),
+ aLocationChangeData->onionUrlbarRewritesAllowed());
}
}
diff --git a/dom/ipc/PBrowser.ipdl b/dom/ipc/PBrowser.ipdl
index 29433edcde78..4a0086a98c50 100644
--- a/dom/ipc/PBrowser.ipdl
+++ b/dom/ipc/PBrowser.ipdl
@@ -145,6 +145,7 @@ struct WebProgressLocationChangeData
bool isSyntheticDocument;
bool mayEnableCharacterEncodingMenu;
bool charsetAutodetected;
+ bool onionUrlbarRewritesAllowed;
nsString contentType;
nsString title;
nsString charset;
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index cc155b47b645..238177c47894 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -1329,6 +1329,12 @@
value: true
mirror: always
+ # Whether rewriting the urlbar to a short .onion alias is allowed.
+- name: browser.urlbar.onionRewrites.enabled
+ type: RelaxedAtomicBool
+ value: true
+ mirror: always
+
- name: browser.viewport.desktopWidth
type: RelaxedAtomicInt32
value: 980
diff --git a/netwerk/dns/effective_tld_names.dat b/netwerk/dns/effective_tld_names.dat
index a91e02c54191..959773e54a1f 100644
--- a/netwerk/dns/effective_tld_names.dat
+++ b/netwerk/dns/effective_tld_names.dat
@@ -5518,6 +5518,8 @@ pro.om
// onion : https://tools.ietf.org/html/rfc7686
onion
+tor.onion
+securedrop.tor.onion
// org : https://en.wikipedia.org/wiki/.org
org
diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp
index 27cc9939dc5f..7a6fddedd411 100644
--- a/netwerk/ipc/DocumentLoadListener.cpp
+++ b/netwerk/ipc/DocumentLoadListener.cpp
@@ -2522,6 +2522,16 @@ DocumentLoadListener::AsyncOnChannelRedirect(
"mHaveVisibleRedirect=%c",
this, mHaveVisibleRedirect ? 'T' : 'F'));
+ // Like the code above for allowing mixed content, we need to check this here
+ // in case the redirect is not handled in the docshell.
+ nsCOMPtr<nsIURI> oldURI, newURI;
+ aOldChannel->GetURI(getter_AddRefs(oldURI));
+ aNewChannel->GetURI(getter_AddRefs(newURI));
+ if (nsDocShell::IsTorOnionRedirect(oldURI, newURI)) {
+ mLoadStateInternalLoadFlags |=
+ nsDocShell::INTERNAL_LOAD_FLAGS_ALLOW_ONION_URLBAR_REWRITES;
+ }
+
// We need the original URI of the current channel to use to open the real
// channel in the content process. Unfortunately we overwrite the original
// uri of the new channel with the original pre-redirect URI, so grab
diff --git a/toolkit/content/widgets/browser-custom-element.js b/toolkit/content/widgets/browser-custom-element.js
index 778cadd6b810..bcf622e70c65 100644
--- a/toolkit/content/widgets/browser-custom-element.js
+++ b/toolkit/content/widgets/browser-custom-element.js
@@ -255,6 +255,8 @@
this._mayEnableCharacterEncodingMenu = null;
+ this._onionUrlbarRewritesAllowed = false;
+
this._charsetAutodetected = false;
this._contentPrincipal = null;
@@ -615,6 +617,12 @@
}
}
+ get onionUrlbarRewritesAllowed() {
+ return this.isRemoteBrowser
+ ? this._onionUrlbarRewritesAllowed
+ : this.docShell.onionUrlbarRewritesAllowed;
+ }
+
get charsetAutodetected() {
return this.isRemoteBrowser
? this._charsetAutodetected
@@ -1157,7 +1165,8 @@
aIsSynthetic,
aHaveRequestContextID,
aRequestContextID,
- aContentType
+ aContentType,
+ aOnionUrlbarRewritesAllowed
) {
if (this.isRemoteBrowser && this.messageManager) {
if (aCharset != null) {
@@ -1180,6 +1189,7 @@
this._contentRequestContextID = aHaveRequestContextID
? aRequestContextID
: null;
+ this._onionUrlbarRewritesAllowed = aOnionUrlbarRewritesAllowed;
}
}
@@ -1582,6 +1592,7 @@
"_contentPrincipal",
"_contentPartitionedPrincipal",
"_isSyntheticDocument",
+ "_onionUrlbarRewritesAllowed",
]
);
}
diff --git a/toolkit/modules/sessionstore/SessionHistory.jsm b/toolkit/modules/sessionstore/SessionHistory.jsm
index 87af372acb79..a03eb85b938b 100644
--- a/toolkit/modules/sessionstore/SessionHistory.jsm
+++ b/toolkit/modules/sessionstore/SessionHistory.jsm
@@ -313,6 +313,7 @@ var SessionHistoryInternal = {
}
entry.persist = shEntry.persist;
+ entry.onionUrlbarRewritesAllowed = shEntry.onionUrlbarRewritesAllowed;
return entry;
},
@@ -607,6 +608,10 @@ var SessionHistoryInternal = {
}
}
+ if (entry.onionUrlbarRewritesAllowed) {
+ shEntry.onionUrlbarRewritesAllowed = entry.onionUrlbarRewritesAllowed;
+ }
+
return shEntry;
},
diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h
index efee881c1421..4295efb39f1f 100644
--- a/xpcom/reflect/xptinfo/xptinfo.h
+++ b/xpcom/reflect/xptinfo/xptinfo.h
@@ -514,7 +514,8 @@ static_assert(sizeof(nsXPTMethodInfo) == 8, "wrong size");
#if defined(MOZ_THUNDERBIRD) || defined(MOZ_SUITE)
# define PARAM_BUFFER_COUNT 18
#else
-# define PARAM_BUFFER_COUNT 14
+// The max is currently updateForLocationChange in nsIBrowser.idl
+# define PARAM_BUFFER_COUNT 15
#endif
/**
1
0

[tor-browser/tor-browser-90.0-10.5-1] Bug 33852: Clean up about:logins (LockWise) to avoid mentioning sync, etc.
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit ccef1242747b3f27eccec2a2fe8fead4b2ec9c4e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jul 14 11:15:07 2020 -0400
Bug 33852: Clean up about:logins (LockWise) to avoid mentioning sync, etc.
Hide elements on about:logins that mention sync, "Firefox LockWise", and
Mozilla's LockWise mobile apps.
Disable the "Create New Login" button when security.nocertdb is true.
---
browser/components/aboutlogins/AboutLoginsParent.jsm | 2 ++
browser/components/aboutlogins/content/aboutLogins.css | 8 +++++++-
browser/components/aboutlogins/content/aboutLogins.js | 6 ++++++
.../aboutlogins/content/components/fxaccounts-button.css | 5 +++++
.../components/aboutlogins/content/components/menu-button.css | 10 ++++++++++
5 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/browser/components/aboutlogins/AboutLoginsParent.jsm b/browser/components/aboutlogins/AboutLoginsParent.jsm
index db0b55d26abc..39fd2356ce99 100644
--- a/browser/components/aboutlogins/AboutLoginsParent.jsm
+++ b/browser/components/aboutlogins/AboutLoginsParent.jsm
@@ -61,6 +61,7 @@ XPCOMUtils.defineLazyGetter(this, "AboutLoginsL10n", () => {
const ABOUT_LOGINS_ORIGIN = "about:logins";
const MASTER_PASSWORD_NOTIFICATION_ID = "master-password-login-required";
+const NOCERTDB_PREF = "security.nocertdb";
// about:logins will always use the privileged content process,
// even if it is disabled for other consumers such as about:newtab.
@@ -273,6 +274,7 @@ class AboutLoginsParent extends JSWindowActorParent {
importVisible:
Services.policies.isAllowed("profileImport") &&
AppConstants.platform != "linux",
+ canCreateLogins: !Services.prefs.getBoolPref(NOCERTDB_PREF, false),
});
await AboutLogins._sendAllLoginRelatedObjects(
diff --git a/browser/components/aboutlogins/content/aboutLogins.css b/browser/components/aboutlogins/content/aboutLogins.css
index e3528ca49b84..eaa224178487 100644
--- a/browser/components/aboutlogins/content/aboutLogins.css
+++ b/browser/components/aboutlogins/content/aboutLogins.css
@@ -69,6 +69,11 @@ login-item {
grid-area: login;
}
+/* Do not promote Mozilla Sync in Tor Browser. */
+login-intro {
+ display: none !important;
+}
+
#branding-logo {
flex-basis: var(--sidebar-width);
flex-shrink: 0;
@@ -83,7 +88,8 @@ login-item {
}
}
-:root:not(.official-branding) #branding-logo {
+/* Hide "Firefox LockWise" branding in Tor Browser. */
+#branding-logo {
visibility: hidden;
}
diff --git a/browser/components/aboutlogins/content/aboutLogins.js b/browser/components/aboutlogins/content/aboutLogins.js
index a7449f8343b3..f288fb6988fb 100644
--- a/browser/components/aboutlogins/content/aboutLogins.js
+++ b/browser/components/aboutlogins/content/aboutLogins.js
@@ -22,6 +22,9 @@ const gElements = {
".menuitem-remove-all-logins"
);
},
+ get createNewLoginButton() {
+ return this.loginList.shadowRoot.querySelector(".create-login-button");
+ },
};
let numberOfLogins = 0;
@@ -111,6 +114,9 @@ window.addEventListener("AboutLoginsChromeToContent", event => {
gElements.loginList.setSortDirection(event.detail.value.selectedSort);
document.documentElement.classList.add("initialized");
gElements.loginList.classList.add("initialized");
+ if (!event.detail.value.canCreateLogins) {
+ gElements.createNewLoginButton.disabled = true;
+ }
break;
}
case "ShowLoginItemError": {
diff --git a/browser/components/aboutlogins/content/components/fxaccounts-button.css b/browser/components/aboutlogins/content/components/fxaccounts-button.css
index c8925f6fc75d..55c2a8810fa1 100644
--- a/browser/components/aboutlogins/content/components/fxaccounts-button.css
+++ b/browser/components/aboutlogins/content/components/fxaccounts-button.css
@@ -8,6 +8,11 @@
align-items: center;
}
+/* Do not promote Mozilla Sync in Tor Browser. */
+.logged-out-view {
+ display: none !important;
+}
+
.fxaccounts-extra-text {
/* Only show at most 3 lines of text to limit the
text from overflowing the header. */
diff --git a/browser/components/aboutlogins/content/components/menu-button.css b/browser/components/aboutlogins/content/components/menu-button.css
index 6bc14f7892fa..22a06e3727ed 100644
--- a/browser/components/aboutlogins/content/components/menu-button.css
+++ b/browser/components/aboutlogins/content/components/menu-button.css
@@ -91,3 +91,13 @@
.menuitem-preferences {
background-image: url("chrome://global/skin/icons/settings.svg");
}
+
+/*
+ * Do not promote LockWise mobile apps in Tor Browser: hide the menu items
+ * and the separator line that precedes them.
+ */
+.menuitem-mobile-android,
+.menuitem-mobile-ios,
+button[data-event-name="AboutLoginsGetHelp"] + hr {
+ display: none !important;
+}
1
0

[tor-browser/tor-browser-90.0-10.5-1] TB3: Tor Browser's official .mozconfigs.
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 552d1e0272b585581b52d8122f924a390963b739
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 4058d6d86fea..ee3bc8028b9e 100644
--- a/browser/base/moz.build
+++ b/browser/base/moz.build
@@ -81,6 +81,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 f98964d8a9eb..d55b373ff488 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 f60ea1730d5c..bdee206175db 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 106f6c816814..531eec31475e 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(
@@ -51,10 +51,14 @@ set_config(
)
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):
@@ -70,6 +74,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")
@@ -87,3 +93,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 de2642f71d0f..84e7a31f52fb 100644
--- a/old-configure.in
+++ b/old-configure.in
@@ -1881,6 +1881,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 50dff5ecc283..955f7952af11 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 19fd20d5aa6c..3c2ef3bfb8d7 100644
--- a/toolkit/modules/moz.build
+++ b/toolkit/modules/moz.build
@@ -304,6 +304,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

16 Jul '21
commit b8627c2ef8b0219742a7521f78be208a72501257
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed Jul 14 03:47:55 2021 +0000
Release preparations for 11.0a2
Version and Changelog updates
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 4 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 352 ++++++++++-----------
projects/firefox/config | 4 +-
projects/geckoview/config | 2 +-
projects/https-everywhere/config | 2 +-
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 17 +
projects/tor-browser/allowed_addons.json | 198 ++++++------
rbm.conf | 2 +-
10 files changed, 303 insertions(+), 286 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index e2f240d..03e22b7 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: 90.0.11
+ android_components_version: 90.0.12
torbrowser_branch: 11.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 26
+ gradle_dependencies_version: 27
gradle_version: 6.6.1
glean_parser: 3.2.0
git_branch: '[% project %]-[% c("var/android_components_version") %]-[% c("var/torbrowser_branch") %]-1'
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index 1118f17..a26b641 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -387,8 +387,8 @@ e99477265ee7b3fd8c8c5d5a8a3e0b5372dfffb8b55aa037e03b5520a590c63c | https://maven
d5bc8b9ee51c1c99fb9d9f0a1ad5971f20d8ebca5f65ab0a511d2e68a7058ce3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/75.0.0/…
3a8be5803d69f1c27f1c6be686b4693ed2ad815992240540e78713043b2442d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
7f2a2ee5be870a21ac6ef982ac76869d15c707b9771a54aac9ab602f74d99b86 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
-4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
-192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/fenix/config b/projects/fenix/config
index 11d83d4..3545901 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,14 +8,14 @@ gpg_keyring: torbutton.gpg
variant: Beta
var:
- fenix_version: 90.0.0b6
+ fenix_version: 90.1.1
torbrowser_branch: 11.0
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
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 28
+ gradle_dependencies_version: 29
gradle_version: 6.5.1
glean_parser: 3.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index ad2f948..cae263d 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -377,182 +377,182 @@ cb1aa6bbb2193af67f2c4c5953b88ec42f253df6423c61f3ef050bdcd1894191 | https://maven
9433932729312495ab30a98bb15187d9ee1169596eee483bcc7727593083e0c1 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/77.0.2…
4028179e210302582f9d2e91215fa2455b372a00cdea64b3e2a50db824c69018 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
2e8e9b245228a38f8e3ba4a41dc09b17359da45097fac978e08155ca27cf2ddd | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
-9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-f589b665c4826dd2887a707492d7aa35ae62e7e20e68b1710ebbcc9aa4e43205 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-c6fcdd7eab9d718644171e5f604ad167be5885528783547108623cc994db1764 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-86c45b59c7263900d5b6c982eeee5505168afef4acc521231bd2f9c2233372ff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-62e7ee9fc2344c3536f2daad81e086a8fcd5cb0d670f84769378567bd393f5e6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-a272f0c9c586f89dbad9ae9ecf181f0291551867da464b306a281b05935120cb | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-e66fdac6967846ff6ebcce48958618f4672643ace5a70e350ec6869bd26abe80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-6599ed5ac510a29c1d1cf31ce056ca4a70c8f8ea48c90169673112c1276904bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-0383f4735406d0d433c2d6b0709d774d8eb83ee083e31eb079d84e0fc2c7bbf8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-45bd2ce86fb2e157fbf3385ca0826095d62ffe74f536de71e0ab45d91eb85dfc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-0dc272d59122f5d97c559c80a3d1dfe45f3ee3180a308800e398900871a225f8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-4b851c690eff2874d4de297e4919daab0bf6c361d21f14cb7090420a2f0c1f56 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-6734252c8918471005096c3e155c78ad17b9d46320273fc564ee6c56ae86baa7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-f9a3aab99cfddac685ee0b05278498fa6a210b78a511d76ecf6b5c0add96dfc6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-e4b7aaf18963c3b73384a8940bf160f4f5f5b301f86c67a3ecacdde5a73cdbb2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-80d0852aed6a561ff985e46f503ea4a48d42041ef71c7e18b14f403ea7e0061f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-54bd6b0b90c2c923305492ae8f52f4274d96d4a75a58a8dd959cd7932557d742 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-dc05d1d3ae2c7b89148e3454bf9e9bf882a5f19b2f48e3a502f1fdddd2a7d02b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-9cd91e9fc6b3dc63601b76d98a81cd621d0befc205bed42b46fc1a2ee2df28e4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-9bb2ef61c43db4ae862e0d3d05484d934d23670592a4f73a19e6aec2c71362bd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-220553bcd321c0f49b73257517e886381afdd7b81308d14f591267a6b8c77d0b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-45ebcc7a4f64c8975a900d341b5217d53614650311ca21a56dca6a7cf666db8b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-d8d3e6e3fc27839a99eed37be9e31ec9f34c8aceff76d2eecb0d126878b3b0a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-ae4c2da1dd973dc0e2ec426212c87dc14089b711cb2129a9455849a83442c948 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-bfb4bbaf109607911bd0e413ece0318b62ec6198a0b1b780bb8c146df99180d6 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-52459b477cd30995d3bd2dc702f337adc8e8ca4ffdc5a091b4953f94fc96438b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-94f0d99989afbd20fbe9d717574d15ad9148dd4ad20fbc8fdf9a0cd1871546ce | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-03411a760d3c4eda287b21c28963494d70cfbac636cd1f968ce220bfae102462 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-ee4491831ed72275b5f34d4f4e1ba1ca9054280ebe186acc3903005682279739 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-0098c5c21022bd75bded84e6b5c2341d1b4777c9949e3a28a0de564a0f7e4b07 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-44252dfc6d5d1adcd6c42ce5bc148164ee4fe8a4636b5ee67d48999908544d33 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-e36978401448ab34ad1c81dda96e514e0f5a66b2836d5e2427cbaa96fcbad236 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-cd8ef0f8f4e572ba280ac5dfe9075e510996d8593cd9bdd2b9a2c5872225550e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-40dc7f6563e1560d9b9a4bf1713e9c6ce3320505a0c4647baffdec6fda422506 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-828dcaf9d3103a548f7ed88d26d3af05ce76c18f4c9ce6b4096df80ab4d00e6c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-f393dc1533a0c71d5a7fb4023fa9ae707ff4ddd0c97427dc0fe750aa798ad9b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-962b8e84f3fd2e3440fe4ff4a3216223a602b004478a4dcb622a6a85b82debda | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-9c5b989d95ad5369155535d5da01173f8d03ae88a8e8af6aba42b575ace2895a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-8d2035855ca1d5369f50075330d1aaff9edd3d684a04107b37cd23cc307692f6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-5999d2c3926c49c5ed3f91a6b3eda74ac0e448a9641c5ec981d3e730a3eb6d93 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-8bb50e18a590c4b20c951c5d633a32a523bb8e912e6d72c157aea2a49aa3d813 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-2d28c9564ee105466f8daabab8b6e71966873749b48f93af58fa0c358cc5904c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-5d7c2277076fc071bae3d44159f45d1352cea8d6f3b5c04a7dbaafbf9ae2d392 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-397b7b33d5a21e87d6e3ccecdfcb9acec9f268a28621a493bf460e7cc31d9cf0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-324528a0dac1db07440f08687cc10883a4f165e43f63ac3d95d07c05920e8c01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-21973f09526ccfe4da90b54559f93f7f64c0932c958a081928deeaabf072f51a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-11a00ec87583550928ce32fe2f6944fb723faa4e36a794b156a70a1719ce118f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-bba21bf460b682e57c67a6d6e8db753d0ddeaf4696baa82de679d55582b087a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-af4503702eb980c2f893382f3bedcdc7850b086f75d8ef5a3d20cf1366a7570f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-9ca2e4e5c758245d35474578fec1549404c8e051e9ddeffc1fc14e7e7a550d0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-ece2b01059c3d9cc81bb4b3eda0d1678660ad301e185dbb37eb953d6f8fbf9ce | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
-216b354a15a4b18734d2209fd1014443440f0898e2439ba0782732f511a51a42 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
-48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
-5f1452772b53398280f5e39bbf1dd58cbf6568c253bf341a1fb0fe8af41d8c1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
-e352c2431cc509cebcde1afaa44d8fa452f8ad564d3bace3a0cdc8d0931299e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-4c2eabac2bf18d0faaf8ba71382ef245e78bb797eaead88fcb0b7cfb91ee93f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-0f45269e90f51a2609e01c5b50dd4b515d4cd14054735362e9d390fd1300fb2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-6ad00b7d21a5fa8a48dfdbfc4073599cbef4f0a94ab256397b59960f2ec05645 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-36b09e8884b000a72627c2b77a2f5b33a5206acdaf2086faeb92723e93220993 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-4db0e4fa715e804779699687e7f494e64d4b47da613e2b6823cab3e0d540a461 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-71fd9db2d67048a8d2702df9864624fefb6505afa6a79281265b4ae702b2ef6f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-0b4028f5498170623714a5cba9bc89ce1d0155bb0f8250bd559389f570d8b2b7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-c0d7e21469b4cab4524a855e9ee611d3cc2d325e955b5781ae2315452ecbaed3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-4192a6c00f5213a4a4e74309e994f09ced3ea0c395d2e22e60a561ce305e6377 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-831364696423963aa4168c62b8e602982bf62ead0ab81a27a117de2b1663de14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-6bc98d6da80ffb855c216e0db7c97864e99243104dd673aa83020be3297b806c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-e1d293d3ef9465ba7f01762d89d866a4b6f2b7de03cfbece0259bd71c45156a6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-471200411dad8c123dc3f7d5b25c63bae1f3ab7c8f6dcb4e6832e11c27025ea3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-e8835c28e4fc0700f9b03f072023063fa2f9fc0019fd9290f32becdb3eaaa88e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-eb456ca4724b2ac59637d369a1d8bfabc2767961daf7cef46ee67c5124b5d96a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-b9772a8501f845b77b344d03afda2853384e58d01eee18519e7b836b13bc7cd1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-f535e1e16c50b85f712dbc09d06d125c330aebabbe8df98cc4788bb4d85255cd | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
-48975f948791bb3da38d669cc6f5fcf81cff01d458b3d17a9b83b91ee74c4e6c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-f0c4dbd1d70faf5ad632fdc05ed14b5598a6630642822ff5167edeee19614cc9 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-8768b35bbfe3a7170a49645b58f20daad244b853d9c2b1ed108c5897b8e24e4f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-2fe73bf360b77f167d0bcf58e040db4fb78ab8c80d45f28fe0962e6364068b05 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
-c8c8adda3473012aa0c35a15e00d9bb0793e9f0b97d4bbf64d39c8ca6a9ddbb8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
-a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-cc22ef6f20c3814bf5a8d089522c66b7a73ef400914206c05c9f0e1bd34c7eee | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-7cf4f74bbe1a8773764ab1e6b1c0b07b5ed9c161624d338ad5c0cd7e5e9de6b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-88e328ee1ac9a6a2a1c8125b2c73455d9fd6e5b11cf784f46100eb38817991b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-d2075724ba5d96228471133ff992050a5d4401cad467c4df28e104447ae149f9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-aaf9723907b33263ca76b06f6b8c7006c1098c570a4ad9d82d35430ce0c79a39 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-ba20047e1ab405b842a4977bf122261eb43735aad93d921a54e0169c7e467f3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-c00109cad54b97815de0ce49d81a565365d695841edfafc972c765af981d4fce | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-fabedd1e11f563d76523713b0e2b37388e360f74e6806aa166915f64ed9fdb53 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-f9c50b0f34f701891130efdd079e6691c5991f0e48d4e60b24d9c40a0417314d | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-4b1d44222e1e36cef4de9b72e980a2963a0fce5c0904153fa1b5e8e0f61ccfe7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-1c06fec562cb55735bfb09f83d2530dda858ea8ed5de9673b395291db7756381 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-8eb0fe48dc9b4924b5a523f23153277d6f7d8227f040fa77682b71ec7962cd67 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
-fe68148cbd4a4991fe16e934b84ff63d6a84c5efbee81f4d6e83bd48aa1f5a8c | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
-c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-402635ea6d787d813ac398564e0c4ae6ed70986dc42fb0e8032b526c0941199f | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-65228ebf6b58dfbce4a9b8a255d98ce61e820625cf6deca23779a9450fbb22b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-b2b24abba66ab356d42b11bae35c6f662e9e74c46a18f5daa12fee9b888e0fec | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-04782b18806a27921104aaca4e40b8166e5f84d30a6fcb28ce2db1b0c7862934 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-0c9baffa43c3805fd1c166dffb938dc6d554f104d2974798fb9e5bd5d8074a16 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-ca7b81f07e580e6be64b6d1cbe1875ee6d6c7928e6b493df4d9a09c60c6e3008 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-77ef42ad9b8908019e93016fcbcf0121ec3c21dc458edeb9e71b4d718bc922ee | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-9b70e4ca62febacd4a74b01fd03e184bfb966cbf2f02ff096e55331ab217794b | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-cab2544186dd516fe66c2a3454dfc4a38f45ba39b87a96f20f9b7a50eb32a2e2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-9619d9b667eaa722076224b20f14d26e4c53dce0f64d10aae3d00105da343c42 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-d1f7143db695c39b08a8060e1dec2707e824b97850da0df3cb212b5121fdb0be | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-d6f62980338b818c3c2d433e9983005a0f16ca0b8f0a7b6dd46ecb66f612dcd2 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
-2a7999fc95d103a5fe4a85686058982dfa47f5983270ab2894e88b2359526bb6 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
-28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
-def7febf1bd7f23296b73eaa6c6f82f332ffd51e471a09858dfff98bb53ae654 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
-0266b5014d54fc2f2effcf2ef23952fbded79d315bbbc9874145a71b211782ec | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-5a01c0f14c1153b7bc72a399dac620df17cb0f6b8eb71eee7085cbc4e8afbc2c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
-222e1505a69fdcbc022cd7b833b4eaef8ce15de90db4e7fe109c745c91f9c6eb | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
-4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
-192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+64758ccf4bbbb3d85b6fb08670aecba5dc268a4da0447bd104e1fff8e5ea22db | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+d4c1f25639a8e1654fe73ade3b9e21e21255051b9401cbd3b643526e02d9d6d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+08e10dfb690f8366527ae9a4de7f78a884bad1482c3e734d9b11330ac274a1de | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+73e9303f49abd4cf9f1be79d87afc4f4466eb78fea746ede959a789c1e92cc2b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+adca44d699aa2e1001bb440570981d338810eb279c0bbe51794abb82854d6b63 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+308b3ba33e7df3883ba2aacbf55897c9a867e06e1c93f44698fdd1c280ad7ed8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+b0e96fee3957500895c14d050586d111ab5df757866661216bece1c2479c931c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+c8cc40da0f9f8e36ceba262c95184f48d7cb7a0fd7f025d77eea56eefaf0275c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+1ad5adc5ea691cb1436613c3d71a555d8acc38dc1cf4a567dd740ee534b716a3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+c6c8ac7ab985b4ba1a4592ff75a678c9081f9156dbc29b6e983de4708ab66134 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+771ef748004d51bc8aa356c368e16ef1a4720fd001215fac9a51f8ac719e2922 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+fa0f35011dbb0374a8abd2a61af2372e5f29dca5bc3b1a5166e08e6f3f840035 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+576ffafbf54c07132862d085d1428ce07331044effc350ea7e4c3733fd7fb2d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+0013838c7ee43340280515e3048fc60345f1159ea8922399d676ba9e14c6a8ab | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+a4b4d57f44faea323fe57da68fce6e9cd6628b2e741dfacf5baa2f5c5761b0fe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+e682e2be9d265a99b0f849493d25fd5fa83302bad856eef7f707076433b9aa80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+46be4e00d4d59c171f891bdffd2c36cc76c9c1315985beeeff395d4380f758df | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+bbaf1e1ccceb1115202b1cb6275da1765289b6067db9d390207db7dcea5dd1a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+be243169acd63e7cecd45ec8dc0200ad6133a89cf46d59b69a8df7865178ba31 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+0542d2f8bd9520e11180eda8ca679ea808aa8a3ce735f79f1e2a5ba2a07ba40d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+2044bff8c23e93a58470cb2eb475300ca3314e890121aa1be735fefe7022f179 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+d82a96fbf5e66346333409c929211183522f6887dfefc2555995d852d47110ba | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+404bfa0ffa74f897ca8ee6f9a7e117f31e4808e6ea0c1766d15e3356b8847137 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+06f89b0217f5099567500aeaa5282cf9f9059219be4b7b164e33c34795caf306 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+a654ce445760858798a23daabf681e0643a2bff29e4cc3c9fadda55a0eb4fb6c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+19fb3a1bd6aa09ec367113e794e5559c3de4757949f547754e7a3c8186381b18 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+2c9fdd36d4a03e4d0320f4cdc83bc760a2f818a1513343032cd530a29a2f8fd1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+40414cd542a96c96833cb32e0c780ea640fb928627f1ddf1423d4f0c4640b456 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+c98d338dd373e547bda508105013a2f7a21bb3b4326020aaaa579725e1cccde4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+979409be707c08ce03ed7afec3817ef8bf47e8343d647d30ea655aa6e7f69f85 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+a838ac2655f0c03bf2dc5a22ad9a20a7667a7bc78d4325846921556adef6413b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+c57a84e582a7a800bb39d20869dd91d2636d8757842b53895c1f3fa60a2798ca | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+6eb6cd1eb89a450e1d0fe48a8dc823aad8ebb74f77d0c0a87cfe37085734405c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+6a4002ab585aef5540b15746f77e8884ed3dbfb449f784e00173aaa6b3ba3bf9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+7f6b71405eed034fa60de5058da62e0e7a1e3a4eebf1b789397974683483f8f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+408f79f7799d50f8a45ce73114a991ddb63968e77414fba371bf0504284933d7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+292fd673966119aea9757721f3b19a2cdfa40ae4d740944807da274d30081fd3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+245cd071717df71f33fb5dfc538c59905da7286df53bb856d6f873c668119cd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+3e386ef47a3f4b6e8cdf2bfbadd35615d46bfb9ef343ad61e009a982952a128c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+ed0e9c88d18c325aabf1323a0a1ce77b90e4247998e314151bc70798df807aa5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+27877e30862a10351551faa9adf472ae5e5b7ec2e8b01009042cf24f5c7d5a58 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+37248d487d7666abd645c025c23d6426d88cd6dae34b2a2b2c8830f990b847cf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+161d679ac74d29c3030d0898aab5029896f3e5833ea024a9d848be0bd994589f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+9915be7b0231ca0c56a706b5a616726978c3205c508a08a477ec12d91a16829c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+b6bb497263ae3dc874a69bfd0d1cc25db82d6871056528f89b67b0db2fe7e044 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+c752612ef9276dbd39e9312280694d7fa337aad3294e3e048f483d033e1846cb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+26d2ecc4faef48fc9f7f1eb4dfe696680c487e78fd659e3ceaaab799b99ff7cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+741e57f32b40cc25de1c020ed078a30313f6cfb7f8b094cc8dc6446a9e5d19ab | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+b8bd7583dd4143d23a361c3a85f41447bea996776cbfaf6710426c2eff94a3ee | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+19f8bedcec03bc4a88d95cdd45fdf492a9935c3e578c9d9d076821d2cd74be41 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
+8e0cd9972f3b6a2c3deadd06b4a5197005872466009b7ff88a412338a0edffe5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
+48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
+947f3f12b2ae08c93c8a62110a56e55ed7a10373827ded277f8c80193399f460 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
+c79731b9c166c48d6301ad7d976e69617219af5ff82a345bdfb02edd1be47adb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+4eca341ba4c78e981c8178bee0e3dbc9ebacfc75e813ca03d62ee8ec0447344e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f9a6c96e4eff5b260c92f621253e37d1eeb5527f3b9ce6b01f1236dc7cc4efc2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+129ef699aa65684a724f5689f7f1bb4cc39c2d7f1d28ba53915cc064bbbebd8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+ec1098996b8bfca986b0c7e572c84bd64b081d0f53717b7806c6ba1ca6bac29b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+697aa9ef2180c895515ea3e420fd586383491f70364a180201476570709dba40 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+5413a31f873fdf0ac3485b1a8b3af244a46af5bb364db2d2a49b4dcd421e6199 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+68c438bc59668e845a045592e3bbbbec74276e1c5f3b985fb2cf7b0c2f8573e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9d4e7876af9a45b4f8f24aaa86e29789390e50eafa66172277439a1ae899c508 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9ae189015e453b95d3fbf5472621db87e0ff8d4873eafc5a751a63bcda236cf1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+d1f2a8794cd20aa870938958fc7e8347001572d4609e9e89b44025304ff1eec1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+fb8310d14852587bc9ff48b889ace8a1aa47362ef79ce526f83d4b8a9ad9c48e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+e73e09b714950c74af264accff9297fde1323c95d8f5ef939a455cf598034839 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+250047470b69f8d07858b6aa24c6f62abc0e3dfda2833191b798e2cf52d0ec75 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+ee29403ebcc08fc275fa6261be8cbbf4fea1da4f34b2cc34d74cfd2bbcd873c2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+3353497ac0d579991be25321f7a25705982331f0c62de1f1957f2e7e47c465d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+12bdcf092142cce7894508c1b33f21983e9d686c2aefc9831bf9ecf74c9184eb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+addb38dee2f29d8c9be92b989ad4ce7ff3f019495ceca382257fc735e73b4d45 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
+9c476961192907c7ff168df8c70a81ab9dde61355d60d96d95994f80606dcd5b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+b05fbe0aebdd7962ef0f6a4ac0ca39966626df98ac8dd34670f925f47e63494d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+e81999354ed65f0d2b7069c903e1a26c7ee5b5f4638526a994267ed1f2d8ff56 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+6480b3e75fbf7e25eb6149ae56b734b35114a76fb67b93bbd13edb1e87b72dd0 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
+c55c965bc433fa58b712ca044b84d060d862f4c56611ea992cd28f6ede0f0808 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
+a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+fee496f17920ef88e33c42d17063fbd53a8ce4f600382a6b73c06bd7c08a7d73 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+2cb6b4249d962d955cf6b513fc5144a9bdfc57ec9c808905329a12d1a3f11ebf | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+8ca3f8676d7c7cc04a34395a317ef9d0b6858ea522cc853cf96fe93c0be17ea7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+e78d5d7ee7cf2ab96aeb6c2bf0aa7d680e535b4ba7f1baa6b921235a5ed5ec8a | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+e51865d21bdf496b0e3283cde78b6ba9f64383c2ba23280e18422d6bee1f38c5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+3532d05ccc874507ab2a1a667ce1e8b7fd38e615ca78014c5601ed7bf63d379a | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+633f6ef4d8f1e91c34e6c529b00dd6fbfe70624cf8b4d77e003baf12b3e3a3c3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+b1acadb2a1e9faba878b28a9365bf53fa8e403a518b1982209adcdb92dc6b0fc | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+ada4da3a96ba4069a6c05bc5e29527eb338df86a7a77fe50b40a7e6aa1a8574a | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+382053c52fa6be16c0eb61ed1e9feacab9abba7c72bf36ed6ecbfa1c0bb6bec4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+20e1ccdf36a87c0218265bdc64fabb8f528332ccc33dcac6779252b6713ad3be | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+d11f4f3c4fc610df4eacad8e0ebba123fbc5e323299c01f7dbfcddd714495fa1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
+830a56102f0556d05f8b2206b2d82c3ab3f310050ad03dd30c285ad8b87ff5a1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
+c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+977a2c883c76d30ff93204dc55511e65f1190800a70a1e4003140d563810e8ab | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+3108ec05881d3345b6fb84420051fd5292efe8ac5d582d902244cb0fbf379d4e | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+020c4e26649a494b93675df2596ff68a9a884287093e1ac83c7045a6d65806b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+c98f9feffd8e2578fe315c42b3f0f50891298b87674c5d421a8c85965e7406f9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+7714939de52aee7136194b5ac6dd5edeef16841b5b61ed67619125db22f3dc69 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+d23b6972ce76fe5b373458dfa4a9e7d0024986526acbf7341ff19fc847bc435b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+ba5bb89df94ef9c4d5f79a090db42364a8d71d592c5361e92b40d950098deb38 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+d2a058c1bfa6804b0a8557b54afe0143ff0529be7a02e1e9dfb9ce269c50ea7a | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+1b53d85a5a50ac6bd674539f08cea9e25d9baca42680661707e73ef066b10862 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+8ed9188bbc59eb75457deac094ab42cb058d37b54c8727d7ab924dae1807a0e6 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+4315b1f2932d0ad520d3eba0235132c0054b11ec24190cbe686e7a1a6af8cb6f | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+d3b58696b898860270d35199c5e83187874fc0465091bae3aa4ea9738a35fb9b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
+46e947d01b9b3fbca9214cdea162a607e0e966a2dc655ceddfe964b69f80dadf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
+28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
+b3e62dea5413d440ddceb9ff64f4dffa2d6110271cf00c5713d1ca031a8353e5 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
+e87f83dae66dd426531b612b2658b5748326b9e46f55b7f3d492422e5c02c941 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+4428344060392a6601c2e136c6f4be18eefba17b0c22e104bd22631de1e2837f | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
+ed166ade7d06412f7b88d3dc0612d7f43598240a87eed331e407e84503e0a9ee | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
+6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/firefox/config b/projects/firefox/config
index 78fb570..1b98216 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -1,14 +1,14 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build2'
+git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build1'
tag_gpg_id: 1
git_url: https://git.torproject.org/tor-browser.git
git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- firefox_platform_version: 78.11.0
+ firefox_platform_version: 78.12.0
firefox_version: '[% c("var/firefox_platform_version") %]esr'
torbrowser_branch: 11.0
branding_directory: 'browser/branding/alpha'
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 750ad84..c3de9fa 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 90.0b12
+ geckoview_version: 90.0
torbrowser_branch: 11.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 2520833..f51b13c 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2021.4.15
+version: 2021.7.13
git_url: https://github.com/EFForg/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index 0d5387e..2d317cd 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,20 @@
+Tor Browser 11.0a2 -- July 17 2021
+ * All Platforms
+ * Update HTTPS Everywhere to 2021.7.13
+ * Windows + OS X + Linux
+ * Update Firefox to 78.12.0esr
+ * Bug 40497: Cannot set multiple pages as home pages in 10.5a17 [tor-browser]
+ * Bug 40506: Saved Logins not available in 10.5 [tor-browser]
+ * Bug 40507: Full update is not downloaded after applying partial update fails [tor-browser]
+ * Bug 40510: open tabs get redirected to about:torconnect on restart [tor-browser]
+ * Bug 40524: Update DuckDuckGo onion site URL in search preferences and onboarding [tor-browser]
+ * Android
+ * Update Fenix to 90.1.1
+ * Bug 40177: Hide Tor icons in settings [fenix]
+ * Build System
+ * All Platforms
+ * Update Go to 1.16.6
+
Tor Browser 11.0a1 -- July 9 2021
* Android
* Bug 40172: Find the Quit button [fenix]
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index 4556886..00a8a07 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": 626914,
+ "average_daily_users": 613905,
"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": 5239111,
+ "id": 5262581,
"compatibility": {
"firefox": {
"min": "54.0",
@@ -42,19 +42,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52391…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52625…",
"files": [
{
- "id": 3783471,
- "created": "2021-05-28T13:29:07Z",
- "hash": "sha256:49e7ec13cfdb953dfb785a2442582788e895a5623956d0b7dff02f59db2e3159",
+ "id": 3806938,
+ "created": "2021-07-07T11:58:46Z",
+ "hash": "sha256:9ba482118d25675af31ee403c740972a106fdccfd117c4449c046b70f1a2d95d",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 541560,
+ "size": 541270,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3783471/dark_reader-4.9.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3806938/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 disability to switch on sites in Global Dark List.\n- Bug fixes.\n- Users' fixes for websites."
+ "en-US": "- Dynamic mode bug fixes and performance improvements.\n- Minor UI improvements.\n- Users' fixes for websites."
},
"reviewed": null,
- "version": "4.9.33"
+ "version": "4.9.34"
},
"default_locale": "en-US",
"description": {
@@ -164,7 +164,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-05-28T14:02:13Z",
+ "last_updated": "2021-07-07T12:32:16Z",
"name": {
"ar": "Dark Reader",
"bn": "Dark Reader",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5638,
- "bayesian_average": 4.562429320383016,
- "count": 3705,
- "text_count": 1201
+ "average": 4.5605,
+ "bayesian_average": 4.559135722557494,
+ "count": 3738,
+ "text_count": 1212
},
"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": 23027
+ "weekly_downloads": 21397
},
"notes": null
},
@@ -353,7 +353,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 701105,
+ "average_daily_users": 675428,
"categories": {
"android": [
"security-privacy"
@@ -365,30 +365,30 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2010-09-16T15:09:10Z",
"current_version": {
- "id": 5216160,
+ "id": 5265391,
"compatibility": {
"firefox": {
- "min": "42.0",
+ "min": "52.0",
"max": "*"
},
"android": {
- "min": "48.0",
+ "min": "52.0",
"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": 3760520,
- "created": "2021-04-15T09:00:17Z",
- "hash": "sha256:8f6342077515669f73ae377346da4447428544559c870678488fa5b6b63d2500",
+ "id": 3809748,
+ "created": "2021-07-13T22:01:19Z",
+ "hash": "sha256:e261461b5d4d3621285fce70773558184d691c614b330744dab672f032db731c",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 1752551,
+ "size": 1752121,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3760520/https_everywhere-…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-…",
"permissions": [
"webNavigation",
"webRequest",
@@ -409,13 +409,13 @@
"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.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"
+ "en-US": "2021.7.13\n* Amend Incognito Key for Chrome and Firefox #20092\n* Fix unexpected arithmetic operations on strings #20043\n* Remove Top Alexa Labeller #20083\n* Update deprecated log function #20101\n* Patch Chrome Test Failure #20102"
},
"reviewed": null,
- "version": "2021.4.15"
+ "version": "2021.7.13"
},
"default_locale": "en-US",
"description": {
@@ -451,7 +451,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-15T09:13:13Z",
+ "last_updated": "2021-07-14T06:03:40Z",
"name": {
"de": "HTTPS Everywhere",
"en-US": "HTTPS Everywhere",
@@ -486,10 +486,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6639,
- "bayesian_average": 4.661394338186861,
- "count": 2077,
- "text_count": 409
+ "average": 4.6649,
+ "bayesian_average": 4.662391975486979,
+ "count": 2086,
+ "text_count": 411
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -523,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": 13589
+ "weekly_downloads": 12733
},
"notes": null
},
@@ -539,7 +539,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 199619,
+ "average_daily_users": 193998,
"categories": {
"android": [
"security-privacy"
@@ -752,10 +752,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.8009,
- "bayesian_average": 4.796141725881215,
- "count": 1130,
- "text_count": 217
+ "average": 4.7991,
+ "bayesian_average": 4.794355030935285,
+ "count": 1140,
+ "text_count": 220
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -851,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": 4431
+ "weekly_downloads": 4186
},
"notes": null
},
@@ -867,7 +867,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 937932,
+ "average_daily_users": 901688,
"categories": {
"android": [
"security-privacy"
@@ -1411,10 +1411,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7902,
- "bayesian_average": 4.787290030686736,
- "count": 1845,
- "text_count": 370
+ "average": 4.7875,
+ "bayesian_average": 4.784597137496271,
+ "count": 1859,
+ "text_count": 371
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1434,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": 16454
+ "weekly_downloads": 15183
},
"notes": null
},
@@ -1450,7 +1450,7 @@
"picture_url": null
}
],
- "average_daily_users": 4807454,
+ "average_daily_users": 4640025,
"categories": {
"android": [
"security-privacy"
@@ -1462,7 +1462,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5254372,
+ "id": 5262085,
"compatibility": {
"firefox": {
"min": "57.0",
@@ -1473,19 +1473,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
"files": [
{
- "id": 3798731,
- "created": "2021-06-19T15:31:09Z",
- "hash": "sha256:384f3e5241f87e90c376fb6964842ce204743feed554b8b7dabe09f119ea7d66",
+ "id": 3806442,
+ "created": "2021-07-06T14:33:48Z",
+ "hash": "sha256:31f8c2126a3f4e3cfe3ef63550b842a5d4f071ec1c6e5aa377c2f29b11ff1415",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2820672,
+ "size": 2823571,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3798731/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3806442/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1541,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/9f806d450f0bb51f8c3a680f27169e335ad8c02…" 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/00a8778da7c67adfa5cc3bbdc4af6f843f3596f…" rel=\"nofollow\">Bizarre perf drain when ajaxing in 90,000 DOM nodes in a react component</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/976d8b716147c39299242ece7c89c9fe63ce812…" rel=\"nofollow\">Google Tag Manager eventCallback in a populated dataLayer not called</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e336839918e89ae2b22dce75f2eee4024a6a1b1…" rel=\
"nofollow\">Countering a removeparam filter causes page-redirect problem</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/43e1c2ed2a0c66cac32ae5e137ae885e034369f…" rel=\"nofollow\">Asset viewer shows no space between !#endif and a comment line in uBlock's list</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/55294c2ace343eeb9f6ed323b6464dfd84b4173…" rel=\"nofollow\">Text in Manage Extension Shortcuts includes escaped <code>&shy;</code></a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/73eb512082e3d16e39b466a3099eda65c7e9a20…" rel=\"nofollow\">In popup, the Reload button becomes immediately hidden if re-enabling the large power button too quickly</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/a2d4db0757726512fa2da34780b0a274fe4688c…" rel=\"nofollow\">Add ability to linger for <code>remove-class</code> scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/05a4025f4e850a5d4150433e8bf515073b7f0c0…" rel=\"nofollow\">Add empty array, object to set-constant scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/a99edd7e6e4f330ef91b436b23b8f9401af4fc6…" rel=\"nofollow\">Fix potential exception when casting to string</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7b3ebbbc13833b075dc0ab0af114ba88c8e1d5a…
/gorhill/uBlock/commit/8cd2a1d263a96421487b39040c1d23eb01169484\" rel=\"nofollow\">Make googletagmanager<em>gtm.js an alias of google-analytics</em>analytics.js</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e60e518a96d998c94124bb450b8c8f8632f94d3…" rel=\"nofollow\">Ensure getter/setter are called with proper context</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/6645b98ed2caac0283509afccfcadd17182f587…" rel=\"nofollow\">Allow filter list subscription through context menu</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/ec7cc511dc5622187fd057c2e3f9cd8d7579652…" rel=\"nofollow\">Keep reporting last time \"out of date\" lists were up
dated</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/4ccf11b8bcfbd1383eda2148f1d038898465774…" rel=\"nofollow\">Fix improper hashing of rules in classic popup panel</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/14f36de2dfb16d9b82b8cef8fce11fd0e504e0f…" rel=\"nofollow\">Commits history since last version</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/5434dae3f84b4b698b24adb9b42ac5798fe9e71…" 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/683064916343a0100b76a2b61b6f3a86ab3b68f…" rel=\"nofollow\">DoS with strict-blocking filter</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/8a8fc68c13e487c5d368677c3c826a0cc984d26…" rel=\"nofollow\">Commits history since last version</a>."
},
"reviewed": null,
- "version": "1.36.0"
+ "version": "1.36.2"
},
"default_locale": "en-US",
"description": {
@@ -1634,7 +1634,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-06-24T15:15:36Z",
+ "last_updated": "2021-07-12T22:40:36Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1779,10 +1779,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.767,
- "bayesian_average": 4.766555724017786,
- "count": 12032,
- "text_count": 3295
+ "average": 4.7675,
+ "bayesian_average": 4.767057239998241,
+ "count": 12136,
+ "text_count": 3316
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1837,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": 114937
+ "weekly_downloads": 108865
},
"notes": null
},
@@ -1853,7 +1853,7 @@
"picture_url": null
}
],
- "average_daily_users": 57089,
+ "average_daily_users": 57501,
"categories": {
"android": [
"photos-media"
@@ -1973,10 +1973,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5185,
- "bayesian_average": 4.513490692203433,
- "count": 1001,
- "text_count": 380
+ "average": 4.5204,
+ "bayesian_average": 4.515383003232922,
+ "count": 1005,
+ "text_count": 382
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -2004,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": 300
+ "weekly_downloads": 238
},
"notes": null
},
@@ -2020,7 +2020,7 @@
"picture_url": null
}
],
- "average_daily_users": 95664,
+ "average_daily_users": 92573,
"categories": {
"android": [
"experimental",
@@ -2159,10 +2159,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4818,
- "bayesian_average": 4.46681046808246,
- "count": 330,
- "text_count": 92
+ "average": 4.4743,
+ "bayesian_average": 4.459290174111107,
+ "count": 331,
+ "text_count": 93
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2188,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": 6894
+ "weekly_downloads": 1270
},
"notes": null
},
@@ -2204,7 +2204,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 170577,
+ "average_daily_users": 169807,
"categories": {
"android": [
"photos-media",
@@ -2426,10 +2426,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.657,
- "bayesian_average": 4.6514359731704635,
- "count": 933,
- "text_count": 181
+ "average": 4.6589,
+ "bayesian_average": 4.653366424227091,
+ "count": 944,
+ "text_count": 186
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2465,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": 3494
+ "weekly_downloads": 6258
},
"notes": null
},
@@ -2488,7 +2488,7 @@
"picture_url": null
}
],
- "average_daily_users": 42335,
+ "average_daily_users": 43242,
"categories": {
"android": [
"other"
@@ -2770,10 +2770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4574,
- "bayesian_average": 4.452573414888262,
- "count": 1021,
- "text_count": 278
+ "average": 4.4546,
+ "bayesian_average": 4.449765155570907,
+ "count": 1025,
+ "text_count": 281
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2793,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": 28
+ "weekly_downloads": 57
},
"notes": null
},
@@ -2809,7 +2809,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 354639,
+ "average_daily_users": 341957,
"categories": {
"android": [
"performance",
@@ -3034,10 +3034,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.3797,
- "bayesian_average": 4.37700001222646,
- "count": 1791,
- "text_count": 719
+ "average": 4.3803,
+ "bayesian_average": 4.377601092060284,
+ "count": 1801,
+ "text_count": 720
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/",
"requires_payment": false,
@@ -3094,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": 8264
+ "weekly_downloads": 8002
},
"notes": null
},
@@ -3110,7 +3110,7 @@
"picture_url": null
}
],
- "average_daily_users": 113290,
+ "average_daily_users": 109945,
"categories": {
"android": [
"performance",
@@ -3243,10 +3243,10 @@
"category": "recommended"
},
"ratings": {
- "average": 3.9036,
- "bayesian_average": 3.899325383200061,
- "count": 985,
- "text_count": 354
+ "average": 3.9077,
+ "bayesian_average": 3.903408628046669,
+ "count": 986,
+ "text_count": 355
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3285,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": 1683
+ "weekly_downloads": 1385
},
"notes": null
}
diff --git a/rbm.conf b/rbm.conf
index 6388d5c..f54655e 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -57,7 +57,7 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '11.0a1'
+ torbrowser_version: '11.0a2'
torbrowser_build: 'build1'
torbrowser_incremental_from:
- 10.5a17
1
0

[tor-browser-build/master] Revert "Release preparations for 11.0a2"
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 5b0959a4ebe509838aef3292a7d3e6cddf3fb587
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jul 15 21:57:22 2021 +0000
Revert "Release preparations for 11.0a2"
This reverts commit 7a821145d21a77914978529ce9aa6b64caebe9b4.
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 4 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 352 ++++++++++-----------
projects/firefox/config | 4 +-
projects/geckoview/config | 2 +-
.../go/0001-Use-fixed-go-build-tmp-directory.patch | 2 +-
projects/https-everywhere/config | 2 +-
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 17 -
projects/tor-browser/allowed_addons.json | 198 ++++++------
rbm.conf | 2 +-
11 files changed, 287 insertions(+), 304 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index 03e22b7..e2f240d 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: 90.0.12
+ android_components_version: 90.0.11
torbrowser_branch: 11.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 27
+ gradle_dependencies_version: 26
gradle_version: 6.6.1
glean_parser: 3.2.0
git_branch: '[% project %]-[% c("var/android_components_version") %]-[% c("var/torbrowser_branch") %]-1'
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index a26b641..1118f17 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -387,8 +387,8 @@ e99477265ee7b3fd8c8c5d5a8a3e0b5372dfffb8b55aa037e03b5520a590c63c | https://maven
d5bc8b9ee51c1c99fb9d9f0a1ad5971f20d8ebca5f65ab0a511d2e68a7058ce3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/75.0.0/…
3a8be5803d69f1c27f1c6be686b4693ed2ad815992240540e78713043b2442d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
7f2a2ee5be870a21ac6ef982ac76869d15c707b9771a54aac9ab602f74d99b86 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
-6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
-c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/fenix/config b/projects/fenix/config
index 3545901..11d83d4 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,14 +8,14 @@ gpg_keyring: torbutton.gpg
variant: Beta
var:
- fenix_version: 90.1.1
+ fenix_version: 90.0.0b6
torbrowser_branch: 11.0
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
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 29
+ gradle_dependencies_version: 28
gradle_version: 6.5.1
glean_parser: 3.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index cae263d..ad2f948 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -377,182 +377,182 @@ cb1aa6bbb2193af67f2c4c5953b88ec42f253df6423c61f3ef050bdcd1894191 | https://maven
9433932729312495ab30a98bb15187d9ee1169596eee483bcc7727593083e0c1 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/77.0.2…
4028179e210302582f9d2e91215fa2455b372a00cdea64b3e2a50db824c69018 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
2e8e9b245228a38f8e3ba4a41dc09b17359da45097fac978e08155ca27cf2ddd | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
-9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-64758ccf4bbbb3d85b6fb08670aecba5dc268a4da0447bd104e1fff8e5ea22db | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-d4c1f25639a8e1654fe73ade3b9e21e21255051b9401cbd3b643526e02d9d6d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-08e10dfb690f8366527ae9a4de7f78a884bad1482c3e734d9b11330ac274a1de | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-73e9303f49abd4cf9f1be79d87afc4f4466eb78fea746ede959a789c1e92cc2b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-adca44d699aa2e1001bb440570981d338810eb279c0bbe51794abb82854d6b63 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-308b3ba33e7df3883ba2aacbf55897c9a867e06e1c93f44698fdd1c280ad7ed8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-b0e96fee3957500895c14d050586d111ab5df757866661216bece1c2479c931c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-c8cc40da0f9f8e36ceba262c95184f48d7cb7a0fd7f025d77eea56eefaf0275c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-1ad5adc5ea691cb1436613c3d71a555d8acc38dc1cf4a567dd740ee534b716a3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-c6c8ac7ab985b4ba1a4592ff75a678c9081f9156dbc29b6e983de4708ab66134 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-771ef748004d51bc8aa356c368e16ef1a4720fd001215fac9a51f8ac719e2922 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-fa0f35011dbb0374a8abd2a61af2372e5f29dca5bc3b1a5166e08e6f3f840035 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-576ffafbf54c07132862d085d1428ce07331044effc350ea7e4c3733fd7fb2d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-0013838c7ee43340280515e3048fc60345f1159ea8922399d676ba9e14c6a8ab | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-a4b4d57f44faea323fe57da68fce6e9cd6628b2e741dfacf5baa2f5c5761b0fe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-e682e2be9d265a99b0f849493d25fd5fa83302bad856eef7f707076433b9aa80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-46be4e00d4d59c171f891bdffd2c36cc76c9c1315985beeeff395d4380f758df | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-bbaf1e1ccceb1115202b1cb6275da1765289b6067db9d390207db7dcea5dd1a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-be243169acd63e7cecd45ec8dc0200ad6133a89cf46d59b69a8df7865178ba31 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-0542d2f8bd9520e11180eda8ca679ea808aa8a3ce735f79f1e2a5ba2a07ba40d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-2044bff8c23e93a58470cb2eb475300ca3314e890121aa1be735fefe7022f179 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-d82a96fbf5e66346333409c929211183522f6887dfefc2555995d852d47110ba | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-404bfa0ffa74f897ca8ee6f9a7e117f31e4808e6ea0c1766d15e3356b8847137 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-06f89b0217f5099567500aeaa5282cf9f9059219be4b7b164e33c34795caf306 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-a654ce445760858798a23daabf681e0643a2bff29e4cc3c9fadda55a0eb4fb6c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-19fb3a1bd6aa09ec367113e794e5559c3de4757949f547754e7a3c8186381b18 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-2c9fdd36d4a03e4d0320f4cdc83bc760a2f818a1513343032cd530a29a2f8fd1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-40414cd542a96c96833cb32e0c780ea640fb928627f1ddf1423d4f0c4640b456 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-c98d338dd373e547bda508105013a2f7a21bb3b4326020aaaa579725e1cccde4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-979409be707c08ce03ed7afec3817ef8bf47e8343d647d30ea655aa6e7f69f85 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-a838ac2655f0c03bf2dc5a22ad9a20a7667a7bc78d4325846921556adef6413b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-c57a84e582a7a800bb39d20869dd91d2636d8757842b53895c1f3fa60a2798ca | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-6eb6cd1eb89a450e1d0fe48a8dc823aad8ebb74f77d0c0a87cfe37085734405c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-6a4002ab585aef5540b15746f77e8884ed3dbfb449f784e00173aaa6b3ba3bf9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-7f6b71405eed034fa60de5058da62e0e7a1e3a4eebf1b789397974683483f8f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-408f79f7799d50f8a45ce73114a991ddb63968e77414fba371bf0504284933d7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-292fd673966119aea9757721f3b19a2cdfa40ae4d740944807da274d30081fd3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-245cd071717df71f33fb5dfc538c59905da7286df53bb856d6f873c668119cd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-3e386ef47a3f4b6e8cdf2bfbadd35615d46bfb9ef343ad61e009a982952a128c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-ed0e9c88d18c325aabf1323a0a1ce77b90e4247998e314151bc70798df807aa5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-27877e30862a10351551faa9adf472ae5e5b7ec2e8b01009042cf24f5c7d5a58 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-37248d487d7666abd645c025c23d6426d88cd6dae34b2a2b2c8830f990b847cf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-161d679ac74d29c3030d0898aab5029896f3e5833ea024a9d848be0bd994589f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-9915be7b0231ca0c56a706b5a616726978c3205c508a08a477ec12d91a16829c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-b6bb497263ae3dc874a69bfd0d1cc25db82d6871056528f89b67b0db2fe7e044 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-c752612ef9276dbd39e9312280694d7fa337aad3294e3e048f483d033e1846cb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-26d2ecc4faef48fc9f7f1eb4dfe696680c487e78fd659e3ceaaab799b99ff7cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-741e57f32b40cc25de1c020ed078a30313f6cfb7f8b094cc8dc6446a9e5d19ab | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-b8bd7583dd4143d23a361c3a85f41447bea996776cbfaf6710426c2eff94a3ee | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-19f8bedcec03bc4a88d95cdd45fdf492a9935c3e578c9d9d076821d2cd74be41 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
-8e0cd9972f3b6a2c3deadd06b4a5197005872466009b7ff88a412338a0edffe5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
-48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
-947f3f12b2ae08c93c8a62110a56e55ed7a10373827ded277f8c80193399f460 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
-c79731b9c166c48d6301ad7d976e69617219af5ff82a345bdfb02edd1be47adb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-4eca341ba4c78e981c8178bee0e3dbc9ebacfc75e813ca03d62ee8ec0447344e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-f9a6c96e4eff5b260c92f621253e37d1eeb5527f3b9ce6b01f1236dc7cc4efc2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-129ef699aa65684a724f5689f7f1bb4cc39c2d7f1d28ba53915cc064bbbebd8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-ec1098996b8bfca986b0c7e572c84bd64b081d0f53717b7806c6ba1ca6bac29b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-697aa9ef2180c895515ea3e420fd586383491f70364a180201476570709dba40 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-5413a31f873fdf0ac3485b1a8b3af244a46af5bb364db2d2a49b4dcd421e6199 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-68c438bc59668e845a045592e3bbbbec74276e1c5f3b985fb2cf7b0c2f8573e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9d4e7876af9a45b4f8f24aaa86e29789390e50eafa66172277439a1ae899c508 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-9ae189015e453b95d3fbf5472621db87e0ff8d4873eafc5a751a63bcda236cf1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-d1f2a8794cd20aa870938958fc7e8347001572d4609e9e89b44025304ff1eec1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-fb8310d14852587bc9ff48b889ace8a1aa47362ef79ce526f83d4b8a9ad9c48e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-e73e09b714950c74af264accff9297fde1323c95d8f5ef939a455cf598034839 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-250047470b69f8d07858b6aa24c6f62abc0e3dfda2833191b798e2cf52d0ec75 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-ee29403ebcc08fc275fa6261be8cbbf4fea1da4f34b2cc34d74cfd2bbcd873c2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-3353497ac0d579991be25321f7a25705982331f0c62de1f1957f2e7e47c465d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-12bdcf092142cce7894508c1b33f21983e9d686c2aefc9831bf9ecf74c9184eb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-addb38dee2f29d8c9be92b989ad4ce7ff3f019495ceca382257fc735e73b4d45 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
-9c476961192907c7ff168df8c70a81ab9dde61355d60d96d95994f80606dcd5b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-b05fbe0aebdd7962ef0f6a4ac0ca39966626df98ac8dd34670f925f47e63494d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-e81999354ed65f0d2b7069c903e1a26c7ee5b5f4638526a994267ed1f2d8ff56 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-6480b3e75fbf7e25eb6149ae56b734b35114a76fb67b93bbd13edb1e87b72dd0 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
-c55c965bc433fa58b712ca044b84d060d862f4c56611ea992cd28f6ede0f0808 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
-a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-fee496f17920ef88e33c42d17063fbd53a8ce4f600382a6b73c06bd7c08a7d73 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-2cb6b4249d962d955cf6b513fc5144a9bdfc57ec9c808905329a12d1a3f11ebf | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-8ca3f8676d7c7cc04a34395a317ef9d0b6858ea522cc853cf96fe93c0be17ea7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-e78d5d7ee7cf2ab96aeb6c2bf0aa7d680e535b4ba7f1baa6b921235a5ed5ec8a | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-e51865d21bdf496b0e3283cde78b6ba9f64383c2ba23280e18422d6bee1f38c5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-3532d05ccc874507ab2a1a667ce1e8b7fd38e615ca78014c5601ed7bf63d379a | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-633f6ef4d8f1e91c34e6c529b00dd6fbfe70624cf8b4d77e003baf12b3e3a3c3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-b1acadb2a1e9faba878b28a9365bf53fa8e403a518b1982209adcdb92dc6b0fc | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-ada4da3a96ba4069a6c05bc5e29527eb338df86a7a77fe50b40a7e6aa1a8574a | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-382053c52fa6be16c0eb61ed1e9feacab9abba7c72bf36ed6ecbfa1c0bb6bec4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-20e1ccdf36a87c0218265bdc64fabb8f528332ccc33dcac6779252b6713ad3be | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-d11f4f3c4fc610df4eacad8e0ebba123fbc5e323299c01f7dbfcddd714495fa1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
-830a56102f0556d05f8b2206b2d82c3ab3f310050ad03dd30c285ad8b87ff5a1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
-c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-977a2c883c76d30ff93204dc55511e65f1190800a70a1e4003140d563810e8ab | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-3108ec05881d3345b6fb84420051fd5292efe8ac5d582d902244cb0fbf379d4e | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-020c4e26649a494b93675df2596ff68a9a884287093e1ac83c7045a6d65806b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-c98f9feffd8e2578fe315c42b3f0f50891298b87674c5d421a8c85965e7406f9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-7714939de52aee7136194b5ac6dd5edeef16841b5b61ed67619125db22f3dc69 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-d23b6972ce76fe5b373458dfa4a9e7d0024986526acbf7341ff19fc847bc435b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-ba5bb89df94ef9c4d5f79a090db42364a8d71d592c5361e92b40d950098deb38 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-d2a058c1bfa6804b0a8557b54afe0143ff0529be7a02e1e9dfb9ce269c50ea7a | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-1b53d85a5a50ac6bd674539f08cea9e25d9baca42680661707e73ef066b10862 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-8ed9188bbc59eb75457deac094ab42cb058d37b54c8727d7ab924dae1807a0e6 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-4315b1f2932d0ad520d3eba0235132c0054b11ec24190cbe686e7a1a6af8cb6f | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-d3b58696b898860270d35199c5e83187874fc0465091bae3aa4ea9738a35fb9b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
-46e947d01b9b3fbca9214cdea162a607e0e966a2dc655ceddfe964b69f80dadf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
-28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
-b3e62dea5413d440ddceb9ff64f4dffa2d6110271cf00c5713d1ca031a8353e5 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
-e87f83dae66dd426531b612b2658b5748326b9e46f55b7f3d492422e5c02c941 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-4428344060392a6601c2e136c6f4be18eefba17b0c22e104bd22631de1e2837f | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
-ed166ade7d06412f7b88d3dc0612d7f43598240a87eed331e407e84503e0a9ee | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
-6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
-c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+f589b665c4826dd2887a707492d7aa35ae62e7e20e68b1710ebbcc9aa4e43205 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+c6fcdd7eab9d718644171e5f604ad167be5885528783547108623cc994db1764 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+86c45b59c7263900d5b6c982eeee5505168afef4acc521231bd2f9c2233372ff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+62e7ee9fc2344c3536f2daad81e086a8fcd5cb0d670f84769378567bd393f5e6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+a272f0c9c586f89dbad9ae9ecf181f0291551867da464b306a281b05935120cb | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+e66fdac6967846ff6ebcce48958618f4672643ace5a70e350ec6869bd26abe80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+6599ed5ac510a29c1d1cf31ce056ca4a70c8f8ea48c90169673112c1276904bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+0383f4735406d0d433c2d6b0709d774d8eb83ee083e31eb079d84e0fc2c7bbf8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+45bd2ce86fb2e157fbf3385ca0826095d62ffe74f536de71e0ab45d91eb85dfc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+0dc272d59122f5d97c559c80a3d1dfe45f3ee3180a308800e398900871a225f8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+4b851c690eff2874d4de297e4919daab0bf6c361d21f14cb7090420a2f0c1f56 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+6734252c8918471005096c3e155c78ad17b9d46320273fc564ee6c56ae86baa7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+f9a3aab99cfddac685ee0b05278498fa6a210b78a511d76ecf6b5c0add96dfc6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+e4b7aaf18963c3b73384a8940bf160f4f5f5b301f86c67a3ecacdde5a73cdbb2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+80d0852aed6a561ff985e46f503ea4a48d42041ef71c7e18b14f403ea7e0061f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+54bd6b0b90c2c923305492ae8f52f4274d96d4a75a58a8dd959cd7932557d742 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+dc05d1d3ae2c7b89148e3454bf9e9bf882a5f19b2f48e3a502f1fdddd2a7d02b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+9cd91e9fc6b3dc63601b76d98a81cd621d0befc205bed42b46fc1a2ee2df28e4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+9bb2ef61c43db4ae862e0d3d05484d934d23670592a4f73a19e6aec2c71362bd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+220553bcd321c0f49b73257517e886381afdd7b81308d14f591267a6b8c77d0b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+45ebcc7a4f64c8975a900d341b5217d53614650311ca21a56dca6a7cf666db8b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+d8d3e6e3fc27839a99eed37be9e31ec9f34c8aceff76d2eecb0d126878b3b0a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+ae4c2da1dd973dc0e2ec426212c87dc14089b711cb2129a9455849a83442c948 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+bfb4bbaf109607911bd0e413ece0318b62ec6198a0b1b780bb8c146df99180d6 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+52459b477cd30995d3bd2dc702f337adc8e8ca4ffdc5a091b4953f94fc96438b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+94f0d99989afbd20fbe9d717574d15ad9148dd4ad20fbc8fdf9a0cd1871546ce | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+03411a760d3c4eda287b21c28963494d70cfbac636cd1f968ce220bfae102462 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+ee4491831ed72275b5f34d4f4e1ba1ca9054280ebe186acc3903005682279739 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+0098c5c21022bd75bded84e6b5c2341d1b4777c9949e3a28a0de564a0f7e4b07 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+44252dfc6d5d1adcd6c42ce5bc148164ee4fe8a4636b5ee67d48999908544d33 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+e36978401448ab34ad1c81dda96e514e0f5a66b2836d5e2427cbaa96fcbad236 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+cd8ef0f8f4e572ba280ac5dfe9075e510996d8593cd9bdd2b9a2c5872225550e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+40dc7f6563e1560d9b9a4bf1713e9c6ce3320505a0c4647baffdec6fda422506 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+828dcaf9d3103a548f7ed88d26d3af05ce76c18f4c9ce6b4096df80ab4d00e6c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+f393dc1533a0c71d5a7fb4023fa9ae707ff4ddd0c97427dc0fe750aa798ad9b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+962b8e84f3fd2e3440fe4ff4a3216223a602b004478a4dcb622a6a85b82debda | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+9c5b989d95ad5369155535d5da01173f8d03ae88a8e8af6aba42b575ace2895a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+8d2035855ca1d5369f50075330d1aaff9edd3d684a04107b37cd23cc307692f6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+5999d2c3926c49c5ed3f91a6b3eda74ac0e448a9641c5ec981d3e730a3eb6d93 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+8bb50e18a590c4b20c951c5d633a32a523bb8e912e6d72c157aea2a49aa3d813 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+2d28c9564ee105466f8daabab8b6e71966873749b48f93af58fa0c358cc5904c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+5d7c2277076fc071bae3d44159f45d1352cea8d6f3b5c04a7dbaafbf9ae2d392 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+397b7b33d5a21e87d6e3ccecdfcb9acec9f268a28621a493bf460e7cc31d9cf0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+324528a0dac1db07440f08687cc10883a4f165e43f63ac3d95d07c05920e8c01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+21973f09526ccfe4da90b54559f93f7f64c0932c958a081928deeaabf072f51a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+11a00ec87583550928ce32fe2f6944fb723faa4e36a794b156a70a1719ce118f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+bba21bf460b682e57c67a6d6e8db753d0ddeaf4696baa82de679d55582b087a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+af4503702eb980c2f893382f3bedcdc7850b086f75d8ef5a3d20cf1366a7570f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+9ca2e4e5c758245d35474578fec1549404c8e051e9ddeffc1fc14e7e7a550d0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+ece2b01059c3d9cc81bb4b3eda0d1678660ad301e185dbb37eb953d6f8fbf9ce | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
+216b354a15a4b18734d2209fd1014443440f0898e2439ba0782732f511a51a42 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
+48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
+5f1452772b53398280f5e39bbf1dd58cbf6568c253bf341a1fb0fe8af41d8c1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
+e352c2431cc509cebcde1afaa44d8fa452f8ad564d3bace3a0cdc8d0931299e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+4c2eabac2bf18d0faaf8ba71382ef245e78bb797eaead88fcb0b7cfb91ee93f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+0f45269e90f51a2609e01c5b50dd4b515d4cd14054735362e9d390fd1300fb2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+6ad00b7d21a5fa8a48dfdbfc4073599cbef4f0a94ab256397b59960f2ec05645 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+36b09e8884b000a72627c2b77a2f5b33a5206acdaf2086faeb92723e93220993 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+4db0e4fa715e804779699687e7f494e64d4b47da613e2b6823cab3e0d540a461 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+71fd9db2d67048a8d2702df9864624fefb6505afa6a79281265b4ae702b2ef6f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+0b4028f5498170623714a5cba9bc89ce1d0155bb0f8250bd559389f570d8b2b7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+c0d7e21469b4cab4524a855e9ee611d3cc2d325e955b5781ae2315452ecbaed3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+4192a6c00f5213a4a4e74309e994f09ced3ea0c395d2e22e60a561ce305e6377 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+831364696423963aa4168c62b8e602982bf62ead0ab81a27a117de2b1663de14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+6bc98d6da80ffb855c216e0db7c97864e99243104dd673aa83020be3297b806c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+e1d293d3ef9465ba7f01762d89d866a4b6f2b7de03cfbece0259bd71c45156a6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+471200411dad8c123dc3f7d5b25c63bae1f3ab7c8f6dcb4e6832e11c27025ea3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+e8835c28e4fc0700f9b03f072023063fa2f9fc0019fd9290f32becdb3eaaa88e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+eb456ca4724b2ac59637d369a1d8bfabc2767961daf7cef46ee67c5124b5d96a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+b9772a8501f845b77b344d03afda2853384e58d01eee18519e7b836b13bc7cd1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+f535e1e16c50b85f712dbc09d06d125c330aebabbe8df98cc4788bb4d85255cd | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
+48975f948791bb3da38d669cc6f5fcf81cff01d458b3d17a9b83b91ee74c4e6c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+f0c4dbd1d70faf5ad632fdc05ed14b5598a6630642822ff5167edeee19614cc9 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+8768b35bbfe3a7170a49645b58f20daad244b853d9c2b1ed108c5897b8e24e4f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+2fe73bf360b77f167d0bcf58e040db4fb78ab8c80d45f28fe0962e6364068b05 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
+c8c8adda3473012aa0c35a15e00d9bb0793e9f0b97d4bbf64d39c8ca6a9ddbb8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
+a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+cc22ef6f20c3814bf5a8d089522c66b7a73ef400914206c05c9f0e1bd34c7eee | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+7cf4f74bbe1a8773764ab1e6b1c0b07b5ed9c161624d338ad5c0cd7e5e9de6b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+88e328ee1ac9a6a2a1c8125b2c73455d9fd6e5b11cf784f46100eb38817991b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+d2075724ba5d96228471133ff992050a5d4401cad467c4df28e104447ae149f9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+aaf9723907b33263ca76b06f6b8c7006c1098c570a4ad9d82d35430ce0c79a39 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+ba20047e1ab405b842a4977bf122261eb43735aad93d921a54e0169c7e467f3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+c00109cad54b97815de0ce49d81a565365d695841edfafc972c765af981d4fce | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+fabedd1e11f563d76523713b0e2b37388e360f74e6806aa166915f64ed9fdb53 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+f9c50b0f34f701891130efdd079e6691c5991f0e48d4e60b24d9c40a0417314d | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+4b1d44222e1e36cef4de9b72e980a2963a0fce5c0904153fa1b5e8e0f61ccfe7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+1c06fec562cb55735bfb09f83d2530dda858ea8ed5de9673b395291db7756381 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+8eb0fe48dc9b4924b5a523f23153277d6f7d8227f040fa77682b71ec7962cd67 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
+fe68148cbd4a4991fe16e934b84ff63d6a84c5efbee81f4d6e83bd48aa1f5a8c | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
+c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+402635ea6d787d813ac398564e0c4ae6ed70986dc42fb0e8032b526c0941199f | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+65228ebf6b58dfbce4a9b8a255d98ce61e820625cf6deca23779a9450fbb22b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+b2b24abba66ab356d42b11bae35c6f662e9e74c46a18f5daa12fee9b888e0fec | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+04782b18806a27921104aaca4e40b8166e5f84d30a6fcb28ce2db1b0c7862934 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+0c9baffa43c3805fd1c166dffb938dc6d554f104d2974798fb9e5bd5d8074a16 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+ca7b81f07e580e6be64b6d1cbe1875ee6d6c7928e6b493df4d9a09c60c6e3008 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+77ef42ad9b8908019e93016fcbcf0121ec3c21dc458edeb9e71b4d718bc922ee | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+9b70e4ca62febacd4a74b01fd03e184bfb966cbf2f02ff096e55331ab217794b | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+cab2544186dd516fe66c2a3454dfc4a38f45ba39b87a96f20f9b7a50eb32a2e2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+9619d9b667eaa722076224b20f14d26e4c53dce0f64d10aae3d00105da343c42 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+d1f7143db695c39b08a8060e1dec2707e824b97850da0df3cb212b5121fdb0be | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+d6f62980338b818c3c2d433e9983005a0f16ca0b8f0a7b6dd46ecb66f612dcd2 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
+2a7999fc95d103a5fe4a85686058982dfa47f5983270ab2894e88b2359526bb6 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
+28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
+def7febf1bd7f23296b73eaa6c6f82f332ffd51e471a09858dfff98bb53ae654 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
+0266b5014d54fc2f2effcf2ef23952fbded79d315bbbc9874145a71b211782ec | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+5a01c0f14c1153b7bc72a399dac620df17cb0f6b8eb71eee7085cbc4e8afbc2c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
+222e1505a69fdcbc022cd7b833b4eaef8ce15de90db4e7fe109c745c91f9c6eb | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
+4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/firefox/config b/projects/firefox/config
index 1b98216..78fb570 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -1,14 +1,14 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build1'
+git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build2'
tag_gpg_id: 1
git_url: https://git.torproject.org/tor-browser.git
git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- firefox_platform_version: 78.12.0
+ firefox_platform_version: 78.11.0
firefox_version: '[% c("var/firefox_platform_version") %]esr'
torbrowser_branch: 11.0
branding_directory: 'browser/branding/alpha'
diff --git a/projects/geckoview/config b/projects/geckoview/config
index c3de9fa..750ad84 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 90.0
+ geckoview_version: 90.0b12
torbrowser_branch: 11.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
index 211376d..022aa23 100644
--- a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
+++ b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
@@ -11,7 +11,7 @@ diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/actio
index 33b7818fb2..5e369d0f53 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
-@@ -252,9 +252,13 @@ func (b *Builder) Init() {
+@@ -249,9 +249,13 @@ func (b *Builder) Init() {
if cfg.BuildN {
b.WorkDir = "$WORK"
} else {
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index f51b13c..2520833 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2021.7.13
+version: 2021.4.15
git_url: https://github.com/EFForg/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index 2d317cd..0d5387e 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,20 +1,3 @@
-Tor Browser 11.0a2 -- July 17 2021
- * All Platforms
- * Update HTTPS Everywhere to 2021.7.13
- * Windows + OS X + Linux
- * Update Firefox to 78.12.0esr
- * Bug 40497: Cannot set multiple pages as home pages in 10.5a17 [tor-browser]
- * Bug 40506: Saved Logins not available in 10.5 [tor-browser]
- * Bug 40507: Full update is not downloaded after applying partial update fails [tor-browser]
- * Bug 40510: open tabs get redirected to about:torconnect on restart [tor-browser]
- * Bug 40524: Update DuckDuckGo onion site URL in search preferences and onboarding [tor-browser]
- * Android
- * Update Fenix to 90.1.1
- * Bug 40177: Hide Tor icons in settings [fenix]
- * Build System
- * All Platforms
- * Update Go to 1.16.6
-
Tor Browser 11.0a1 -- July 9 2021
* Android
* Bug 40172: Find the Quit button [fenix]
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index 00a8a07..4556886 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": 613905,
+ "average_daily_users": 626914,
"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": 5262581,
+ "id": 5239111,
"compatibility": {
"firefox": {
"min": "54.0",
@@ -42,19 +42,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52625…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52391…",
"files": [
{
- "id": 3806938,
- "created": "2021-07-07T11:58:46Z",
- "hash": "sha256:9ba482118d25675af31ee403c740972a106fdccfd117c4449c046b70f1a2d95d",
+ "id": 3783471,
+ "created": "2021-05-28T13:29:07Z",
+ "hash": "sha256:49e7ec13cfdb953dfb785a2442582788e895a5623956d0b7dff02f59db2e3159",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 541270,
+ "size": 541560,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3806938/dark_reader-4.9.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3783471/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": "- Dynamic mode bug fixes and performance improvements.\n- Minor UI improvements.\n- Users' fixes for websites."
+ "en-US": "- Fixed disability to switch on sites in Global Dark List.\n- Bug fixes.\n- Users' fixes for websites."
},
"reviewed": null,
- "version": "4.9.34"
+ "version": "4.9.33"
},
"default_locale": "en-US",
"description": {
@@ -164,7 +164,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-07-07T12:32:16Z",
+ "last_updated": "2021-05-28T14:02:13Z",
"name": {
"ar": "Dark Reader",
"bn": "Dark Reader",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5605,
- "bayesian_average": 4.559135722557494,
- "count": 3738,
- "text_count": 1212
+ "average": 4.5638,
+ "bayesian_average": 4.562429320383016,
+ "count": 3705,
+ "text_count": 1201
},
"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": 21397
+ "weekly_downloads": 23027
},
"notes": null
},
@@ -353,7 +353,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 675428,
+ "average_daily_users": 701105,
"categories": {
"android": [
"security-privacy"
@@ -365,30 +365,30 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2010-09-16T15:09:10Z",
"current_version": {
- "id": 5265391,
+ "id": 5216160,
"compatibility": {
"firefox": {
- "min": "52.0",
+ "min": "42.0",
"max": "*"
},
"android": {
- "min": "52.0",
+ "min": "48.0",
"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": 3809748,
- "created": "2021-07-13T22:01:19Z",
- "hash": "sha256:e261461b5d4d3621285fce70773558184d691c614b330744dab672f032db731c",
+ "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": 1752121,
+ "size": 1752551,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3760520/https_everywhere-…",
"permissions": [
"webNavigation",
"webRequest",
@@ -409,13 +409,13 @@
"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.7.13\n* Amend Incognito Key for Chrome and Firefox #20092\n* Fix unexpected arithmetic operations on strings #20043\n* Remove Top Alexa Labeller #20083\n* Update deprecated log function #20101\n* Patch Chrome Test Failure #20102"
+ "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.7.13"
+ "version": "2021.4.15"
},
"default_locale": "en-US",
"description": {
@@ -451,7 +451,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-07-14T06:03:40Z",
+ "last_updated": "2021-04-15T09:13:13Z",
"name": {
"de": "HTTPS Everywhere",
"en-US": "HTTPS Everywhere",
@@ -486,10 +486,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6649,
- "bayesian_average": 4.662391975486979,
- "count": 2086,
- "text_count": 411
+ "average": 4.6639,
+ "bayesian_average": 4.661394338186861,
+ "count": 2077,
+ "text_count": 409
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -523,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": 12733
+ "weekly_downloads": 13589
},
"notes": null
},
@@ -539,7 +539,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 193998,
+ "average_daily_users": 199619,
"categories": {
"android": [
"security-privacy"
@@ -752,10 +752,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7991,
- "bayesian_average": 4.794355030935285,
- "count": 1140,
- "text_count": 220
+ "average": 4.8009,
+ "bayesian_average": 4.796141725881215,
+ "count": 1130,
+ "text_count": 217
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -851,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": 4186
+ "weekly_downloads": 4431
},
"notes": null
},
@@ -867,7 +867,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 901688,
+ "average_daily_users": 937932,
"categories": {
"android": [
"security-privacy"
@@ -1411,10 +1411,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7875,
- "bayesian_average": 4.784597137496271,
- "count": 1859,
- "text_count": 371
+ "average": 4.7902,
+ "bayesian_average": 4.787290030686736,
+ "count": 1845,
+ "text_count": 370
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1434,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": 15183
+ "weekly_downloads": 16454
},
"notes": null
},
@@ -1450,7 +1450,7 @@
"picture_url": null
}
],
- "average_daily_users": 4640025,
+ "average_daily_users": 4807454,
"categories": {
"android": [
"security-privacy"
@@ -1462,7 +1462,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5262085,
+ "id": 5254372,
"compatibility": {
"firefox": {
"min": "57.0",
@@ -1473,19 +1473,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
"files": [
{
- "id": 3806442,
- "created": "2021-07-06T14:33:48Z",
- "hash": "sha256:31f8c2126a3f4e3cfe3ef63550b842a5d4f071ec1c6e5aa377c2f29b11ff1415",
+ "id": 3798731,
+ "created": "2021-06-19T15:31:09Z",
+ "hash": "sha256:384f3e5241f87e90c376fb6964842ce204743feed554b8b7dabe09f119ea7d66",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2823571,
+ "size": 2820672,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3806442/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3798731/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1541,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/5434dae3f84b4b698b24adb9b42ac5798fe9e71…" 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/683064916343a0100b76a2b61b6f3a86ab3b68f…" rel=\"nofollow\">DoS with strict-blocking filter</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/8a8fc68c13e487c5d368677c3c826a0cc984d26…" rel=\"nofollow\">Commits history since last version</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/9f806d450f0bb51f8c3a680f27169e335ad8c02…" 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/00a8778da7c67adfa5cc3bbdc4af6f843f3596f…" rel=\"nofollow\">Bizarre perf drain when ajaxing in 90,000 DOM nodes in a react component</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/976d8b716147c39299242ece7c89c9fe63ce812…" rel=\"nofollow\">Google Tag Manager eventCallback in a populated dataLayer not called</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e336839918e89ae2b22dce75f2eee4024a6a1b1…" rel=\
"nofollow\">Countering a removeparam filter causes page-redirect problem</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/43e1c2ed2a0c66cac32ae5e137ae885e034369f…" rel=\"nofollow\">Asset viewer shows no space between !#endif and a comment line in uBlock's list</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/55294c2ace343eeb9f6ed323b6464dfd84b4173…" rel=\"nofollow\">Text in Manage Extension Shortcuts includes escaped <code>&shy;</code></a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/73eb512082e3d16e39b466a3099eda65c7e9a20…" rel=\"nofollow\">In popup, the Reload button becomes immediately hidden if re-enabling the large power button too quickly</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/a2d4db0757726512fa2da34780b0a274fe4688c…" rel=\"nofollow\">Add ability to linger for <code>remove-class</code> scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/05a4025f4e850a5d4150433e8bf515073b7f0c0…" rel=\"nofollow\">Add empty array, object to set-constant scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/a99edd7e6e4f330ef91b436b23b8f9401af4fc6…" rel=\"nofollow\">Fix potential exception when casting to string</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7b3ebbbc13833b075dc0ab0af114ba88c8e1d5a…
/gorhill/uBlock/commit/8cd2a1d263a96421487b39040c1d23eb01169484\" rel=\"nofollow\">Make googletagmanager<em>gtm.js an alias of google-analytics</em>analytics.js</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e60e518a96d998c94124bb450b8c8f8632f94d3…" rel=\"nofollow\">Ensure getter/setter are called with proper context</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/6645b98ed2caac0283509afccfcadd17182f587…" rel=\"nofollow\">Allow filter list subscription through context menu</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/ec7cc511dc5622187fd057c2e3f9cd8d7579652…" rel=\"nofollow\">Keep reporting last time \"out of date\" lists were up
dated</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/4ccf11b8bcfbd1383eda2148f1d038898465774…" rel=\"nofollow\">Fix improper hashing of rules in classic popup panel</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/14f36de2dfb16d9b82b8cef8fce11fd0e504e0f…" rel=\"nofollow\">Commits history since last version</a>."
},
"reviewed": null,
- "version": "1.36.2"
+ "version": "1.36.0"
},
"default_locale": "en-US",
"description": {
@@ -1634,7 +1634,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-07-12T22:40:36Z",
+ "last_updated": "2021-06-24T15:15:36Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1779,10 +1779,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7675,
- "bayesian_average": 4.767057239998241,
- "count": 12136,
- "text_count": 3316
+ "average": 4.767,
+ "bayesian_average": 4.766555724017786,
+ "count": 12032,
+ "text_count": 3295
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1837,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": 108865
+ "weekly_downloads": 114937
},
"notes": null
},
@@ -1853,7 +1853,7 @@
"picture_url": null
}
],
- "average_daily_users": 57501,
+ "average_daily_users": 57089,
"categories": {
"android": [
"photos-media"
@@ -1973,10 +1973,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5204,
- "bayesian_average": 4.515383003232922,
- "count": 1005,
- "text_count": 382
+ "average": 4.5185,
+ "bayesian_average": 4.513490692203433,
+ "count": 1001,
+ "text_count": 380
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -2004,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": 238
+ "weekly_downloads": 300
},
"notes": null
},
@@ -2020,7 +2020,7 @@
"picture_url": null
}
],
- "average_daily_users": 92573,
+ "average_daily_users": 95664,
"categories": {
"android": [
"experimental",
@@ -2159,10 +2159,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4743,
- "bayesian_average": 4.459290174111107,
- "count": 331,
- "text_count": 93
+ "average": 4.4818,
+ "bayesian_average": 4.46681046808246,
+ "count": 330,
+ "text_count": 92
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2188,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": 1270
+ "weekly_downloads": 6894
},
"notes": null
},
@@ -2204,7 +2204,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 169807,
+ "average_daily_users": 170577,
"categories": {
"android": [
"photos-media",
@@ -2426,10 +2426,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6589,
- "bayesian_average": 4.653366424227091,
- "count": 944,
- "text_count": 186
+ "average": 4.657,
+ "bayesian_average": 4.6514359731704635,
+ "count": 933,
+ "text_count": 181
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2465,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": 6258
+ "weekly_downloads": 3494
},
"notes": null
},
@@ -2488,7 +2488,7 @@
"picture_url": null
}
],
- "average_daily_users": 43242,
+ "average_daily_users": 42335,
"categories": {
"android": [
"other"
@@ -2770,10 +2770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4546,
- "bayesian_average": 4.449765155570907,
- "count": 1025,
- "text_count": 281
+ "average": 4.4574,
+ "bayesian_average": 4.452573414888262,
+ "count": 1021,
+ "text_count": 278
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2793,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": 57
+ "weekly_downloads": 28
},
"notes": null
},
@@ -2809,7 +2809,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 341957,
+ "average_daily_users": 354639,
"categories": {
"android": [
"performance",
@@ -3034,10 +3034,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.3803,
- "bayesian_average": 4.377601092060284,
- "count": 1801,
- "text_count": 720
+ "average": 4.3797,
+ "bayesian_average": 4.37700001222646,
+ "count": 1791,
+ "text_count": 719
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/",
"requires_payment": false,
@@ -3094,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": 8002
+ "weekly_downloads": 8264
},
"notes": null
},
@@ -3110,7 +3110,7 @@
"picture_url": null
}
],
- "average_daily_users": 109945,
+ "average_daily_users": 113290,
"categories": {
"android": [
"performance",
@@ -3243,10 +3243,10 @@
"category": "recommended"
},
"ratings": {
- "average": 3.9077,
- "bayesian_average": 3.903408628046669,
- "count": 986,
- "text_count": 355
+ "average": 3.9036,
+ "bayesian_average": 3.899325383200061,
+ "count": 985,
+ "text_count": 354
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3285,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": 1385
+ "weekly_downloads": 1683
},
"notes": null
}
diff --git a/rbm.conf b/rbm.conf
index f54655e..6388d5c 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -57,7 +57,7 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '11.0a2'
+ torbrowser_version: '11.0a1'
torbrowser_build: 'build1'
torbrowser_incremental_from:
- 10.5a17
1
0

16 Jul '21
commit c47ff1ac8c477d3b0ff46fcfc5e6b3f07fa4ea4c
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed Jul 14 03:29:29 2021 +0000
Bug 40232: Move Alpha to Go 1.16
---
projects/go/0001-Use-fixed-go-build-tmp-directory.patch | 6 +++---
projects/go/config | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
index 022aa23..5321847 100644
--- a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
+++ b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
@@ -11,17 +11,17 @@ diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/actio
index 33b7818fb2..5e369d0f53 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
-@@ -249,9 +249,13 @@ func (b *Builder) Init() {
+@@ -252,9 +252,13 @@ func (b *Builder) Init() {
if cfg.BuildN {
b.WorkDir = "$WORK"
} else {
-- tmp, err := ioutil.TempDir(cfg.Getenv("GOTMPDIR"), "go-build")
+- tmp, err := os.MkdirTemp(cfg.Getenv("GOTMPDIR"), "go-build")
- if err != nil {
- base.Fatalf("go: creating work dir: %v", err)
+ tmp := filepath.Join(cfg.Getenv("GOTMPDIR"), "go-build-workdir")
+ _, err := os.Stat(tmp)
+ if !os.IsNotExist(err) {
-+ tmp, err = ioutil.TempDir(cfg.Getenv("GOTMPDIR"), "go-build")
++ tmp, err = os.MkdirTemp(cfg.Getenv("GOTMPDIR"), "go-build")
+ if err != nil {
+ base.Fatalf("go: creating work dir: %v", err)
+ }
diff --git a/projects/go/config b/projects/go/config
index 8a67ae8..79f24a2 100644
--- a/projects/go/config
+++ b/projects/go/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 1.15.13
+version: 1.16.6
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var:
@@ -118,7 +118,7 @@ input_files:
enable: '[% ! c("var/linux") %]'
- URL: 'https://golang.org/dl/go[% c("version") %].src.tar.gz'
name: go
- sha256sum: 99069e7223479cce4553f84f874b9345f6f4045f27cf5089489b546da619a244
+ sha256sum: a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d
- URL: 'https://golang.org/dl/go[% c("var/go14_version") %].src.tar.gz'
name: go14
sha256sum: 9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
1
0

[tor-browser-build/master] Revert "Bug 40232: Move Alpha to Go 1.16"
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit db747e91c8cba0c0616645424eeeab9f609eab8a
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jul 15 21:57:25 2021 +0000
Revert "Bug 40232: Move Alpha to Go 1.16"
This reverts commit f58e644a341025060ddec6d173a37ef2cb9f55c6.
---
projects/go/config | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/go/config b/projects/go/config
index 79f24a2..8a67ae8 100644
--- a/projects/go/config
+++ b/projects/go/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 1.16.6
+version: 1.15.13
filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
var:
@@ -118,7 +118,7 @@ input_files:
enable: '[% ! c("var/linux") %]'
- URL: 'https://golang.org/dl/go[% c("version") %].src.tar.gz'
name: go
- sha256sum: a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d
+ sha256sum: 99069e7223479cce4553f84f874b9345f6f4045f27cf5089489b546da619a244
- URL: 'https://golang.org/dl/go[% c("var/go14_version") %].src.tar.gz'
name: go14
sha256sum: 9947fc705b0b841b5938c48b22dc33e9647ec0752bae66e50278df4f23f64959
1
0

[tor-browser-build/master] Revert "fixup! Bug 40232: Move Alpha to Go 1.16"
by sysrqb@torproject.org 16 Jul '21
by sysrqb@torproject.org 16 Jul '21
16 Jul '21
commit 6dbedb734cc659bd602d281b559ec62e4733fc5a
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jul 15 21:56:31 2021 +0000
Revert "fixup! Bug 40232: Move Alpha to Go 1.16"
This reverts commit 56f538d0ea6f4b5136bb77d7f4cc9cb4cb363f03.
---
projects/go/0001-Use-fixed-go-build-tmp-directory.patch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
index f8c8559..211376d 100644
--- a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
+++ b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
@@ -15,7 +15,7 @@ index 33b7818fb2..5e369d0f53 100644
if cfg.BuildN {
b.WorkDir = "$WORK"
} else {
-- tmp, err := os.MkdirTemp(cfg.Getenv("GOTMPDIR"), "go-build")
+- tmp, err := ioutil.TempDir(cfg.Getenv("GOTMPDIR"), "go-build")
- if err != nil {
- base.Fatalf("go: creating work dir: %v", err)
+ tmp := filepath.Join(cfg.Getenv("GOTMPDIR"), "go-build-workdir")
1
0

[tor-browser-build/master] Bug 40340: Use the https-everywhere Github repo
by sysrqb@torproject.org 15 Jul '21
by sysrqb@torproject.org 15 Jul '21
15 Jul '21
commit 96546bae9d89e8a1cfb72ad3fd56db1b47a4256a
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jul 15 04:34:48 2021 +0000
Bug 40340: Use the https-everywhere Github repo
---
projects/https-everywhere/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index 50cd1b1..f51b13c 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,6 +1,6 @@
# vim: filetype=yaml sw=2
version: 2021.7.13
-git_url: https://git.torproject.org/https-everywhere.git
+git_url: https://github.com/EFForg/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
gpg_keyring: https-everywhere.gpg
1
0

[tor-browser-build/master] fixup! Bug 40232: Move Alpha to Go 1.16
by sysrqb@torproject.org 15 Jul '21
by sysrqb@torproject.org 15 Jul '21
15 Jul '21
commit 56f538d0ea6f4b5136bb77d7f4cc9cb4cb363f03
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jul 15 04:30:48 2021 +0000
fixup! Bug 40232: Move Alpha to Go 1.16
---
projects/go/0001-Use-fixed-go-build-tmp-directory.patch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
index 211376d..f8c8559 100644
--- a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
+++ b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
@@ -15,7 +15,7 @@ index 33b7818fb2..5e369d0f53 100644
if cfg.BuildN {
b.WorkDir = "$WORK"
} else {
-- tmp, err := ioutil.TempDir(cfg.Getenv("GOTMPDIR"), "go-build")
+- tmp, err := os.MkdirTemp(cfg.Getenv("GOTMPDIR"), "go-build")
- if err != nil {
- base.Fatalf("go: creating work dir: %v", err)
+ tmp := filepath.Join(cfg.Getenv("GOTMPDIR"), "go-build-workdir")
1
0

15 Jul '21
commit 7a821145d21a77914978529ce9aa6b64caebe9b4
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Wed Jul 14 03:47:55 2021 +0000
Release preparations for 11.0a2
Version and Changelog updates
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 4 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 352 ++++++++++-----------
projects/firefox/config | 4 +-
projects/geckoview/config | 2 +-
.../go/0001-Use-fixed-go-build-tmp-directory.patch | 2 +-
projects/https-everywhere/config | 2 +-
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 17 +
projects/tor-browser/allowed_addons.json | 198 ++++++------
rbm.conf | 2 +-
11 files changed, 304 insertions(+), 287 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index e2f240d..03e22b7 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: 90.0.11
+ android_components_version: 90.0.12
torbrowser_branch: 11.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 26
+ gradle_dependencies_version: 27
gradle_version: 6.6.1
glean_parser: 3.2.0
git_branch: '[% project %]-[% c("var/android_components_version") %]-[% c("var/torbrowser_branch") %]-1'
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index 1118f17..a26b641 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -387,8 +387,8 @@ e99477265ee7b3fd8c8c5d5a8a3e0b5372dfffb8b55aa037e03b5520a590c63c | https://maven
d5bc8b9ee51c1c99fb9d9f0a1ad5971f20d8ebca5f65ab0a511d2e68a7058ce3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/75.0.0/…
3a8be5803d69f1c27f1c6be686b4693ed2ad815992240540e78713043b2442d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
7f2a2ee5be870a21ac6ef982ac76869d15c707b9771a54aac9ab602f74d99b86 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/75.0.…
-4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
-192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/fenix/config b/projects/fenix/config
index 11d83d4..3545901 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,14 +8,14 @@ gpg_keyring: torbutton.gpg
variant: Beta
var:
- fenix_version: 90.0.0b6
+ fenix_version: 90.1.1
torbrowser_branch: 11.0
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
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 28
+ gradle_dependencies_version: 29
gradle_version: 6.5.1
glean_parser: 3.2.0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index ad2f948..cae263d 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -377,182 +377,182 @@ cb1aa6bbb2193af67f2c4c5953b88ec42f253df6423c61f3ef050bdcd1894191 | https://maven
9433932729312495ab30a98bb15187d9ee1169596eee483bcc7727593083e0c1 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/77.0.2…
4028179e210302582f9d2e91215fa2455b372a00cdea64b3e2a50db824c69018 | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
2e8e9b245228a38f8e3ba4a41dc09b17359da45097fac978e08155ca27cf2ddd | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/77.0.2/tabs-7…
-9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-f589b665c4826dd2887a707492d7aa35ae62e7e20e68b1710ebbcc9aa4e43205 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-c6fcdd7eab9d718644171e5f604ad167be5885528783547108623cc994db1764 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
-dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-86c45b59c7263900d5b6c982eeee5505168afef4acc521231bd2f9c2233372ff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-62e7ee9fc2344c3536f2daad81e086a8fcd5cb0d670f84769378567bd393f5e6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-a272f0c9c586f89dbad9ae9ecf181f0291551867da464b306a281b05935120cb | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-e66fdac6967846ff6ebcce48958618f4672643ace5a70e350ec6869bd26abe80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-6599ed5ac510a29c1d1cf31ce056ca4a70c8f8ea48c90169673112c1276904bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
-0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-0383f4735406d0d433c2d6b0709d774d8eb83ee083e31eb079d84e0fc2c7bbf8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
-5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-45bd2ce86fb2e157fbf3385ca0826095d62ffe74f536de71e0ab45d91eb85dfc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
-8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-0dc272d59122f5d97c559c80a3d1dfe45f3ee3180a308800e398900871a225f8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
-56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-4b851c690eff2874d4de297e4919daab0bf6c361d21f14cb7090420a2f0c1f56 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
-9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-6734252c8918471005096c3e155c78ad17b9d46320273fc564ee6c56ae86baa7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
-8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-f9a3aab99cfddac685ee0b05278498fa6a210b78a511d76ecf6b5c0add96dfc6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-e4b7aaf18963c3b73384a8940bf160f4f5f5b301f86c67a3ecacdde5a73cdbb2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
-be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-80d0852aed6a561ff985e46f503ea4a48d42041ef71c7e18b14f403ea7e0061f | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-54bd6b0b90c2c923305492ae8f52f4274d96d4a75a58a8dd959cd7932557d742 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
-7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-dc05d1d3ae2c7b89148e3454bf9e9bf882a5f19b2f48e3a502f1fdddd2a7d02b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-9cd91e9fc6b3dc63601b76d98a81cd621d0befc205bed42b46fc1a2ee2df28e4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-9bb2ef61c43db4ae862e0d3d05484d934d23670592a4f73a19e6aec2c71362bd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
-4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-220553bcd321c0f49b73257517e886381afdd7b81308d14f591267a6b8c77d0b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
-45ebcc7a4f64c8975a900d341b5217d53614650311ca21a56dca6a7cf666db8b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-d8d3e6e3fc27839a99eed37be9e31ec9f34c8aceff76d2eecb0d126878b3b0a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
-e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-ae4c2da1dd973dc0e2ec426212c87dc14089b711cb2129a9455849a83442c948 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
-5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-bfb4bbaf109607911bd0e413ece0318b62ec6198a0b1b780bb8c146df99180d6 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
-359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-52459b477cd30995d3bd2dc702f337adc8e8ca4ffdc5a091b4953f94fc96438b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
-2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-94f0d99989afbd20fbe9d717574d15ad9148dd4ad20fbc8fdf9a0cd1871546ce | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
-9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-03411a760d3c4eda287b21c28963494d70cfbac636cd1f968ce220bfae102462 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
-4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-ee4491831ed72275b5f34d4f4e1ba1ca9054280ebe186acc3903005682279739 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
-7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-0098c5c21022bd75bded84e6b5c2341d1b4777c9949e3a28a0de564a0f7e4b07 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-44252dfc6d5d1adcd6c42ce5bc148164ee4fe8a4636b5ee67d48999908544d33 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-e36978401448ab34ad1c81dda96e514e0f5a66b2836d5e2427cbaa96fcbad236 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
-cd8ef0f8f4e572ba280ac5dfe9075e510996d8593cd9bdd2b9a2c5872225550e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-40dc7f6563e1560d9b9a4bf1713e9c6ce3320505a0c4647baffdec6fda422506 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
-9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-828dcaf9d3103a548f7ed88d26d3af05ce76c18f4c9ce6b4096df80ab4d00e6c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
-f393dc1533a0c71d5a7fb4023fa9ae707ff4ddd0c97427dc0fe750aa798ad9b3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-962b8e84f3fd2e3440fe4ff4a3216223a602b004478a4dcb622a6a85b82debda | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
-07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-9c5b989d95ad5369155535d5da01173f8d03ae88a8e8af6aba42b575ace2895a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-8d2035855ca1d5369f50075330d1aaff9edd3d684a04107b37cd23cc307692f6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-5999d2c3926c49c5ed3f91a6b3eda74ac0e448a9641c5ec981d3e730a3eb6d93 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-8bb50e18a590c4b20c951c5d633a32a523bb8e912e6d72c157aea2a49aa3d813 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-2d28c9564ee105466f8daabab8b6e71966873749b48f93af58fa0c358cc5904c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-5d7c2277076fc071bae3d44159f45d1352cea8d6f3b5c04a7dbaafbf9ae2d392 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
-285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-397b7b33d5a21e87d6e3ccecdfcb9acec9f268a28621a493bf460e7cc31d9cf0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-324528a0dac1db07440f08687cc10883a4f165e43f63ac3d95d07c05920e8c01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
-81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-21973f09526ccfe4da90b54559f93f7f64c0932c958a081928deeaabf072f51a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
-f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-11a00ec87583550928ce32fe2f6944fb723faa4e36a794b156a70a1719ce118f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
-e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-bba21bf460b682e57c67a6d6e8db753d0ddeaf4696baa82de679d55582b087a2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-af4503702eb980c2f893382f3bedcdc7850b086f75d8ef5a3d20cf1366a7570f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-9ca2e4e5c758245d35474578fec1549404c8e051e9ddeffc1fc14e7e7a550d0b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
-0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-ece2b01059c3d9cc81bb4b3eda0d1678660ad301e185dbb37eb953d6f8fbf9ce | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
-629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
-216b354a15a4b18734d2209fd1014443440f0898e2439ba0782732f511a51a42 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.11…
-48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
-5f1452772b53398280f5e39bbf1dd58cbf6568c253bf341a1fb0fe8af41d8c1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.11/…
-e352c2431cc509cebcde1afaa44d8fa452f8ad564d3bace3a0cdc8d0931299e1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-4c2eabac2bf18d0faaf8ba71382ef245e78bb797eaead88fcb0b7cfb91ee93f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-0f45269e90f51a2609e01c5b50dd4b515d4cd14054735362e9d390fd1300fb2e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-6ad00b7d21a5fa8a48dfdbfc4073599cbef4f0a94ab256397b59960f2ec05645 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
-7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-36b09e8884b000a72627c2b77a2f5b33a5206acdaf2086faeb92723e93220993 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
-c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-4db0e4fa715e804779699687e7f494e64d4b47da613e2b6823cab3e0d540a461 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
-ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-71fd9db2d67048a8d2702df9864624fefb6505afa6a79281265b4ae702b2ef6f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-0b4028f5498170623714a5cba9bc89ce1d0155bb0f8250bd559389f570d8b2b7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-c0d7e21469b4cab4524a855e9ee611d3cc2d325e955b5781ae2315452ecbaed3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-4192a6c00f5213a4a4e74309e994f09ced3ea0c395d2e22e60a561ce305e6377 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-831364696423963aa4168c62b8e602982bf62ead0ab81a27a117de2b1663de14 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
-09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-6bc98d6da80ffb855c216e0db7c97864e99243104dd673aa83020be3297b806c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
-07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-e1d293d3ef9465ba7f01762d89d866a4b6f2b7de03cfbece0259bd71c45156a6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
-9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-471200411dad8c123dc3f7d5b25c63bae1f3ab7c8f6dcb4e6832e11c27025ea3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
-0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-e8835c28e4fc0700f9b03f072023063fa2f9fc0019fd9290f32becdb3eaaa88e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-eb456ca4724b2ac59637d369a1d8bfabc2767961daf7cef46ee67c5124b5d96a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
-ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-b9772a8501f845b77b344d03afda2853384e58d01eee18519e7b836b13bc7cd1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-f535e1e16c50b85f712dbc09d06d125c330aebabbe8df98cc4788bb4d85255cd | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
-48975f948791bb3da38d669cc6f5fcf81cff01d458b3d17a9b83b91ee74c4e6c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.11/l…
-ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-f0c4dbd1d70faf5ad632fdc05ed14b5598a6630642822ff5167edeee19614cc9 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
-068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-8768b35bbfe3a7170a49645b58f20daad244b853d9c2b1ed108c5897b8e24e4f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-2fe73bf360b77f167d0bcf58e040db4fb78ab8c80d45f28fe0962e6364068b05 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
-694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
-c8c8adda3473012aa0c35a15e00d9bb0793e9f0b97d4bbf64d39c8ca6a9ddbb8 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.11/l…
-a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-cc22ef6f20c3814bf5a8d089522c66b7a73ef400914206c05c9f0e1bd34c7eee | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-7cf4f74bbe1a8773764ab1e6b1c0b07b5ed9c161624d338ad5c0cd7e5e9de6b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-88e328ee1ac9a6a2a1c8125b2c73455d9fd6e5b11cf784f46100eb38817991b4 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
-d2075724ba5d96228471133ff992050a5d4401cad467c4df28e104447ae149f9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-aaf9723907b33263ca76b06f6b8c7006c1098c570a4ad9d82d35430ce0c79a39 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
-ba20047e1ab405b842a4977bf122261eb43735aad93d921a54e0169c7e467f3d | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-c00109cad54b97815de0ce49d81a565365d695841edfafc972c765af981d4fce | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
-e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-fabedd1e11f563d76523713b0e2b37388e360f74e6806aa166915f64ed9fdb53 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
-98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-f9c50b0f34f701891130efdd079e6691c5991f0e48d4e60b24d9c40a0417314d | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-4b1d44222e1e36cef4de9b72e980a2963a0fce5c0904153fa1b5e8e0f61ccfe7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-1c06fec562cb55735bfb09f83d2530dda858ea8ed5de9673b395291db7756381 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
-ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-8eb0fe48dc9b4924b5a523f23153277d6f7d8227f040fa77682b71ec7962cd67 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
-312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
-fe68148cbd4a4991fe16e934b84ff63d6a84c5efbee81f4d6e83bd48aa1f5a8c | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.11…
-c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-402635ea6d787d813ac398564e0c4ae6ed70986dc42fb0e8032b526c0941199f | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
-b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-65228ebf6b58dfbce4a9b8a255d98ce61e820625cf6deca23779a9450fbb22b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
-c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-b2b24abba66ab356d42b11bae35c6f662e9e74c46a18f5daa12fee9b888e0fec | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
-fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-04782b18806a27921104aaca4e40b8166e5f84d30a6fcb28ce2db1b0c7862934 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
-7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-0c9baffa43c3805fd1c166dffb938dc6d554f104d2974798fb9e5bd5d8074a16 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-ca7b81f07e580e6be64b6d1cbe1875ee6d6c7928e6b493df4d9a09c60c6e3008 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
-027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-77ef42ad9b8908019e93016fcbcf0121ec3c21dc458edeb9e71b4d718bc922ee | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
-756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-9b70e4ca62febacd4a74b01fd03e184bfb966cbf2f02ff096e55331ab217794b | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
-f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-cab2544186dd516fe66c2a3454dfc4a38f45ba39b87a96f20f9b7a50eb32a2e2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-9619d9b667eaa722076224b20f14d26e4c53dce0f64d10aae3d00105da343c42 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-d1f7143db695c39b08a8060e1dec2707e824b97850da0df3cb212b5121fdb0be | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-d6f62980338b818c3c2d433e9983005a0f16ca0b8f0a7b6dd46ecb66f612dcd2 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
-1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
-2a7999fc95d103a5fe4a85686058982dfa47f5983270ab2894e88b2359526bb6 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.11/u…
-28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
-def7febf1bd7f23296b73eaa6c6f82f332ffd51e471a09858dfff98bb53ae654 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.11/ui…
-0266b5014d54fc2f2effcf2ef23952fbded79d315bbbc9874145a71b211782ec | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-5a01c0f14c1153b7bc72a399dac620df17cb0f6b8eb71eee7085cbc4e8afbc2c | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
-b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
-222e1505a69fdcbc022cd7b833b4eaef8ce15de90db4e7fe109c745c91f9c6eb | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.11/…
-4bac410c8dbd792933a1e03e980a67fb41a5f0ec164836eb2c5e47e9a8157f8f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
-192631dbca16d4cb03f4f8b4913f79e4ec2fe01877c03a4e0c7b485346f0a26f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/90.0.…
+9c5694be50d20bf7c1dcb29eaf148ed672f9d362bd72f2b158ecbf1a02691316 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+64758ccf4bbbb3d85b6fb08670aecba5dc268a4da0447bd104e1fff8e5ea22db | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+c404ac90f6d24d17099ed1bbee57057f11ddf012356da0132901c2fd56c4a48d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+d4c1f25639a8e1654fe73ade3b9e21e21255051b9401cbd3b643526e02d9d6d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/90.…
+dc2097e0c65d8abb91d6019da2ed48dd18c1e5031a0342202c2acfb50775abee | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+08e10dfb690f8366527ae9a4de7f78a884bad1482c3e734d9b11330ac274a1de | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+73e9303f49abd4cf9f1be79d87afc4f4466eb78fea746ede959a789c1e92cc2b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+adca44d699aa2e1001bb440570981d338810eb279c0bbe51794abb82854d6b63 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+308b3ba33e7df3883ba2aacbf55897c9a867e06e1c93f44698fdd1c280ad7ed8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+b0e96fee3957500895c14d050586d111ab5df757866661216bece1c2479c931c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/90.0.…
+0513f2ecbbfdbe55f65f997b07ac90c95e0678fd9622c8ea33ed7b92cdc3920e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+c8cc40da0f9f8e36ceba262c95184f48d7cb7a0fd7f025d77eea56eefaf0275c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/90.0.1…
+5a3c063f3caf204c1186b4e6036980e05e6dba3f757e321fafd42166aa870aff | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+1ad5adc5ea691cb1436613c3d71a555d8acc38dc1cf4a567dd740ee534b716a3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/90.0.…
+8ded53a279fa40ad084ffcbcb2d735abb71a09ee341ab64bfa7eec9a1245579e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+c6c8ac7ab985b4ba1a4592ff75a678c9081f9156dbc29b6e983de4708ab66134 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session-sto…
+56ef7634ca1901dcf13f3e166d1702f9f8c0a06060b8d980c46c8f9de2d48553 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+771ef748004d51bc8aa356c368e16ef1a4720fd001215fac9a51f8ac719e2922 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/90.…
+9ba69b141be86fb3dd7c669040cecdecbb3ba69d9fc5e9227803d2e922e973ca | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+fa0f35011dbb0374a8abd2a61af2372e5f29dca5bc3b1a5166e08e6f3f840035 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/90.0.…
+8c8a40350cb6f22302d30888fc3472c44a5ab32254339ac37b20c477af0028bc | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+576ffafbf54c07132862d085d1428ce07331044effc350ea7e4c3733fd7fb2d2 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+695e434563f110e3afe13d12d91c892eb569a4e95a9c1b2bb63d0eb62af98be4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+0013838c7ee43340280515e3048fc60345f1159ea8922399d676ba9e14c6a8ab | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/90…
+be15f1838e28d37d7047edeac7e77da26b627aa34301a213bf7454dda7ec2ce5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+a4b4d57f44faea323fe57da68fce6e9cd6628b2e741dfacf5baa2f5c5761b0fe | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+402e0f2bc4d9edd92dd2c1698c178a1159d739920222a21b7b1372ab93a4acd8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+e682e2be9d265a99b0f849493d25fd5fa83302bad856eef7f707076433b9aa80 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/90.…
+7113fbe6f7d25eeeb3429d6894042466887bc47f3e2a7de1e55dcfb43ec36054 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+46be4e00d4d59c171f891bdffd2c36cc76c9c1315985beeeff395d4380f758df | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+bbaf1e1ccceb1115202b1cb6275da1765289b6067db9d390207db7dcea5dd1a8 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+be243169acd63e7cecd45ec8dc0200ad6133a89cf46d59b69a8df7865178ba31 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/90.0.1…
+4075999794ac01e437e7bdf4dcd97f470f072e201d1175eefc99fa8791eeb165 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+0542d2f8bd9520e11180eda8ca679ea808aa8a3ce735f79f1e2a5ba2a07ba40d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/90.0…
+2044bff8c23e93a58470cb2eb475300ca3314e890121aa1be735fefe7022f179 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+d82a96fbf5e66346333409c929211183522f6887dfefc2555995d852d47110ba | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/90.0.…
+e0ee69af018d1b09f151ffa7c7537faed49e1bf31289a5a3f4763e7bd2e2eac5 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+404bfa0ffa74f897ca8ee6f9a7e117f31e4808e6ea0c1766d15e3356b8847137 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/90.0.1…
+5abdb97bb2a93439b0704d314370368f54e7dbfaddf9a14b5f0e1090854e458a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+06f89b0217f5099567500aeaa5282cf9f9059219be4b7b164e33c34795caf306 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/90.0.1…
+359f13600bb42484e902555e30c994785472558fbfa7dd84d859f3571ec063ad | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+a654ce445760858798a23daabf681e0643a2bff29e4cc3c9fadda55a0eb4fb6c | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/90.…
+2c39cd24ed197364fe1e38281e7fcc475b6c615a7c0dbac34ad81a9fdb970442 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+19fb3a1bd6aa09ec367113e794e5559c3de4757949f547754e7a3c8186381b18 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/90.0.1…
+9c3426ce46aa61d2846acf897325470ba9bf1ca537d996b6d9e6a76302657fee | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+2c9fdd36d4a03e4d0320f4cdc83bc760a2f818a1513343032cd530a29a2f8fd1 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/90…
+4ece2775025583db3ec2cf762661ce55f24a29ad3bb76d35eb072d94f72269c4 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+40414cd542a96c96833cb32e0c780ea640fb928627f1ddf1423d4f0c4640b456 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/90.…
+7875289df8f717007beb5589882f42ae9a99e227669a5db7c05687696007cf4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+c98d338dd373e547bda508105013a2f7a21bb3b4326020aaaa579725e1cccde4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+979409be707c08ce03ed7afec3817ef8bf47e8343d647d30ea655aa6e7f69f85 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+a838ac2655f0c03bf2dc5a22ad9a20a7667a7bc78d4325846921556adef6413b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/90…
+c57a84e582a7a800bb39d20869dd91d2636d8757842b53895c1f3fa60a2798ca | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+6eb6cd1eb89a450e1d0fe48a8dc823aad8ebb74f77d0c0a87cfe37085734405c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/90.0…
+9e8d40073c8421120449f5a5005603c0de8b77a4cd86a6d2745bfab9ffaea072 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+6a4002ab585aef5540b15746f77e8884ed3dbfb449f784e00173aaa6b3ba3bf9 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/9…
+7f6b71405eed034fa60de5058da62e0e7a1e3a4eebf1b789397974683483f8f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+408f79f7799d50f8a45ce73114a991ddb63968e77414fba371bf0504284933d7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-autofill/90…
+07b8aee8271d98e9031820700ffd31f2dc77ef618b4203ecb80aab59df8b78bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+292fd673966119aea9757721f3b19a2cdfa40ae4d740944807da274d30081fd3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+245cd071717df71f33fb5dfc538c59905da7286df53bb856d6f873c668119cd4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+3e386ef47a3f4b6e8cdf2bfbadd35615d46bfb9ef343ad61e009a982952a128c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+392a5cad276918d54ef204ef60504d71814a52aa97445bd7034f83162bdf5ba8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+ed0e9c88d18c325aabf1323a0a1ce77b90e4247998e314151bc70798df807aa5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+27877e30862a10351551faa9adf472ae5e5b7ec2e8b01009042cf24f5c7d5a58 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+37248d487d7666abd645c025c23d6426d88cd6dae34b2a2b2c8830f990b847cf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/9…
+285b638ad4560089d5b2b782ab5a3a846133546559100e13aaba34c6c56389f8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+161d679ac74d29c3030d0898aab5029896f3e5833ea024a9d848be0bd994589f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+cca96f3583c8d352f2d2bec10be3bc739b45e416016a9626cbd861c7d0bca0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+9915be7b0231ca0c56a706b5a616726978c3205c508a08a477ec12d91a16829c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/90.0…
+81e599377b2829996b92fe3dfd0e9efd001dd3382bbb41196d18565b59f303a0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+b6bb497263ae3dc874a69bfd0d1cc25db82d6871056528f89b67b0db2fe7e044 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/90.0…
+f6023e7c5105e68f75e3888736a1a1d803e981ec086d431e60191c76ace530f7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+c752612ef9276dbd39e9312280694d7fa337aad3294e3e048f483d033e1846cb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/90.0.…
+e109915501d66e0c029c9824865488c5a50c5adb3cd61161b21cc559139dba1c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+26d2ecc4faef48fc9f7f1eb4dfe696680c487e78fd659e3ceaaab799b99ff7cd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+741e57f32b40cc25de1c020ed078a30313f6cfb7f8b094cc8dc6446a9e5d19ab | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+b8bd7583dd4143d23a361c3a85f41447bea996776cbfaf6710426c2eff94a3ee | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/90.…
+0263280ee86a8be16b764649b9d5b942eb2d0d688145c69a23affadf39b1216c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+19f8bedcec03bc4a88d95cdd45fdf492a9935c3e578c9d9d076821d2cd74be41 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/90.0.1…
+629613c3ef5fe47531fa977c00308fcf8891101743eeb9e9bed37e5ec8306101 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
+8e0cd9972f3b6a2c3deadd06b4a5197005872466009b7ff88a412338a0edffe5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/90.0.12…
+48f216bb3fd8dc2bd06aaefecdab3f6b53700fcd6d47e50f1505217f1639e441 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
+947f3f12b2ae08c93c8a62110a56e55ed7a10373827ded277f8c80193399f460 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/90.0.12/…
+c79731b9c166c48d6301ad7d976e69617219af5ff82a345bdfb02edd1be47adb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+4eca341ba4c78e981c8178bee0e3dbc9ebacfc75e813ca03d62ee8ec0447344e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+52f0bb0d3438c0926cd5afb4087936dded7586224b99f1feb216ec854c00f50e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+f9a6c96e4eff5b260c92f621253e37d1eeb5527f3b9ce6b01f1236dc7cc4efc2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+954150e223aca8c5ffce5a2372cf47bd71dd43381ebd9029bc7333bbdf7ee9f4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+129ef699aa65684a724f5689f7f1bb4cc39c2d7f1d28ba53915cc064bbbebd8e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/90.0…
+7c8f8936161e570ae82d105f56cc49f36b3b3a3594c0caf8478b969e47f37c4a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+ec1098996b8bfca986b0c7e572c84bd64b081d0f53717b7806c6ba1ca6bac29b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/90.…
+c205072f70ba8e93588aac27126e780d054ea841e0cbba33918090d95748bd31 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+697aa9ef2180c895515ea3e420fd586383491f70364a180201476570709dba40 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/90.0.…
+ba18da4070f9d6e1e8bba6aaeb57c9b74f4dcd7eb04b024fe0220f9ecdef70c7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+5413a31f873fdf0ac3485b1a8b3af244a46af5bb364db2d2a49b4dcd421e6199 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+d4b56392f428571afc4116fb11ed317303f51015848b744187c8a0b77a3ea968 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+68c438bc59668e845a045592e3bbbbec74276e1c5f3b985fb2cf7b0c2f8573e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+1db6a0831f8caf00f47ffc919ac2beb46da6fbba13e39e9fb87f1ee0c2c902e8 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9d4e7876af9a45b4f8f24aaa86e29789390e50eafa66172277439a1ae899c508 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+9ae189015e453b95d3fbf5472621db87e0ff8d4873eafc5a751a63bcda236cf1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+d1f2a8794cd20aa870938958fc7e8347001572d4609e9e89b44025304ff1eec1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/90.0.1…
+09978e4ab04bbdf186b0747c4e14ce64df7540173c14319308bb57f003b81481 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+fb8310d14852587bc9ff48b889ace8a1aa47362ef79ce526f83d4b8a9ad9c48e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/90.…
+07bf24b4865483c89a0ba2d3287c6cca076cb87943bd4047bf40f0f97250d0d5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+e73e09b714950c74af264accff9297fde1323c95d8f5ef939a455cf598034839 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/9…
+9aa7a7d601892e8b928de5f87e6d813d54f5ac15059052db8b6b2082efd888d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+250047470b69f8d07858b6aa24c6f62abc0e3dfda2833191b798e2cf52d0ec75 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webauthn/90…
+0311f925d255b4fdf83f4442321db3d3c8b78c1429208baede114975765a0def | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+ee29403ebcc08fc275fa6261be8cbbf4fea1da4f34b2cc34d74cfd2bbcd873c2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+0f32439cf379b8022e866de5c3e4c1158f1da69bc26b4336b9ccb474ed518221 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+3353497ac0d579991be25321f7a25705982331f0c62de1f1957f2e7e47c465d3 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/9…
+ed2f349413a172894bb243a508f0efa5e67f15b2c754e29ccdc2faba6afa6881 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+12bdcf092142cce7894508c1b33f21983e9d686c2aefc9831bf9ecf74c9184eb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+addb38dee2f29d8c9be92b989ad4ce7ff3f019495ceca382257fc735e73b4d45 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
+9c476961192907c7ff168df8c70a81ab9dde61355d60d96d95994f80606dcd5b | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/90.0.12/l…
+ea0870b0930f2fa33b49cb6bd03a2fb0bfb83c5389c6792bc6a1d15915d22d9d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+b05fbe0aebdd7962ef0f6a4ac0ca39966626df98ac8dd34670f925f47e63494d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/90.…
+068d9d3b1e4565c444871d920b5033bd957408a7c5b3ec7db8e051ccd714d46f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+e81999354ed65f0d2b7069c903e1a26c7ee5b5f4638526a994267ed1f2d8ff56 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+55d53cf3950b767813c555d42020f8f2240bcd85e2f0e9adb2bf0ca4325ee4aa | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+6480b3e75fbf7e25eb6149ae56b734b35114a76fb67b93bbd13edb1e87b72dd0 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/9…
+694997af9d512ecf4e4afb1c27a24a40332a1a968490dac3e65d54b21e3de077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
+c55c965bc433fa58b712ca044b84d060d862f4c56611ea992cd28f6ede0f0808 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/90.0.12/l…
+a475a2b2bd4719c1c053541975464932f508c366268de2cf0eb2007711139c83 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+fee496f17920ef88e33c42d17063fbd53a8ce4f600382a6b73c06bd7c08a7d73 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+5263cdd863798f88c735e9fbdf7ab7b4748ed8be18312d56696f17eb04f9e508 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+2cb6b4249d962d955cf6b513fc5144a9bdfc57ec9c808905329a12d1a3f11ebf | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+27f65de8120b6c2cd13947f2114565317c4683f6ce022a8ef60855ca7c89690e | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+8ca3f8676d7c7cc04a34395a317ef9d0b6858ea522cc853cf96fe93c0be17ea7 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/90.0.…
+e78d5d7ee7cf2ab96aeb6c2bf0aa7d680e535b4ba7f1baa6b921235a5ed5ec8a | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+e51865d21bdf496b0e3283cde78b6ba9f64383c2ba23280e18422d6bee1f38c5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/90…
+3532d05ccc874507ab2a1a667ce1e8b7fd38e615ca78014c5601ed7bf63d379a | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+633f6ef4d8f1e91c34e6c529b00dd6fbfe70624cf8b4d77e003baf12b3e3a3c3 | https://maven.mozilla.org/maven2/org/mozilla/components/service-nimbus/90.0…
+e09368d2c171f25286f796ea3b5415df1dfd5db2744e879433fb1ecf0b7dcdd9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+b1acadb2a1e9faba878b28a9365bf53fa8e403a518b1982209adcdb92dc6b0fc | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-autofi…
+98d134df12d9d6226462a336794ca225def776f8afcafad8ea76a3f7a25b4cdf | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+ada4da3a96ba4069a6c05bc5e29527eb338df86a7a77fe50b40a7e6aa1a8574a | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+382053c52fa6be16c0eb61ed1e9feacab9abba7c72bf36ed6ecbfa1c0bb6bec4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+20e1ccdf36a87c0218265bdc64fabb8f528332ccc33dcac6779252b6713ad3be | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/90.0.1…
+ceb7b1ef70b30d4828300a0a59342bf7d8dc9526fd0d9bcebc69977b38116dac | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+d11f4f3c4fc610df4eacad8e0ebba123fbc5e323299c01f7dbfcddd714495fa1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/90.0…
+312bea3da7fd943ca38b5174a1a07af876f13342b25b88bf27e8bb915eb553b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
+830a56102f0556d05f8b2206b2d82c3ab3f310050ad03dd30c285ad8b87ff5a1 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/90.0.12…
+c6cd2750561aee198c3e9e8907c187e4595d8fe861d380ee608e257948e6c144 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+977a2c883c76d30ff93204dc55511e65f1190800a70a1e4003140d563810e8ab | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/90.0…
+b36ea1ff20d9420b4b280ef28b1756fd7272148eb84c63c3bf972e7cf1dbdaea | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+3108ec05881d3345b6fb84420051fd5292efe8ac5d582d902244cb0fbf379d4e | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/9…
+c9a04732c9a7e37f61284b5e5a917a33db63ad97fc8fc01a2d85abbf65a88a95 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+020c4e26649a494b93675df2596ff68a9a884287093e1ac83c7045a6d65806b9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/90…
+fb718c510fe5403549fe98f698d1fc6aefc652934d0e691a03e3b76d5c9e9711 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+c98f9feffd8e2578fe315c42b3f0f50891298b87674c5d421a8c85965e7406f9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/90.…
+7e073c88ab67b4bc55e91056b3881760c4e17ee30202e40fa57fd4e77910078e | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+7714939de52aee7136194b5ac6dd5edeef16841b5b61ed67619125db22f3dc69 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+51061a509a56cab420c66ba44f927b3fdc3aac3d1d6f50e91fd607139e407a56 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+d23b6972ce76fe5b373458dfa4a9e7d0024986526acbf7341ff19fc847bc435b | https://maven.mozilla.org/maven2/org/mozilla/components/support-test-libsta…
+027b737998baf285d61a31c1a8e1b0bec207c54f3fdbeb29324d0a7b6bc70d19 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+ba5bb89df94ef9c4d5f79a090db42364a8d71d592c5361e92b40d950098deb38 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/90.0.1…
+756d0c5a4129b231640cfaf7ae4027afffd6bfa88dad95b42f4f86e68d3a4ce7 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+d2a058c1bfa6804b0a8557b54afe0143ff0529be7a02e1e9dfb9ce269c50ea7a | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/90.0.…
+f4f01e6b4cd68252b60c17c1dfe33a97ddc8af2e30ac236f739b3453dc2561c5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+1b53d85a5a50ac6bd674539f08cea9e25d9baca42680661707e73ef066b10862 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+8ed9188bbc59eb75457deac094ab42cb058d37b54c8727d7ab924dae1807a0e6 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+4315b1f2932d0ad520d3eba0235132c0054b11ec24190cbe686e7a1a6af8cb6f | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+c39f637135297c39a4ea6dcd36e9e12654ec1cdc4566df78af40307da12d67aa | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+d3b58696b898860270d35199c5e83187874fc0465091bae3aa4ea9738a35fb9b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/90.…
+1bfa42c11b74627e77914af4d3344db3f8fe307790f8c1b1c1164bdca83b7e20 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
+46e947d01b9b3fbca9214cdea162a607e0e966a2dc655ceddfe964b69f80dadf | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/90.0.12/u…
+28465b517872cb0d28c841abd69abc1276e09dbf9225f508889b6856e9b1e9b8 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
+b3e62dea5413d440ddceb9ff64f4dffa2d6110271cf00c5713d1ca031a8353e5 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/90.0.12/ui…
+e87f83dae66dd426531b612b2658b5748326b9e46f55b7f3d492422e5c02c941 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+4428344060392a6601c2e136c6f4be18eefba17b0c22e104bd22631de1e2837f | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/90.0.…
+b853d7eb1710c7b042ec4ae17aeb76dcb812fd7a0d7db1b14dda12c328e6186a | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
+ed166ade7d06412f7b88d3dc0612d7f43598240a87eed331e407e84503e0a9ee | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/90.0.12/…
+6918bb8864d4e066412edaf0f4771fdd4309a4197436d59735e6956efed4c766 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
+c5de862f7feca6dc70dad5120ba780e85ff53203939338845d53dffac157f2f0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/90.0.20210…
8f8856f00b005a719e75759a2cdcf6cd8ef30b9a65ade3086f713644e7acabbf | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
7016d5e5b17bf8c778d15e77dc0e543e2fff2d97675053b03e01219ebf6c70b7 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
c1316aeabddcde013f52f0a49fc147becfe10621fefb6afe09fd814886c7ecf5 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/firefox/config b/projects/firefox/config
index 78fb570..1b98216 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -1,14 +1,14 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
filename: 'firefox-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build2'
+git_hash: 'tor-browser-[% c("var/firefox_version") %]-[% c("var/torbrowser_branch") %]-1-build1'
tag_gpg_id: 1
git_url: https://git.torproject.org/tor-browser.git
git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- firefox_platform_version: 78.11.0
+ firefox_platform_version: 78.12.0
firefox_version: '[% c("var/firefox_platform_version") %]esr'
torbrowser_branch: 11.0
branding_directory: 'browser/branding/alpha'
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 750ad84..c3de9fa 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 90.0b12
+ geckoview_version: 90.0
torbrowser_branch: 11.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
index 022aa23..211376d 100644
--- a/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
+++ b/projects/go/0001-Use-fixed-go-build-tmp-directory.patch
@@ -11,7 +11,7 @@ diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/actio
index 33b7818fb2..5e369d0f53 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
-@@ -249,9 +249,13 @@ func (b *Builder) Init() {
+@@ -252,9 +252,13 @@ func (b *Builder) Init() {
if cfg.BuildN {
b.WorkDir = "$WORK"
} else {
diff --git a/projects/https-everywhere/config b/projects/https-everywhere/config
index c5b31f7..50cd1b1 100644
--- a/projects/https-everywhere/config
+++ b/projects/https-everywhere/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 2021.4.15
+version: 2021.7.13
git_url: https://git.torproject.org/https-everywhere.git
git_hash: '[% c("version") %]'
git_submodule: 1
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index 0d5387e..2d317cd 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,20 @@
+Tor Browser 11.0a2 -- July 17 2021
+ * All Platforms
+ * Update HTTPS Everywhere to 2021.7.13
+ * Windows + OS X + Linux
+ * Update Firefox to 78.12.0esr
+ * Bug 40497: Cannot set multiple pages as home pages in 10.5a17 [tor-browser]
+ * Bug 40506: Saved Logins not available in 10.5 [tor-browser]
+ * Bug 40507: Full update is not downloaded after applying partial update fails [tor-browser]
+ * Bug 40510: open tabs get redirected to about:torconnect on restart [tor-browser]
+ * Bug 40524: Update DuckDuckGo onion site URL in search preferences and onboarding [tor-browser]
+ * Android
+ * Update Fenix to 90.1.1
+ * Bug 40177: Hide Tor icons in settings [fenix]
+ * Build System
+ * All Platforms
+ * Update Go to 1.16.6
+
Tor Browser 11.0a1 -- July 9 2021
* Android
* Bug 40172: Find the Quit button [fenix]
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index 4556886..00a8a07 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": 626914,
+ "average_daily_users": 613905,
"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": 5239111,
+ "id": 5262581,
"compatibility": {
"firefox": {
"min": "54.0",
@@ -42,19 +42,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52391…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/52625…",
"files": [
{
- "id": 3783471,
- "created": "2021-05-28T13:29:07Z",
- "hash": "sha256:49e7ec13cfdb953dfb785a2442582788e895a5623956d0b7dff02f59db2e3159",
+ "id": 3806938,
+ "created": "2021-07-07T11:58:46Z",
+ "hash": "sha256:9ba482118d25675af31ee403c740972a106fdccfd117c4449c046b70f1a2d95d",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 541560,
+ "size": 541270,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3783471/dark_reader-4.9.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3806938/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 disability to switch on sites in Global Dark List.\n- Bug fixes.\n- Users' fixes for websites."
+ "en-US": "- Dynamic mode bug fixes and performance improvements.\n- Minor UI improvements.\n- Users' fixes for websites."
},
"reviewed": null,
- "version": "4.9.33"
+ "version": "4.9.34"
},
"default_locale": "en-US",
"description": {
@@ -164,7 +164,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-05-28T14:02:13Z",
+ "last_updated": "2021-07-07T12:32:16Z",
"name": {
"ar": "Dark Reader",
"bn": "Dark Reader",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5638,
- "bayesian_average": 4.562429320383016,
- "count": 3705,
- "text_count": 1201
+ "average": 4.5605,
+ "bayesian_average": 4.559135722557494,
+ "count": 3738,
+ "text_count": 1212
},
"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": 23027
+ "weekly_downloads": 21397
},
"notes": null
},
@@ -353,7 +353,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 701105,
+ "average_daily_users": 675428,
"categories": {
"android": [
"security-privacy"
@@ -365,30 +365,30 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2010-09-16T15:09:10Z",
"current_version": {
- "id": 5216160,
+ "id": 5265391,
"compatibility": {
"firefox": {
- "min": "42.0",
+ "min": "52.0",
"max": "*"
},
"android": {
- "min": "48.0",
+ "min": "52.0",
"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": 3760520,
- "created": "2021-04-15T09:00:17Z",
- "hash": "sha256:8f6342077515669f73ae377346da4447428544559c870678488fa5b6b63d2500",
+ "id": 3809748,
+ "created": "2021-07-13T22:01:19Z",
+ "hash": "sha256:e261461b5d4d3621285fce70773558184d691c614b330744dab672f032db731c",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 1752551,
+ "size": 1752121,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3760520/https_everywhere-…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-…",
"permissions": [
"webNavigation",
"webRequest",
@@ -409,13 +409,13 @@
"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.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"
+ "en-US": "2021.7.13\n* Amend Incognito Key for Chrome and Firefox #20092\n* Fix unexpected arithmetic operations on strings #20043\n* Remove Top Alexa Labeller #20083\n* Update deprecated log function #20101\n* Patch Chrome Test Failure #20102"
},
"reviewed": null,
- "version": "2021.4.15"
+ "version": "2021.7.13"
},
"default_locale": "en-US",
"description": {
@@ -451,7 +451,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-04-15T09:13:13Z",
+ "last_updated": "2021-07-14T06:03:40Z",
"name": {
"de": "HTTPS Everywhere",
"en-US": "HTTPS Everywhere",
@@ -486,10 +486,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6639,
- "bayesian_average": 4.661394338186861,
- "count": 2077,
- "text_count": 409
+ "average": 4.6649,
+ "bayesian_average": 4.662391975486979,
+ "count": 2086,
+ "text_count": 411
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -523,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": 13589
+ "weekly_downloads": 12733
},
"notes": null
},
@@ -539,7 +539,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 199619,
+ "average_daily_users": 193998,
"categories": {
"android": [
"security-privacy"
@@ -752,10 +752,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.8009,
- "bayesian_average": 4.796141725881215,
- "count": 1130,
- "text_count": 217
+ "average": 4.7991,
+ "bayesian_average": 4.794355030935285,
+ "count": 1140,
+ "text_count": 220
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -851,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": 4431
+ "weekly_downloads": 4186
},
"notes": null
},
@@ -867,7 +867,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 937932,
+ "average_daily_users": 901688,
"categories": {
"android": [
"security-privacy"
@@ -1411,10 +1411,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7902,
- "bayesian_average": 4.787290030686736,
- "count": 1845,
- "text_count": 370
+ "average": 4.7875,
+ "bayesian_average": 4.784597137496271,
+ "count": 1859,
+ "text_count": 371
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1434,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": 16454
+ "weekly_downloads": 15183
},
"notes": null
},
@@ -1450,7 +1450,7 @@
"picture_url": null
}
],
- "average_daily_users": 4807454,
+ "average_daily_users": 4640025,
"categories": {
"android": [
"security-privacy"
@@ -1462,7 +1462,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5254372,
+ "id": 5262085,
"compatibility": {
"firefox": {
"min": "57.0",
@@ -1473,19 +1473,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/52…",
"files": [
{
- "id": 3798731,
- "created": "2021-06-19T15:31:09Z",
- "hash": "sha256:384f3e5241f87e90c376fb6964842ce204743feed554b8b7dabe09f119ea7d66",
+ "id": 3806442,
+ "created": "2021-07-06T14:33:48Z",
+ "hash": "sha256:31f8c2126a3f4e3cfe3ef63550b842a5d4f071ec1c6e5aa377c2f29b11ff1415",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2820672,
+ "size": 2823571,
"status": "public",
- "url": "https://addons.mozilla.org/firefox/downloads/file/3798731/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/firefox/downloads/file/3806442/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1541,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/9f806d450f0bb51f8c3a680f27169e335ad8c02…" 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/00a8778da7c67adfa5cc3bbdc4af6f843f3596f…" rel=\"nofollow\">Bizarre perf drain when ajaxing in 90,000 DOM nodes in a react component</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/976d8b716147c39299242ece7c89c9fe63ce812…" rel=\"nofollow\">Google Tag Manager eventCallback in a populated dataLayer not called</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e336839918e89ae2b22dce75f2eee4024a6a1b1…" rel=\
"nofollow\">Countering a removeparam filter causes page-redirect problem</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/43e1c2ed2a0c66cac32ae5e137ae885e034369f…" rel=\"nofollow\">Asset viewer shows no space between !#endif and a comment line in uBlock's list</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/55294c2ace343eeb9f6ed323b6464dfd84b4173…" rel=\"nofollow\">Text in Manage Extension Shortcuts includes escaped <code>&shy;</code></a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/73eb512082e3d16e39b466a3099eda65c7e9a20…" rel=\"nofollow\">In popup, the Reload button becomes immediately hidden if re-enabling the large power button too quickly</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/a2d4db0757726512fa2da34780b0a274fe4688c…" rel=\"nofollow\">Add ability to linger for <code>remove-class</code> scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/05a4025f4e850a5d4150433e8bf515073b7f0c0…" rel=\"nofollow\">Add empty array, object to set-constant scriptlet</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/a99edd7e6e4f330ef91b436b23b8f9401af4fc6…" rel=\"nofollow\">Fix potential exception when casting to string</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7b3ebbbc13833b075dc0ab0af114ba88c8e1d5a…
/gorhill/uBlock/commit/8cd2a1d263a96421487b39040c1d23eb01169484\" rel=\"nofollow\">Make googletagmanager<em>gtm.js an alias of google-analytics</em>analytics.js</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/e60e518a96d998c94124bb450b8c8f8632f94d3…" rel=\"nofollow\">Ensure getter/setter are called with proper context</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/6645b98ed2caac0283509afccfcadd17182f587…" rel=\"nofollow\">Allow filter list subscription through context menu</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/ec7cc511dc5622187fd057c2e3f9cd8d7579652…" rel=\"nofollow\">Keep reporting last time \"out of date\" lists were up
dated</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/4ccf11b8bcfbd1383eda2148f1d038898465774…" rel=\"nofollow\">Fix improper hashing of rules in classic popup panel</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/14f36de2dfb16d9b82b8cef8fce11fd0e504e0f…" rel=\"nofollow\">Commits history since last version</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/5434dae3f84b4b698b24adb9b42ac5798fe9e71…" 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/683064916343a0100b76a2b61b6f3a86ab3b68f…" rel=\"nofollow\">DoS with strict-blocking filter</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/8a8fc68c13e487c5d368677c3c826a0cc984d26…" rel=\"nofollow\">Commits history since last version</a>."
},
"reviewed": null,
- "version": "1.36.0"
+ "version": "1.36.2"
},
"default_locale": "en-US",
"description": {
@@ -1634,7 +1634,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2021-06-24T15:15:36Z",
+ "last_updated": "2021-07-12T22:40:36Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1779,10 +1779,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.767,
- "bayesian_average": 4.766555724017786,
- "count": 12032,
- "text_count": 3295
+ "average": 4.7675,
+ "bayesian_average": 4.767057239998241,
+ "count": 12136,
+ "text_count": 3316
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1837,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": 114937
+ "weekly_downloads": 108865
},
"notes": null
},
@@ -1853,7 +1853,7 @@
"picture_url": null
}
],
- "average_daily_users": 57089,
+ "average_daily_users": 57501,
"categories": {
"android": [
"photos-media"
@@ -1973,10 +1973,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5185,
- "bayesian_average": 4.513490692203433,
- "count": 1001,
- "text_count": 380
+ "average": 4.5204,
+ "bayesian_average": 4.515383003232922,
+ "count": 1005,
+ "text_count": 382
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -2004,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": 300
+ "weekly_downloads": 238
},
"notes": null
},
@@ -2020,7 +2020,7 @@
"picture_url": null
}
],
- "average_daily_users": 95664,
+ "average_daily_users": 92573,
"categories": {
"android": [
"experimental",
@@ -2159,10 +2159,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4818,
- "bayesian_average": 4.46681046808246,
- "count": 330,
- "text_count": 92
+ "average": 4.4743,
+ "bayesian_average": 4.459290174111107,
+ "count": 331,
+ "text_count": 93
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2188,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": 6894
+ "weekly_downloads": 1270
},
"notes": null
},
@@ -2204,7 +2204,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 170577,
+ "average_daily_users": 169807,
"categories": {
"android": [
"photos-media",
@@ -2426,10 +2426,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.657,
- "bayesian_average": 4.6514359731704635,
- "count": 933,
- "text_count": 181
+ "average": 4.6589,
+ "bayesian_average": 4.653366424227091,
+ "count": 944,
+ "text_count": 186
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2465,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": 3494
+ "weekly_downloads": 6258
},
"notes": null
},
@@ -2488,7 +2488,7 @@
"picture_url": null
}
],
- "average_daily_users": 42335,
+ "average_daily_users": 43242,
"categories": {
"android": [
"other"
@@ -2770,10 +2770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4574,
- "bayesian_average": 4.452573414888262,
- "count": 1021,
- "text_count": 278
+ "average": 4.4546,
+ "bayesian_average": 4.449765155570907,
+ "count": 1025,
+ "text_count": 281
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2793,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": 28
+ "weekly_downloads": 57
},
"notes": null
},
@@ -2809,7 +2809,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 354639,
+ "average_daily_users": 341957,
"categories": {
"android": [
"performance",
@@ -3034,10 +3034,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.3797,
- "bayesian_average": 4.37700001222646,
- "count": 1791,
- "text_count": 719
+ "average": 4.3803,
+ "bayesian_average": 4.377601092060284,
+ "count": 1801,
+ "text_count": 720
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/",
"requires_payment": false,
@@ -3094,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": 8264
+ "weekly_downloads": 8002
},
"notes": null
},
@@ -3110,7 +3110,7 @@
"picture_url": null
}
],
- "average_daily_users": 113290,
+ "average_daily_users": 109945,
"categories": {
"android": [
"performance",
@@ -3243,10 +3243,10 @@
"category": "recommended"
},
"ratings": {
- "average": 3.9036,
- "bayesian_average": 3.899325383200061,
- "count": 985,
- "text_count": 354
+ "average": 3.9077,
+ "bayesian_average": 3.903408628046669,
+ "count": 986,
+ "text_count": 355
},
"ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3285,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": 1683
+ "weekly_downloads": 1385
},
"notes": null
}
diff --git a/rbm.conf b/rbm.conf
index 6388d5c..f54655e 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -57,7 +57,7 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '11.0a1'
+ torbrowser_version: '11.0a2'
torbrowser_build: 'build1'
torbrowser_incremental_from:
- 10.5a17
1
0