tbb-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 19464 discussions
[tor-browser/tor-browser-78.6.0esr-10.5-1] fixup! Bug 23104: Add a default line height compensation
by gk@torproject.org 11 Jan '21
by gk@torproject.org 11 Jan '21
11 Jan '21
commit 4ce99eee684fb3d8b92ee51861b4bdc82bfb6599
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Apr 3 21:34:55 2020 +0200
fixup! Bug 23104: Add a default line height compensation
---
layout/generic/test/test_tor_bug23104.html | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/layout/generic/test/test_tor_bug23104.html b/layout/generic/test/test_tor_bug23104.html
index ae73a3446037..8ff1d2190c45 100644
--- a/layout/generic/test/test_tor_bug23104.html
+++ b/layout/generic/test/test_tor_bug23104.html
@@ -17,12 +17,10 @@
<span id="test1">Test1</span>
<span id="test2">كلمة</span>
<span id="test3">ação</span>
-<script type="application/javascript;version=1.7">
+<script>
-let setPref = function* (key, value) {
- return new Promise(function(resolve, reject) {
- SpecialPowers.pushPrefEnv({"set": [[key, value]]}, resolve);
- });
+let setPref = async function (key, value) {
+ await SpecialPowers.pushPrefEnv({"set": [[key, value]]});
}
function getStyle(el, styleprop) {
@@ -34,12 +32,13 @@ function validateElement(elementName, isFingerprintResistent) {
var fontSize = getStyle(elementName, 'font-size');
var lineHeight = getStyle(elementName, 'line-height');
var validationCb = isFingerprintResistent ? is : isnot;
- validationCb(parseFloat(lineHeight), parseFloat(fontSize) * 1.2, 'Line Height validation');
+ validationCb(parseFloat(lineHeight), Math.round(parseFloat(fontSize)) * 1.2, 'Line Height validation');
}
-add_task(function* () {
+add_task(async function() {
+ await setPref("layout.css.line-height.normal-as-resolved-value.enabled", false);
for (let resistFingerprintingValue of [true, false]) {
- yield setPref("privacy.resistFingerprinting", resistFingerprintingValue);
+ await setPref("privacy.resistFingerprinting", resistFingerprintingValue);
for (let elementId of ['test1', 'test2', 'test3']) {
validateElement(elementId, resistFingerprintingValue);
}
1
0
[tor-browser/tor-browser-78.6.0esr-10.5-1] fixup! Bug 12620: TorBrowser regression tests
by gk@torproject.org 11 Jan '21
by gk@torproject.org 11 Jan '21
11 Jan '21
commit cde995d8d86fd85ec457cbb97e1ebd07a8160ee6
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon Jan 11 15:25:38 2021 +0100
fixup! Bug 12620: TorBrowser regression tests
---
run-tbb-tests | 3 +++
1 file changed, 3 insertions(+)
diff --git a/run-tbb-tests b/run-tbb-tests
index 1566c37c43cb..bc09839f9f05 100755
--- a/run-tbb-tests
+++ b/run-tbb-tests
@@ -51,6 +51,9 @@ fi
rm -f tbb-tests.log
echo $'\n''Starting tests'
+# We need `security.nocertdb = false` because of #18087. That pref is
+# forced to have the same value as `browser.privatebrowsing.autostart` in
+# torbutton, so we just set `browser.privatebrowsing.autostart=false` here.
./mach mochitest --log-tbpl tbb-tests.log \
--setpref network.file.path_blacklist='' \
--setpref extensions.torbutton.use_nontor_proxy=true \
1
0
[tor-browser/tor-browser-78.6.0esr-10.5-1] fixup! Bug 10760: Integrate TorButton to TorBrowser core
by gk@torproject.org 11 Jan '21
by gk@torproject.org 11 Jan '21
11 Jan '21
commit 34a9369817eadd73a6f0725bcd707002a596bdf3
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jan 11 16:54:16 2021 +0000
fixup! Bug 10760: Integrate TorButton to TorBrowser core
---
toolkit/torproject/torbutton | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton
index 4a258f4216e0..29744944f69c 160000
--- a/toolkit/torproject/torbutton
+++ b/toolkit/torproject/torbutton
@@ -1 +1 @@
-Subproject commit 4a258f4216e0adfa65a60f89183c3441ac2e83f8
+Subproject commit 29744944f69c4d7faa509faae4b47dd27fcd3750
1
0
[torbutton/master] Remove code dealing with torbutton UI button in toolbar
by gk@torproject.org 11 Jan '21
by gk@torproject.org 11 Jan '21
11 Jan '21
commit 29744944f69c4d7faa509faae4b47dd27fcd3750
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Jun 19 16:01:31 2019 +0200
Remove code dealing with torbutton UI button in toolbar
The torbutton does not exist anymore, so removing related
code that is now unused, like the new browser version
flashing warning and others.
Closes #28745.
---
chrome/content/torbutton.js | 52 --------------------------------
chrome/locale/af/torbutton.properties | 4 ---
chrome/locale/ak/torbutton.properties | 4 ---
chrome/locale/am/torbutton.properties | 4 ---
chrome/locale/ar/torbutton.properties | 4 ---
chrome/locale/arn/torbutton.properties | 4 ---
chrome/locale/ast/torbutton.properties | 4 ---
chrome/locale/az/torbutton.properties | 4 ---
chrome/locale/be/torbutton.properties | 4 ---
chrome/locale/bg/torbutton.properties | 4 ---
chrome/locale/bms/torbutton.properties | 4 ---
chrome/locale/bn-BD/torbutton.properties | 4 ---
chrome/locale/bn-IN/torbutton.properties | 4 ---
chrome/locale/bn/torbutton.properties | 4 ---
chrome/locale/bo/torbutton.properties | 4 ---
chrome/locale/br/torbutton.properties | 4 ---
chrome/locale/bs/torbutton.properties | 4 ---
chrome/locale/ca/torbutton.properties | 4 ---
chrome/locale/cs/torbutton.properties | 4 ---
chrome/locale/csb/torbutton.properties | 4 ---
chrome/locale/cy/torbutton.properties | 4 ---
chrome/locale/da/torbutton.properties | 4 ---
chrome/locale/de/torbutton.properties | 4 ---
chrome/locale/dz/torbutton.properties | 4 ---
chrome/locale/el/torbutton.properties | 4 ---
chrome/locale/en-US/torbutton.properties | 4 ---
chrome/locale/eo/torbutton.properties | 4 ---
chrome/locale/es-AR/torbutton.properties | 4 ---
chrome/locale/es-ES/torbutton.properties | 4 ---
chrome/locale/et/torbutton.properties | 4 ---
chrome/locale/eu/torbutton.properties | 4 ---
chrome/locale/fa/torbutton.properties | 4 ---
chrome/locale/fi/torbutton.properties | 4 ---
chrome/locale/fil/torbutton.properties | 4 ---
chrome/locale/fo/torbutton.properties | 4 ---
chrome/locale/fr/torbutton.properties | 4 ---
chrome/locale/fur/torbutton.properties | 4 ---
chrome/locale/fy/torbutton.properties | 4 ---
chrome/locale/ga-IE/torbutton.properties | 4 ---
chrome/locale/gl/torbutton.properties | 4 ---
chrome/locale/gu/torbutton.properties | 4 ---
chrome/locale/gun/torbutton.properties | 4 ---
chrome/locale/ha/torbutton.properties | 4 ---
chrome/locale/he/torbutton.properties | 4 ---
chrome/locale/hi/torbutton.properties | 4 ---
chrome/locale/hr/torbutton.properties | 4 ---
chrome/locale/ht/torbutton.properties | 4 ---
chrome/locale/hu/torbutton.properties | 4 ---
chrome/locale/hy/torbutton.properties | 4 ---
chrome/locale/id/torbutton.properties | 4 ---
chrome/locale/is/torbutton.properties | 4 ---
chrome/locale/it/torbutton.properties | 4 ---
chrome/locale/ja/torbutton.properties | 4 ---
chrome/locale/jv/torbutton.properties | 4 ---
chrome/locale/ka/torbutton.properties | 4 ---
chrome/locale/km/torbutton.properties | 4 ---
chrome/locale/kn/torbutton.properties | 4 ---
chrome/locale/ko/torbutton.properties | 4 ---
chrome/locale/ku/torbutton.properties | 4 ---
chrome/locale/kw/torbutton.properties | 4 ---
chrome/locale/ky/torbutton.properties | 4 ---
chrome/locale/lb/torbutton.properties | 4 ---
chrome/locale/lg/torbutton.properties | 4 ---
chrome/locale/ln/torbutton.properties | 4 ---
chrome/locale/lo/torbutton.properties | 4 ---
chrome/locale/lt/torbutton.properties | 4 ---
chrome/locale/lv/torbutton.properties | 4 ---
chrome/locale/mg/torbutton.properties | 4 ---
chrome/locale/mi/torbutton.properties | 4 ---
chrome/locale/mk/torbutton.properties | 4 ---
chrome/locale/ml/torbutton.properties | 4 ---
chrome/locale/mn/torbutton.properties | 4 ---
chrome/locale/mr/torbutton.properties | 4 ---
chrome/locale/ms/torbutton.properties | 4 ---
chrome/locale/mt/torbutton.properties | 4 ---
chrome/locale/my/torbutton.properties | 4 ---
chrome/locale/nah/torbutton.properties | 4 ---
chrome/locale/nap/torbutton.properties | 4 ---
chrome/locale/nb-NO/torbutton.properties | 4 ---
chrome/locale/ne/torbutton.properties | 4 ---
chrome/locale/nl/torbutton.properties | 4 ---
chrome/locale/nn/torbutton.properties | 4 ---
chrome/locale/nso/torbutton.properties | 4 ---
chrome/locale/oc/torbutton.properties | 4 ---
chrome/locale/or/torbutton.properties | 4 ---
chrome/locale/pa/torbutton.properties | 4 ---
chrome/locale/pap/torbutton.properties | 4 ---
chrome/locale/pl/torbutton.properties | 4 ---
chrome/locale/pms/torbutton.properties | 4 ---
chrome/locale/ps/torbutton.properties | 4 ---
chrome/locale/pt-BR/torbutton.properties | 4 ---
chrome/locale/pt/torbutton.properties | 4 ---
chrome/locale/ro/torbutton.properties | 4 ---
chrome/locale/ru/torbutton.properties | 4 ---
chrome/locale/sco/torbutton.properties | 4 ---
chrome/locale/sk/torbutton.properties | 4 ---
chrome/locale/sl/torbutton.properties | 4 ---
chrome/locale/so/torbutton.properties | 4 ---
chrome/locale/son/torbutton.properties | 4 ---
chrome/locale/sq/torbutton.properties | 4 ---
chrome/locale/sr/torbutton.properties | 4 ---
chrome/locale/st/torbutton.properties | 4 ---
chrome/locale/su/torbutton.properties | 4 ---
chrome/locale/sv-SE/torbutton.properties | 4 ---
chrome/locale/sw/torbutton.properties | 4 ---
chrome/locale/ta/torbutton.properties | 4 ---
chrome/locale/te/torbutton.properties | 4 ---
chrome/locale/tg/torbutton.properties | 4 ---
chrome/locale/th/torbutton.properties | 4 ---
chrome/locale/ti/torbutton.properties | 4 ---
chrome/locale/tk/torbutton.properties | 4 ---
chrome/locale/tr/torbutton.properties | 4 ---
chrome/locale/uk/torbutton.properties | 4 ---
chrome/locale/ur/torbutton.properties | 4 ---
chrome/locale/ve/torbutton.properties | 4 ---
chrome/locale/vi/torbutton.properties | 4 ---
chrome/locale/wa/torbutton.properties | 4 ---
chrome/locale/wo/torbutton.properties | 4 ---
chrome/locale/zh-CN/torbutton.properties | 4 ---
chrome/locale/zh-HK/torbutton.properties | 4 ---
chrome/locale/zh-TW/torbutton.properties | 4 ---
chrome/locale/zu/torbutton.properties | 4 ---
chrome/skin/torbutton-update-needed.svg | 9 ------
chrome/skin/torbutton.css | 47 -----------------------------
124 files changed, 592 deletions(-)
diff --git a/chrome/content/torbutton.js b/chrome/content/torbutton.js
index db597c84..39c1abeb 100644
--- a/chrome/content/torbutton.js
+++ b/chrome/content/torbutton.js
@@ -161,9 +161,6 @@ var torbutton_tor_check_observer = {
observe: function(subject, topic, data)
{
if (topic == k_tb_tor_check_failed_topic) {
- // Update toolbar icon and tooltip.
- torbutton_update_toolbutton();
-
// Update all open about:tor pages.
torbutton_abouttor_message_handler.updateAllOpenPages();
@@ -187,16 +184,6 @@ var torbutton_tor_check_observer = {
},
};
-function torbutton_init_toolbutton()
-{
- try {
- torbutton_log(3, "Initializing the Torbutton button.");
- torbutton_update_toolbutton();
- } catch(e) {
- torbutton_log(4, "Error Initializing Torbutton button: "+e);
- }
-}
-
function torbutton_is_mobile() {
return Services.appinfo.OS === "Android";
}
@@ -288,14 +275,9 @@ torbutton_init = function() {
setupPreferencesForMobile();
- // listen for our toolbar button being added so we can initialize it
- torbutton_init_toolbutton();
-
torbutton_log(1, "registering Tor check observer");
torbutton_tor_check_observer.register();
- torbutton_update_toolbutton();
-
try {
createTorCircuitDisplay("extensions.torbutton.display_circuit");
} catch(e) {
@@ -427,39 +409,6 @@ function torbutton_confirm_plugins() {
}
}
-// Bug 1506 P2: It might be nice to let people move the button around, I guess?
-function torbutton_get_toolbutton() {
- var o_toolbutton = false;
-
- torbutton_log(1, 'get_toolbutton(): looking for button element');
- if (document.getElementById("torbutton-button")) {
- o_toolbutton = document.getElementById("torbutton-button");
- } else if (document.getElementById("torbutton-button-tb")) {
- o_toolbutton = document.getElementById("torbutton-button-tb");
- } else if (document.getElementById("torbutton-button-tb-msg")) {
- o_toolbutton = document.getElementById("torbutton-button-tb-msg");
- } else {
- torbutton_log(3, 'get_toolbutton(): did not find torbutton-button');
- }
-
- return o_toolbutton;
-}
-
-function torbutton_update_toolbutton()
-{
- let o_toolbutton = torbutton_get_toolbutton();
- if (!o_toolbutton) return;
-
- let isOK = torbutton_tor_check_ok();
- let tbstatus = isOK ? "on" : "off";
- o_toolbutton.setAttribute("tbstatus", tbstatus);
-
- let tooltipKey = isOK ? "torbutton.panel.label.enabled"
- : "torbutton.panel.label.disabled";
- o_toolbutton.setAttribute("tooltiptext",
- torbutton_get_property_string(tooltipKey));
-}
-
// Bug 1506 P4: Control port interaction. Needed for New Identity.
function torbutton_socket_readline(input) {
var str = "";
@@ -1005,7 +954,6 @@ function torbutton_do_tor_check()
else {
// The check failed. Update toolbar icon and tooltip.
checkSvc.statusOfTorCheck = checkSvc.kCheckFailed;
- torbutton_update_toolbutton();
}
}
else {
diff --git a/chrome/locale/af/torbutton.properties b/chrome/locale/af/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/af/torbutton.properties
+++ b/chrome/locale/af/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ak/torbutton.properties b/chrome/locale/ak/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ak/torbutton.properties
+++ b/chrome/locale/ak/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/am/torbutton.properties b/chrome/locale/am/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/am/torbutton.properties
+++ b/chrome/locale/am/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ar/torbutton.properties b/chrome/locale/ar/torbutton.properties
index 34593ee3..2e4927ea 100644
--- a/chrome/locale/ar/torbutton.properties
+++ b/chrome/locale/ar/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = تعرّف على المزيد
torbutton.circuit_display.click_to_copy = انقر للنسخ
torbutton.circuit_display.copied = تم النسخ!
torbutton.content_sizer.margin_tooltip = يضيف متصفح تور هذا الهامش لجعل عرض وارتفاع نافذتك غير مميزين، لتقليل إمكانية اقتفاء أثرك عبر الإنترنت.
-torbutton.panel.tooltip.disabled = انقر لتفعيل تور
-torbutton.panel.tooltip.enabled = انقر لتعطيل تور
-torbutton.panel.label.disabled = تور معطّل
-torbutton.panel.label.enabled = تور مفعّل
extensions.torbutton(a)torproject.org.description = زر تور يوفر زر لتعديل إعدادات تور وايضاً لمسح بيانات التصفح الخاصة بك بسرعة وبسهولة.
torbutton.popup.external.title = هل تريد تنزيل ملف خارجي؟
torbutton.popup.external.app = لا يمكن لمتصفّح تور عرض هذه الملف، يجب عليك أن تفتحه باستعمال تطبيق آخر.\n\n
diff --git a/chrome/locale/arn/torbutton.properties b/chrome/locale/arn/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/arn/torbutton.properties
+++ b/chrome/locale/arn/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ast/torbutton.properties b/chrome/locale/ast/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ast/torbutton.properties
+++ b/chrome/locale/ast/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/az/torbutton.properties b/chrome/locale/az/torbutton.properties
index 7cb3271b..8c9ed457 100644
--- a/chrome/locale/az/torbutton.properties
+++ b/chrome/locale/az/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Toru yandırmaq üçün kliklə
-torbutton.panel.tooltip.enabled = Toru söndürmək üçün kliklə
-torbutton.panel.label.disabled = Tor sönülüdür
-torbutton.panel.label.enabled = Tor yanılıdır
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Xarici məzmun yüklənsin?
torbutton.popup.external.app = İdarə etmək üçün xarici tətbiqə ehtiyac duyulur:\n\n
diff --git a/chrome/locale/be/torbutton.properties b/chrome/locale/be/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/be/torbutton.properties
+++ b/chrome/locale/be/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bg/torbutton.properties b/chrome/locale/bg/torbutton.properties
index 6fab40eb..c9012436 100644
--- a/chrome/locale/bg/torbutton.properties
+++ b/chrome/locale/bg/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bms/torbutton.properties b/chrome/locale/bms/torbutton.properties
index 14517d0a..c07a38fe 100644
--- a/chrome/locale/bms/torbutton.properties
+++ b/chrome/locale/bms/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Tor အသံုးျပဳခြင့္ ျပဳႏုိင္ရန္ ကလစ္လုပ္ပါ
-torbutton.panel.tooltip.enabled = Tor အသံုးျပဳခြင့္ ပိတ္ပင္ရန္ ကလစ္လုပ္ပါ
-torbutton.panel.label.disabled = Tor အသံုးမျပဳႏုိင္ပါ
-torbutton.panel.label.enabled = Tor အသံုးျပဳႏုိင္ပါသည္။
extensions.{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}.description = Tor proxy ကုိ Firefox တြင္ အလြယ္တကူ အသံုးျပဳခြင့္ ျပဳရန္/ မျပဳရန္ Torbutton မွ ခလုပ္တစ္ခုကုိ ထည့္သြင္းထားပါသည္
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bn-BD/torbutton.properties b/chrome/locale/bn-BD/torbutton.properties
index e3e0e1cf..78b6e903 100644
--- a/chrome/locale/bn-BD/torbutton.properties
+++ b/chrome/locale/bn-BD/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = আরও জানুন
torbutton.circuit_display.click_to_copy = অনুলিপি করতে ক্লিক করো
torbutton.circuit_display.copied = অনুলিপিত!
torbutton.content_sizer.margin_tooltip = টর ব্রাউজার আপনার উইন্ডো প্রস্থ এবং উচ্চতা নিখুঁত করতে এই মার্জিন যোগ করে, এবং এইভাবে মানুষ আপনাকে অনলাইন ট্র্যাক করার ক্ষমতা হ্রাস করে।
-torbutton.panel.tooltip.disabled = টর সক্রিয় করতে ক্লিক করুন
-torbutton.panel.tooltip.enabled = টর অক্ষম করতে ক্লিক করুন
-torbutton.panel.label.disabled = টর অক্ষম
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton টর সেটিংস কনফিগার করার জন্য একটি বোতাম সরবরাহ করে এবং ব্যক্তিগত ব্রাউজিং ডেটা দ্রুত এবং সহজে পরিষ্কার করে।
torbutton.popup.external.title = একটি বাহ্যিক ফাইল টাইপ ডাউনলোড করবেন?
torbutton.popup.external.app = টর ব্রাউজার এই ফাইলটি প্রদর্শন করতে পারে না। আপনি এটি অন্য অ্যাপ্লিকেশন দিয়ে খুলতে হবে।\n
diff --git a/chrome/locale/bn-IN/torbutton.properties b/chrome/locale/bn-IN/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/bn-IN/torbutton.properties
+++ b/chrome/locale/bn-IN/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bn/torbutton.properties b/chrome/locale/bn/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/bn/torbutton.properties
+++ b/chrome/locale/bn/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bo/torbutton.properties b/chrome/locale/bo/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/bo/torbutton.properties
+++ b/chrome/locale/bo/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/br/torbutton.properties b/chrome/locale/br/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/br/torbutton.properties
+++ b/chrome/locale/br/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/bs/torbutton.properties b/chrome/locale/bs/torbutton.properties
index 21d05ed0..c067300d 100644
--- a/chrome/locale/bs/torbutton.properties
+++ b/chrome/locale/bs/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ca/torbutton.properties b/chrome/locale/ca/torbutton.properties
index 8698caba..d2b65db4 100644
--- a/chrome/locale/ca/torbutton.properties
+++ b/chrome/locale/ca/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Apreneu-ne més
torbutton.circuit_display.click_to_copy = Feu clic per a copiar
torbutton.circuit_display.copied = S'ha copiat!
torbutton.content_sizer.margin_tooltip = El navegador Tor afegeix aquest marge per a minorar la diferència de alçada i amplada de la finestra, això fa reduir la capacitat de rastrejar-te.
-torbutton.panel.tooltip.disabled = Feu clic per activar Tor
-torbutton.panel.tooltip.enabled = Feu clic per desactivar Tor
-torbutton.panel.label.disabled = Tor està desactivat
-torbutton.panel.label.enabled = Tor està activat
extensions.torbutton(a)torproject.org.description = Torbutton permet accedir a la configuració de Tor i esborrar fàcilment i ràpidament les dades privades de navegació per internet.
torbutton.popup.external.title = Voleu descarregar un tipus de fitxer extern?
torbutton.popup.external.app = Tor Browser no pot visualitzar aquest fitxer. Cal obrir-lo amb una altra aplicació.\n\n
diff --git a/chrome/locale/cs/torbutton.properties b/chrome/locale/cs/torbutton.properties
index 0a8c7af3..28ff96e6 100644
--- a/chrome/locale/cs/torbutton.properties
+++ b/chrome/locale/cs/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Zjistit více
torbutton.circuit_display.click_to_copy = Kliknutím zkopírujte
torbutton.circuit_display.copied = Zkopírováno!
torbutton.content_sizer.margin_tooltip = Prohlížeč Tor upravuje velikost vašeho okna, aby znesnadnil možnost vašeho vysledování.
-torbutton.panel.tooltip.disabled = Klepněte pro zapnutí Toru
-torbutton.panel.tooltip.enabled = Klepněte pro vypnutí Toru
-torbutton.panel.label.disabled = Tor vypnut
-torbutton.panel.label.enabled = Tor zapnut
extensions.torbutton(a)torproject.org.description = TorButton je tlačítko pro nastavení Toru a rychlé a jednoduché smazání soukromých údajů o vašem prohlížení.
torbutton.popup.external.title = Stáhnout externí soubor?
torbutton.popup.external.app = Prohlížeč Tor nemůže zobrazit tento soubor. Budete ho muset otevřít v jiné aplikaci.\n\n
diff --git a/chrome/locale/csb/torbutton.properties b/chrome/locale/csb/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/csb/torbutton.properties
+++ b/chrome/locale/csb/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/cy/torbutton.properties b/chrome/locale/cy/torbutton.properties
index 436f9243..c37ae296 100644
--- a/chrome/locale/cy/torbutton.properties
+++ b/chrome/locale/cy/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Cliciwch i alluogi Tor
-torbutton.panel.tooltip.enabled = Cliciwch i analluogu Tor
-torbutton.panel.label.disabled = Tor Anabl
-torbutton.panel.label.enabled = Tor Galluog
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/da/torbutton.properties b/chrome/locale/da/torbutton.properties
index d46feba9..d7023127 100644
--- a/chrome/locale/da/torbutton.properties
+++ b/chrome/locale/da/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Lær mere
torbutton.circuit_display.click_to_copy = Klik for at kopiere
torbutton.circuit_display.copied = Kopieret!
torbutton.content_sizer.margin_tooltip = Tor Browser tilføjer margenen for at gøre dit vindues højde og bredde mindre genkendeligt, hvilket reducerer muligheden for at andre kan spore dig online.
-torbutton.panel.tooltip.disabled = Klik for at aktivere Tor
-torbutton.panel.tooltip.enabled = Klik for at deaktivere Tor
-torbutton.panel.label.disabled = Tor deaktiveret
-torbutton.panel.label.enabled = Tor aktiveret
extensions.torbutton(a)torproject.org.description = Torbutton giver en knap til at konfigurere Tor-indstillinger og til hurtigt og nemt at fjerne private browsingdata.
torbutton.popup.external.title = Download en ekstern filtype?
torbutton.popup.external.app = Tor Browser kan ikke vis filen. Du skal åbne den med et andet program.\n\n
diff --git a/chrome/locale/de/torbutton.properties b/chrome/locale/de/torbutton.properties
index f1e59a38..2554e0b7 100644
--- a/chrome/locale/de/torbutton.properties
+++ b/chrome/locale/de/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Erfahre mehr
torbutton.circuit_display.click_to_copy = Zum Kopieren klicken
torbutton.circuit_display.copied = Kopiert!
torbutton.content_sizer.margin_tooltip = Tor Browser fügt diese Begrenzung hinzu, um die Breite und Höhe deines Fensters weniger einzigartig zu machen. Dadurch wird es anderen erschwert, dich im Internet zu verfolgen.
-torbutton.panel.tooltip.disabled = Klicken, um Tor zu aktivieren
-torbutton.panel.tooltip.enabled = Klicken, um Tor zu deaktivieren
-torbutton.panel.label.disabled = Tor ist deaktiviert
-torbutton.panel.label.enabled = Tor ist aktiviert
extensions.torbutton(a)torproject.org.description = Torbutton gibt dir die Möglichkeit, Einstellungen von Tor zu verändern und schnell und einfach die Internetdaten zu löschen.
torbutton.popup.external.title = Einen externen Dateitypen herunterladen?
torbutton.popup.external.app = Tor-Browser kann diese Datei nicht anzeigen. Du musst es mit einer anderen Anwendung öffnen.\n\n
diff --git a/chrome/locale/dz/torbutton.properties b/chrome/locale/dz/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/dz/torbutton.properties
+++ b/chrome/locale/dz/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/el/torbutton.properties b/chrome/locale/el/torbutton.properties
index 0bffb643..915ded9d 100644
--- a/chrome/locale/el/torbutton.properties
+++ b/chrome/locale/el/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Μάθετε περισσότερα
torbutton.circuit_display.click_to_copy = Κλίκ για αντιγραφή
torbutton.circuit_display.copied = Αντιγράφηκε!
torbutton.content_sizer.margin_tooltip = Ο Tor Browser προσθέτει αυτό το περιθώριο για να κάνει το πλάτος και το ύψος του παραθύρου σου λιγότερο ξεχωριστό, οπότε μειώνεται η ικανότητα των άλλων να σε παρακολουθούν διαδικτυακά.
-torbutton.panel.tooltip.disabled = Κάντε κλικ για να ενεργοποιήσετε το Tor
-torbutton.panel.tooltip.enabled = Κάντε κλικ για να απενεργοποιήσετε το Tor
-torbutton.panel.label.disabled = Το Tor είναι απενεργοποιημένο
-torbutton.panel.label.enabled = Το Tor είναι ενεργοποιημένο
extensions.torbutton(a)torproject.org.description = Το Torbutton προσφέρει ένα κουμπί για τη ρύθμιση των παραμέτρων του Tor και για τη γρήγορη και εύκολη εκκαθάριση των προσωπικών στοιχείων περιήγησης.
torbutton.popup.external.title = Λήψη ένος εξωτερικού τύπου αρχείου;
torbutton.popup.external.app = Ο Tor Browser δεν μπορεί να εμφανίσει αυτό το αρχείο. Θα χρειαστεί να το ανοίξετε με κάποια άλλη εφαρμογή.\n\n
diff --git a/chrome/locale/en-US/torbutton.properties b/chrome/locale/en-US/torbutton.properties
index 53651280..632605f7 100644
--- a/chrome/locale/en-US/torbutton.properties
+++ b/chrome/locale/en-US/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Learn more
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make the width and height of your window less distinctive, and thus reduces the ability of people to track you online.
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Download an external file type?
torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
diff --git a/chrome/locale/eo/torbutton.properties b/chrome/locale/eo/torbutton.properties
index 951abd12..efaf5c1b 100644
--- a/chrome/locale/eo/torbutton.properties
+++ b/chrome/locale/eo/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/es-AR/torbutton.properties b/chrome/locale/es-AR/torbutton.properties
index 581e0409..70427f36 100644
--- a/chrome/locale/es-AR/torbutton.properties
+++ b/chrome/locale/es-AR/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Más informacion
torbutton.circuit_display.click_to_copy = Cliquear para copiar
torbutton.circuit_display.copied = ¡Copiado!
torbutton.content_sizer.margin_tooltip = El Navegador Tor añade éste margen para hacer el ancho y alto de tu ventana menos distintivo, y de ésta manera reduce la habilidad de cualquiera para rastrearte en línea.
-torbutton.panel.tooltip.disabled = Cliquear para habilitar Tor
-torbutton.panel.tooltip.enabled = Cliquear para deshabilitar Tor
-torbutton.panel.label.disabled = Tor deshabilitado
-torbutton.panel.label.enabled = Tor habilitado
extensions.torbutton(a)torproject.org.description = Torbutton provee un botón para configurar ajustes de Tor, y rápida y fácilmente eliminar los datos de navegación privados.
torbutton.popup.external.title = ¿Descargar un tipo de archivo externo?
torbutton.popup.external.app = El Navegador Tor no puede mostrar este archivo. Vas a tener que abrirlo con otra aplicación.\n\n
diff --git a/chrome/locale/es-ES/torbutton.properties b/chrome/locale/es-ES/torbutton.properties
index 9338bc3a..54a91b52 100644
--- a/chrome/locale/es-ES/torbutton.properties
+++ b/chrome/locale/es-ES/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Conocer más
torbutton.circuit_display.click_to_copy = Click para copiar
torbutton.circuit_display.copied = ¡Copiado!
torbutton.content_sizer.margin_tooltip = El Tor Browser añade este margen para hacer el ancho y el alto de tu ventana menos especial, y reducir de esta forma la posibilidad de rastrearte en línea.
-torbutton.panel.tooltip.disabled = Haga clic para habilitar Tor
-torbutton.panel.tooltip.enabled = Haga clic para deshabilitar Tor
-torbutton.panel.label.disabled = Tor deshabilitado
-torbutton.panel.label.enabled = Tor habilitado
extensions.torbutton(a)torproject.org.description = Torbutton proporciona un botón para configurar las preferencias de Tor y limpiar rápida y fácilmente los datos de navegación privada.
torbutton.popup.external.title = ¿Descargar un tipo de fichero externo?
torbutton.popup.external.app = El Tor Browser no puede mostrar este fichero. Tendrás que abrirlo con otra aplicación.\n\n
diff --git a/chrome/locale/et/torbutton.properties b/chrome/locale/et/torbutton.properties
index 6e71612e..d090c768 100644
--- a/chrome/locale/et/torbutton.properties
+++ b/chrome/locale/et/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Vajuta, et aktiveerida Tor
-torbutton.panel.tooltip.enabled = Vajuta, et deaktiveerida Tor
-torbutton.panel.label.disabled = Tor on mitteaktiivne
-torbutton.panel.label.enabled = Tor on aktiivne
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Lae välist sisu?
torbutton.popup.external.app = Välist rakendust on vaja, et käsitseda:\n\n
diff --git a/chrome/locale/eu/torbutton.properties b/chrome/locale/eu/torbutton.properties
index fd06b66e..55179929 100644
--- a/chrome/locale/eu/torbutton.properties
+++ b/chrome/locale/eu/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Gehiago jakin
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Tor nabigatzaileak marjin hau gehitzen du zure lehioaren zabalera eta altuera ez hain bereizgarria egiteko, horrela norbaitek zure jarraipena egiteko gaitasuna murriztuz.
-torbutton.panel.tooltip.disabled = Sakatu Tor gaitzeko
-torbutton.panel.tooltip.enabled = Sakatu Tor ezgaitzeko
-torbutton.panel.label.disabled = Tor Ezgaitua
-torbutton.panel.label.enabled = Tor Gaitua
extensions.torbutton(a)torproject.org.description = Torbuttonek Tor ezarpenak konfiguratzeko eta nabigatze pribatuko datuak azkar eta erraz garbitzeko botoi bat hornitzen du
torbutton.popup.external.title = Kanpoko fitxategi mota bat desargatu?
torbutton.popup.external.app = Tor Nabigatzailea ezin du fitxategi hau bistaratu. Irekitzeko beste aplikazio bat behar izango duzu.\n\n
diff --git a/chrome/locale/fa/torbutton.properties b/chrome/locale/fa/torbutton.properties
index 3b87c048..3f574956 100644
--- a/chrome/locale/fa/torbutton.properties
+++ b/chrome/locale/fa/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = اطلاعات بیشتر
torbutton.circuit_display.click_to_copy = برای کپی کلیک کنید
torbutton.circuit_display.copied = کپیشد!
torbutton.content_sizer.margin_tooltip = مرورگر Tor اضافه می کند این حاشیه را به عرض و ارتفاع پنجره شما که کمتر مشخص شود، و در نتیجه باعث کاهش توانایی به ردیابی آنلاین شما شود.
-torbutton.panel.tooltip.disabled = برای فعال کردن Tor کليک کنيد
-torbutton.panel.tooltip.enabled = برای غيرفعال کردن Tor کليک کنيد
-torbutton.panel.label.disabled = Tor غیر فعال شد
-torbutton.panel.label.enabled = Tor فعال شد
extensions.torbutton(a)torproject.org.description = Torbutton دکمه ای را برای شما فراهم مینماید تا تنظیمات "تر" را پیکربندی کرده و بتوانید به راحتی و سرعت، داده های خصوصی مرورگرتان را پاک کنید.
torbutton.popup.external.title = میخواهید یک فایل نوع بیرونی دانلود شود؟
torbutton.popup.external.app = مرورگر نمیتواند این فایل را نمایش دهد، لازم است تا با برنامه دیگری آن را باز کنید.\n
diff --git a/chrome/locale/fi/torbutton.properties b/chrome/locale/fi/torbutton.properties
index 279f6d0f..01b52fd1 100644
--- a/chrome/locale/fi/torbutton.properties
+++ b/chrome/locale/fi/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Käynnistä Tor napsauttamalla.
-torbutton.panel.tooltip.enabled = Poista Tor käytöstä napsauttamalla.
-torbutton.panel.label.disabled = Tor pois käytöstä.
-torbutton.panel.label.enabled = Tor käytössä.
extensions.torbutton(a)torproject.org.description = Torbuttonin lisää painikkeen, jolla voi muokata Torin asetuksia sekä poistaa nopeasti ja helposti selaustiedot.
torbutton.popup.external.title = Ladataanko ulkopuolinen sisältö?
torbutton.popup.external.app = Tarvitaan ulkoinen sovellus:\n\n
diff --git a/chrome/locale/fil/torbutton.properties b/chrome/locale/fil/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/fil/torbutton.properties
+++ b/chrome/locale/fil/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/fo/torbutton.properties b/chrome/locale/fo/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/fo/torbutton.properties
+++ b/chrome/locale/fo/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/fr/torbutton.properties b/chrome/locale/fr/torbutton.properties
index c47ac47f..81f0fa91 100644
--- a/chrome/locale/fr/torbutton.properties
+++ b/chrome/locale/fr/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = En apprendre davantage
torbutton.circuit_display.click_to_copy = Cliquer pour copier
torbutton.circuit_display.copied = A été copié
torbutton.content_sizer.margin_tooltip = Le Navigateur Tor ajoute cette marge pour rendre la largeur et la hauteur de votre fenêtre moins distinctives, et pour réduire par conséquent la possibilité que l’on vous suive à la trace en ligne.
-torbutton.panel.tooltip.disabled = Cliquer pour activer Tor
-torbutton.panel.tooltip.enabled = Cliquer pour désactiver Tor
-torbutton.panel.label.disabled = Tor est désactivé
-torbutton.panel.label.enabled = Tor est activé
extensions.torbutton(a)torproject.org.description = BoutonTor offre un bouton pour configurer les paramètres de Tor et effacer facilement les données de navigation privée.
torbutton.popup.external.title = Télécharger un type de fichier externe ?
torbutton.popup.external.app = Le Navigateur Tor ne peut pas afficher ce fichier. Vous devrez l’ouvrir avec une autre application.
diff --git a/chrome/locale/fur/torbutton.properties b/chrome/locale/fur/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/fur/torbutton.properties
+++ b/chrome/locale/fur/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/fy/torbutton.properties b/chrome/locale/fy/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/fy/torbutton.properties
+++ b/chrome/locale/fy/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ga-IE/torbutton.properties b/chrome/locale/ga-IE/torbutton.properties
index 8623cabb..fa769032 100644
--- a/chrome/locale/ga-IE/torbutton.properties
+++ b/chrome/locale/ga-IE/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Tuilleadh eolais
torbutton.circuit_display.click_to_copy = Cliceáil le Cóipeáil
torbutton.circuit_display.copied = Cóipeáilte!
torbutton.content_sizer.margin_tooltip = Cuireann Brabhsálaí Tor an chiumhais seo leis an bhfuinneog ionas nach mbeidh leithead agus airde na fuinneoige chomh suntasach, sa chaoi go mbíonn sé níos deacra do ghníomhaíocht ar líne a lorg.
-torbutton.panel.tooltip.disabled = Cliceáil le Tor a chumasú
-torbutton.panel.tooltip.enabled = Cliceáil le Tor a dhíchumasú
-torbutton.panel.label.disabled = Tá Tor Díchumasaithe
-torbutton.panel.label.enabled = Tá Tor Cumasaithe
extensions.torbutton(a)torproject.org.description = Is féidir leat an cnaipe Tor a úsáid chun Tor a chumrú agus do chuid sonraí brabhsála príobháideacha a ghlanadh go tapa agus go héasca.
torbutton.popup.external.title = Íoslódáil cineál comhaid seachtrach?
torbutton.popup.external.app = Ní féidir le Brabhsálaí Tor an comhad seo a thaispeáint. Ní mór duit é a oscailt le feidhmchlár eile.\n\n
diff --git a/chrome/locale/gl/torbutton.properties b/chrome/locale/gl/torbutton.properties
index a6023da8..33e7ce7c 100644
--- a/chrome/locale/gl/torbutton.properties
+++ b/chrome/locale/gl/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/gu/torbutton.properties b/chrome/locale/gu/torbutton.properties
index fcc5d85a..280f2a2e 100644
--- a/chrome/locale/gu/torbutton.properties
+++ b/chrome/locale/gu/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = ટોર સક્રિય કરવા ક્લિક કરો
-torbutton.panel.tooltip.enabled = ટોર નિષ્ક્રિય કરવા ક્લિક કરો
-torbutton.panel.label.disabled = ટોર નિષ્ક્રિય
-torbutton.panel.label.enabled = ટોર સક્રિય
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/gun/torbutton.properties b/chrome/locale/gun/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/gun/torbutton.properties
+++ b/chrome/locale/gun/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ha/torbutton.properties b/chrome/locale/ha/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ha/torbutton.properties
+++ b/chrome/locale/ha/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/he/torbutton.properties b/chrome/locale/he/torbutton.properties
index bb2d2f7a..bb0b80ea 100644
--- a/chrome/locale/he/torbutton.properties
+++ b/chrome/locale/he/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = למד עוד
torbutton.circuit_display.click_to_copy = לחץ כדי להעתיק
torbutton.circuit_display.copied = הועתק!
torbutton.content_sizer.margin_tooltip = דפדפן Tor מוסיף שול זה כדי להפוך את הגובה והרוחב של חלונך ליחודיים פחות, ובכך להפחית את היכולת של אנשים לעקוב אחריך באופן מקוון.
-torbutton.panel.tooltip.disabled = לחץ כדי לאפשר את Tor
-torbutton.panel.tooltip.enabled = לחץ כדי להשבית את Tor
-torbutton.panel.label.disabled = Tor מושבת
-torbutton.panel.label.enabled = Tor מאופשר
extensions.torbutton(a)torproject.org.description = Torbutton מספק כפתור כדי לתצר את הגדרות Tor וכדי לנקות במהירות ובקלות נתוני גלישה פרטיים.
torbutton.popup.external.title = להוריד סוג חיצוני של קובץ?
torbutton.popup.external.app = דפדפן Tor אינו יכול להציג קובץ זה. תצטרך לפתוח אותו באמצעות יישום אחר.\n\n
diff --git a/chrome/locale/hi/torbutton.properties b/chrome/locale/hi/torbutton.properties
index 1b28643d..4d8cb6da 100644
--- a/chrome/locale/hi/torbutton.properties
+++ b/chrome/locale/hi/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/hr/torbutton.properties b/chrome/locale/hr/torbutton.properties
index 8f6808d4..f5e67151 100644
--- a/chrome/locale/hr/torbutton.properties
+++ b/chrome/locale/hr/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Kliknite da biste omogućili Tor
-torbutton.panel.tooltip.enabled = Kliknite da biste onemogućili Tor
-torbutton.panel.label.disabled = Tor onemogućen
-torbutton.panel.label.enabled = Tor omogućen
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ht/torbutton.properties b/chrome/locale/ht/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ht/torbutton.properties
+++ b/chrome/locale/ht/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/hu/torbutton.properties b/chrome/locale/hu/torbutton.properties
index e9124511..7743c262 100644
--- a/chrome/locale/hu/torbutton.properties
+++ b/chrome/locale/hu/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = További információ
torbutton.circuit_display.click_to_copy = Kattintson a másoláshoz
torbutton.circuit_display.copied = Másolva!
torbutton.content_sizer.margin_tooltip = A Tor Böngésző ezt a margót adja hozzá, hogy a magassága és a szélessége az ablaknak kevésbé eltérő legyen, így csökkenti az online tevékenységének nyomon követhetőségét.
-torbutton.panel.tooltip.disabled = Kattintson rá a Tor bekapcsolásához
-torbutton.panel.tooltip.enabled = Kattintson rá a Tor kikapcsolásához
-torbutton.panel.label.disabled = Tor kikapcsolva
-torbutton.panel.label.enabled = Tor bekapcsolva
extensions.torbutton(a)torproject.org.description = A Torbutton egy gombot biztosít a Tor beállítások módosításához és a gyors és könnyű takarításához a privát böngészési adatoknak.
torbutton.popup.external.title = Töltse le a külső fájl típust?
torbutton.popup.external.app = A Tor Böngésző nem tudja megjeleníteni ezt a fájlt. Egy másik alkalmazással kell megnyitnia.\n\n
diff --git a/chrome/locale/hy/torbutton.properties b/chrome/locale/hy/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/hy/torbutton.properties
+++ b/chrome/locale/hy/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/id/torbutton.properties b/chrome/locale/id/torbutton.properties
index 49fae587..b1148d60 100644
--- a/chrome/locale/id/torbutton.properties
+++ b/chrome/locale/id/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Pelajari lebih lanjut
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Adds Browser Tor margin ini untuk membuat Lebar dan tinggi dari window anda kurang khas
-torbutton.panel.tooltip.disabled = Klik untuk mengaktifkan Tor
-torbutton.panel.tooltip.enabled = Klik untuk menonaktifkan Tor
-torbutton.panel.label.disabled = Tor dinonaktifkan
-torbutton.panel.label.enabled = Tor diaktifkan
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Unduh sebuah tipe file eksternal?
torbutton.popup.external.app = Browser Tor tidak dapat menampilkan file ini. Anda butuh aplikasi lain untuk membukanya\n
diff --git a/chrome/locale/is/torbutton.properties b/chrome/locale/is/torbutton.properties
index 00a29f58..36900946 100644
--- a/chrome/locale/is/torbutton.properties
+++ b/chrome/locale/is/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Læra meira
torbutton.circuit_display.click_to_copy = Smelltu til að afrita
torbutton.circuit_display.copied = Afritað!
torbutton.content_sizer.margin_tooltip = Tor-vafrinn setur inn þessa spássíu til að gera hæð og breidd gluggans minna einkennandi, og þar með að gera erfiðara að fylgjast með þér á netinu.
-torbutton.panel.tooltip.disabled = Smelltu til að virkja Tor
-torbutton.panel.tooltip.enabled = Smelltu til að afvirkja Tor
-torbutton.panel.label.disabled = Tor óvirkt
-torbutton.panel.label.enabled = Tor virkt
extensions.torbutton(a)torproject.org.description = Torbutton útbýr hnapp til uppsetningar á stillingum Tor svo að einfalt og hraðvirkt sé að hreinsa út öll gögn vegna einkavafurs.
torbutton.popup.external.title = Sækja utanaðkomandi skráartegund?
torbutton.popup.external.app = Tor-vafrinn getur ekki birt þessa skrá. Þú verður að opna hana með öðru forriti.\n\n
diff --git a/chrome/locale/it/torbutton.properties b/chrome/locale/it/torbutton.properties
index 29444943..98d73685 100644
--- a/chrome/locale/it/torbutton.properties
+++ b/chrome/locale/it/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Per saperne di più
torbutton.circuit_display.click_to_copy = Clicca per copiare
torbutton.circuit_display.copied = Copiato!
torbutton.content_sizer.margin_tooltip = Il browser Tor aggiunge questo margine per rendere l'ampiezza e altezza della tua finestra meno distintiva, così si riduce la possibilità di che tu sia tracciato in linea.
-torbutton.panel.tooltip.disabled = Fai clic per attivare Tor
-torbutton.panel.tooltip.enabled = Fai clic per disattivare Tor
-torbutton.panel.label.disabled = Tor Disattivato
-torbutton.panel.label.enabled = Tor Attivato
extensions.torbutton(a)torproject.org.description = Torbutton fornisce un pulsante per configurare le impostazioni di Tor e rimuovere velocemente e facilmente i dati di navigazione privati.
torbutton.popup.external.title = Si desidera scaricare un tipo di file esterno?
torbutton.popup.external.app = Tor Browser non è in grado di aprire questo file. Sarà necessario usare un'altra applicazione per aprirlo.\n\n
diff --git a/chrome/locale/ja/torbutton.properties b/chrome/locale/ja/torbutton.properties
index 62437fa5..d58db150 100644
--- a/chrome/locale/ja/torbutton.properties
+++ b/chrome/locale/ja/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = 詳細情報
torbutton.circuit_display.click_to_copy = クリックしてコピー
torbutton.circuit_display.copied = コピーされました
torbutton.content_sizer.margin_tooltip = Tor Browser はウィンドウのサイズを平凡にするためにこのマージンを追加します。これにより、あなたのことをオンラインで追跡しにくくします。
-torbutton.panel.tooltip.disabled = クリックして Tor を有効にする
-torbutton.panel.tooltip.enabled = クリックして Tor を無効にする
-torbutton.panel.label.disabled = Tor 無効
-torbutton.panel.label.enabled = Tor 有効
extensions.torbutton(a)torproject.org.description = Torbutton は Tor の設定を構成し、素早くかつ容易にプライベートな閲覧データをクリアするボタンを提供します。
torbutton.popup.external.title = 外部ファイル種別をダウンロードしますか?
torbutton.popup.external.app = Tor Browser はこのファイルを表示できません。別のアプリケーションで開く必要があります。\n
diff --git a/chrome/locale/jv/torbutton.properties b/chrome/locale/jv/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/jv/torbutton.properties
+++ b/chrome/locale/jv/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ka/torbutton.properties b/chrome/locale/ka/torbutton.properties
index c4c72194..8aa349ef 100644
--- a/chrome/locale/ka/torbutton.properties
+++ b/chrome/locale/ka/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = იხილეთ ვრცლად
torbutton.circuit_display.click_to_copy = დაწკაპეთ ასლისთვის
torbutton.circuit_display.copied = ასლი აღებულია!
torbutton.content_sizer.margin_tooltip = Tor-ბრაუზერი ამატებს მინდვრებს კიდეებზე, რომ თქვენი ფანჯრის სიგანე და სიმაღლე ნაკლებად გამორჩეული და შესამჩნევი იყოს, რაც შეუმცირებს სხვებს, ინტერნეტში თქვენი დევნის შესაძლებლობებს.
-torbutton.panel.tooltip.disabled = დაწკაპეთ, რომ ჩაირთოს Tor
-torbutton.panel.tooltip.enabled = დაწკაპეთ, რომ გამოირთოს Tor
-torbutton.panel.label.disabled = Tor გამორთულია
-torbutton.panel.label.enabled = Tor ჩართულია
extensions.torbutton(a)torproject.org.description = Torbutton საშუალებას გაძლევთ ერთი ღილაკით გამართოთ Tor-ის პარამეტრები და სწრაფად გაასუფთავოთ მონახულებული გვერდების მონაცემები.
torbutton.popup.external.title = ჩამოიტვირთოს ცალკეული სახის ფაილი?
torbutton.popup.external.app = Tor-ბრაუზერით ვერ ხერხდება ამ ფაილის გახსნა. სხვა პროგრამაა საჭირო მის გასახსნელად.\n\n
diff --git a/chrome/locale/km/torbutton.properties b/chrome/locale/km/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/km/torbutton.properties
+++ b/chrome/locale/km/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/kn/torbutton.properties b/chrome/locale/kn/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/kn/torbutton.properties
+++ b/chrome/locale/kn/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ko/torbutton.properties b/chrome/locale/ko/torbutton.properties
index 27238f5e..8ec96fea 100644
--- a/chrome/locale/ko/torbutton.properties
+++ b/chrome/locale/ko/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = 더 알아보기
torbutton.circuit_display.click_to_copy = 클릭하여 복사하기
torbutton.circuit_display.copied = 복사됨!
torbutton.content_sizer.margin_tooltip = Tor 브라우저는 이 여백을 추가하여 창의 너비와 높이를 일반화 시켜 온라인에서 사용자를 추적하는 기능을 약화 시킵니다.
-torbutton.panel.tooltip.disabled = Tor를 활성화하려면 클릭
-torbutton.panel.tooltip.enabled = Tor를 비활성화하려면 클릭
-torbutton.panel.label.disabled = Tor 비활성화
-torbutton.panel.label.enabled = Tor 활성화
extensions.torbutton(a)torproject.org.description = Torbutton은 Tor 설정을 해 주는 버튼을 제공하고, 빠르고 쉽게 개인 브라우징 데이터를 지워 줍니다.
torbutton.popup.external.title = 외부 파일 유형을 다운로드 하시겠습니까?
torbutton.popup.external.app = Tor 브라우저는이 파일을 볼 수 없습니다. 다른 응용 프로그램에서 열어야합니다.\n\n
diff --git a/chrome/locale/ku/torbutton.properties b/chrome/locale/ku/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ku/torbutton.properties
+++ b/chrome/locale/ku/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/kw/torbutton.properties b/chrome/locale/kw/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/kw/torbutton.properties
+++ b/chrome/locale/kw/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ky/torbutton.properties b/chrome/locale/ky/torbutton.properties
index e6e769b6..b568a2fe 100644
--- a/chrome/locale/ky/torbutton.properties
+++ b/chrome/locale/ky/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/lb/torbutton.properties b/chrome/locale/lb/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/lb/torbutton.properties
+++ b/chrome/locale/lb/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/lg/torbutton.properties b/chrome/locale/lg/torbutton.properties
index 971eaa7e..98e793d0 100644
--- a/chrome/locale/lg/torbutton.properties
+++ b/chrome/locale/lg/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}.description = Torbutton provides a button to easily enable or disable pointing Firefox to the Tor proxy
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ln/torbutton.properties b/chrome/locale/ln/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ln/torbutton.properties
+++ b/chrome/locale/ln/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/lo/torbutton.properties b/chrome/locale/lo/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/lo/torbutton.properties
+++ b/chrome/locale/lo/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/lt/torbutton.properties b/chrome/locale/lt/torbutton.properties
index 23fa7d4a..ce606a43 100644
--- a/chrome/locale/lt/torbutton.properties
+++ b/chrome/locale/lt/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Sužinoti daugiau
torbutton.circuit_display.click_to_copy = Spustelėkite norėdami nukopijuoti
torbutton.circuit_display.copied = Nukopijuota!
torbutton.content_sizer.margin_tooltip = Tor Naršyklė prideda šią paraštę, kad jūsų lango plotis ir aukštis būtų mažiau atskiriami ir, tokiu būdu, žmonėms būtų sumažinta galimybė sekti jus internete.
-torbutton.panel.tooltip.disabled = Spustelėkite norėdami įjungti Tor
-torbutton.panel.tooltip.enabled = Spustelėkite norėdami išjungti Tor
-torbutton.panel.label.disabled = Tor išjungta
-torbutton.panel.label.enabled = Tor įjungta
extensions.torbutton(a)torproject.org.description = Torbutton pateikia mygtuką, skirtą konfigūruoti Tor nustatymus ir greitai bei lengvai išvalyti privačius naršymo duomenis.
torbutton.popup.external.title = Atsisiųsti išorinį failo tipą?
torbutton.popup.external.app = Tor Naršyklė negali atvaizduoti šio failo. Jums teks jį atverti, naudojant kitą programą.\n\n
diff --git a/chrome/locale/lv/torbutton.properties b/chrome/locale/lv/torbutton.properties
index 98e51d14..d6114d1d 100644
--- a/chrome/locale/lv/torbutton.properties
+++ b/chrome/locale/lv/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Noklikšķināt, lai iespējotu Tor
-torbutton.panel.tooltip.enabled = Noklikšķināt, lai atspējotu Tor
-torbutton.panel.label.disabled = Tor ir atspējots
-torbutton.panel.label.enabled = Tor ir iespējots
extensions.torbutton(a)torproject.org.description = Torbutton ir poga ar kuru konfigurēt Tor iestatījumus, kā arī ātri un ērti attīrīt personīgos pārlūkošanas datus.
torbutton.popup.external.title = Ielādēt ārēju saturu?
torbutton.popup.external.app = Nepieciešama ārēja lietotne, lai apstrādātu:⏎ ⏎\n
diff --git a/chrome/locale/mg/torbutton.properties b/chrome/locale/mg/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/mg/torbutton.properties
+++ b/chrome/locale/mg/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/mi/torbutton.properties b/chrome/locale/mi/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/mi/torbutton.properties
+++ b/chrome/locale/mi/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/mk/torbutton.properties b/chrome/locale/mk/torbutton.properties
index 1789493f..a92218cc 100644
--- a/chrome/locale/mk/torbutton.properties
+++ b/chrome/locale/mk/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Научи повеќе
torbutton.circuit_display.click_to_copy = Кликни за Копирање
torbutton.circuit_display.copied = Копирано!
torbutton.content_sizer.margin_tooltip = Tor Browser ја додава ова маргина за ширината и висината на вашиот прозорец да биде постандарден, со што се намалува можноста луѓето да ве следат онлајн.
-torbutton.panel.tooltip.disabled = Кликнете за да го овозможите Tor
-torbutton.panel.tooltip.enabled = Кликнете за да го оневозможите Tor
-torbutton.panel.label.disabled = Tor е оневозможен
-torbutton.panel.label.enabled = Tor е овозможен
extensions.torbutton(a)torproject.org.description = Torbutton пружа копче за конфигурирање на Tor поставките и брзо и олеснето чисто приватно прелистување на податоци.
torbutton.popup.external.title = Преземање на надворешна датотека?
torbutton.popup.external.app = Tor прелистувачот не може да ја прикаже оваа датотека. Треба да ја отворите со друга апликација.\n\n
diff --git a/chrome/locale/ml/torbutton.properties b/chrome/locale/ml/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ml/torbutton.properties
+++ b/chrome/locale/ml/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/mn/torbutton.properties b/chrome/locale/mn/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/mn/torbutton.properties
+++ b/chrome/locale/mn/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/mr/torbutton.properties b/chrome/locale/mr/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/mr/torbutton.properties
+++ b/chrome/locale/mr/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ms/torbutton.properties b/chrome/locale/ms/torbutton.properties
index 17e4fd22..6c69ce76 100644
--- a/chrome/locale/ms/torbutton.properties
+++ b/chrome/locale/ms/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Ketahui lebih lanjut
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Pelayar Tor menambah jidar ini untuk memastikan tinggi dan lebar tetingkap anda kurang dikenali, dan seterusnya mengurangkan keupayaan orang lain menjejak anda ketika berada diatas-talian.
-torbutton.panel.tooltip.disabled = Klik untuk benarkan Tor
-torbutton.panel.tooltip.enabled = Klik untuk lumpuhkan Tor
-torbutton.panel.label.disabled = Tor Dilumpuhkan
-torbutton.panel.label.enabled = Tor Dibenarkan
extensions.torbutton(a)torproject.org.description = Torbutton menyediakan butang bagi mengkonfigur tetapan Tor secara pantas dan mudah membersihkan data pelayaran persendirian anda.
torbutton.popup.external.title = Muat turun jenis fail luar?
torbutton.popup.external.app = Pelayar Tor tidak dapat paparkan fail ini. Anda perlu membukanya dengan aplikasi lain.\n\n
diff --git a/chrome/locale/mt/torbutton.properties b/chrome/locale/mt/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/mt/torbutton.properties
+++ b/chrome/locale/mt/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/my/torbutton.properties b/chrome/locale/my/torbutton.properties
index 043cb4a0..3fa0d7cd 100644
--- a/chrome/locale/my/torbutton.properties
+++ b/chrome/locale/my/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Tor ကို ဖွင့်ရန် နှိပ်ပါ
-torbutton.panel.tooltip.enabled = Tor ကို ပိတ်ရန် နှိပ်ပါ
-torbutton.panel.label.disabled = ပိတ်ထားသော Tor
-torbutton.panel.label.enabled = ဖွင့်ထားသော Tor
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = ပြင်ပမှ အကြောင်းအရာကို ဖွင့်ရန်
torbutton.popup.external.app = ပြင်ပ အပ္ပလီဂေးရှင်း တစ်ခုကို ဖြေရှင်းရန် လိုအပ်သည် - \n\n
diff --git a/chrome/locale/nah/torbutton.properties b/chrome/locale/nah/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/nah/torbutton.properties
+++ b/chrome/locale/nah/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/nap/torbutton.properties b/chrome/locale/nap/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/nap/torbutton.properties
+++ b/chrome/locale/nap/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/nb-NO/torbutton.properties b/chrome/locale/nb-NO/torbutton.properties
index 990db742..df1b6132 100644
--- a/chrome/locale/nb-NO/torbutton.properties
+++ b/chrome/locale/nb-NO/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Lær mer
torbutton.circuit_display.click_to_copy = Trykk for å kopiere
torbutton.circuit_display.copied = Kopiert!
torbutton.content_sizer.margin_tooltip = Tor Nettleser legger til denne marginen for å gjøre bredden og høyden på vinduet ditt mindre særegent, og reduserer dermed muligheten for folk til å spore deg på nett.
-torbutton.panel.tooltip.disabled = Klikk for å aktivere Tor
-torbutton.panel.tooltip.enabled = Klikk for å skru av Tor
-torbutton.panel.label.disabled = Tor er avskrudd
-torbutton.panel.label.enabled = Tor er aktivert
extensions.torbutton(a)torproject.org.description = Torbutton tilbyr en knapp til å sette opp Tor-innstillinger, samt rask og enkel tilgang til å slette privat nettleserhistorikk.
torbutton.popup.external.title = Last ned en ekstern filtype?
torbutton.popup.external.app = Tor Nettleser kan ikke åpne denne filen. Du er nødt til å åpne den med et annet program.\n\n
diff --git a/chrome/locale/ne/torbutton.properties b/chrome/locale/ne/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ne/torbutton.properties
+++ b/chrome/locale/ne/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/nl/torbutton.properties b/chrome/locale/nl/torbutton.properties
index 289200be..16d2852c 100644
--- a/chrome/locale/nl/torbutton.properties
+++ b/chrome/locale/nl/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Meer info
torbutton.circuit_display.click_to_copy = Klik om te kopiëren
torbutton.circuit_display.copied = Gekopieerd!
torbutton.content_sizer.margin_tooltip = Tor Browser voegt deze rand toe om de afmetingen van het venster minder uit de toon te laten vallen. Dit maakt het moeilijker om u online te volgen.
-torbutton.panel.tooltip.disabled = Klik om Tor in te schakelen
-torbutton.panel.tooltip.enabled = Klik om Tor uit te schakelen
-torbutton.panel.label.disabled = Tor uitgeschakeld
-torbutton.panel.label.enabled = Tor ingeschakeld
extensions.torbutton(a)torproject.org.description = Torbutton biedt een knop om Tor-instellingen te configureren en snel en makkelijk privénavigatiegegevens te wissen.
torbutton.popup.external.title = Een extern bestandstype downloaden?
torbutton.popup.external.app = Tor Browser kan dit bestand niet weergeven. U dient het met een andere toepassing te openen.\n\n
diff --git a/chrome/locale/nn/torbutton.properties b/chrome/locale/nn/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/nn/torbutton.properties
+++ b/chrome/locale/nn/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/nso/torbutton.properties b/chrome/locale/nso/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/nso/torbutton.properties
+++ b/chrome/locale/nso/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/oc/torbutton.properties b/chrome/locale/oc/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/oc/torbutton.properties
+++ b/chrome/locale/oc/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/or/torbutton.properties b/chrome/locale/or/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/or/torbutton.properties
+++ b/chrome/locale/or/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/pa/torbutton.properties b/chrome/locale/pa/torbutton.properties
index 93bbd403..37e9168b 100644
--- a/chrome/locale/pa/torbutton.properties
+++ b/chrome/locale/pa/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/pap/torbutton.properties b/chrome/locale/pap/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/pap/torbutton.properties
+++ b/chrome/locale/pap/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/pl/torbutton.properties b/chrome/locale/pl/torbutton.properties
index e1563298..48b0e6fc 100644
--- a/chrome/locale/pl/torbutton.properties
+++ b/chrome/locale/pl/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Dowiedz się więcej
torbutton.circuit_display.click_to_copy = Kliknij, aby skopiować
torbutton.circuit_display.copied = Skopiowano!
torbutton.content_sizer.margin_tooltip = Tor Browser dodaje ten margines po to, aby szerokość i wysokość okna Twojej przeglądarki była mniej charakterystyczna, dzięki temu zmniejszysz szanse śledzenia Ciebie online.
-torbutton.panel.tooltip.disabled = Kliknij tutaj, aby włączyć Tora
-torbutton.panel.tooltip.enabled = Kliknij tutaj, aby wyłączyć Tora
-torbutton.panel.label.disabled = Tor wyłączony
-torbutton.panel.label.enabled = Tor włączony
extensions.torbutton(a)torproject.org.description = Torbutton udostępnia przycisk do konfiguracji ustawień Tora oraz szybkiego i łatwego usuwania prywatnych danych z przeglądarki.
torbutton.popup.external.title = Pobrać zewnętrzny typ pliku?
torbutton.popup.external.app = Tor Browser nie może wyświetlić tego pliku. Musisz otworzyć go z innej aplikacji\n\n
diff --git a/chrome/locale/pms/torbutton.properties b/chrome/locale/pms/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/pms/torbutton.properties
+++ b/chrome/locale/pms/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ps/torbutton.properties b/chrome/locale/ps/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ps/torbutton.properties
+++ b/chrome/locale/ps/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/pt-BR/torbutton.properties b/chrome/locale/pt-BR/torbutton.properties
index d2378e7f..7e3d4309 100644
--- a/chrome/locale/pt-BR/torbutton.properties
+++ b/chrome/locale/pt-BR/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Aprenda mais
torbutton.circuit_display.click_to_copy = Clique para copiar
torbutton.circuit_display.copied = Copiado!
torbutton.content_sizer.margin_tooltip = O Navegador Tor inclui esta margem para que a altura e a largura da janela sejam menos distinguíveis, o que reduz a possibilidade de que alguém rastreie a sua navegação .
-torbutton.panel.tooltip.disabled = Clique para habilitar o Tor
-torbutton.panel.tooltip.enabled = Clique para desabilitar o Tor
-torbutton.panel.label.disabled = O Tor está desabilitado
-torbutton.panel.label.enabled = O Tor está habilitado
extensions.torbutton(a)torproject.org.description = O Torbutton fornece uma opção para configurar as preferências do Tor e, com rapidez e facilidade, limpar os dados de navegação privada.
torbutton.popup.external.title = Fazer o download de um tipo de arquivo externo?
torbutton.popup.external.app = O Navegador Tor não pode exibir este arquivo. Você precisa abri-lo com um outro aplicativo.\n\n
diff --git a/chrome/locale/pt/torbutton.properties b/chrome/locale/pt/torbutton.properties
index 658c96e6..58bedaa6 100644
--- a/chrome/locale/pt/torbutton.properties
+++ b/chrome/locale/pt/torbutton.properties
@@ -6,10 +6,6 @@ torbutton.circuit_display.relay = retransmitir
torbutton.circuit_display.tor_bridge = Ponte
torbutton.circuit_display.unknown_country = País desconhecido
torbutton.content_sizer.margin_tooltip = O Navegador Tor adiciona esta margem para realçar a altura e a largura da sua janela, e com isso reduz a possibilidade de as pessoas o rastrearem on-line.
-torbutton.panel.tooltip.disabled = Clique para ativar o Tor
-torbutton.panel.tooltip.enabled = Clique para desativar o Tor
-torbutton.panel.label.disabled = Tor Desativado
-torbutton.panel.label.enabled = Tor Ativado
extensions.torbutton(a)torproject.org.description = o Torbutton proporciona um botão para configurar as configurações do Tor e para limpar facilmente e rapidamente os dados de navegação privados.
torbutton.popup.external.title = Transferir um tipo de ficheiro externo?
torbutton.popup.external.app = O navegador Tor não consegue exibir este ficheiro. Poderá ter que o abrir com outra aplicação.\n\n
diff --git a/chrome/locale/ro/torbutton.properties b/chrome/locale/ro/torbutton.properties
index 01b9ae0e..ca44efae 100644
--- a/chrome/locale/ro/torbutton.properties
+++ b/chrome/locale/ro/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Află mai mult
torbutton.circuit_display.click_to_copy = Click pentru a copia
torbutton.circuit_display.copied = Copiat!
torbutton.content_sizer.margin_tooltip = Navigatorul Tor Browser adaugă această margine pentru a face lățimea și înălțimea ferestrei tale mai puțin specifică, și astfel reduce abilitatea altora de a te urmări online.
-torbutton.panel.tooltip.disabled = Click pentru a activa Tor
-torbutton.panel.tooltip.enabled = Click pentru a dezactiva Tor
-torbutton.panel.label.disabled = Tor a fost dezactivat
-torbutton.panel.label.enabled = Tor a fost activat
extensions.torbutton(a)torproject.org.description = Torbutton oferă posibilitatea de a configura setările navigatorului si de a goli rapid şi ușor datele private ale navigării.
torbutton.popup.external.title = Descărcare fișier de tip extern?
torbutton.popup.external.app = Navigatorul Tor Browser nu poate afișa acest fișier. Va trebui să îl deschizi cu o altă aplicație.\n\n
diff --git a/chrome/locale/ru/torbutton.properties b/chrome/locale/ru/torbutton.properties
index f9577aca..b933f1ea 100644
--- a/chrome/locale/ru/torbutton.properties
+++ b/chrome/locale/ru/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Узнать больше
torbutton.circuit_display.click_to_copy = Нажмите для копирования
torbutton.circuit_display.copied = Скопировано!
torbutton.content_sizer.margin_tooltip = Tor Browser добавляет этот отступ, чтобы ширина и высота окна были менее узнаваемыми. Это затрудняет отслеживание в интернете.
-torbutton.panel.tooltip.disabled = Нажмите, чтобы включить Tor
-torbutton.panel.tooltip.enabled = Нажмите, чтобы отключить Tor
-torbutton.panel.label.disabled = Tor отключен
-torbutton.panel.label.enabled = Tor включен
extensions.torbutton(a)torproject.org.description = Torbutton предлагает кнопку для настройки Tor. С помощью Torbutton можно быстро и легко очистить личные данные просмотра.
torbutton.popup.external.title = Скачать внешний файл?
torbutton.popup.external.app = Tor Browser не может отобразить этот файл. Придется открыть его с помощью другого приложения.\n\n
diff --git a/chrome/locale/sco/torbutton.properties b/chrome/locale/sco/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/sco/torbutton.properties
+++ b/chrome/locale/sco/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/sk/torbutton.properties b/chrome/locale/sk/torbutton.properties
index 62679037..1d2cd032 100644
--- a/chrome/locale/sk/torbutton.properties
+++ b/chrome/locale/sk/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Kliknite pre zapnutie Tor
-torbutton.panel.tooltip.enabled = Kliknite pre vypnutie Tor
-torbutton.panel.label.disabled = Tor vypnutý
-torbutton.panel.label.enabled = Tor zapnutý
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Načítať externý obsah?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/sl/torbutton.properties b/chrome/locale/sl/torbutton.properties
index 9f8156a0..b532624e 100644
--- a/chrome/locale/sl/torbutton.properties
+++ b/chrome/locale/sl/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Klikni za vklop anonimizacije
-torbutton.panel.tooltip.enabled = Klikni za izklop anonimizacije
-torbutton.panel.label.disabled = Anonimizacija izključena
-torbutton.panel.label.enabled = Anonimizacija vključena
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Naloži zunanje vsebine?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/so/torbutton.properties b/chrome/locale/so/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/so/torbutton.properties
+++ b/chrome/locale/so/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/son/torbutton.properties b/chrome/locale/son/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/son/torbutton.properties
+++ b/chrome/locale/son/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/sq/torbutton.properties b/chrome/locale/sq/torbutton.properties
index 1a9bd3eb..da30095e 100644
--- a/chrome/locale/sq/torbutton.properties
+++ b/chrome/locale/sq/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/sr/torbutton.properties b/chrome/locale/sr/torbutton.properties
index b587448a..7945ea52 100644
--- a/chrome/locale/sr/torbutton.properties
+++ b/chrome/locale/sr/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Кликните да бисте омогућили Тор
-torbutton.panel.tooltip.enabled = Кликните да бисте онемогућили Тор
-torbutton.panel.label.disabled = Тор је онемогућен
-torbutton.panel.label.enabled = Тор је омогућен
extensions.torbutton(a)torproject.org.description = Torbutton nudi dugme za konfiguraciju Tor postavki i lako i brzo ciscenje pretrazivackih informacija.
torbutton.popup.external.title = Учитати спољни садржај?
torbutton.popup.external.app = Потребан је спољни програм за руковање:\n\n
diff --git a/chrome/locale/st/torbutton.properties b/chrome/locale/st/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/st/torbutton.properties
+++ b/chrome/locale/st/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/su/torbutton.properties b/chrome/locale/su/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/su/torbutton.properties
+++ b/chrome/locale/su/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/sv-SE/torbutton.properties b/chrome/locale/sv-SE/torbutton.properties
index dc1ac76a..d542f3cd 100644
--- a/chrome/locale/sv-SE/torbutton.properties
+++ b/chrome/locale/sv-SE/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Läs mer
torbutton.circuit_display.click_to_copy = Klicka för att kopiera
torbutton.circuit_display.copied = Kopierat!
torbutton.content_sizer.margin_tooltip = Tor Browser lägger till denna marginal för att göra bredden och höjden på ditt fönster mindre tydlig. Därmed minskas möjligheten att spåra dig.
-torbutton.panel.tooltip.disabled = Klicka för att aktivera Tor
-torbutton.panel.tooltip.enabled = Klicka för att inaktivera Tor
-torbutton.panel.label.disabled = Tor inaktiv
-torbutton.panel.label.enabled = Tor aktiv
extensions.torbutton(a)torproject.org.description = Torbutton ger en knapp för att konfigurera Tor inställningar och snabbt och enkelt rensa privat surfdata.
torbutton.popup.external.title = Hämta en extern filtyp?
torbutton.popup.external.app = Tor Browser kan inte visa filen. Du behöver öppna den i ett annat program.\n\n
diff --git a/chrome/locale/sw/torbutton.properties b/chrome/locale/sw/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/sw/torbutton.properties
+++ b/chrome/locale/sw/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ta/torbutton.properties b/chrome/locale/ta/torbutton.properties
index 800a5947..4ebb6398 100644
--- a/chrome/locale/ta/torbutton.properties
+++ b/chrome/locale/ta/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/te/torbutton.properties b/chrome/locale/te/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/te/torbutton.properties
+++ b/chrome/locale/te/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/tg/torbutton.properties b/chrome/locale/tg/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/tg/torbutton.properties
+++ b/chrome/locale/tg/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/th/torbutton.properties b/chrome/locale/th/torbutton.properties
index 5ebad60e..5cff4cca 100644
--- a/chrome/locale/th/torbutton.properties
+++ b/chrome/locale/th/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = เรียนรู้เพิ่ม
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Tor Browser เพิ่มระยะขอบนี้เพื่อทำให้ความกว้างและความสูงของหน้าต่างคุณโดดเด่นน้อยลง และลดความสามารถของบุคคลอื่นในการติดตามคุณทางออนไลน์
-torbutton.panel.tooltip.disabled = คลิกเพื่อเปิดใช้ Tor
-torbutton.panel.tooltip.enabled = คลิกเพื่อปิด Tor
-torbutton.panel.label.disabled = ปิดใช้ Tor อยู่
-torbutton.panel.label.enabled = เปิดใช้ Tor อยู่
extensions.torbutton(a)torproject.org.description = Torbutton มีปุ่มให้ปรับแต่งการตั้งค่า Tor และล้างข้อมูลการดูเว็บส่วนบุคคลอย่างรวดเร็วและง่ายดาย
torbutton.popup.external.title = ดาวน์โหลดไฟล์ภายนอก
torbutton.popup.external.app = Tor Browser ไม่สามารถแสดงไฟล์นี้ คุณต้องเปิดมันในโปรแกรมอื่น\n\n
diff --git a/chrome/locale/ti/torbutton.properties b/chrome/locale/ti/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ti/torbutton.properties
+++ b/chrome/locale/ti/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/tk/torbutton.properties b/chrome/locale/tk/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/tk/torbutton.properties
+++ b/chrome/locale/tk/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/tr/torbutton.properties b/chrome/locale/tr/torbutton.properties
index 30463c18..2f838439 100644
--- a/chrome/locale/tr/torbutton.properties
+++ b/chrome/locale/tr/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Ayrıntılı bilgi alın
torbutton.circuit_display.click_to_copy = Kopyalamak için tıklayın
torbutton.circuit_display.copied = Kopyalandı!
torbutton.content_sizer.margin_tooltip = Tor Browser pencerenizin genişlik ve yüksekliğini daha az ayırt edilebilir duruma getirmek için kenar boşlukları ekleyerek kişilerin sizi çevrim içi olarak izleme yeteneğini azaltır.
-torbutton.panel.tooltip.disabled = Tor uygulamasını etkinleştirmek için tıklayın
-torbutton.panel.tooltip.enabled = Tor uygulamasını devre dışı bırakmak için tıklayın
-torbutton.panel.label.disabled = Tor Devre Dışı
-torbutton.panel.label.enabled = Tor Etkin
extensions.torbutton(a)torproject.org.description = Torbutton, Tor ayarlarını yapabileceğiniz ve kişisel tarama verilerinizi hızla ve kolayca silebileceğiniz bir düğme görüntüler.
torbutton.popup.external.title = Dış bir dosya türü indirilsin mi?
torbutton.popup.external.app = Tor Browser bu dosyayı görüntüleyemiyor. Başka bir uygulamayla açmanız gerekecek.\n
diff --git a/chrome/locale/uk/torbutton.properties b/chrome/locale/uk/torbutton.properties
index c12fe3e6..1332c099 100644
--- a/chrome/locale/uk/torbutton.properties
+++ b/chrome/locale/uk/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Натисніть аби увімкнути Tor
-torbutton.panel.tooltip.enabled = Натисніть аби вимкнути Tor
-torbutton.panel.label.disabled = Tor Вимкнено
-torbutton.panel.label.enabled = Tor Увімкнено
extensions.torbutton(a)torproject.org.description = Torbutton передбачає кнопку, щоб налаштувати Tor і швидко та легко очистити особисті дані перегляду.
torbutton.popup.external.title = Завантажити зовнішній вміст?
torbutton.popup.external.app = Зовнішня прикладна програма необхідна для обробки:\\n\n\\n
diff --git a/chrome/locale/ur/torbutton.properties b/chrome/locale/ur/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ur/torbutton.properties
+++ b/chrome/locale/ur/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/ve/torbutton.properties b/chrome/locale/ve/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/ve/torbutton.properties
+++ b/chrome/locale/ve/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/vi/torbutton.properties b/chrome/locale/vi/torbutton.properties
index 7cd3c34c..3a3fe0e3 100644
--- a/chrome/locale/vi/torbutton.properties
+++ b/chrome/locale/vi/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = Biết thêm
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
torbutton.content_sizer.margin_tooltip = Trình duyệt Tor thêm lề này để làm cho chiều rộng và chiều cao của màn hình của bạn ít dễ bị phân biệt hơn, và vì thế giảm khả năng của những người theo dõi bạn trực tuyến.
-torbutton.panel.tooltip.disabled = Nhấn để bật Tor
-torbutton.panel.tooltip.enabled = Nhấn để tắt Tor
-torbutton.panel.label.disabled = Tor bị tắt
-torbutton.panel.label.enabled = Tor được bật
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Tải về một loại tập tin bên ngoài?
torbutton.popup.external.app = Trình duyệt Tor không thể hiển thị tập tin này. Bạn cần mở nó với một ứng dụng khác.\n\n
diff --git a/chrome/locale/wa/torbutton.properties b/chrome/locale/wa/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/wa/torbutton.properties
+++ b/chrome/locale/wa/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/wo/torbutton.properties b/chrome/locale/wo/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/wo/torbutton.properties
+++ b/chrome/locale/wo/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/zh-CN/torbutton.properties b/chrome/locale/zh-CN/torbutton.properties
index 17ea5d2f..f67bf83d 100644
--- a/chrome/locale/zh-CN/torbutton.properties
+++ b/chrome/locale/zh-CN/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = 详细了解
torbutton.circuit_display.click_to_copy = 点击以复制
torbutton.circuit_display.copied = 已复制!
torbutton.content_sizer.margin_tooltip = Tor 浏览器添加了一些边框,以降低窗口大小的独特性,令在线跟踪监控变得更加困难。
-torbutton.panel.tooltip.disabled = 点击启用 Tor
-torbutton.panel.tooltip.enabled = 点击禁用 Tor
-torbutton.panel.label.disabled = Tor 已禁用
-torbutton.panel.label.enabled = Tor 已启用
extensions.torbutton(a)torproject.org.description = Torbutton 是一个按钮,可对“Tor 设置”进行修改,并可快速而方便地清除浏览器隐私数据。
torbutton.popup.external.title = 下载一个外部文件类型?
torbutton.popup.external.app = Tor 浏览器无法显示此文件。您需要用其他应用程序打开它。\n\n
diff --git a/chrome/locale/zh-HK/torbutton.properties b/chrome/locale/zh-HK/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/zh-HK/torbutton.properties
+++ b/chrome/locale/zh-HK/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/locale/zh-TW/torbutton.properties b/chrome/locale/zh-TW/torbutton.properties
index 70deb509..b0ca4ab9 100644
--- a/chrome/locale/zh-TW/torbutton.properties
+++ b/chrome/locale/zh-TW/torbutton.properties
@@ -11,10 +11,6 @@ torbutton.circuit_display.learn_more = 繼續閱讀
torbutton.circuit_display.click_to_copy = 按一下以複製
torbutton.circuit_display.copied = 已複製!
torbutton.content_sizer.margin_tooltip = 洋蔥路由瀏覽器特意將視窗邊框的寬度及高度重新設置,以便讓您的瀏覽器狀態資訊看起來更為普通,如此可以減少您的網路活動被識別並追蹤的可能性。
-torbutton.panel.tooltip.disabled = 按一下以啟用洋蔥路由
-torbutton.panel.tooltip.enabled = 按一下以停用洋蔥路由
-torbutton.panel.label.disabled = 洋蔥路由已停用
-torbutton.panel.label.enabled = 洋蔥路由已啟用
extensions.torbutton(a)torproject.org.description = Torbutton 提供一個按鈕來設定洋蔥路由,以及輕鬆便捷地清除私人瀏覽資料。
torbutton.popup.external.title = 下載外部檔案類型?
torbutton.popup.external.app = 洋蔥路由瀏覽器無法顯示這個檔案,您需要使用其他應用程式來開啟它。\n\n
diff --git a/chrome/locale/zu/torbutton.properties b/chrome/locale/zu/torbutton.properties
index ee5b1f95..39a82a73 100644
--- a/chrome/locale/zu/torbutton.properties
+++ b/chrome/locale/zu/torbutton.properties
@@ -1,7 +1,3 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
torbutton.popup.external.title = Load external content?
torbutton.popup.external.app = An external application is needed to handle:\n\n
diff --git a/chrome/skin/torbutton-update-needed.svg b/chrome/skin/torbutton-update-needed.svg
deleted file mode 100644
index 654f5ef1..00000000
--- a/chrome/skin/torbutton-update-needed.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g fill="context-fill" fill-opacity="context-fill-opacity">
- <path d="M7.06561268 5.02241519C6.77772045 5.2116121 5.67952408 5.90554501 5.6853992 5.90178938C5.35790364 6.11113858 5.09635335 6.28354515 4.86413018 6.44457064C4.45268439 6.72987059 4.15887546 6.96359333 3.97499388 7.15193679C2.95731966 8.16499644 2.66333288 8.97771922 2.77290903 10.3548433C2.86347409 11.8242645 4.01769529 13.1628244 5.73360996 13.7141752C6.42393225 13.9308094 7.08993386 14.0 8.24418607 14.0C9.69409954 14.0 11.010192 13.6175745 11.8475477 12.9475461C12.7611494 12.2214478 13.2954545 11.1244618 13.2954545 10.0058997C13.2954545 8.86286776 12.7876949 7.76058164 11.8769727 6.9600938C11.3838667 6.53505399 10.722397 6.11798563 9.75901067 5.60447735C9.08955454 5.26286683 8.4719792 4.75203246 8.02479915 4.11379651C7.77978416 4.4739196 7.45874047 4.78154253 7.06561268 5.02241519C7.06561268 5.02241519 7.06561268 5.02241519 7.06561268 5.02241519M13.1898674 5.45132743C14.5364638 6.63126844 15.2954545 8.28318584 15.2954545 10.0058997C15.2954545 11.7286136 14.4874967 13.4041
298 13.0919331 14.5132743C11.7943039 15.5516224 9.98251962 16.0 8.24418607 16.0C7.16690894 16.0 6.1875661 15.9528024 5.13477254 15.6224189C2.71089901 14.8436578 0.923598318 12.8613569 0.776696891 10.4778761C0.629795465 8.63716814 1.07049974 7.22123894 2.56399758 5.73451327C3.32298828 4.95575221 4.88993683 4.05899705 5.96721396 3.35103245C6.50585253 3.02064897 7.06897466 2.02949853 5.99169753 0.16519174C5.99169753 0.16519174 6.21204967 0.0 6.21204967 0.0C6.21204967 0.0 9.41939748 1.27433628 9.41939748 1.27433628C8.97869321 2.64306785 10.2518389 3.61061947 10.6680596 3.82300885C11.5984353 4.31858407 12.4798439 4.83775811 13.1898674 5.45132743C13.1898674 5.45132743 13.1898674 5.45132743 13.1898674 5.45132743" />
- <path d="M8.27272727 5.0C8.49625435 5.67889606 9.03172133 6.21869701 9.63636041 6.5268042C10.3279607 6.89485621 10.8036714 7.19446079 11.1684763 7.5087455C11.8759239 8.12902347 12.2727273 8.98864463 12.2727273 9.88278877C12.2727273 10.7655864 11.852758 11.6266312 11.1353943 12.1959748C10.4876507 12.713565 9.5005326 13.0 8.42423809 13.0C8.37244863 13.0 8.32197458 12.9998006 8.27272727 12.9993871C8.27272727 12.9993871 8.27272727 5.0 8.27272727 5.0C8.27272727 5.0 8.27272727 5.0 8.27272727 5.0" />
- </g>
- <polygon points="5,7 9,15 1,15" fill="#414141"/>
- <path fill-rule="nonzero" fill="#FFE900" d="M9.78067261 13.96561722C10.0020131 14.40856238 9.97819173 14.93453755 9.71771774 15.35566142C9.45724375 15.7767853 8.9972698 16.03299087 8.50210118 16.03276007C8.50210118 16.03276007 1.42710118 16.03276007 1.42710118 16.03276007C0.932880889 16.03225088 0.474029854 15.77633171 0.213899592 15.3561101C-0.0462306709 14.93588849 -0.0706843715 14.41106384 0.149244037 13.96847436C0.149244037 13.96847436 3.68710118 6.889902932 3.68710118 6.889902932C3.92904842 6.405811394 4.42377158 6.1 4.96495832 6.1C5.50614506 6.1 6.00086822 6.405811394 6.24281547 6.889902932C6.24281547 6.889902932 9.78067261 13.96561722 9.78067261 13.96561722C9.78067261 13.96561722 9.78067261 13.96561722 9.78067261 13.96561722M4.25067261 8.88990293C4.25067261 8.88990293 4.25067261 11.74704579 4.25067261 11.74704579C4.25067261 12.1415349 4.57046922 12.4613315 4.96495832 12.4613315C5.35944743 12.4613315 5.67924404 12.1415349 5.67924404 11.74704579C5.67924404 11.74704579 5.67924
404 8.88990293 5.67924404 8.88990293C5.67924404 8.49541382 5.35944743 8.17561722 4.96495832 8.17561722C4.57046922 8.17561722 4.25067261 8.49541382 4.25067261 8.88990293C4.25067261 8.88990293 4.25067261 8.88990293 4.25067261 8.88990293M4.96495832 14.78276007C5.45806971 14.78276007 5.85781547 14.38301432 5.85781547 13.88990293C5.85781547 13.39679155 5.45806971 12.99704579 4.96495832 12.99704579C4.47184694 12.99704579 4.07210118 13.39679155 4.07210118 13.88990293C4.07210118 14.38301432 4.47184694 14.78276007 4.96495832 14.78276007C4.96495832 14.78276007 4.96495832 14.78276007 4.96495832 14.78276007" />
-</svg>
diff --git a/chrome/skin/torbutton.css b/chrome/skin/torbutton.css
index 669e05e5..fff1714b 100644
--- a/chrome/skin/torbutton.css
+++ b/chrome/skin/torbutton.css
@@ -1,50 +1,3 @@
-@keyframes blink-update {
- 0% {
- list-style-image: url("chrome://torbutton/skin/torbutton-update-needed.svg");
- }
- 100% {
- list-style-image: url("chrome://torbutton/skin/torbutton.svg");
- }
-}
-
-#torbutton-button {
- list-style-image: url("chrome://torbutton/skin/torbutton.svg");
-}
-#torbutton-button[tbstatus="on"] {
- opacity: 1.0;
-}
-#torbutton-button[tbstatus="off"] {
- opacity: 0.4;
-}
-#torbutton-button[tbUpdateNeeded="true"] {
- opacity: 1.0;
- animation: blink-update normal 1s infinite ease-in-out;
-}
-
-#torbutton-button-tb {
- list-style-image: url("chrome://torbutton/skin/torbutton.svg");
-}
-#torbutton-button-tb[tbstatus="on"] {
- opacity: 1.0;
-}
-#torbutton-button-tb[tbstatus="off"] {
- opacity: 0.4;
-}
-
-#torbutton-button-tb-msg {
- list-style-image: url("chrome://torbutton/skin/torbutton.svg");
-}
-#torbutton-button-tb-msg[tbstatus="on"] {
- opacity: 1.0;
-}
-#torbutton-button-tb-msg[tbstatus="off"] {
- opacity: 0.4;
-}
-
-#torbutton-checkForUpdate[tbUpdateNeeded] {
- font-weight: bold;
-}
-
svg.circuit text {
font-family: Arial;
}
1
0
[tor-browser/tor-browser-84.0-10.5-2] fixup! Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
by gk@torproject.org 11 Jan '21
by gk@torproject.org 11 Jan '21
11 Jan '21
commit fa611cfab0b3f322c88cb32a7e13c4c8e655868f
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Jan 8 20:40:43 2021 +0100
fixup! Omnibox: Add DDG, Startpage, Disconnect, Youtube, Twitter; remove Amazon, eBay, bing
Bug 40288: Fix search engine order
---
toolkit/components/search/SearchService.jsm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/toolkit/components/search/SearchService.jsm b/toolkit/components/search/SearchService.jsm
index ab40fa57b29d..e542f4216c5d 100644
--- a/toolkit/components/search/SearchService.jsm
+++ b/toolkit/components/search/SearchService.jsm
@@ -1060,14 +1060,14 @@ SearchService.prototype = {
: AppConstants.MOZ_UPDATE_CHANNEL;
const engines = [
- { webExtension: { id: "ddg(a)search.mozilla.org" } },
- { webExtension: { id: "ddg-onion(a)search.mozilla.org" } },
- { webExtension: { id: "google(a)search.mozilla.org" } },
- { webExtension: { id: "yahoo(a)search.mozilla.org" } },
- { webExtension: { id: "twitter(a)search.mozilla.org" } },
- { webExtension: { id: "wikipedia(a)search.mozilla.org" } },
- { webExtension: { id: "youtube(a)search.mozilla.org" } },
- { webExtension: { id: "startpage(a)search.mozilla.org" } },
+ { webExtension: { id: "ddg(a)search.mozilla.org" }, orderHint: 100 },
+ { webExtension: { id: "youtube(a)search.mozilla.org" }, orderHint: 90 },
+ { webExtension: { id: "google(a)search.mozilla.org" }, orderHint: 80 },
+ { webExtension: { id: "ddg-onion(a)search.mozilla.org" }, orderHint: 70 },
+ { webExtension: { id: "startpage(a)search.mozilla.org" }, orderHint: 60 },
+ { webExtension: { id: "twitter(a)search.mozilla.org" }, orderHint: 50 },
+ { webExtension: { id: "wikipedia(a)search.mozilla.org" }, orderHint: 40 },
+ { webExtension: { id: "yahoo(a)search.mozilla.org" }, orderHint: 30 },
];
for (let e of engines) {
1
0
[tor-browser-build/maint-10.0-android] Tor Browser 10.0.8 release preparations
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 5275ae4dfcda4a21169c456cd21f92f8764b1509
Author: Matthew Finkel <sysrqb(a)torproject.org>
Date: Thu Jan 7 20:40:23 2021 +0000
Tor Browser 10.0.8 release preparations
Version bumps and Changelog update
---
projects/android-components/config | 4 +-
.../gradle-dependencies-list.txt | 4 +-
projects/fenix/config | 4 +-
projects/fenix/gradle-dependencies-list.txt | 358 ++++++++++-----------
projects/geckoview/config | 2 +-
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 8 +
projects/tor-browser/allowed_addons.json | 212 ++++++------
projects/tor-browser/config | 4 +-
rbm.conf | 2 +-
9 files changed, 303 insertions(+), 295 deletions(-)
diff --git a/projects/android-components/config b/projects/android-components/config
index ef74fce..1d441d3 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: 67.0.11
+ android_components_version: 67.0.17
torbrowser_branch: 10.0
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 12
+ gradle_dependencies_version: 13
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit before support for new GeckoView interfaces gets added.
fetch_gradle_dependencies: 0
diff --git a/projects/android-components/gradle-dependencies-list.txt b/projects/android-components/gradle-dependencies-list.txt
index c0a3ea3..186a727 100644
--- a/projects/android-components/gradle-dependencies-list.txt
+++ b/projects/android-components/gradle-dependencies-list.txt
@@ -408,8 +408,8 @@ b3836516ae7c9f1ca38ce636e24e3d10b2b421d94e344f14033daa5f20df3168 | https://maven
17a1138b7366e606664909f85462a9496619d2e3c4cdf732238e3ca104678b6f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/84.0.…
1c31f1578080c35980d5b4b64bc19304f72de57c3b106390efa4e32e6a71b6f4 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/85…
fe749823ecc6db346ce5b569c0f6db253389deb94388d401dbaf41b541397120 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-nightly/85…
-4f1c693d09c087276a59a63f3a1482ad4be9101bdb0646d9ce151d187a6e0ac0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20201…
-d2a4dca050e10480e9f98c8710542f3252dad61b61b0f5d2fdb1db6a2e9ac9fd | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20201…
+fcdfe4029a5f82ac8a86c6452e3f5b57994bb1025ebb8143c12a436a7f07d359 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20210…
+fd621684f18690a812c81438e100d5d5b9d67fb912f243d9e7625ffd691ee672 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20210…
e3b779d5f79c8012d62d3e43bfc2d577ca65439bcf7181c8ec333d0f3fc76890 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
6e0b82e4ed2fec26de9c9e68d6fa237d716177d9f9e7f6b1213699d7f55e73e6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
5eb5d86577ecf64ba66df368c07dde772d1e82da63f25d73e63118d261ca7a7c | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/fenix/config b/projects/fenix/config
index 0224e71..7fa5dda 100644
--- a/projects/fenix/config
+++ b/projects/fenix/config
@@ -8,13 +8,13 @@ gpg_keyring: torbutton.gpg
variant: Release
var:
- fenix_version: 84.1.0
+ fenix_version: 84.1.4
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
container:
use_container: 1
# This should be updated when the list of gradle dependencies is changed.
- gradle_dependencies_version: 14
+ gradle_dependencies_version: 15
# Switch to make it easier to grab all dependencies during a dry-run.
# Note: Use the commit that integrates Tor.
fetch_gradle_dependencies: 0
diff --git a/projects/fenix/gradle-dependencies-list.txt b/projects/fenix/gradle-dependencies-list.txt
index e056e9a..5a13d6d 100644
--- a/projects/fenix/gradle-dependencies-list.txt
+++ b/projects/fenix/gradle-dependencies-list.txt
@@ -338,7 +338,7 @@ f6b9fe1101896f068d64bcad7b5927cbab59c5ab6b7efe96e72139d68ecc27f5 | https://jcent
256ff34118ab292d1b4f3ee4d2c3e5e5f0f609d8e07c57e8ad1f51c46d4fbb46 | https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.8.7/j…
0d8f415d56320fbe3883ab7adee73bbb2c9a69c2a49af3608fd6b1efa15d8b5a | https://jcenter.bintray.com/com/fasterxml/jackson/core/jackson-core/2.8.7/j…
3b51994c1a3a29c2c89728226c0be14b69888a1bb0ef311f8d65904cdfbd9358 | https://jcenter.bintray.com/com/fasterxml/jackson/jackson-parent/2.8/jackso…
-e4610d4b73b116756a848e0cb67461775a62ab59d0ea1d46372b77709b59c0a1 | https://jcenter.bintray.com/com/fasterxml/oss-parent/27/oss-parent-27.pom
+b9b8f388fd628057b1249756468b86726c8fd5816ce14d313cb40003a509beeb | https://jcenter.bintray.com/com/fasterxml/oss-parent/27/oss-parent-27.pom
def9b4225fa37219e18f81d01f0e52d73dca1257a38f5475be9dd58f87736510 | https://jcenter.bintray.com/com/github/gundy/semver4j/0.16.4/semver4j-0.16.…
32001db2443b339dd21f5b79ff29d1ade722d1ba080c214bde819f0f72d1604d | https://jcenter.bintray.com/com/github/gundy/semver4j/0.16.4/semver4j-0.16.…
cdf16ef8f5b8023d003ce3cc1b0d51bda737762e2dab2fedf43d1c4292353f7f | https://jcenter.bintray.com/com/google/android/apps/common/testing/accessib…
@@ -468,7 +468,7 @@ f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e | https://jcent
6d704e450a816a45bce806ba22c22fe83d8e8dcf7a71517603de630a1726809f | https://jcenter.bintray.com/com/sun/istack/istack-commons-runtime/3.0.7/ist…
6f83d3c85fdca9ef24010cb2f652aab1a508bff6331c087b60d0301782b78c6f | https://jcenter.bintray.com/com/sun/istack/istack-commons/3.0.7/istack-comm…
c2204f54b43593808c9af6502865ee71679823156dabdef341e71d35662c7aa0 | https://jcenter.bintray.com/com/sun/xml/bind/jaxb-bom-ext/2.3.1/jaxb-bom-ex…
-8b7d9154594e5b0e2bf1d9de6d2ac8dc7ae84179dfeb571299ce343292e9ed12 | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-par…
+f699ef37ec7966e284742dfca83075221179041a9a49aef7991280192604462d | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-parent/2.3.1/jaxb-par…
b56383eb4d43498b145d379e2a93d5fcdcd8ff9291f89b58b82cb91658dbf14c | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-runtime-parent/2.3.1/…
7a8473e935504841c606686d84e9c017a739ac2c144fde687aa003a7dd44de7f | https://jcenter.bintray.com/com/sun/xml/bind/mvn/jaxb-txw-parent/2.3.1/jaxb…
785861db11ca1bd0d1956682b974ad73eb19cd3e01a4b3fa82d62eca97210aec | https://jcenter.bintray.com/com/sun/xml/fastinfoset/FastInfoset/1.2.15/Fast…
@@ -538,9 +538,9 @@ aafe6935d6bedb89a6aa32563d441fbe305da1de193d6f71a45a0212acf9b756 | https://jcent
2b9f3497218b32c399d1ecbea0b00d4f4553edcf669919ed1e1a87daa77acf87 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.aar
5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar
5fe81b0255978f24616d37b10608b79498a5f3073e1d9b2038d8736a831f2608 | https://jcenter.bintray.com/net/java/dev/jna/jna/5.6.0/jna-5.6.0.pom
-5b936f6757872c1b901cb821001652eda746e3b6cffef9c434443534a96bfc9a | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
-8fd3e207f5edf3a446b55f5a6136725e3f7b0ac572d8bdc3067431815887a676 | https://jcenter.bintray.com/net/java/jvnet-parent/3/jvnet-parent-3.pom
-3bc67852756cc2d3e04d8636f3af7d142464ff5bb43c2eda9c32b085be56ac19 | https://jcenter.bintray.com/net/java/jvnet-parent/5/jvnet-parent-5.pom
+281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf | https://jcenter.bintray.com/net/java/jvnet-parent/1/jvnet-parent-1.pom
+30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a | https://jcenter.bintray.com/net/java/jvnet-parent/3/jvnet-parent-3.pom
+1af699f8d9ddab67f9a0d202fbd7915eb0362a5a6dfd5ffc54cafa3465c9cb0a | https://jcenter.bintray.com/net/java/jvnet-parent/5/jvnet-parent-5.pom
26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092 | https://jcenter.bintray.com/net/sf/jopt-simple/jopt-simple/4.9/jopt-simple-…
f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcenter.bintray.com/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
@@ -548,7 +548,7 @@ f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2 | https://jcent
75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907 | https://jcenter.bintray.com/net/sf/proguard/proguard-base/6.0.3/proguard-ba…
cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
-dab8d3d71fecb6edb4cc62fcfdd969744975a773b18e09581c63e9a9929dbb3f | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
+5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57 | https://jcenter.bintray.com/net/sf/proguard/proguard-gradle/6.0.3/proguard-…
d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0 | https://jcenter.bintray.com/net/sf/proguard/proguard-parent/6.0.3/proguard-…
5358b478d82555ab57afd7fc7231d603b40f977be7ca39f40c5ec54e767eb674 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.2-1/antlr4-master-4…
401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4 | https://jcenter.bintray.com/org/antlr/antlr4-master/4.5.3/antlr4-master-4.5…
@@ -577,7 +577,7 @@ c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7 | https://jcent
7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855 | https://jcenter.bintray.com/org/apache/httpcomponents/httpclient/4.5.6/http…
b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-client…
61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136 | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-core/4…
-3b9ff4e8f7788fbbb3e0011b8a9098e8acf6815709c913aa3d027dfa3a799b3f | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-parent…
+caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa | https://jcenter.bintray.com/org/apache/httpcomponents/httpcomponents-parent…
78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b | https://jcenter.bintray.com/org/apache/httpcomponents/httpcore/4.4.10/httpc…
0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e | https://jcenter.bintray.com/org/apache/httpcomponents/httpmime/4.5.6/httpmi…
@@ -867,180 +867,180 @@ f452730e5ef848c766f50c947da9de88d710ab1404928ba14d2d0a009b4f9446 | https://maven
5e111cc168f358063e9eb0b818bb5713dcb611626785b48a56530f3859028936 | https://maven.mozilla.org/maven2/org/mozilla/appservices/syncmanager/67.0.0…
1711bd6a0be32d1912b3d3580cd4eed193fbb9a8a56485c758191d13b46b04dd | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/67.0.0/tabs-6…
6dc1fac81215b05b347e343181cd691a0c27cb34465ed2ea818785901616408f | https://maven.mozilla.org/maven2/org/mozilla/appservices/tabs/67.0.0/tabs-6…
-25c59641360e86e905e40a9090019271e2302f60f03ca352d061ec44540dab26 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-26fa4c822ba63737e487cb3eff1e45938b8f0b73695f83bcd8c48b272e563648 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
-96ba207d21b7f3ea35ed0d73e5a9ddc75235b7f047977fd862b653352b1f2561 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/67.…
-823db060c0e9ddd4f22d6bce2c14227c2a3037fedf0441448fe6edf38373f026 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/67.…
-ea17857284b52298c4501f2d10dac9ae8b6a1a320cb48c928d71409b67158cfa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-daebb872b2048ca9f7da9e868f056a4859d33016a95fbfc73db9533529126719 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-4afca95f507ad4236cf5565ff938c1843a61481bfe52f0f7ad41cd30b4a60ee6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-3a36e9ccea98d4c2d754327edb2e3fa1d6636bfdd7532da10a13b3b1c2011233 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
-9ca40858447f144afa05f3596a277f04361bfe4e624fdfad1025d39e92507de4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-375e0ee17d03b8a5e1d6e19559b9080943cc64557567079675f30ccc0c9d27ae | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
-4c61c6aa8fbfd1eaebe7c609ff9cab2406e5ce7269230714fe110a8b0461e3f4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/67.0.…
-23be347301c456a5c6c938c12cc385e2cf575623a813798ca6452cc8cdcc87e0 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/67.0.…
-f06cbbe8006cf33ce2f28ea0c2e3478958912c01a9c68352c23dc6569b1012b3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/67.0.1…
-fe57e3f9b11279a361a46c51c28e3b671c9358e587882f2c4a5f9e752f989d60 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/67.0.1…
-2383a3dc9be6be17e8472f6677341690c5ed069abfb804afba1b133a8dfc8ed5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/67.0.…
-e510e38bf330f23e782b19e084752e23e5d8f01b4257afa9087e5a327b495075 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/67.0.…
-a6d2548dff81a90dc4cd7d52fe2c392f9f7c4c650cc5f80b1210d2f67585a3b1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/67.0…
-7703c298ebaf57f5bb0f14912edd5c38a881edc63156534d3734406b10c0eb10 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/67.0…
-23bc024422ae879abf87c8962aa29ee58b2d670b83ae34237c5e27fe1ee468a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/67.…
-a4d8d6d8a0e7a8a83a77a25769f8bffea0b7eb39318eeb3df9bfd633c5bed923 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/67.…
-849fe2e526cd59e913d3611e43c3a1dc82bdc53e79280a739e4cb4015845e778 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/67.0.…
-2d8bd41243426251581c9ee6d53d006ef18fe65b0474f1f537a11dfe01acf6c7 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/67.0.…
-3c7b13d321b57f65e3975d83b272e49dabad0960f75296248f4341a103f4558e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-cb5db6e80de4d125db66b306ab716882af74d7c28898039ad7bc609882fcc173 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
-674a6c6d869d9c40f7204480adc30e9856be4064499f9695ecf7e7229cff8b0b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/67…
-208cace4e68eb88a03063da15d2600f75e57da01f45791c71cc69fb79401f0bf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/67…
-204e3d12c42f9445d41c6b8614f7edda70f5539e57189e320433980f287ca003 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-3a14ba982fbb2b328a9b96faf23525b5537d1ed250908fb1c97da583dfceb9ac | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
-dfdcbe8ef7c4098893bcf93f80a0d104ac9a16ff81cd7420688d227a7a8e1eb5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/67.…
-b6fcbad8bb5c949d4e0c3b76ecbeb6a11aac669a7042562fb3328440483fd770 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/67.…
-c09772c9db564df7cd0d6dbadd4daf8cb5181a807ad638cecd34062fd55c1bc6 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-0ada47b81cbaef285b9ecd3af1a171c99d60bcb81e8ed3f4ffe916ff56c2c700 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
-5006d332c326fb87d1f4947a4abcd3c1e41067749e80d508423f3ac0cb7ab416 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/67.0.1…
-681621444aa033559b07fe77211fb573c31369137375fed94b25d8e45998f1c0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/67.0.1…
-507dc2a1ca48bff8ec3228a5ed5df548dd5b7ce3d1ef6fa31905d53d89b7bad3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/67.0…
-5b825d4ddb35dbbbc1b138991b3d2a6e38ebb26469972b5148be66df83808368 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/67.0…
-75803108b7b13901438ff14ce02b4ac80311424db2a78a88358268020478630e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/67.0.…
-83eddcd029534e8847e48f52b2d9eefe0f4718c9a260875d6bb37bd789b631cb | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/67.0.…
-e9b778eb8417871e1ba8ac7ed81299a640b0100f646ee60171d3d57c32d6ddb2 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/67.0.1…
-f0b12b05cd390f33428dcb6d491d24c3162a053de9b617c5be4ccfd92b4ce15a | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/67.0.1…
-834ade77fd0fa0f314317ea9b78fe154143a98ef3b106cd7f363d9bf24b9929b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/67.0.1…
-0187f490647fbbef6d738c5f152fed484d49d074c9c653c1cbc3343090c98f28 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/67.0.1…
-cf426a1ee8adf7b0f2ebc718465a3e472286dd5db738b0ca26eed426a4024941 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/67.…
-4083de8271579565321ade6b98d23decf00aae00be56073959d6b25819f17185 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/67.…
-24f61489d53a29ee053e78b599adc346278b7983b54f2f0179fd64404a7ab845 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/67.0.1…
-8f02a73fb3e7a804d5a38fee1cd36349472e270e245a0fc7e5b36a9f5992b505 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/67.0.1…
-1ef9759642b7ce7554e742a53b2806f55be71963322434d3a6d1e963eacf9319 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/67…
-22b093c63f6c17c6ec172ac6ce84092181ea92b317abce86cf3752cd99337eeb | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/67…
-2ee2349b44bd1db87ce3625b681d5f0df911824204dd232dec1d04c8449a877f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/67.…
-873e40dc0f0fde33a3b1b7a8fef8480ca396ba03e88ebac3bcc21249e1f48f61 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/67.…
-a9c766d100584596cb873d2b2ba26489b7ff8a50fd138fe8957c482f93026b4e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-f43c0a2870b3c7466efc4385bdae0df8e44982ace7aadc11ea5ba2c3d9006396 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
-fcf74d07edad7c7a8ca214d52ca088bce0284c982c04883ea1be7bf4b1a0c202 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/67…
-2732ba8c21b91bebe5c6d91be0dd743c7c6ff45c5d372fac94b7ae04656ef638 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/67…
-aea7c498ae92c375ffebe6e1ce6a706cc32eb5c9f24705b3c8f4bcd503478262 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/67.0…
-4ed00abf3a99e09cc14dac6e20014372042ce171eae609b7e4d6c84175581a30 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/67.0…
-63cb16f5891abf1b5ed30ce0b860de7f8b8606694517f2743aa572d50e2fcb2f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/6…
-32c0049fdd53b941549b57d88714e9e880ebfdef2ca637b9c91f1ffb77b4c86b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/6…
-bfc287a7e7607b1bee40a974f514fdbdcc52ebf3248f78edb1daab1a63e695ea | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-b640fa8c30fe7490b34f25573ac2c3576f27d9014a7338a3d956be3781aa2605 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
-1dcf95e9ca2f7e389bc93c9a1c29147655b033dcfe39cd4a718d5401d2543874 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-09b1ca7455b4b0aebbe3914dc68e80b27c0615cd781c2902db56d8342e72dd2b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
-def90a5739ba30e16f9d4600b8887bcaed14163382969933c785b5cf64f61bff | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-4c20fc45b761d8242aca1581a3eedbeff343a803e0c6774b1309d718e5d3cf15 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
-3f3eea48ae0d8908039eb1fea6fc17c4ca89276b8b120a7a8e7335befe036aee | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/6…
-feac97b1359465f17692e776d392e471cce56c00a75ad9316b96f5f70c6dafdb | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/6…
-67fe1ad12f61682f021d483a38588100c4d7c48f7af712025fe42e00cf9eb9e0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-7ccc2a59d0f44c7bf51d1c485a0bbc7acc82aa69472ffabde1496de25a37061c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
-09adc360f1fbe93c969ddb53ce8020cdffaebf2ae718c49c7410f9cf491aed70 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/67.0…
-d6810dc7a8c52602474852ae77cab46a29a8af6348cccab4e40cd78563a31e7c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/67.0…
-f079f3d751d3b0d66ee3916a9ac504b97cc6c54e0ea986ec0155cafb5d822ecf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/67.0…
-54c4f7976fd695f47e0b954f73b602a31a488a1e9e683e39c647f91d052e3c7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/67.0…
-9d489c8293994dd890cde36c91c1717f27aa952ab4cadeedd6564e63fd2edb52 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/67.0.…
-a9b6e0f79a21d249b693343ec655733820ff91d873dbfae4a30fb27493b7c57f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/67.0.…
-e2085a8454714aecba181bae66aea8a337b5ed2d1f0af61d8d9908ac1ef40719 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-6af2efb8075f3bfef8c598a44fa5adb94136f1e466b552f3c955620eb44d2b7e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
-3a89973a27026315b8bb1a3330302482946d84646b3183a0d7b7fceaa588b06a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/67.…
-91f2fd0c8ccab4eda9b92fe469248a2f842c85f1e48bbc38f5d9ae97f3d2837d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/67.…
-b9995057f720ca059565f867cb338ed9e3f93daa1ffd5e2fc703fb061587a672 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/67.0.1…
-fec0b8987627ff5307c29dc755015d3e557a2b3519dc0ffbf5d600ff5ae7091c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/67.0.1…
-bd12f7415a925c7f60a064bc98a5184270d7cb63c67da99c8cc5123d5735655f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/67.0.11…
-b7adc52a25080928230746b66bb71ea2af9772049592e5d1e4ecc7f815a42b75 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/67.0.11…
-b697e48bf80ea7fc59c464f91c43cf7440ff0b911854c05b6766bf4dac7a166e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/67.0.11/…
-ef27aec005e941c12405d67cd1895646a140d475eb625731fbc44dda7019165b | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/67.0.11/…
-cf21c79f7b54560980d5ed7b3d211170b6417d01a0e7ea97305beb8c7bf13f62 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-42f67407470dfd935316b7b08e8a677fc9fc15c6ab496128f89ea72eca8e545a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
-902657370d70dcc9553ed466116763814e1f1f62a8232554331717c6b0cfa586 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-9580fcd37d7a4a6113ee9ee7107c24b0835026fab92b1eaf5475561da824e015 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
-589932d534b810fbd1561e2a57faf36b171bfc18c3a7afd118050dae97e15304 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/67.0…
-4b765b8e4d4b4aef42a6613131cdaaf584f7ad1016d220ed8f4c7946658ea31e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/67.0…
-7bc161e61e09f2c7f781f585cef0209e6169d05440008265566a139237e5abc2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/67.…
-5e4018e1c6a2646ef0db701a655eabce4f3727cccaa69246c71293a611b06c61 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/67.…
-692871cf1d65602814a0372024d1b8e6f1d22e9a86b72e4e0cc13573db42328c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/67.0.…
-6891f2f42e35b96306e5b85db2316fd147d0c55b6b77ccd8f5a631296666eb4c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/67.0.…
-9ab0b6e5cf355e848c414c5a54005b3de71574ab3e3f4a0e914bfecd420dc1f5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-673e24c4c961d2da8862e255f398d87761a5b759b5a4bee6bd164638d6ba1b81 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
-b73ef22574f01ef481dceade81712cab2e56d3cbc09d0246821e5e41e475da66 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-e070132a4232f9e14fcd847c3a0e076828c49487068e59a3c72f1a25154e719f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
-f246ee2e74950e626a19fb95f9643b5d43083bcb203a459e6c8880b63531a7f0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-e9713b4fdb89f11035b4fcdfd11ed2bcba5f853769b1fde4189aa53f0860aa99 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
-ffc4768830f59f1ac414710987126a653d004643b9a14a8b3ae1de4189741933 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/67.0.1…
-4706ab6bd98496147839def148ba6422c90fe69a3de771e649c150bdc3e7fba7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/67.0.1…
-f84df79bea8cc25aee7aeee6ebe244d8b14bb2163b4b6b6c2a1c661afe19e732 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/67.…
-deec4f8661ca1b6f785f46d0f6ed8af2c4fe64a20bfb46946ab67d82a69316a7 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/67.…
-c28e796682dc457a6109d8bd273dfb1ce68366ba46a72cb887ca456e3fc0fa1d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/6…
-0080047579bb7b58971d5422940592e28614b8c4dab6fbe26f11810911a23e95 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/6…
-18fe05d36d86e945e92eda764d4415c083947c016b3031a97f89e66e2bbb9f7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-d61dcf6eaa317af904316c54d5b7024b6bbae6f9410aae1262f2a1baa7414c01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
-1f8ecaa48ef1843e636989d84f3769147ed3b19dabaa4efe3e1b32489fcf0652 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/6…
-a582bea37aea16e7a94ba96c8aca7a54e7b147693c9e53163a63ce7160af7ebe | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/6…
-ea4903938465450c3097137058870e85fadeb2eb734caabd8491802537e56828 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-bc23a9aa06d37f703cf98832de9ef1c02e2fe903da397feed3683070c2438e48 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
-5e27a17ff7d865a1ea938bfe7246fb21a6f42aeff74cee207f6b99c237889e21 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/67.0.11/l…
-9c0a69efb3c3b37ffdcb6811b3af1e9d4b099734f7d2830167fbd69d888aad3f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/67.0.11/l…
-e835eb35d3e68f41fc4a79b523a6af00771597141bd78927d935c72903a664e7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/67.…
-178067278f9417aeddf5dbb336d551d2bf33fcab7222d2f368d1086f4d18dbe5 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/67.…
-cdb76c949037596ebf0a2f56e0b9f79a0928dba59e6d171117bc636ef731f7dc | https://maven.mozilla.org/maven2/org/mozilla/components/lib-fetch-httpurlco…
-93f75a55192eed0cfbac2e09965b3df02aa6885d2bb5c08b866e38ad3277fc0c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-fetch-httpurlco…
-53c615db89715f6a42f43bcdcb43c7b7d8148bde508218db0999e3e9494b696f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-bdc8ddddf8f0847a89a76f49514cd2561db45a45205aa614ff4c9759da75e33d | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
-8bfc995efddaf301105beb06d50da9c5c69330a4a220948a1a0ad231ce50bf6c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/6…
-6b4ab19c5b3429b0dade4e348b26892551390d2e1d600e33eb06badf8622c4c3 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/6…
-e7c770375bcc89845f72310e80c50d3ae4cf2be0e18975a503ed7d95d695f926 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/67.0.11/l…
-37920cac44551d0b9748b1967876b0642dc139ec87e1c4e44eaf42a639bbe2b1 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/67.0.11/l…
-68a674ded1b29ffbb61b8616c31a981dab92202b6a97a56d2c751a4eaef352bb | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-69195e1b47ee34d703d1658a27da675e42d4a0bdbd47f2c75a17306077b4a2d5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
-e22536ae6bdd9d02b84b8283cdd2aabb1404a4730bfdf96a7752b775074fb974 | https://maven.mozilla.org/maven2/org/mozilla/components/service-experiments…
-46d61d116a9b6d3a08d71c4070e830c15220e0d854e73b223c65df2629109fab | https://maven.mozilla.org/maven2/org/mozilla/components/service-experiments…
-c7900847afc7ce7c8bf54ef3835959383a4025bc727a0781c038ee6c4b7ef17d | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-2e0264cf3a4d638fb064d987efe28f13b7bcd7572c639a014f7d2061f0769498 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
-377092988061736b0a6e8ddfd243fb9766598724abe0153767310ad2b0be86f5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/67.0.…
-867ad69816e4f1ca46b5ae3d5c807d4d4b414fd2757759263decd5a0ea237979 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/67.0.…
-6d67c3dfaccd88efd1cc9dd05a23f8830fa3ccbd0066aa9a1c77d4ad72ff71df | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/67…
-1feed75a6ac1d5663c9c30e64dff193d74521fe19249ca6b291049b1d5d28906 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/67…
-9fc2bb91cc32089f66358a4c2f323528d8bc6830901f813a1fdc85d800601b2c | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-37f4b07401ddd4850fda30c2131b451ea5145c0cf49b2fc6fc62c62c10310126 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
-19f5cd9fbc3d5c02413cd3403cbbeecd1a97330f78d2225e70471760f05f60a0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/67.0.1…
-bd460b7d4b3016316a87fd44cf253a6bb33592e06f8e6b862ad4910003c811e6 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/67.0.1…
-7272f578bb978856a612c4fbf1c503d3dc04a63ae45ac026b4c4f5492a70ef53 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/67.0…
-f59b009179751b286a98cebd44aaa75eb98c1f6b142449abbeab981f91a5bc9f | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/67.0…
-763c945ac479edc0b041efb6c1f8682123390bd8fb683be8241346e7ea330435 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/67.0.11…
-d704c151300533795c2c0aa719a4ae21098919e948f0455e9015a13977284bc2 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/67.0.11…
-560878e125f97cbbbac124c227b0a3db56f253d3b9c3f071af07a12f4def7189 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/67.0…
-c1e1bfa84abc8bd45b7c9e15b2e97e89349586cad7cfb935abb5f017667dd194 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/67.0…
-54ee42f4494b7c1f3ce24b1253468a348640ab2c717b7083dc94ccf6270d330c | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/6…
-ff2ca14cc282818c583134f2e8f709aef95181d61419702ca8eb5546a6c82916 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/6…
-8639a7b017f074538e46405e947de42614f512bf154c0e10bb823033a399fec3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/67…
-afd142d48b68e82a31b732d589099dcebefbf322d3632fb768fc169b5647bfb5 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/67…
-46804b487bf00a7e96fc7cfe0f256caca8844efd4ba442e09202f2ec3f0a1002 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/67.…
-b3866b83ff48499065f0424bcf015a114e53d53ba8190a7319523ef130e61328 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/67.…
-73e17b5e48a21d9882ec81e4885dc7681bd942c192f2ccb58856890fa94479e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-943a7de93604a30ad26e876146ae997803eecc67ff4c244e74bda489508e458f | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
-2221c6d5aefac39176dbc8622f043a3fc3da8d80e25c6d232b1ff949ee8588b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/67.0.1…
-4e93773477c087ab60276d44b196a0034ba8a410cf8ae81fc918d8bf64720cac | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/67.0.1…
-93fd44998bfeeab9d7137cb34a50d510876ec8362e988b8a4ddf4e1629a69e71 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/67.0.…
-5b9034043edf703c445b3521b1ec1dc4060a692812b3f867be111422dd6ba7a4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/67.0.…
-5aa43d65d89f547a28d090aa5e625a5ee96a3db6a6f1599680d4de306018d3d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-1576f7c1bf17e80c10fd66a400c92e248d78c4c43a5fcb079dbaf8b136f10a77 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
-9daf355353880543056ea13bcf5c0d3f3a8b7e47280b8277c46ec85ddd45fdd7 | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-74ee251d45239c4a12b3849ac40caa57e35268e2271456db5b34f02e139d20ca | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
-f7c3df3d22d806b190a58c7239114d2fca2740dd7db4cf788be74fbf8c5d5135 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/67.…
-197aacb6ae279ca8a595304fc4dba4241c718a500c05aa5e0b47c646f7986c40 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/67.…
-7ec7264a35b13382f84d701fab89daace99c6c8157c6fdc6d15da2361fb4f16b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/67.0.11/u…
-eb94fc183200e1397be9367031dcdb66b3827894e9a27c4c365aa390f701b8d7 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/67.0.11/u…
-e6905869f068713e39add5e743c7af6ace41ad8041a6ae328dec0fc0f888b039 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/67.0.11/ui…
-db61f8d97a91dd7461232bea0aabee2c566e7fb7d484a4b51431986b1b0cfa0b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/67.0.11/ui…
-cac7392d6bd136b460f365d392fec55c65ac38de79f2d19c5a79f5926627bf8e | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/67.0.…
-68b17ab7c5e6941e122bb69694f321e6fa86ade18b9b05fc87851e2bd123e0a3 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/67.0.…
-ea6635ff2bdbe7943dff10d1f32024ee28ab228fec232e5a9db1846d296fb82d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/67.0.11/…
-6b4013faeed9f346ad2929d71ade889a4e1c8fd5b7592485204ba8550595fd2b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/67.0.11/…
+25c59641360e86e905e40a9090019271e2302f60f03ca352d061ec44540dab26 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+e94c14d791c388d737cd64b67db413c863c36fd53b69cef8a0234b0233200444 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-awesomebar/…
+96ba207d21b7f3ea35ed0d73e5a9ddc75235b7f047977fd862b653352b1f2561 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/67.…
+e709a59fe2dab43d3f43c143ddaf89444b297ae4477c8c6f15ae38e04718add0 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-domains/67.…
+ea17857284b52298c4501f2d10dac9ae8b6a1a320cb48c928d71409b67158cfa | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+f7f1fd862b8ab86a745bad51b221748c138ddd16d08dd527c8f0692ef294d092 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+46257bac63637478d10442438ef9f21203ee1f288ec5840e9e5c29f1223c0958 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+131c59ba2a3c63e5d6f6466a21c1af1c76fa2f50751a31837f70e57d453ac47b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-engine-geck…
+9ca40858447f144afa05f3596a277f04361bfe4e624fdfad1025d39e92507de4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+5dc54b3e40614ccdcd0d048d416a0f2a1c50fb72e832682f187c40491f6dfaa1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-errorpages/…
+939370f5b4d219a7467595e261f02b2732ee7e0d7423d8093a3cee73cbed7b17 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/67.0.…
+ce8d3de36d90189e211a4429c48384e52af5c21fda8245d378b2571be16bd035 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-icons/67.0.…
+f06cbbe8006cf33ce2f28ea0c2e3478958912c01a9c68352c23dc6569b1012b3 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/67.0.1…
+2065582d3da5fd04c3037da9fac50cea00920a294dbb4917e98f87eff2a0c253 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu/67.0.1…
+2383a3dc9be6be17e8472f6677341690c5ed069abfb804afba1b133a8dfc8ed5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/67.0.…
+b2c3dfee961caad02d4a3e4d7d9b81cfeef38b5446d8ddf66240654dfec284c6 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-menu2/67.0.…
+a6d2548dff81a90dc4cd7d52fe2c392f9f7c4c650cc5f80b1210d2f67585a3b1 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/67.0…
+c5a42cc24950b51b29abba3d4a4ba5408a29b2da997ff621377dbba0b9819e06 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-search/67.0…
+23bc024422ae879abf87c8962aa29ee58b2d670b83ae34237c5e27fe1ee468a4 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/67.…
+ca95e44e841339577d4c386920e7806ed008b9570c2aa2da2b166dcb96f43d7c | https://maven.mozilla.org/maven2/org/mozilla/components/browser-session/67.…
+849fe2e526cd59e913d3611e43c3a1dc82bdc53e79280a739e4cb4015845e778 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/67.0.…
+83e1a8dd76db558c61f6a4a97a4cb28d7e547013b329f066d4e291cbef210bcf | https://maven.mozilla.org/maven2/org/mozilla/components/browser-state/67.0.…
+3c7b13d321b57f65e3975d83b272e49dabad0960f75296248f4341a103f4558e | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+43918e436eb050abf7394944755ac5ebd19890d584ea40dfe638e9a3bb4a04c8 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-storage-syn…
+674a6c6d869d9c40f7204480adc30e9856be4064499f9695ecf7e7229cff8b0b | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/67…
+1c41d0a26ee756d0baa36ecb570615d139269d2573be854c0ad2204ca9d69fda | https://maven.mozilla.org/maven2/org/mozilla/components/browser-tabstray/67…
+204e3d12c42f9445d41c6b8614f7edda70f5539e57189e320433980f287ca003 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+b237cf94d4d88f692ccf97112bc3f9e572c6dcf024b8c5654d726b46eb204341 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-thumbnails/…
+dfdcbe8ef7c4098893bcf93f80a0d104ac9a16ff81cd7420688d227a7a8e1eb5 | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/67.…
+423ef4a6c2f5bf403eab809768ea1f3ceec595dd0d6c06bd40e3c6ba51037b7d | https://maven.mozilla.org/maven2/org/mozilla/components/browser-toolbar/67.…
+c09772c9db564df7cd0d6dbadd4daf8cb5181a807ad638cecd34062fd55c1bc6 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+c736f6501148b91edcdc3f208b27d80378a800b4ba38266b971304055848414b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-awesomebar/…
+8c12739ff779a53051562f84107180e116a835740ae088a975094093acedcab3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/67.0.1…
+523542efd1f933e53d6d64b22a7ce51f728763ed503b8aadce57e908c9d4b51d | https://maven.mozilla.org/maven2/org/mozilla/components/concept-base/67.0.1…
+507dc2a1ca48bff8ec3228a5ed5df548dd5b7ce3d1ef6fa31905d53d89b7bad3 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/67.0…
+690c704ca6c5ed8946c29001ab21e0b6fe23c1ed5ca37cc011868f3c69d20ec7 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-engine/67.0…
+2db4664ef5b5fc4c368da11b0621497fce19c3c85f183e7c2a66529d0ec21d03 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/67.0.…
+185cc2d35213534f0be0346d7472e4920b2bb9bb20c454ced7e342c3e29b48da | https://maven.mozilla.org/maven2/org/mozilla/components/concept-fetch/67.0.…
+e9b778eb8417871e1ba8ac7ed81299a640b0100f646ee60171d3d57c32d6ddb2 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/67.0.1…
+f497712ce436a29e4af22d34db32c1aa6c374d508324b8c7354d4785109e83dd | https://maven.mozilla.org/maven2/org/mozilla/components/concept-menu/67.0.1…
+834ade77fd0fa0f314317ea9b78fe154143a98ef3b106cd7f363d9bf24b9929b | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/67.0.1…
+d9774d852496e52ae6b0e3ac600e17f6044b04eb96e05607725b324436666e15 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-push/67.0.1…
+cf426a1ee8adf7b0f2ebc718465a3e472286dd5db738b0ca26eed426a4024941 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/67.…
+30208f212d66c8f704754aa44e6f6926c29b15f1c473348f0efe5600dc91be5e | https://maven.mozilla.org/maven2/org/mozilla/components/concept-storage/67.…
+24f61489d53a29ee053e78b599adc346278b7983b54f2f0179fd64404a7ab845 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/67.0.1…
+1c40a970fb6a6ab86695613b71a1fc77b924629608a333e4534b1345edc2f6a0 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-sync/67.0.1…
+1ef9759642b7ce7554e742a53b2806f55be71963322434d3a6d1e963eacf9319 | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/67…
+2735c826a392b1c720e2dc537871ced393e00c58b8dbf3053a639fd5ccfdda6f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-tabstray/67…
+2ee2349b44bd1db87ce3625b681d5f0df911824204dd232dec1d04c8449a877f | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/67.…
+54f76be9a7246955a1f5250dad1ce97979cb1119a6aff8185ae817c7fafc0acf | https://maven.mozilla.org/maven2/org/mozilla/components/concept-toolbar/67.…
+a9c766d100584596cb873d2b2ba26489b7ff8a50fd138fe8957c482f93026b4e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+f7743f7ef21b1f98895313daf85a3b9cbad92ef0713e049feda4fd429a9c6a7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts-pu…
+69b03caba7cec40f740ca3251654ab44470456bb4bd36458c2264567780ba283 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/67…
+3580f6dc2342993e70d4f65599c5a9d777b200df6a7999a2f5f625510e79b3ef | https://maven.mozilla.org/maven2/org/mozilla/components/feature-accounts/67…
+aea7c498ae92c375ffebe6e1ce6a706cc32eb5c9f24705b3c8f4bcd503478262 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/67.0…
+2496c1c6e46d05b2a96a76a43364a28640c0e40e1bd1e0f86c6777ba78528355 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-addons/67.0…
+63cb16f5891abf1b5ed30ce0b860de7f8b8606694517f2743aa572d50e2fcb2f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/6…
+4df5094e6f6b741c82416c1a9f8741fe17c59e3e3fd370d96f2fd7175f55c60d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-app-links/6…
+bfc287a7e7607b1bee40a974f514fdbdcc52ebf3248f78edb1daab1a63e695ea | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+ddf3aa5000ec149992bf0d5a921f3414830a94eb09882aae6d01b5d76e0056a4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-awesomebar/…
+1dcf95e9ca2f7e389bc93c9a1c29147655b033dcfe39cd4a718d5401d2543874 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+7528e895222692a24d28333de64a97280252316561bcf90b6a28fa183703b27f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-contextmenu…
+def90a5739ba30e16f9d4600b8887bcaed14163382969933c785b5cf64f61bff | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+6224b7192b61f1f4a5e60270f55c65c7af0cfc880de53762ca1bd6de727edbad | https://maven.mozilla.org/maven2/org/mozilla/components/feature-customtabs/…
+3f3eea48ae0d8908039eb1fea6fc17c4ca89276b8b120a7a8e7335befe036aee | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/6…
+2fe3fcc05735dab0a6b28cc9ddabc628518e6be0b7e6aba2aa2025b652c48a07 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-downloads/6…
+67fe1ad12f61682f021d483a38588100c4d7c48f7af712025fe42e00cf9eb9e0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+0f29587c5cbcdae8322cfe345295d57ddda0e14603d948d1f1d958074e372f05 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-findinpage/…
+09adc360f1fbe93c969ddb53ce8020cdffaebf2ae718c49c7410f9cf491aed70 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/67.0…
+5dc5b8e621b1c11cbde38fcb9011423e98e8b3402084a9c62de6e04cf73abe16 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-intent/67.0…
+f079f3d751d3b0d66ee3916a9ac504b97cc6c54e0ea986ec0155cafb5d822ecf | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/67.0…
+238215c41b0f8692bf4fd575dfe287d7a923bea2dde21ffe655878adee3c0aa2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-logins/67.0…
+9d489c8293994dd890cde36c91c1717f27aa952ab4cadeedd6564e63fd2edb52 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/67.0.…
+a1daed79e091a8014b5f7c669ac9930549734968391a4a24f05ba3cab13505ae | https://maven.mozilla.org/maven2/org/mozilla/components/feature-media/67.0.…
+e2085a8454714aecba181bae66aea8a337b5ed2d1f0af61d8d9908ac1ef40719 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+36e9714411600747de6fe2431e5bc047643afa990a26f5b9c49c9ed6cf334755 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-privatemode…
+3a89973a27026315b8bb1a3330302482946d84646b3183a0d7b7fceaa588b06a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/67.…
+9880e16f6ecac93178ac6f3c2716b5a7f28767fb11d5ed7596992edc6c0af910 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-prompts/67.…
+b9995057f720ca059565f867cb338ed9e3f93daa1ffd5e2fc703fb061587a672 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/67.0.1…
+c420ead7216f89eff0528eec0dab4f1dbfc6d91b850b26e819bca6dd360216c0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-push/67.0.1…
+bd12f7415a925c7f60a064bc98a5184270d7cb63c67da99c8cc5123d5735655f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/67.0.17…
+b6528963a3173234ba71923b51a9431b1ca89c28002ccb39522801ce8990a71f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-pwa/67.0.17…
+b697e48bf80ea7fc59c464f91c43cf7440ff0b911854c05b6766bf4dac7a166e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/67.0.17/…
+ee23d105cdd6cc0f28a7a939af69258d21570c4ce2eb1d7d3f504474991a86b1 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-qr/67.0.17/…
+ef3cf57138cf7ef2c9b0b8244239af5cd1d3a50c42cd1fe5c2cc53f55579e64a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+283c2907b3def1c0396b40bb293e9d338a426995bd318c38c6266673e3cf1f1f | https://maven.mozilla.org/maven2/org/mozilla/components/feature-readerview/…
+902657370d70dcc9553ed466116763814e1f1f62a8232554331717c6b0cfa586 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+8f9bdae6481e90853dd0596d3e68b33b17d3943eeff2c61daedd7b02845716d2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-recentlyclo…
+589932d534b810fbd1561e2a57faf36b171bfc18c3a7afd118050dae97e15304 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/67.0…
+8119c60a01689a4a97a2dc1a498347f76a0aa50408263d0ff1fa82ed1302e8bd | https://maven.mozilla.org/maven2/org/mozilla/components/feature-search/67.0…
+7bc161e61e09f2c7f781f585cef0209e6169d05440008265566a139237e5abc2 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/67.…
+0548ad12a486d49c1a99acef6ac735ee9af54f58d2cf244d92a4d9e4357a5489 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-session/67.…
+692871cf1d65602814a0372024d1b8e6f1d22e9a86b72e4e0cc13573db42328c | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/67.0.…
+050b2ea93985615c69e2e3677a2e880c0ce9b1cfc5a5d5e8f1cd70746e69cd90 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-share/67.0.…
+9ab0b6e5cf355e848c414c5a54005b3de71574ab3e3f4a0e914bfecd420dc1f5 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+19bdcb6c29d479c5a8f24a0e3d9c72c842afb9ca727cb38250b5cac5898d079e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-sitepermiss…
+b73ef22574f01ef481dceade81712cab2e56d3cbc09d0246821e5e41e475da66 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+f9a889b548d4b71cb14538230a63640c579f0508530737856339b59bc9f245d6 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-syncedtabs/…
+f246ee2e74950e626a19fb95f9643b5d43083bcb203a459e6c8880b63531a7f0 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+ebf6ea140098731c807c37880d5a2a7a7bbc2a4ae9585788dc4c31a28f47ce29 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tab-collect…
+ffc4768830f59f1ac414710987126a653d004643b9a14a8b3ae1de4189741933 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/67.0.1…
+eaa29d54c063b0e6729c8bd4f84208676c672917076a3e8568599978d75dfd01 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-tabs/67.0.1…
+f84df79bea8cc25aee7aeee6ebe244d8b14bb2163b4b6b6c2a1c661afe19e732 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/67.…
+478f0b8e382b7587e92ce7419a580b814725baed95f13dd01354f5d195e28320 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-toolbar/67.…
+c28e796682dc457a6109d8bd273dfb1ce68366ba46a72cb887ca456e3fc0fa1d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/6…
+efa23ffeded1e5255ac67344bb9230043aed89f7830cb57d3cf17f95b5a3446e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-top-sites/6…
+18fe05d36d86e945e92eda764d4415c083947c016b3031a97f89e66e2bbb9f7a | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+5eb02438f6bdfc1c1d682615184672bf106c10d6499ccd3b00e1fc18651fa93e | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat-r…
+1f8ecaa48ef1843e636989d84f3769147ed3b19dabaa4efe3e1b32489fcf0652 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/6…
+54d1004c579dbf2806922803d0dfc0f0920840b57cfa368a48d3a2346c0053e4 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webcompat/6…
+ea4903938465450c3097137058870e85fadeb2eb734caabd8491802537e56828 | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+035b947485417fc6a390928f8ee3ea4c159b53f3e23bddd40579d41c8036e37d | https://maven.mozilla.org/maven2/org/mozilla/components/feature-webnotifica…
+526f6958c38ba72373462999f4ef63891e48fad70c938451f19fc209886310e1 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/67.0.17/l…
+f175bfa0ad499a6e8c072d3629d83d2cbe4c287849ec41f884829b613d254ef4 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-crash/67.0.17/l…
+e835eb35d3e68f41fc4a79b523a6af00771597141bd78927d935c72903a664e7 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/67.…
+8e0ca99f67fb977fd4b8e716ec6c6083a8c57963561a2236258409f150af8077 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-dataprotect/67.…
+3e5772e79713ef9e6438cdbcfef0eaa601ec76fff6d3316d96828f3339354f77 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-fetch-httpurlco…
+916fc77fa27ba4ebae512e54b5c5bef74cebe3e48f26a433f547558dda225a59 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-fetch-httpurlco…
+53c615db89715f6a42f43bcdcb43c7b7d8148bde508218db0999e3e9494b696f | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+ac2272f82e8d1c6d29605b68723b8219786d0119a705eb7410556fcc491aaa53 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-publicsuffixlis…
+8bfc995efddaf301105beb06d50da9c5c69330a4a220948a1a0ad231ce50bf6c | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/6…
+743c6ebb565d5a711f01dbca39f46c14e2484ad416fef1ecb48e7db150a21ee6 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-push-firebase/6…
+e7c770375bcc89845f72310e80c50d3ae4cf2be0e18975a503ed7d95d695f926 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/67.0.17/l…
+56481754ca06e51f7cd16b9e559d3be358fa43cbe3cf5c2cc929350f7f01fbe9 | https://maven.mozilla.org/maven2/org/mozilla/components/lib-state/67.0.17/l…
+68a674ded1b29ffbb61b8616c31a981dab92202b6a97a56d2c751a4eaef352bb | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+cb67aab5da362110539cc38d833329d28108bbd22c7c1824e9748cf712e1b3bf | https://maven.mozilla.org/maven2/org/mozilla/components/service-digitalasse…
+e22536ae6bdd9d02b84b8283cdd2aabb1404a4730bfdf96a7752b775074fb974 | https://maven.mozilla.org/maven2/org/mozilla/components/service-experiments…
+bd6b6163795c47b4e919c36b7ae6c5086d0d78a28fa7602ebc0d1b5825536912 | https://maven.mozilla.org/maven2/org/mozilla/components/service-experiments…
+c7900847afc7ce7c8bf54ef3835959383a4025bc727a0781c038ee6c4b7ef17d | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+561f0cbd754663a83fe05d28172622bcb00bcf8b51ad43eac174ca7951433689 | https://maven.mozilla.org/maven2/org/mozilla/components/service-firefox-acc…
+377092988061736b0a6e8ddfd243fb9766598724abe0153767310ad2b0be86f5 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/67.0.…
+fb92289de18579d19547ee1ac59cfcbcd576c53512205d4541586af9b1809468 | https://maven.mozilla.org/maven2/org/mozilla/components/service-glean/67.0.…
+238beb90f71bed557dce69f607c33848b127eaad357a82f3fb0f44fed202f3e2 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/67…
+07a836f07dfd12e171292d06c5e542f605236602d1d665b02d33a10802aaa973 | https://maven.mozilla.org/maven2/org/mozilla/components/service-location/67…
+9fc2bb91cc32089f66358a4c2f323528d8bc6830901f813a1fdc85d800601b2c | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+f1ade509d43141573903969ffe9c54c2fce309aa0a87e777bdd4a35b2f4828f9 | https://maven.mozilla.org/maven2/org/mozilla/components/service-sync-logins…
+43faacafe7374066d9d8b66d6a87a6c6d007f3acd8bb2a5fb6bf8ce62e266059 | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/67.0.1…
+37b009bad8fbb964c946bc8aaf56ce9aad72c8493f0544e5f84ed9c1af2cb33a | https://maven.mozilla.org/maven2/org/mozilla/components/support-base/67.0.1…
+7272f578bb978856a612c4fbf1c503d3dc04a63ae45ac026b4c4f5492a70ef53 | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/67.0…
+7fa51d7789f9e31ebc6777d8ca7008dbd6f59b3da9dc5cd8f2a9cc91b93573aa | https://maven.mozilla.org/maven2/org/mozilla/components/support-images/67.0…
+763c945ac479edc0b041efb6c1f8682123390bd8fb683be8241346e7ea330435 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/67.0.17…
+5656be6993967d4059b57b7eb8fe85d5f6aebd011e12c6ea55f8c5454ec97f71 | https://maven.mozilla.org/maven2/org/mozilla/components/support-ktx/67.0.17…
+560878e125f97cbbbac124c227b0a3db56f253d3b9c3f071af07a12f4def7189 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/67.0…
+570481a2f7b8a04abe10aeb7f4d32fa8c15e4b1dc2fe2f542cde625360be4518 | https://maven.mozilla.org/maven2/org/mozilla/components/support-locale/67.0…
+54ee42f4494b7c1f3ce24b1253468a348640ab2c717b7083dc94ccf6270d330c | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/6…
+e3e4ffc4af1687c25d34926b995f8ab48bfcef1cdc1ffdd38d2ec2d181c23185 | https://maven.mozilla.org/maven2/org/mozilla/components/support-migration/6…
+8639a7b017f074538e46405e947de42614f512bf154c0e10bb823033a399fec3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/67…
+3d639fee73b09e693c7882e7ca61cc591ac69dea620f2133adb06fe1216269c9 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rusthttp/67…
+46804b487bf00a7e96fc7cfe0f256caca8844efd4ba442e09202f2ec3f0a1002 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/67.…
+a78de4b7d6663a4e71dad55666b7154eabc05a730e881864c26f0796037c4b92 | https://maven.mozilla.org/maven2/org/mozilla/components/support-rustlog/67.…
+73e17b5e48a21d9882ec81e4885dc7681bd942c192f2ccb58856890fa94479e3 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+ebea1bb4478bd940152e47016bb50cfc0db8a2f170a21d1c2788b0136907f638 | https://maven.mozilla.org/maven2/org/mozilla/components/support-sync-teleme…
+2221c6d5aefac39176dbc8622f043a3fc3da8d80e25c6d232b1ff949ee8588b4 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/67.0.1…
+b3d37fcb0913f5b30839a06d7cc506405afde8b403e8d65c3e7ca18bf0cc3288 | https://maven.mozilla.org/maven2/org/mozilla/components/support-test/67.0.1…
+93fd44998bfeeab9d7137cb34a50d510876ec8362e988b8a4ddf4e1629a69e71 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/67.0.…
+65d64b592f2f3dc8c889899e81c7360ba2671a42f13fec102ea79839b63c2f09 | https://maven.mozilla.org/maven2/org/mozilla/components/support-utils/67.0.…
+5aa43d65d89f547a28d090aa5e625a5ee96a3db6a6f1599680d4de306018d3d0 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+ad06ef83e187cd9052b0f60300687bb7eb39e1ca834f4290dd018842424b3e63 | https://maven.mozilla.org/maven2/org/mozilla/components/support-webextensio…
+d93ee2b2d7650eb8e1dc0b3c79c3935bdb7edd020239d98b66500ae0a3c15aed | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+d5a68e724a79d29ad580bd3157010e70aee715f110f82de60ddcb9fa976d215c | https://maven.mozilla.org/maven2/org/mozilla/components/tooling-glean-gradl…
+f7c3df3d22d806b190a58c7239114d2fca2740dd7db4cf788be74fbf8c5d5135 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/67.…
+e34face0e46968636a0f00e3aaf7fb4886300732c294144ab7bc6c91edc77485 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-autocomplete/67.…
+7ec7264a35b13382f84d701fab89daace99c6c8157c6fdc6d15da2361fb4f16b | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/67.0.17/u…
+4340cb39c0be5d8bb164013c6caee40b284ecad67fd9d8bb5dd5013db7681335 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-colors/67.0.17/u…
+e6905869f068713e39add5e743c7af6ace41ad8041a6ae328dec0fc0f888b039 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/67.0.17/ui…
+9535fdb4b5775ba3fc3478b40a786190648e0fbdc3cf96b36239749937633190 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-icons/67.0.17/ui…
+cac7392d6bd136b460f365d392fec55c65ac38de79f2d19c5a79f5926627bf8e | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/67.0.…
+98ada1cab3a7806b94a08433953f7feb028e1fcc5dd7c36fd65abfcb72a12c9f | https://maven.mozilla.org/maven2/org/mozilla/components/ui-tabcounter/67.0.…
+ea6635ff2bdbe7943dff10d1f32024ee28ab228fec232e5a9db1846d296fb82d | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/67.0.17/…
+04274e2efcd1a2b9a17b7d412662bf37ab79923ad0f71deea7ed77d20d73eaf1 | https://maven.mozilla.org/maven2/org/mozilla/components/ui-widgets/67.0.17/…
344af38736e6f5ed28b1c24301f553a9060c3e09a4f2c40989bd59572ce601f9 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/84.0.…
17a1138b7366e606664909f85462a9496619d2e3c4cdf732238e3ca104678b6f | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview-beta/84.0.…
-4f1c693d09c087276a59a63f3a1482ad4be9101bdb0646d9ce151d187a6e0ac0 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20201…
-d2a4dca050e10480e9f98c8710542f3252dad61b61b0f5d2fdb1db6a2e9ac9fd | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20201…
+fcdfe4029a5f82ac8a86c6452e3f5b57994bb1025ebb8143c12a436a7f07d359 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20210…
+fd621684f18690a812c81438e100d5d5b9d67fb912f243d9e7625ffd691ee672 | https://maven.mozilla.org/maven2/org/mozilla/geckoview/geckoview/84.0.20210…
e3b779d5f79c8012d62d3e43bfc2d577ca65439bcf7181c8ec333d0f3fc76890 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
6e0b82e4ed2fec26de9c9e68d6fa237d716177d9f9e7f6b1213699d7f55e73e6 | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-forUnitTests/3…
5eb5d86577ecf64ba66df368c07dde772d1e82da63f25d73e63118d261ca7a7c | https://maven.mozilla.org/maven2/org/mozilla/telemetry/glean-gradle-plugin/…
diff --git a/projects/geckoview/config b/projects/geckoview/config
index 3780043..fc72814 100644
--- a/projects/geckoview/config
+++ b/projects/geckoview/config
@@ -8,7 +8,7 @@ git_submodule: 1
gpg_keyring: torbutton.gpg
var:
- geckoview_version: 84.0
+ geckoview_version: 84.0.2
torbrowser_branch: 10.0
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
deps:
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index ae3784e..26b4bce 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,11 @@
+Tor Browser 10.0.8 -- January 12 2021
+ * Android
+ * Update Fenix to 84.1.4
+ * Update NoScript to 11.1.7
+ * Build System
+ * Android
+ * Bug 40195: repo.spring.io is not usable anymore [tor-browser-build]
+
Tor Browser 10.0.7 -- December 15 2020
* Android
* Update Fenix to 84.1.0
diff --git a/projects/tor-browser/allowed_addons.json b/projects/tor-browser/allowed_addons.json
index 1258ad2..d071263 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": 535734,
+ "average_daily_users": 516924,
"categories": {
"android": [
"experimental",
@@ -237,10 +237,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5636,
- "bayesian_average": 4.561893119646445,
- "count": 3151,
- "text_count": 1044
+ "average": 4.5623,
+ "bayesian_average": 4.56060764577945,
+ "count": 3219,
+ "text_count": 1066
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/darkreader/reviews/",
"requires_payment": false,
@@ -334,7 +334,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/darkreader/",
- "weekly_downloads": 30207
+ "weekly_downloads": 27573
},
"notes": null
},
@@ -350,7 +350,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 744754,
+ "average_daily_users": 683207,
"categories": {
"firefox": [
"privacy-security"
@@ -480,10 +480,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6132,
- "bayesian_average": 4.610653172180564,
- "count": 2138,
- "text_count": 550
+ "average": 4.6158,
+ "bayesian_average": 4.613253496961336,
+ "count": 2168,
+ "text_count": 553
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/https-everywhere/reviews/",
"requires_payment": false,
@@ -516,7 +516,7 @@
],
"type": "extension",
"url": "https://www.eff.org/https-everywhere",
- "weekly_downloads": 15288
+ "weekly_downloads": 15188
},
"notes": null
},
@@ -532,7 +532,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/6/6937/6937656.png?modif…"
}
],
- "average_daily_users": 198811,
+ "average_daily_users": 187325,
"categories": {
"android": [
"security-privacy"
@@ -745,10 +745,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7993,
- "bayesian_average": 4.794509964201113,
- "count": 1186,
- "text_count": 304
+ "average": 4.7995,
+ "bayesian_average": 4.794683432683569,
+ "count": 1197,
+ "text_count": 305
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/decentraleyes/reviews/",
"requires_payment": false,
@@ -784,7 +784,7 @@
"ru": "Защищает Вас от отслеживания через «бесплатные», централизованные CDN. Предотвращает отслеживание через множество запросов к CDN (а-ля GHL, MaxCDN, YandexCDN и т.п.), «доставляя» локальные файлы, чтобы не ломать сайты. Дополняет контент-фильтры.",
"sv-SE": "Skyddar dig mot att spåras av \"gratis\" centraliserad innehållsleverans. Det hindrar att förfrågningar görs till nätverk som Google Hosted Libraries och tillhandahåller lokala filer, så att sidor inte går sönder. Kompletterar vanliga blockerare.",
"tr": "Sizi içerik dağıtımıyla yapılan merkezi ve \"ücretsiz\" takipten korur. Google Yerleşimli Kütüphaneler gibi ağlara erişimi engelleyip bunlar yerine siteler için gerekli yerel dosyaları sunar. Olağan içerik engelleyicileri işlevsel olarak tamamlar.",
- "uk": "Захищає вас від стеження \"безкоштовними\", централізованими мережами доставки контенту. Блокує безліч запитів до мереж як-от Google Hosted Libraries, й взамін надає локальні файли для забезпечення справності сайтів. Доповнює звичні блокатори контенту.",
+ "uk": "Захищає вас від стеження \"безкоштовними\", централізованими мережами доставки контенту. Блокує безліч запитів до мереж, як-от Google Hosted Libraries, взамін надає локальні файли для забезпечення справності сайтів. Доповнює звичні блокатори контенту.",
"zh-CN": "保护您免受集中式的内容交付网络(CDN)的跟踪。它可以拦截许多种链向 CDN 的请求,转而指向本地提供的文件,从而防止网站功能受损。辅助常规的内容过滤规则。",
"zh-TW": "保護您不受「免費」、中心化的內容傳遞網路(CDN)的追蹤。此附加元件可防止您的瀏覽器送出請求到 Google Hosted Libraries 這類的服務,並在本機提供程式庫以達到相同的效果,而不造成網頁錯誤。可補充一般內容封鎖器的功能。"
},
@@ -843,7 +843,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/decentraleyes/",
- "weekly_downloads": 5031
+ "weekly_downloads": 5275
},
"notes": null
},
@@ -859,7 +859,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/5/5474/5474073.png?modif…"
}
],
- "average_daily_users": 961255,
+ "average_daily_users": 882283,
"categories": {
"android": [
"security-privacy"
@@ -871,7 +871,7 @@
"contributions_url": "https://www.paypal.me/SupportEFF?utm_content=product-page-contribute&utm_me…",
"created": "2014-05-01T18:23:16Z",
"current_version": {
- "id": 5112079,
+ "id": 5147400,
"compatibility": {
"firefox": {
"min": "52.0",
@@ -882,19 +882,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/privacy-badger17/versions…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/privacy-badger17/versions…",
"files": [
{
- "id": 3656444,
- "created": "2020-10-07T17:10:45Z",
- "hash": "sha256:da9d488a9ee75347b73931a7d0136540292cd3db8aa0bfe4c273503291f7019e",
+ "id": 3691765,
+ "created": "2020-12-09T22:01:55Z",
+ "hash": "sha256:635ded379b5c3259d7bf0997689215bcb0f1bbb77f9289f33b0c01b0cddc7ff0",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 1240482,
+ "size": 1277059,
"status": "public",
- "url": "https://addons.mozilla.org/android/downloads/file/3656444/privacy_badger-20…",
+ "url": "https://addons.mozilla.org/android/downloads/file/3691765/privacy_badger-20…",
"permissions": [
"tabs",
"http://*/*",
@@ -1330,10 +1330,10 @@
"url": "http://www.gnu.org/licenses/gpl-3.0.html"
},
"release_notes": {
- "en-US": "<ul><li>Disabled learning (by default) to address privacy concerns. Visit <a href=\"https://outgoing.prod.mozaws.net/v1/dd9daec91f441e755b8ec63a96a996dbbda9efa…" rel=\"nofollow\">https://www.eff.org/badger-evolution</a> to learn more.</li><li>Added support for Global Privacy Control, a new specification that lets you tell companies you'd like to opt out of data sharing and selling. Visit <a href=\"https://outgoing.prod.mozaws.net/v1/f5433e6e384e33b2921d74ea02a8ada23fd2a7a…" rel=\"nofollow\">https://globalprivacycontrol.org/</a> to learn more.</li><li>Added a new section to the options page to display the browser settings that Privacy Badger overrides for privacy reasons</li><li>Fixed various site breakages</li><li>Improved translations (Simplified Chinese, Dutch, Finnish, Hebrew, Italian, Russian, Spanish, Ukrainian)</li></ul>"
+ "en-US": "<ul><li>Added a direct link to widget content to replacements for widgets like YouTube, Vimeo, SoundCloud and Spotify. You can click this link to watch a video (for example) without sharing the page you are on with the video provider. You can also right-click the link to copy the link URL.</li><li>Fixed \"fbclid\" tracking parameter removal on Facebook</li><li>Enabled Google Search link unwrapping on Firefox for Android</li><li>Fixed various site breakages</li><li>Improved translations (Dutch, Esperanto, French, German, Hebrew, Polish, Russian, Swedish, Turkish, Ukrainian)</li></ul>"
},
"reviewed": null,
- "version": "2020.10.7"
+ "version": "2020.12.10"
},
"default_locale": "en-US",
"description": {
@@ -1357,7 +1357,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-10-08T08:20:41Z",
+ "last_updated": "2020-12-14T10:25:28Z",
"name": {
"en-US": "Privacy Badger"
},
@@ -1403,10 +1403,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7819,
- "bayesian_average": 4.778573534303875,
- "count": 1706,
- "text_count": 408
+ "average": 4.7863,
+ "bayesian_average": 4.782984873298175,
+ "count": 1736,
+ "text_count": 411
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/privacy-badger17/reviews/",
"requires_payment": false,
@@ -1425,7 +1425,7 @@
"tags": [],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/privacy-badger17/",
- "weekly_downloads": 15281
+ "weekly_downloads": 32792
},
"notes": null
},
@@ -1441,7 +1441,7 @@
"picture_url": null
}
],
- "average_daily_users": 4969308,
+ "average_daily_users": 4503091,
"categories": {
"android": [
"security-privacy"
@@ -1453,7 +1453,7 @@
"contributions_url": "",
"created": "2015-04-25T07:26:22Z",
"current_version": {
- "id": 5135389,
+ "id": 5156717,
"compatibility": {
"firefox": {
"min": "55.0",
@@ -1464,19 +1464,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/51…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/51…",
"files": [
{
- "id": 3679754,
- "created": "2020-11-17T13:08:46Z",
- "hash": "sha256:d9eef701b99866565708fe69b5855c1634187630e9e223e810f10e482545e6c0",
+ "id": 3701081,
+ "created": "2020-12-29T13:58:02Z",
+ "hash": "sha256:5b94fd7f749319a6ff6d83dd20b05b29e733446465aff2ab7669499a3e8fb9cc",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 2801972,
+ "size": 2748800,
"status": "public",
- "url": "https://addons.mozilla.org/android/downloads/file/3679754/ublock_origin-1.3…",
+ "url": "https://addons.mozilla.org/android/downloads/file/3701081/ublock_origin-1.3…",
"permissions": [
"dns",
"menus",
@@ -1532,10 +1532,10 @@
"url": "http://www.gnu.org/licenses/gpl-3.0.html"
},
"release_notes": {
- "en-US": "See <a href=\"https://outgoing.prod.mozaws.net/v1/ad6e491ded735345270ee88f63016f80b30a14a…" rel=\"nofollow\">release notes</a>.\n\n<b>New:</b>\n\n<b>Click-to-load</b>\n\nSupport to replace embedded frames with a click-to-load widget. Examples of usage:\n\n<code>||<a href=\"https://outgoing.prod.mozaws.net/v1/6f77a09441a6af61d6a5a78db00417d7f6fa5ea…" rel=\"nofollow\">youtube.com/embed/$3p,frame,redirect=click2load.html</a>\n||<a href=\"https://outgoing.prod.mozaws.net/v1/5d656ee5ac41d8489285a0dc824f318ad247715…" rel=\"nofollow\">scribd.com/embeds/$3p,frame,redirect=click2load.html</a>\n||<a href=\"https://outgoing.prod.mozaws.net/v1/c21551ebf05dc74e4faf00f50497b02fb52b8c8…
p%3A//player.vimeo.com/video/%243p%2Cframe%2Credirect=click2load.html\" rel=\"nofollow\">player.vimeo.com/video/$3p,frame,redirect=click2load.html</a></code>\n\nUsers of medium mode can experiment with a redirect rule to reveal embedded frames in a page:\n\n<code>*$3p,frame,redirect-rule=click2load.html</code>\n\nOr if you want to have click-to-load only for embedded widgets from specific origins being blocked (reminder: <a href=\"https://outgoing.prod.mozaws.net/v1/82e9714a02fcaa78100672185283fe1c7cbdb5f…" rel=\"nofollow\"><code>redirect-rule</code></a> does not create a block filter):\n\n<code> ||<a href=\"https://outgoing.prod.mozaws.net/v1/ada5d641241ba08f41ca8e2e95aebee8f706b1e…" rel=\"nofollow\">youtube.com/embed/$3p,frame,redirect-rule=click2load.html</a></code>\n\n<b>Changes:</
b>\n\nResources redirected to local, neutered versions will no longer be collapsed as would occur if those resources were only blocked. This change is to enable implementation of the new click-to-load feature.\n\nCloud storage compression is now enabled by default.\n\n<b>Closed as fixed:</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/d9f510b2fb029955173d9be41f90545747de359…" rel=\"nofollow\">Unable to scroll down to the last line in My Filters pane on Firefox for Android</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/d700dd030a4e03713d042957c88336b36bd6ba0…" rel=\"nofollow\">\"Home\" button on Strict blocking page works incorrectly in some cases</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/84c6f75ee567b34cd4aa3aec1a6f31cddf583f0…
ckOrigin/uBlock-issues/issues/1281\" rel=\"nofollow\">Implement a version of \"{{origin}}\" that uses the whole URL and not just the domain</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/62d1c11a39a31be9bc951a6d4aaa723368205a3…" rel=\"nofollow\">cosmetic filter <code>## selector</code> is valid in element picker only</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/818f69764248823cab44bd9117c37f456562a8c…" rel=\"nofollow\">Implement <code>$queryprune</code> parameter</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/c79eb691e9a7fc0a59d72e00e29b986bf686c89…" rel=\"nofollow\">Calling callback if provided for google analytics mock</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/5e6a994e0da5171446cff1a75b87a
efb329f7d82397537a3fdd0a94ac5590717/https%3A//github.com/gorhill/uBlock/iss…" rel=\"nofollow\">Redirection syntax issue</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/5d2e7632a8795a7c45baab376148f651eec9b2a…" rel=\"nofollow\">Use user styles to collapse the placeholder of blocked resources</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/b07e12c0e3d2f25d7675fa413bfe53d87e21245…" rel=\"nofollow\">Make load-on-demand smarter for blocked large media elements</a></li></ul>\n<b>Notable commits with no entry in issue tracker:</b>\n\n<ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/f7a3990dd4ed5c5e5108863ab916d03ebf59def…" rel=\"nofollow\">Work around Firefox's <code>data:</code> favIconUrl leak</a></li><li
><a href=\"https://outgoing.prod.mozaws.net/v1/6d652733de4a3b67966235794851835c0738a13…" rel=\"nofollow\">Make json-prune scriptlet also trap Response.json() calls</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/3e21e48016cc0cc59127b5ba039722b18a8bedb…" rel=\"nofollow\">Incrementally improve static filtering parser</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/300d566bae935dfe7caa7f26a6f449120fc0d16…" rel=\"nofollow\">Coallesce origin hit filters into their own bucket</a><ul><li><a href=\"https://outgoing.prod.mozaws.net/v1/90c37955cca74165527bf305c54e5df68b4a180…
e70577509eb9bba5b1737223d42329\" rel=\"nofollow\">Allow <code>domain=</code> with entity values into pre-test buckets</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/7108e88d163783823d57170458f542c706c7e83…" rel=\"nofollow\">Enable origin-hit coalescing optimisation for modifier filters</a></li></ul></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/475c486ecbde642be209825abb7fd6fe36366ce…" rel=\"nofollow\">Re-classify <code>redirect=</code> option as a modifier option</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/ef8c8465e5abf4f11c31c8a4c92ec262be7e889…" rel=\"nofollow\">Improve token extraction from regex-based filters</a></li><li><a
href=\"https://outgoing.prod.mozaws.net/v1/6d598749fe7ac25e19168f52d44d4e984f8f7ce…" rel=\"nofollow\">Improve specificity slider in element picker</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/c794932ff392735e9a64897732e68373cf9a334…" rel=\"nofollow\">Use a CodeMirror editor instance in element picker</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/54ee032bd2c27f255a30badca5c689591784376…" rel=\"nofollow\">Add support for click-to-load of embedded frames</a></li><li><a href=\"https://outgoing.prod.mozaws.net/v1/ae0b4b1e1056107154420d9e267976afc4c3b4d…
6c3052a407b9802af\" rel=\"nofollow\">Minor improvements to syntax highlight of static filters</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/e68ac420535993cfc64cadf07cb49eb66dcce14…" rel=\"nofollow\">Commits history since 1.30.6</a>."
+ "en-US": "<a href=\"https://outgoing.prod.mozaws.net/v1/9fa7d3c9ad42a6b694799cc29274f9b7089f1e6…" 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/396d45d7f82e1bf630b3f16ab1f6be4d60ae2d0…" rel=\"nofollow\">Problems with asterisk in the destination of hostname-based rules</a></li></ul>\n<a href=\"https://outgoing.prod.mozaws.net/v1/345396c53b050d1081014dc73d56f95d30eb255…" rel=\"nofollow\">Commits history since 1.32.2</a>."
},
"reviewed": null,
- "version": "1.31.0"
+ "version": "1.32.4"
},
"default_locale": "en-US",
"description": {
@@ -1625,7 +1625,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-12-12T13:40:12Z",
+ "last_updated": "2021-01-06T17:15:36Z",
"name": {
"ar": "uBlock Origin",
"bg": "uBlock Origin",
@@ -1770,10 +1770,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.7307,
- "bayesian_average": 4.730268750136898,
- "count": 13006,
- "text_count": 4372
+ "average": 4.7329,
+ "bayesian_average": 4.732467013014317,
+ "count": 13133,
+ "text_count": 4392
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/ublock-origin/reviews/",
"requires_payment": false,
@@ -1827,7 +1827,7 @@
"tags": [],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/ublock-origin/",
- "weekly_downloads": 117611
+ "weekly_downloads": 109312
},
"notes": null
},
@@ -1843,7 +1843,7 @@
"picture_url": null
}
],
- "average_daily_users": 44569,
+ "average_daily_users": 51889,
"categories": {
"android": [
"photos-media"
@@ -1956,10 +1956,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5114,
- "bayesian_average": 4.505943748806989,
- "count": 968,
- "text_count": 367
+ "average": 4.5077,
+ "bayesian_average": 4.5022028097909566,
+ "count": 975,
+ "text_count": 370
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/video-background-play-fix/re…",
"requires_payment": false,
@@ -1984,7 +1984,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/video-background-play-fix/",
- "weekly_downloads": 39
+ "weekly_downloads": 31
},
"notes": null
},
@@ -2000,7 +2000,7 @@
"picture_url": null
}
],
- "average_daily_users": 97819,
+ "average_daily_users": 90271,
"categories": {
"android": [
"experimental",
@@ -2139,10 +2139,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4965,
- "bayesian_average": 4.478095502811583,
- "count": 286,
- "text_count": 81
+ "average": 4.4897,
+ "bayesian_average": 4.47151234660571,
+ "count": 292,
+ "text_count": 83
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/privacy-possum/reviews/",
"requires_payment": false,
@@ -2167,7 +2167,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/privacy-possum/",
- "weekly_downloads": 1295
+ "weekly_downloads": 1449
},
"notes": null
},
@@ -2183,7 +2183,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/12/12929/12929064.png?mo…"
}
],
- "average_daily_users": 151052,
+ "average_daily_users": 148086,
"categories": {
"android": [
"photos-media",
@@ -2197,7 +2197,7 @@
"contributions_url": "https://www.paypal.me/ArminSebastian/5?utm_content=product-page-contribute&…",
"created": "2017-06-17T15:23:33Z",
"current_version": {
- "id": 5146105,
+ "id": 5157708,
"compatibility": {
"firefox": {
"min": "68.0",
@@ -2208,19 +2208,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…",
"files": [
{
- "id": 3690470,
- "created": "2020-12-07T19:45:57Z",
- "hash": "sha256:2987a5f9c9b043de969f166d8f2275e3c2147fe2e3d186eb8a13f8cc5bd3c45d",
+ "id": 3702070,
+ "created": "2021-01-01T08:38:36Z",
+ "hash": "sha256:6f8f8d89ad294069232dff6a8a076763466c8d594289a74310dd8e8805c2cda7",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 639063,
+ "size": 639916,
"status": "public",
- "url": "https://addons.mozilla.org/android/downloads/file/3690470/search_by_image-3…",
+ "url": "https://addons.mozilla.org/android/downloads/file/3702070/search_by_image-3…",
"permissions": [
"contextMenus",
"storage",
@@ -2271,7 +2271,7 @@
"en-US": "Learn more about this release from the <a href=\"https://outgoing.prod.mozaws.net/v1/034fc31c913b4c441795892fe3d65db9f7edbe6…" rel=\"nofollow\">changelog</a>."
},
"reviewed": null,
- "version": "3.4.2"
+ "version": "3.4.3"
},
"default_locale": "en-US",
"description": {
@@ -2293,7 +2293,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-12-08T09:48:37Z",
+ "last_updated": "2021-01-05T08:57:27Z",
"name": {
"en-US": "Search by Image"
},
@@ -2405,10 +2405,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.6575,
- "bayesian_average": 4.650311244599122,
- "count": 765,
- "text_count": 161
+ "average": 4.6612,
+ "bayesian_average": 4.654121841617529,
+ "count": 788,
+ "text_count": 166
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/search_by_image/reviews/",
"requires_payment": false,
@@ -2443,7 +2443,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/search_by_image/",
- "weekly_downloads": 3333
+ "weekly_downloads": 8522
},
"notes": null
},
@@ -2466,7 +2466,7 @@
"picture_url": null
}
],
- "average_daily_users": 25814,
+ "average_daily_users": 30558,
"categories": {
"android": [
"other"
@@ -2748,10 +2748,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.4545,
- "bayesian_average": 4.4488466955050585,
- "count": 924,
- "text_count": 250
+ "average": 4.4532,
+ "bayesian_average": 4.447571627762425,
+ "count": 940,
+ "text_count": 253
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/google-search-fixer/reviews/",
"requires_payment": false,
@@ -2770,7 +2770,7 @@
"tags": [],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/google-search-fixer/",
- "weekly_downloads": 51
+ "weekly_downloads": 52
},
"notes": null
},
@@ -2786,7 +2786,7 @@
"picture_url": "https://addons.cdn.mozilla.net/user-media/userpics/0/0/143.png?modified=150…"
}
],
- "average_daily_users": 415007,
+ "average_daily_users": 382136,
"categories": {
"android": [
"performance",
@@ -2800,7 +2800,7 @@
"contributions_url": "https://www.paypal.me/NoScript?utm_content=product-page-contribute&utm_medi…",
"created": "2005-05-13T10:51:32Z",
"current_version": {
- "id": 5147387,
+ "id": 5153585,
"compatibility": {
"firefox": {
"min": "59.0",
@@ -2811,19 +2811,19 @@
"max": "*"
}
},
- "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5147387",
+ "edit_url": "https://addons.mozilla.org/en-US/developers/addon/noscript/versions/5153585",
"files": [
{
- "id": 3691752,
- "created": "2020-12-09T21:34:16Z",
- "hash": "sha256:3e3e00026db6a65cd5eebbe4a2c214fd7ef437c8f4d17fa591c85f61eab9d1e5",
+ "id": 3697950,
+ "created": "2020-12-21T15:13:19Z",
+ "hash": "sha256:9d65fc25020aa1f02d9a80112227cd4c1e4588db6d87372d87a8f15132084c43",
"is_restart_required": false,
"is_webextension": true,
"is_mozilla_signed_extension": false,
"platform": "all",
- "size": 602842,
+ "size": 603151,
"status": "public",
- "url": "https://addons.mozilla.org/android/downloads/file/3691752/noscript_security…",
+ "url": "https://addons.mozilla.org/android/downloads/file/3697950/noscript_security…",
"permissions": [
"contextMenus",
"storage",
@@ -2870,10 +2870,10 @@
"url": "http://www.gnu.org/licenses/gpl-2.0.html"
},
"release_notes": {
- "en-US": "(cc @lastknight, @raistolo)v 11.1.6\n============================================================\nx Better handling of concurrent prompts issues (thanks\n billarbor for reporting)\nx Remove z-index boosting from ancestors when placeholder is\n collapsed or replaced (issue #162)\nx Fixed permission keyboard shortcuts being triggered with\n modifiers like CTRL (thanks barbaz for report)\nx More accurate blockage reporting, with better filtering of\n page's own CSP effects\nx [UI] Fixed bug in CUSTOM sites filtering (thanks barbaz\n for reporting)\nx Fixed bug in automatic HTML events build-time updates\nx Updated HTML events\nx Updated TLDs\nx [L10n] Updated sv_SE\nx Better handling 0 width / 0 height media placeholders"
+ "en-US": "v 11.1.7\n============================================================\nx Optimize serviceWorker tracking for heavy tabs usage\n (thanks vadimm and barbaz for investigation)\nx Force placeholder visibility on Youtube embeddings\nx Fixed popup opening being slowed down if options UI is\n opened (thanks Sirus for report)\nx Explicit failure for wrong settings importation formats\nx Updated TLDs"
},
"reviewed": null,
- "version": "11.1.6"
+ "version": "11.1.7"
},
"default_locale": "en-US",
"description": {
@@ -2923,7 +2923,7 @@
},
"is_disabled": false,
"is_experimental": false,
- "last_updated": "2020-12-10T21:35:10Z",
+ "last_updated": "2021-01-07T00:05:46Z",
"name": {
"de": "NoScript",
"el": "NoScript",
@@ -3011,10 +3011,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.5316,
- "bayesian_average": 4.530040121989428,
- "count": 3420,
- "text_count": 2374
+ "average": 4.5419,
+ "bayesian_average": 4.5403190050005655,
+ "count": 3427,
+ "text_count": 2367
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/noscript/reviews/",
"requires_payment": false,
@@ -3070,7 +3070,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/noscript/",
- "weekly_downloads": 10518
+ "weekly_downloads": 10573
},
"notes": null
},
@@ -3086,7 +3086,7 @@
"picture_url": null
}
],
- "average_daily_users": 128869,
+ "average_daily_users": 121441,
"categories": {
"android": [
"performance",
@@ -3225,10 +3225,10 @@
"category": "recommended"
},
"ratings": {
- "average": 4.1117,
- "bayesian_average": 4.107520342079109,
- "count": 1137,
- "text_count": 545
+ "average": 4.1032,
+ "bayesian_average": 4.099000071517208,
+ "count": 1143,
+ "text_count": 551
},
"ratings_url": "https://addons.mozilla.org/en-US/android/addon/youtube-high-definition/revi…",
"requires_payment": false,
@@ -3266,7 +3266,7 @@
],
"type": "extension",
"url": "https://addons.mozilla.org/en-US/android/addon/youtube-high-definition/",
- "weekly_downloads": 2001
+ "weekly_downloads": 1805
},
"notes": null
}
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index b3bc014..300cbc8 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -78,9 +78,9 @@ input_files:
enable: '[% c("var/snowflake") && ! c("var/android") %]'
- filename: Bundle-Data
enable: '[% ! c("var/android") %]'
- - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
+ - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
name: noscript
- sha256sum: 3e3e00026db6a65cd5eebbe4a2c214fd7ef437c8f4d17fa591c85f61eab9d1e5
+ sha256sum: 9d65fc25020aa1f02d9a80112227cd4c1e4588db6d87372d87a8f15132084c43
- filename: 'RelativeLink/start-tor-browser.desktop'
enable: '[% c("var/linux") %]'
- filename: 'RelativeLink/execdesktop'
diff --git a/rbm.conf b/rbm.conf
index baef2fa..45c31eb 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -24,7 +24,7 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '10.0.7'
+ torbrowser_version: '10.0.8'
torbrowser_build: 'build1'
torbrowser_incremental_from:
- 10.5a1
1
0
[Git][tpo/applications/fenix] Pushed new tag tor-browser-84.1.4-10.0-1-build1
by Matthew Finkel 08 Jan '21
by Matthew Finkel 08 Jan '21
08 Jan '21
Matthew Finkel pushed new tag tor-browser-84.1.4-10.0-1-build1 at The Tor Project / Applications / fenix
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/tree/tor-browser-84.…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/fenix][tor-browser-84.1.4-10.0-1] 9 commits: Bug 40002: Add GitLab CI
by Matthew Finkel 08 Jan '21
by Matthew Finkel 08 Jan '21
08 Jan '21
Matthew Finkel pushed to branch tor-browser-84.1.4-10.0-1 at The Tor Project / Applications / fenix
Commits:
b1e2bf83 by Matthew Finkel at 2021-01-07T19:22:11+00:00
Bug 40002: Add GitLab CI
Pin CI builds to runners with 32GB of RAM to avoid OOM conditions.
- - - - -
6f10e521 by Matthew Finkel at 2021-01-07T19:22:11+00:00
Rename as Tor Browser
Bug 40020: Change applicationId
Bug 40020: Change app name
Bug 40020: Change deeplink scheme
Bug 40020: Change App icons
Bug 40073: Use correct branding on About page
Bug 40088: Use Tor Browser logo in migration screen
- - - - -
7d26c2d6 by Matthew Finkel at 2021-01-07T19:22:11+00:00
Disable features and functionality
Bug 33594: Disable data collection by default (Glean)
Bug 40019: Adjust is disabled on Release when data collection is disabled
Bug 34338: Disable the crash reporter
Bug 40014: Neuter Google Advertising ID
Bug 40018: Disable Push service
Bug 40034: Disable PWA onboading
Bug 40072: Disable Tracking Protection
Bug 40061: Do not show "Send to device" in sharing menu
- - - - -
bb632be6 by Georg Koppen at 2021-01-07T19:22:11+00:00
Modify build system
Bug 40083: Make locale ordering in BuildConfig deterministic
Bug 40042: Add option do overwrite timestamp in extension version
Bug 40059: Use MOZ_BUILD_DATE for versionCode
At the same time we adapt MOZ_BUILD_DATE to our needs where it is
actually used and not in tor-browser-build. This gives us more
flexibility. See: tor-browser-build#40084.
Bug 40067: Fix reproducibility issue in classes2.dex
We make sure our MOZ_BUILD_DATE gets used as a source for showing date
related information on the Fenix about page.
Bug 40071: Show only supported locales
Bug 40064: Use Gecko Beta for Nightly and Debug variants
- - - - -
ee4629a0 by Matthew Finkel at 2021-01-07T19:22:11+00:00
Add Tor integration and UI
Bug 40001: Start Tor as part of the Fenix initialization
Bug 40028: Implement Tor Service controller
Bug 40028: Integrate Tor Controller into HomeFragment
Bug 40028: Implement Tor connect and logger screens
Bug 40028: Implement Tor Onboarding
Bug 40028: Implement new home screen
Bug 40028: Define bootstrapping events and Quick Start
Bug 40041: Implement Tor Network Settings
Bug 40041: Integrate Tor Network Settings
- - - - -
8a485790 by Alex Catarineu at 2021-01-07T19:22:11+00:00
Modify UI/UX
Bug 40015: Modify Home menu
Bug 40016: Hide unwanted Settings
Bug 40016: Modify Default toolbar menu
Bug 40016: Add Donate settings button
Bug 40016: Move Allow Screenshots under Advanced
Bug 40016: Don't install WebCompat webext
Bug 40016: Don't onboard Search Suggestions
Bug 40094: Do not use MasterPasswordTipProvider in HomeFragment
Bug 40095: Hide "Sign in to sync" in bookmarks
Bug 40031: Hide Mozilla-specific items on About page
Bug 40032: Set usesCleartextTraffic as false
Bug 40063: Do not sort search engines alphabetically
Bug 34378: Port external helper app prompting
With the corresponding android-components patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.
Bug 34403: Disable Normal mode by default
Bug 40087: Implement a switch for english locale spoofing
- - - - -
59d6c47b by Alex Catarineu at 2021-01-07T19:22:11+00:00
Modify Add-on support
Bug 40030: Install HTTPS Everywhere and NoScript addons on startup
HTTPS Everywhere is installed as a builtin extension and NoScript as
a regular AMO addon. To avoid unnecessary I/O we only install NoScript
the first time, and rely on the browser addon updating mechanism for
keeping up with new versions. This is the same behaviour that was
implemented in the Fennec-based Tor Browser, where it was installed
as a "distribution addon", which also only occurred once.
Bug 40062: HTTPS Everywhere is not shown as installed
Also 40070: Consider storing the list of recommended addons
This implements our own AddonsProvider, which loads the list of
available addons from assets instead of fetching it from an
endpoint. In this list, we replace https-everywhere by
our https-everywhere-eff, so that the EFF one is shown as installed
in the addons list and the AMO one is not displayed.
Also, we hide the uninstall button for builtin addons.
Bug 40058: Hide option for disallowing addon in private mode
- - - - -
bab13d40 by Matthew Finkel at 2021-01-07T19:22:11+00:00
Add Security Level UI
Bug 40026: Implement Security Level settings
Bug 40026: Integrate Security Level settings
- - - - -
e70be826 by Matthew Finkel at 2021-01-07T19:22:19+00:00
Bug 40098: Add EOY home screen
- - - - -
30 changed files:
- + .gitlab-ci.yml
- LICENSE
- app/build.gradle
- app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt
- − app/src/beta/res/drawable/ic_launcher_foreground.xml
- app/src/beta/res/mipmap-hdpi/ic_launcher.png
- app/src/beta/res/mipmap-mdpi/ic_launcher.png
- app/src/beta/res/mipmap-xhdpi/ic_launcher.png
- app/src/beta/res/mipmap-xxhdpi/ic_launcher.png
- app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png
- app/src/beta/res/values/static_strings.xml
- app/src/beta/res/xml/shortcuts.xml
- − app/src/debug/res/drawable/ic_launcher_foreground.xml
- app/src/debug/res/xml/shortcuts.xml
- app/src/main/AndroidManifest.xml
- + app/src/main/assets/allowed_addons.json
- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt
- app/src/main/java/org/mozilla/fenix/FenixApplication.kt
- app/src/main/java/org/mozilla/fenix/HomeActivity.kt
- app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt
- app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
- app/src/main/java/org/mozilla/fenix/components/Analytics.kt
- app/src/main/java/org/mozilla/fenix/components/Components.kt
- app/src/main/java/org/mozilla/fenix/components/Core.kt
- + app/src/main/java/org/mozilla/fenix/components/TorAddonCollectionProvider.kt
- + app/src/main/java/org/mozilla/fenix/components/TorBrowserFeatures.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt
- app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt
- app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/2d1e15692ebe…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/fenix/-/compare/2d1e15692ebe…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/android-components][android-components-67.0.17-10.0-1] 15 commits: Bug 40005: Modify Default toolbar menu
by Matthew Finkel 08 Jan '21
by Matthew Finkel 08 Jan '21
08 Jan '21
Matthew Finkel pushed to branch android-components-67.0.17-10.0-1 at The Tor Project / Applications / android-components
Commits:
e60fd791 by Matthew Finkel at 2021-01-07T19:14:36+00:00
Bug 40005: Modify Default toolbar menu
- - - - -
b2418669 by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40007: Port external helper app prompting
Together with the corresponding fenix patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.
- - - - -
76620ddc by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40002: Ensure system download manager is not used
- - - - -
73cf4851 by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40009: Change the default search engines
This matches the search engines from desktop, that is:
DDG as the default, then YouTube, Google, DDGOnion,
Startpage, Twitter, Wikipedia and Yahoo.
- - - - -
715daf8f by Matthew Finkel at 2021-01-07T19:14:36+00:00
Bug 40006: Expose Security Level interface
- - - - -
2884dd0d by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40011: Hide option for disallowing addons in private mode
- - - - -
d14d61ac by Georg Koppen at 2021-01-07T19:14:36+00:00
Bug 40013: Add option do overwrite timestamp in extension version
- - - - -
f5c5bc93 by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40015: Port padlock states for .onion services
- - - - -
5faec683 by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40016: Allow inheriting from AddonCollectionProvider
This will allow implementing our own AddonsProvider in fenix.
- - - - -
c6d4c76f by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40021: Force telemetry=false in Fennec settings migration
- - - - -
19f2b82b by Alex Catarineu at 2021-01-07T19:14:36+00:00
Bug 40022: Migrate Tor security level from Fennec
- - - - -
4fdc6a2b by Matthew Finkel at 2021-01-07T19:14:36+00:00
Bug 40020: Disable third-party cookies
- - - - -
89f06f67 by Matthew Finkel at 2021-01-07T19:14:36+00:00
Bug 40023: Stop PrivateNotificationService
- - - - -
3e027f29 by Matthew Finkel at 2021-01-07T19:14:36+00:00
Bug 40024: Disable tracking protection by default
- - - - -
36c3c0eb by Alex Catarineu at 2021-01-07T19:14:47+00:00
Bug 40019: Expose spoofEnglish pref
- - - - -
30 changed files:
- build.gradle
- components/browser/engine-gecko-beta/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- components/browser/menu/src/main/java/mozilla/components/browser/menu/WebExtensionBrowserMenu.kt
- components/browser/menu/src/main/java/mozilla/components/browser/menu/WebExtensionBrowserMenuBuilder.kt
- components/browser/search/src/main/assets/search/list.json
- + components/browser/search/src/main/assets/searchplugins/ddg-onion.xml
- components/browser/search/src/main/assets/searchplugins/ddg.xml
- + components/browser/search/src/main/assets/searchplugins/startpage.xml
- + components/browser/search/src/main/assets/searchplugins/yahoo.xml
- components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/DisplayToolbar.kt
- components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/SiteSecurityIconView.kt
- components/browser/toolbar/src/main/res/drawable/mozac_ic_site_security.xml
- components/browser/toolbar/src/main/res/values/attrs_browser_toolbar.xml
- components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineSession.kt
- components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt
- components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt
- components/feature/addons/src/main/java/mozilla/components/feature/addons/amo/AddonCollectionProvider.kt
- components/feature/addons/src/main/res/layout/mozac_feature_addons_fragment_dialog_addon_installed.xml
- components/feature/app-links/build.gradle
- components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksFeature.kt
- components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt
- components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt
- components/feature/downloads/build.gradle
- components/feature/downloads/src/main/java/mozilla/components/feature/downloads/AbstractFetchDownloadService.kt
- components/feature/downloads/src/main/java/mozilla/components/feature/downloads/DownloadsFeature.kt
- components/feature/privatemode/src/main/java/mozilla/components/feature/privatemode/notification/PrivateNotificationFeature.kt
- components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/ToolbarPresenter.kt
- components/support/ktx/src/main/java/mozilla/components/support/ktx/android/content/Context.kt
- components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/android-components/-/compare…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/android-components/-/compare…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 21724: Make Firefox and Tor Browser distinct macOS apps
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 2b79a874eb77ad8a9ecf7f8b5fc7dd7af975987f
Author: teor <teor2345(a)gmail.com>
Date: Mon Mar 13 23:06:23 2017 +1100
Bug 21724: Make Firefox and Tor Browser distinct macOS apps
When macOS opens a document or selects a default browser, it sometimes
uses the CFBundleSignature. Changing from the Firefox MOZB signature to
a different signature TORB allows macOS to distinguish between Firefox
and Tor Browser.
---
browser/app/Makefile.in | 2 +-
browser/app/macbuild/Contents/Info.plist.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 54d6b43fe126..8dd3a9a65661 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -102,5 +102,5 @@ ifdef MOZ_UPDATER
mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
endif
- printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo'
+ printf APPLTORB > '$(dist_dest)/Contents/PkgInfo'
endif
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index fb5e6993ea9d..1d376c8d83d6 100644
--- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -179,7 +179,7 @@
<key>CFBundleShortVersionString</key>
<string>@APP_VERSION@</string>
<key>CFBundleSignature</key>
- <string>MOZB</string>
+ <string>TORB</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 19273: Avoid JavaScript patching of the external app helper dialog.
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 85dd4c32abefea8fd3fd6117a48542b5e7af8a45
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jun 28 15:13:05 2016 -0400
Bug 19273: Avoid JavaScript patching of the external app helper dialog.
When handling an external URI or downloading a file, invoke Torbutton's
external app blocker component (which will present a download warning
dialog unless the user has checked the "Automatically download files
from now on" box).
For e10s compatibility, avoid using a modal dialog and instead use
a callback interface (nsIHelperAppWarningLauncher) to allow Torbutton
to indicate the user's desire to cancel or continue each request.
Other bugs fixed:
Bug 21766: Crash with e10s enabled while trying to download a file
Bug 21886: Download is stalled in non-e10s mode
Bug 22471: Downloading files via the PDF viewer download button is broken
Bug 22472: Fix FTP downloads when external helper app dialog is shown
Bug 22610: Avoid crashes when canceling external helper app downloads
Bug 22618: Downloading pdf file via file:/// is stalling
---
.../exthandler/nsExternalHelperAppService.cpp | 172 ++++++++++++++++++---
uriloader/exthandler/nsExternalHelperAppService.h | 3 +
.../exthandler/nsIExternalHelperAppService.idl | 47 ++++++
3 files changed, 204 insertions(+), 18 deletions(-)
diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp
index 16b7be9b364a..8028eaeafaab 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.cpp
+++ b/uriloader/exthandler/nsExternalHelperAppService.cpp
@@ -133,6 +133,9 @@ static const char NEVER_ASK_FOR_SAVE_TO_DISK_PREF[] =
static const char NEVER_ASK_FOR_OPEN_FILE_PREF[] =
"browser.helperApps.neverAsk.openFile";
+static const char WARNING_DIALOG_CONTRACT_ID[] =
+ "@torproject.org/torbutton-extAppBlocker;1";
+
// Helper functions for Content-Disposition headers
/**
@@ -405,6 +408,22 @@ static nsresult GetDownloadDirectory(nsIFile** _directory,
return NS_OK;
}
+static already_AddRefed<nsIInterfaceRequestor> GetDialogParentAux(
+ BrowsingContext* aBrowsingContext, nsIInterfaceRequestor* aWindowContext) {
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = aWindowContext;
+
+ if (!dialogParent && aBrowsingContext) {
+ dialogParent = do_QueryInterface(aBrowsingContext->GetDOMWindow());
+ }
+ if (!dialogParent && aBrowsingContext && XRE_IsParentProcess()) {
+ RefPtr<Element> element = aBrowsingContext->Top()->GetEmbedderElement();
+ if (element) {
+ dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
+ }
+ }
+ return dialogParent.forget();
+}
+
/**
* Structure for storing extension->type mappings.
* @see defaultMimeEntries
@@ -624,6 +643,92 @@ static const char* descriptionOverwriteExtensions[] = {
"avif", "pdf", "svg", "webp", "xml",
};
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// begin nsExternalLoadURIHandler class definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+class nsExternalLoadURIHandler final : public nsIHelperAppWarningLauncher {
+ public:
+ NS_DECL_THREADSAFE_ISUPPORTS
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
+
+ nsExternalLoadURIHandler(nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal,
+ BrowsingContext* aBrowsingContext);
+
+ protected:
+ ~nsExternalLoadURIHandler();
+
+ nsCOMPtr<nsIHandlerInfo> mHandlerInfo;
+ nsCOMPtr<nsIURI> mURI;
+ nsCOMPtr<nsIPrincipal> mTriggeringPrincipal;
+ RefPtr<BrowsingContext> mBrowsingContext;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
+};
+
+NS_IMPL_ADDREF(nsExternalLoadURIHandler)
+NS_IMPL_RELEASE(nsExternalLoadURIHandler)
+
+NS_INTERFACE_MAP_BEGIN(nsExternalLoadURIHandler)
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIHelperAppWarningLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
+NS_INTERFACE_MAP_END
+
+nsExternalLoadURIHandler::nsExternalLoadURIHandler(
+ nsIHandlerInfo* aHandlerInfo, nsIURI* aURI,
+ nsIPrincipal* aTriggeringPrincipal, BrowsingContext* aBrowsingContext)
+ : mHandlerInfo(aHandlerInfo),
+ mURI(aURI),
+ mTriggeringPrincipal(aTriggeringPrincipal),
+ mBrowsingContext(aBrowsingContext)
+
+{
+ nsresult rv = NS_OK;
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent =
+ GetDialogParentAux(aBrowsingContext, nullptr);
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+}
+
+nsExternalLoadURIHandler::~nsExternalLoadURIHandler() {}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::ContinueRequest() {
+ MOZ_ASSERT(mURI);
+ MOZ_ASSERT(mHandlerInfo);
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ nsresult rv = NS_OK;
+ nsCOMPtr<nsIContentDispatchChooser> chooser =
+ do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ return chooser->HandleURI(mHandlerInfo, mURI, mTriggeringPrincipal,
+ mBrowsingContext);
+}
+
+NS_IMETHODIMP nsExternalLoadURIHandler::CancelRequest(nsresult aReason) {
+ NS_ENSURE_ARG(NS_FAILED(aReason));
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // LoadURI).
+ mWarningDialog = nullptr;
+
+ return NS_OK;
+}
+
static StaticRefPtr<nsExternalHelperAppService> sExtHelperAppSvcSingleton;
/**
@@ -650,6 +755,9 @@ nsExternalHelperAppService::GetSingleton() {
return do_AddRef(sExtHelperAppSvcSingleton);
}
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// nsExternalHelperAppService definition and implementation
+//////////////////////////////////////////////////////////////////////////////////////////////////////
NS_IMPL_ISUPPORTS(nsExternalHelperAppService, nsIExternalHelperAppService,
nsPIExternalAppLauncher, nsIExternalProtocolService,
nsIMIMEService, nsIObserver, nsISupportsWeakReference)
@@ -1093,12 +1201,13 @@ nsExternalHelperAppService::LoadURI(nsIURI* aURI,
rv = GetProtocolHandlerInfo(scheme, getter_AddRefs(handler));
NS_ENSURE_SUCCESS(rv, rv);
- nsCOMPtr<nsIContentDispatchChooser> chooser =
- do_CreateInstance("@mozilla.org/content-dispatch-chooser;1", &rv);
- NS_ENSURE_SUCCESS(rv, rv);
+ RefPtr<nsExternalLoadURIHandler> h = new nsExternalLoadURIHandler(
+ handler, uri, aTriggeringPrincipal, aBrowsingContext);
+ if (!h) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
- return chooser->HandleURI(handler, uri, aTriggeringPrincipal,
- aBrowsingContext);
+ return NS_OK;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1243,6 +1352,7 @@ NS_INTERFACE_MAP_BEGIN(nsExternalAppHandler)
NS_INTERFACE_MAP_ENTRY(nsIStreamListener)
NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
NS_INTERFACE_MAP_ENTRY(nsIHelperAppLauncher)
+ NS_INTERFACE_MAP_ENTRY(nsIHelperAppWarningLauncher)
NS_INTERFACE_MAP_ENTRY(nsICancelable)
NS_INTERFACE_MAP_ENTRY(nsIBackgroundFileSaverObserver)
NS_INTERFACE_MAP_ENTRY(nsINamed)
@@ -1639,18 +1749,7 @@ void nsExternalAppHandler::MaybeApplyDecodingForExtension(
already_AddRefed<nsIInterfaceRequestor>
nsExternalAppHandler::GetDialogParent() {
- nsCOMPtr<nsIInterfaceRequestor> dialogParent = mWindowContext;
-
- if (!dialogParent && mBrowsingContext) {
- dialogParent = do_QueryInterface(mBrowsingContext->GetDOMWindow());
- }
- if (!dialogParent && mBrowsingContext && XRE_IsParentProcess()) {
- RefPtr<Element> element = mBrowsingContext->Top()->GetEmbedderElement();
- if (element) {
- dialogParent = do_QueryInterface(element->OwnerDoc()->GetWindow());
- }
- }
- return dialogParent.forget();
+ return GetDialogParentAux(mBrowsingContext, mWindowContext);
}
NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
@@ -1781,6 +1880,34 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
loadInfo->SetForceAllowDataURI(true);
}
+ mWarningDialog = do_CreateInstance(WARNING_DIALOG_CONTRACT_ID, &rv);
+ if (NS_SUCCEEDED(rv) && mWarningDialog) {
+ // This will create a reference cycle (the dialog holds a reference to us
+ // as nsIHelperAppWarningLauncher), which will be broken in ContinueRequest
+ // or CancelRequest.
+ nsCOMPtr<nsIInterfaceRequestor> dialogParent = GetDialogParent();
+ rv = mWarningDialog->MaybeShow(this, dialogParent);
+ }
+
+ if (NS_FAILED(rv)) {
+ // If for some reason we could not open the download warning prompt,
+ // continue with the request.
+ ContinueRequest();
+ }
+
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsExternalAppHandler::ContinueRequest() {
+ nsAutoCString MIMEType;
+ if (mMimeInfo) {
+ mMimeInfo->GetMIMEType(MIMEType);
+ }
+
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
// now that the temp file is set up, find out if we need to invoke a dialog
// asking the user what they want us to do with this content...
@@ -1864,6 +1991,7 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
action = nsIMIMEInfo::saveToDisk;
}
+ nsresult rv = NS_OK;
if (alwaysAsk) {
// Display the dialog
mDialog = do_CreateInstance(NS_HELPERAPPLAUNCHERDLG_CONTRACTID, &rv);
@@ -1921,6 +2049,14 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest* request) {
return NS_OK;
}
+NS_IMETHODIMP nsExternalAppHandler::CancelRequest(nsresult aReason) {
+ // Break our reference cycle with the download warning dialog (set up in
+ // OnStartRequest).
+ mWarningDialog = nullptr;
+
+ return Cancel(aReason);
+}
+
// Convert error info into proper message text and send OnStatusChange
// notification to the dialog progress listener or nsITransfer implementation.
void nsExternalAppHandler::SendStatusChange(ErrorType type, nsresult rv,
@@ -2585,7 +2721,7 @@ NS_IMETHODIMP nsExternalAppHandler::Cancel(nsresult aReason) {
}
// Break our reference cycle with the helper app dialog (set up in
- // OnStartRequest)
+ // ContinueRequest)
mDialog = nullptr;
mRequest = nullptr;
diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h
index b49686159aa7..e7174570e0bb 100644
--- a/uriloader/exthandler/nsExternalHelperAppService.h
+++ b/uriloader/exthandler/nsExternalHelperAppService.h
@@ -219,6 +219,7 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService,
*/
class nsExternalAppHandler final : public nsIStreamListener,
public nsIHelperAppLauncher,
+ public nsIHelperAppWarningLauncher,
public nsIBackgroundFileSaverObserver,
public nsINamed {
public:
@@ -226,6 +227,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
NS_DECL_NSISTREAMLISTENER
NS_DECL_NSIREQUESTOBSERVER
NS_DECL_NSIHELPERAPPLAUNCHER
+ NS_DECL_NSIHELPERAPPWARNINGLAUNCHER
NS_DECL_NSICANCELABLE
NS_DECL_NSIBACKGROUNDFILESAVEROBSERVER
NS_DECL_NSINAMED
@@ -497,6 +499,7 @@ class nsExternalAppHandler final : public nsIStreamListener,
nsCOMPtr<nsITransfer> mTransfer;
nsCOMPtr<nsIHelperAppLauncherDialog> mDialog;
+ nsCOMPtr<nsIHelperAppWarningDialog> mWarningDialog;
/**
diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl
index 657e15bc0742..ebdb1cdacf78 100644
--- a/uriloader/exthandler/nsIExternalHelperAppService.idl
+++ b/uriloader/exthandler/nsIExternalHelperAppService.idl
@@ -177,3 +177,50 @@ interface nsIHelperAppLauncher : nsICancelable
*/
readonly attribute uint64_t browsingContextId;
};
+
+/**
+ * nsIHelperAppWarningLauncher is implemented by two classes:
+ * nsExternalLoadURIHandler
+ * nsExternalAppHandler
+ */
+[scriptable, uuid(cffd508b-4aaf-43ad-99c6-671d35cbc558)]
+interface nsIHelperAppWarningLauncher : nsISupports
+{
+ /**
+ * Callback invoked by the external app warning dialog to continue the
+ * request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ */
+ void continueRequest();
+
+ /**
+ * Callback invoked by the external app warning dialog to cancel the request.
+ * NOTE: This will release the reference to the nsIHelperAppWarningDialog.
+ *
+ * @param aReason
+ * Pass a failure code to indicate the reason why this operation is
+ * being canceled. It is an error to pass a success code.
+ */
+ void cancelRequest(in nsresult aReason);
+};
+
+/**
+ * nsIHelperAppWarningDialog is implemented by Torbutton's external app
+ * blocker (src/components/external-app-blocker.js).
+ */
+[scriptable, uuid(f4899a3f-0df3-42cc-9db8-bdf599e5a208)]
+interface nsIHelperAppWarningDialog : nsISupports
+{
+ /**
+ * Possibly show a launch warning dialog (it will not be shown if the user
+ * has chosen to not see the warning again).
+ *
+ * @param aLauncher
+ * A nsIHelperAppWarningLauncher to be invoked after the user confirms
+ * or cancels the download.
+ * @param aWindowContext
+ * The window associated with the download.
+ */
+ void maybeShow(in nsIHelperAppWarningLauncher aLauncher,
+ in nsISupports aWindowContext);
+};
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 16940: After update, load local change notes.
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 3970a1a86e34036057972488b1acb74503055654
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Nov 25 11:36:20 2015 -0500
Bug 16940: After update, load local change notes.
Add an about:tbupdate page that displays the first section from
TorBrowser/Docs/ChangeLog.txt and includes a link to the remote
post-update page (typically our blog entry for the release).
Always load about:tbupdate in a content process, but implement the
code that reads the file system (changelog) in the chrome process
for compatibility with future sandboxing efforts.
Also fix bug 29440. Now about:tbupdate is styled as a fairly simple
changelog page that is designed to be displayed via a link that is on
about:tor.
---
browser/actors/AboutTBUpdateChild.jsm | 12 +++
browser/actors/AboutTBUpdateParent.jsm | 120 +++++++++++++++++++++
browser/actors/moz.build | 6 ++
.../base/content/abouttbupdate/aboutTBUpdate.css | 74 +++++++++++++
.../base/content/abouttbupdate/aboutTBUpdate.js | 27 +++++
.../base/content/abouttbupdate/aboutTBUpdate.xhtml | 39 +++++++
browser/base/content/browser-siteIdentity.js | 2 +-
browser/base/content/browser.js | 4 +
browser/base/jar.mn | 5 +
browser/components/BrowserContentHandler.jsm | 55 +++++++---
browser/components/BrowserGlue.jsm | 15 +++
browser/components/about/AboutRedirector.cpp | 6 ++
browser/components/about/components.conf | 3 +
browser/components/moz.build | 5 +-
.../locales/en-US/chrome/browser/aboutTBUpdate.dtd | 8 ++
browser/locales/jar.mn | 3 +
toolkit/modules/RemotePageAccessManager.jsm | 5 +
17 files changed, 373 insertions(+), 16 deletions(-)
diff --git a/browser/actors/AboutTBUpdateChild.jsm b/browser/actors/AboutTBUpdateChild.jsm
new file mode 100644
index 000000000000..4670da19b3db
--- /dev/null
+++ b/browser/actors/AboutTBUpdateChild.jsm
@@ -0,0 +1,12 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+var EXPORTED_SYMBOLS = ["AboutTBUpdateChild"];
+
+const { RemotePageChild } = ChromeUtils.import(
+ "resource://gre/actors/RemotePageChild.jsm"
+);
+
+class AboutTBUpdateChild extends RemotePageChild {}
diff --git a/browser/actors/AboutTBUpdateParent.jsm b/browser/actors/AboutTBUpdateParent.jsm
new file mode 100644
index 000000000000..56a10394565a
--- /dev/null
+++ b/browser/actors/AboutTBUpdateParent.jsm
@@ -0,0 +1,120 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+"use strict";
+
+this.EXPORTED_SYMBOLS = ["AboutTBUpdateParent"];
+
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { NetUtil } = ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
+const { AppConstants } = ChromeUtils.import(
+ "resource://gre/modules/AppConstants.jsm"
+);
+
+const kRequestUpdateMessageName = "FetchUpdateData";
+
+/**
+ * This code provides services to the about:tbupdate page. Whenever
+ * about:tbupdate needs to do something chrome-privileged, it sends a
+ * message that's handled here. It is modeled after Mozilla's about:home
+ * implementation.
+ */
+class AboutTBUpdateParent extends JSWindowActorParent {
+ receiveMessage(aMessage) {
+ if (aMessage.name == kRequestUpdateMessageName) {
+ return this.releaseNoteInfo;
+ }
+ return undefined;
+ }
+
+ get moreInfoURL() {
+ try {
+ return Services.prefs.getCharPref("torbrowser.post_update.url");
+ } catch (e) {}
+
+ // Use the default URL as a fallback.
+ return Services.urlFormatter.formatURLPref("startup.homepage_override_url");
+ }
+
+ // Read the text from the beginning of the changelog file that is located
+ // at TorBrowser/Docs/ChangeLog.txt and return an object that contains
+ // the following properties:
+ // version e.g., Tor Browser 8.5
+ // releaseDate e.g., March 31 2019
+ // releaseNotes details of changes (lines 2 - end of ChangeLog.txt)
+ // We attempt to parse the first line of ChangeLog.txt to extract the
+ // version and releaseDate. If parsing fails, we return the entire first
+ // line in version and omit releaseDate.
+ //
+ // On Mac OS, when building with --enable-tor-browser-data-outside-app-dir
+ // to support Gatekeeper signing, the ChangeLog.txt file is located in
+ // TorBrowser.app/Contents/Resources/TorBrowser/Docs/.
+ get releaseNoteInfo() {
+ let info = { moreInfoURL: this.moreInfoURL };
+
+ try {
+ let f;
+ if (AppConstants.TOR_BROWSER_DATA_OUTSIDE_APP_DIR) {
+ // "XREExeF".parent is the directory that contains firefox, i.e.,
+ // Browser/ or, on Mac OS, TorBrowser.app/Contents/MacOS/.
+ f = Services.dirsvc.get("XREExeF", Ci.nsIFile).parent;
+ if (AppConstants.platform === "macosx") {
+ f = f.parent;
+ f.append("Resources");
+ }
+ f.append("TorBrowser");
+ } else {
+ // "DefProfRt" is .../TorBrowser/Data/Browser
+ f = Services.dirsvc.get("DefProfRt", Ci.nsIFile);
+ f = f.parent.parent; // Remove "Data/Browser"
+ }
+
+ f.append("Docs");
+ f.append("ChangeLog.txt");
+
+ let fs = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(
+ Ci.nsIFileInputStream
+ );
+ fs.init(f, -1, 0, 0);
+ let s = NetUtil.readInputStreamToString(fs, fs.available());
+ fs.close();
+
+ // Truncate at the first empty line.
+ s = s.replace(/[\r\n][\r\n][\s\S]*$/m, "");
+
+ // Split into first line (version plus releaseDate) and
+ // remainder (releaseNotes).
+ // This first match() uses multiline mode with two capture groups:
+ // first line: (.*$)
+ // remaining lines: ([\s\S]+)
+ // [\s\S] matches all characters including end of line. This trick
+ // is needed because when using JavaScript regex in multiline mode,
+ // . does not match an end of line character.
+ let matchArray = s.match(/(.*$)\s*([\s\S]+)/m);
+ if (matchArray && matchArray.length == 3) {
+ info.releaseNotes = matchArray[2];
+ let line1 = matchArray[1];
+ // Extract the version and releaseDate. The first line looks like:
+ // Tor Browser 8.5 -- May 1 2019
+ // The regex uses two capture groups:
+ // text that does not include a hyphen: (^[^-]*)
+ // remaining text: (.*$)
+ // In between we match optional whitespace, one or more hyphens, and
+ // optional whitespace by using: \s*-+\s*
+ matchArray = line1.match(/(^[^-]*)\s*-+\s*(.*$)/);
+ if (matchArray && matchArray.length == 3) {
+ info.version = matchArray[1];
+ info.releaseDate = matchArray[2];
+ } else {
+ info.version = line1; // Match failed: return entire line in version.
+ }
+ } else {
+ info.releaseNotes = s; // Only one line: use as releaseNotes.
+ }
+ } catch (e) {}
+
+ return info;
+ }
+}
diff --git a/browser/actors/moz.build b/browser/actors/moz.build
index 1f9f8ef1c032..72707d4e9bc8 100644
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -87,3 +87,9 @@ FINAL_TARGET_FILES.actors += [
"WebRTCChild.jsm",
"WebRTCParent.jsm",
]
+
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ FINAL_TARGET_FILES.actors += [
+ "AboutTBUpdateChild.jsm",
+ "AboutTBUpdateParent.jsm",
+ ]
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.css b/browser/base/content/abouttbupdate/aboutTBUpdate.css
new file mode 100644
index 000000000000..7c1a34b77f17
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.css
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2019, The Tor Project, Inc.
+ * See LICENSE for licensing information.
+ *
+ * vim: set sw=2 sts=2 ts=8 et syntax=css:
+ */
+
+:root {
+ --abouttor-text-color: white;
+ --abouttor-bg-toron-color: #420C5D;
+}
+
+body {
+ font-family: Helvetica, Arial, sans-serif;
+ color: var(--abouttor-text-color);
+ background-color: var(--abouttor-bg-toron-color);
+ background-attachment: fixed;
+ background-size: 100% 100%;
+}
+
+a {
+ color: var(--abouttor-text-color);
+}
+
+.two-column-grid {
+ display: inline-grid;
+ grid-template-columns: auto auto;
+ grid-column-gap: 50px;
+ margin: 10px 0px 0px 50px;
+}
+
+.two-column-grid div {
+ margin-top: 40px;
+ align-self: baseline; /* Align baseline of text across the row. */
+}
+
+.label-column {
+ font-size: 14px;
+ font-weight: 400;
+}
+
+/*
+ * Use a reduced top margin to bring the row that contains the
+ * "visit our website" link closer to the row that precedes it. This
+ * looks better because the "visit our website" row does not have a
+ * label in the left column.
+ */
+div.more-info-row {
+ margin-top: 5px;
+ font-size: 14px;
+}
+
+#version-content {
+ font-size: 50px;
+ font-weight: 300;
+}
+
+body:not([havereleasedate]) .release-date-cell {
+ display: none;
+}
+
+#releasedate-content {
+ font-size: 17px;
+}
+
+#releasenotes-label {
+ align-self: start; /* Anchor "Release Notes" label at the top. */
+}
+
+#releasenotes-content {
+ font-family: monospace;
+ font-size: 15px;
+ white-space: pre;
+}
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.js b/browser/base/content/abouttbupdate/aboutTBUpdate.js
new file mode 100644
index 000000000000..ec070e2cb131
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.js
@@ -0,0 +1,27 @@
+// Copyright (c) 2020, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+
+/* eslint-env mozilla/frame-script */
+
+// aData may contain the following string properties:
+// version
+// releaseDate
+// moreInfoURL
+// releaseNotes
+function onUpdate(aData) {
+ document.getElementById("version-content").textContent = aData.version;
+ if (aData.releaseDate) {
+ document.body.setAttribute("havereleasedate", "true");
+ document.getElementById("releasedate-content").textContent =
+ aData.releaseDate;
+ }
+ if (aData.moreInfoURL) {
+ document.getElementById("infolink").setAttribute("href", aData.moreInfoURL);
+ }
+ document.getElementById("releasenotes-content").textContent =
+ aData.releaseNotes;
+}
+
+RPMSendQuery("FetchUpdateData").then(onUpdate);
diff --git a/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
new file mode 100644
index 000000000000..8489cfef5083
--- /dev/null
+++ b/browser/base/content/abouttbupdate/aboutTBUpdate.xhtml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE html [
+ <!ENTITY % htmlDTD
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "DTD/xhtml1-strict.dtd">
+ %htmlDTD;
+ <!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd">
+ %globalDTD;
+ <!ENTITY % tbUpdateDTD SYSTEM "chrome://browser/locale/aboutTBUpdate.dtd">
+ %tbUpdateDTD;
+]>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
+ <title>&aboutTBUpdate.changelogTitle;</title>
+ <link rel="stylesheet" type="text/css"
+ href="chrome://browser/content/abouttbupdate/aboutTBUpdate.css"/>
+ <script src="chrome://browser/content/abouttbupdate/aboutTBUpdate.js"
+ type="text/javascript"/>
+</head>
+<body dir="&locale.dir;">
+<div class="two-column-grid">
+ <div class="label-column">&aboutTBUpdate.version;</div>
+ <div id="version-content"/>
+
+ <div class="label-column release-date-cell">&aboutTBUpdate.releaseDate;</div>
+ <div id="releasedate-content" class="release-date-cell"/>
+
+ <div class="more-info-row"/>
+ <div class="more-info-row">&aboutTBUpdate.linkPrefix;<a id="infolink">&aboutTBUpdate.linkLabel;</a>&aboutTBUpdate.linkSuffix;</div>
+
+ <div id="releasenotes-label"
+ class="label-column">&aboutTBUpdate.releaseNotes;</div>
+ <div id="releasenotes-content"></div>
+</div>
+</body>
+</html>
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index abdb81499533..a936b7f4826b 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -57,7 +57,7 @@ var gIdentityHandler = {
* RegExp used to decide if an about url should be shown as being part of
* the browser UI.
*/
- _secureInternalPages: /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion)(?:[?#]|$)/i,
+ _secureInternalPages: (AppConstants.TOR_BROWSER_UPDATE ? /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor|tbupdate)(?:[?#]|$)/i : /^(?:accounts|addons|cache|certificate|config|crashes|downloads|license|logins|preferences|protections|rights|sessionrestore|support|welcomeback|ion|tor)(?:[?#]|$)/i),
/**
* Whether the established HTTPS connection is considered "broken".
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index a8306c602601..9abba4bc420c 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -638,6 +638,10 @@ var gInitialPages = [
"about:newinstall",
];
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ gInitialPages.push("about:tbupdate");
+}
+
function isInitialPage(url) {
if (!(url instanceof Ci.nsIURI)) {
try {
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
index 471544f6b7f7..d6c9e31c2c95 100644
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -31,6 +31,11 @@ browser.jar:
content/browser/aboutTabCrashed.css (content/aboutTabCrashed.css)
content/browser/aboutTabCrashed.js (content/aboutTabCrashed.js)
content/browser/aboutTabCrashed.xhtml (content/aboutTabCrashed.xhtml)
+#ifdef TOR_BROWSER_UPDATE
+ content/browser/abouttbupdate/aboutTBUpdate.xhtml (content/abouttbupdate/aboutTBUpdate.xhtml)
+ content/browser/abouttbupdate/aboutTBUpdate.js (content/abouttbupdate/aboutTBUpdate.js)
+ content/browser/abouttbupdate/aboutTBUpdate.css (content/abouttbupdate/aboutTBUpdate.css)
+#endif
* content/browser/browser.css (content/browser.css)
content/browser/browser.js (content/browser.js)
* content/browser/browser.xhtml (content/browser.xhtml)
diff --git a/browser/components/BrowserContentHandler.jsm b/browser/components/BrowserContentHandler.jsm
index 0a37ca088ca0..ab63c16087f0 100644
--- a/browser/components/BrowserContentHandler.jsm
+++ b/browser/components/BrowserContentHandler.jsm
@@ -652,6 +652,23 @@ nsBrowserContentHandler.prototype = {
}
}
+ // Retrieve the home page early so we can compare it against about:tor
+ // to decide whether or not we need an override page (second tab) after
+ // an update was applied.
+ var startPage = "";
+ try {
+ var choice = prefb.getIntPref("browser.startup.page");
+ if (choice == 1 || choice == 3) {
+ startPage = HomePage.get();
+ }
+ } catch (e) {
+ Cu.reportError(e);
+ }
+
+ if (startPage == "about:blank") {
+ startPage = "";
+ }
+
var override;
var overridePage = "";
var additionalPage = "";
@@ -703,6 +720,16 @@ nsBrowserContentHandler.prototype = {
// into account because that requires waiting for the session file
// to be read. If a crash occurs after updating, before restarting,
// we may open the startPage in addition to restoring the session.
+ //
+ // Tor Browser: Instead of opening the post-update "override page"
+ // directly, we ensure that about:tor will be opened in a special
+ // mode that notifies the user that their browser was updated.
+ // The about:tor page will provide a link to the override page
+ // where the user can learn more about the update, as well as a
+ // link to the Tor Browser changelog page (about:tbupdate). The
+ // override page URL comes from the openURL attribute within the
+ // updates.xml file or, if no showURL action is present, from the
+ // startup.homepage_override_url pref.
willRestoreSession = SessionStartup.isAutomaticRestoreEnabled();
overridePage = Services.urlFormatter.formatURLPref(
@@ -722,6 +749,20 @@ nsBrowserContentHandler.prototype = {
overridePage = overridePage.replace("%OLD_VERSION%", old_mstone);
overridePage = overridePage.replace("%OLD_TOR_BROWSER_VERSION%",
old_tbversion);
+#ifdef TOR_BROWSER_UPDATE
+ if (overridePage)
+ {
+ prefb.setCharPref("torbrowser.post_update.url", overridePage);
+ prefb.setBoolPref("torbrowser.post_update.shouldNotify", true);
+ // If the user's homepage is about:tor, we will inform them
+ // about the update on that page; otherwise, we arrange to
+ // open about:tor in a secondary tab.
+ if (startPage === "about:tor")
+ overridePage = "";
+ else
+ overridePage = "about:tor";
+ }
+#endif
break;
case OVERRIDE_NEW_BUILD_ID:
if (UpdateManager.readyUpdate) {
@@ -794,20 +835,6 @@ nsBrowserContentHandler.prototype = {
}
}
- var startPage = "";
- try {
- var choice = prefb.getIntPref("browser.startup.page");
- if (choice == 1 || choice == 3) {
- startPage = HomePage.get();
- }
- } catch (e) {
- Cu.reportError(e);
- }
-
- if (startPage == "about:blank") {
- startPage = "";
- }
-
let skipStartPage =
(override == OVERRIDE_NEW_PROFILE ||
override == OVERRIDE_ALTERNATE_PROFILE) &&
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 869a90ef40f9..3725c8f8b7a5 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -696,6 +696,21 @@ let JSWINDOWACTORS = {
},
};
+if (AppConstants.TOR_BROWSER_UPDATE) {
+ JSWINDOWACTORS["AboutTBUpdate"] = {
+ parent: {
+ moduleURI: "resource:///actors/AboutTBUpdateParent.jsm",
+ },
+ child: {
+ moduleURI: "resource:///actors/AboutTBUpdateChild.jsm",
+ events: {
+ DOMWindowCreated: { capture: true },
+ },
+ },
+ matches: ["about:tbupdate"],
+ };
+}
+
(function earlyBlankFirstPaint() {
let startTime = Cu.now();
if (
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index 4e17a115072a..169b2862a92a 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -120,6 +120,12 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS},
{"ion", "chrome://browser/content/ion.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#ifdef TOR_BROWSER_UPDATE
+ {"tbupdate", "chrome://browser/content/abouttbupdate/aboutTBUpdate.xhtml",
+ nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+ nsIAboutModule::URI_MUST_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
+ nsIAboutModule::HIDE_FROM_ABOUTABOUT},
+#endif
};
static nsAutoCString GetAboutModuleName(nsIURI* aURI) {
diff --git a/browser/components/about/components.conf b/browser/components/about/components.conf
index 42011d509481..56731d70c386 100644
--- a/browser/components/about/components.conf
+++ b/browser/components/about/components.conf
@@ -32,6 +32,9 @@ pages = [
'welcomeback',
]
+if defined('TOR_BROWSER_UPDATE'):
+ pages.append('tbupdate')
+
Classes = [
{
'cid': '{7e4bb6ad-2fc4-4dc6-89ef-23e8e5ccf980}',
diff --git a/browser/components/moz.build b/browser/components/moz.build
index ba617de9d82f..7f82f14985fe 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -89,11 +89,14 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES += [
- "BrowserContentHandler.jsm",
"BrowserGlue.jsm",
"distribution.js",
]
+EXTRA_PP_JS_MODULES += [
+ "BrowserContentHandler.jsm",
+]
+
BROWSER_CHROME_MANIFESTS += [
"safebrowsing/content/test/browser.ini",
"tests/browser/browser.ini",
diff --git a/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
new file mode 100644
index 000000000000..2d1e59b40eaf
--- /dev/null
+++ b/browser/locales/en-US/chrome/browser/aboutTBUpdate.dtd
@@ -0,0 +1,8 @@
+<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
+<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
+<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
+<!ENTITY aboutTBUpdate.linkLabel "visit our website">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.version "Version">
+<!ENTITY aboutTBUpdate.releaseDate "Release Date">
+<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 62c281b9e68e..454dcf5fdf2f 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -20,6 +20,9 @@
locale/browser/accounts.properties (%chrome/browser/accounts.properties)
locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
+#ifdef TOR_BROWSER_UPDATE
+ locale/browser/aboutTBUpdate.dtd (%chrome/browser/aboutTBUpdate.dtd)
+#endif
locale/browser/browser.dtd (%chrome/browser/browser.dtd)
locale/browser/baseMenuOverlay.dtd (%chrome/browser/baseMenuOverlay.dtd)
locale/browser/browser.properties (%chrome/browser/browser.properties)
diff --git a/toolkit/modules/RemotePageAccessManager.jsm b/toolkit/modules/RemotePageAccessManager.jsm
index dea1789a42ec..1d607b814b94 100644
--- a/toolkit/modules/RemotePageAccessManager.jsm
+++ b/toolkit/modules/RemotePageAccessManager.jsm
@@ -202,6 +202,11 @@ let RemotePageAccessManager = {
RPMAddMessageListener: ["*"],
RPMRemoveMessageListener: ["*"],
},
+ "about:tbupdate": {
+ RPMSendQuery: [
+ "FetchUpdateData",
+ ],
+ },
},
/**
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 19121: reinstate the update.xml hash check
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit cf2238c8048ce95d2c791ecaf1913ec54a48673a
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Apr 23 15:22:57 2018 -0400
Bug 19121: reinstate the update.xml hash check
Revert most changes from Mozilla Bug 1373267 "Remove hashFunction and
hashValue attributes from nsIUpdatePatch and code related to these
attributes." Changes to the tests were not reverted; the tests have
been changed significantly and we do not run automated updater tests
for Tor Browser at this time.
Also partial revert of commit f1241db6986e4b54473a1ed870f7584c75d51122.
Revert the nsUpdateService.js changes from Mozilla Bug 862173 "don't
verify mar file hash when using mar signing to verify the mar file
(lessens main thread I/O)."
Changes to the tests were not reverted; the tests have been changed
significantly and we do not run automated updater tests for
Tor Browser at this time.
We kept the addition to the AppConstants API in case other JS code
references it in the future.
---
toolkit/modules/AppConstants.jsm | 7 ++++
toolkit/mozapps/update/UpdateService.jsm | 63 ++++++++++++++++++++++++++++-
toolkit/mozapps/update/UpdateTelemetry.jsm | 1 +
toolkit/mozapps/update/nsIUpdateService.idl | 11 +++++
4 files changed, 81 insertions(+), 1 deletion(-)
diff --git a/toolkit/modules/AppConstants.jsm b/toolkit/modules/AppConstants.jsm
index f94c47cc8953..e42c8ed8d0b9 100644
--- a/toolkit/modules/AppConstants.jsm
+++ b/toolkit/modules/AppConstants.jsm
@@ -212,6 +212,13 @@ this.AppConstants = Object.freeze({
false,
#endif
+ MOZ_VERIFY_MAR_SIGNATURE:
+#ifdef MOZ_VERIFY_MAR_SIGNATURE
+ true,
+#else
+ false,
+#endif
+
MOZ_MAINTENANCE_SERVICE:
#ifdef MOZ_MAINTENANCE_SERVICE
true,
diff --git a/toolkit/mozapps/update/UpdateService.jsm b/toolkit/mozapps/update/UpdateService.jsm
index 9f5e88efc5e6..6756fad9ce05 100644
--- a/toolkit/mozapps/update/UpdateService.jsm
+++ b/toolkit/mozapps/update/UpdateService.jsm
@@ -799,6 +799,20 @@ function LOG(string) {
}
}
+/**
+ * Convert a string containing binary values to hex.
+ */
+function binaryToHex(input) {
+ var result = "";
+ for (var i = 0; i < input.length; ++i) {
+ var hex = input.charCodeAt(i).toString(16);
+ if (hex.length == 1)
+ hex = "0" + hex;
+ result += hex;
+ }
+ return result;
+}
+
/**
* Gets the specified directory at the specified hierarchy under the
* update root directory and creates it if it doesn't exist.
@@ -1612,6 +1626,8 @@ function UpdatePatch(patch) {
}
break;
case "finalURL":
+ case "hashFunction":
+ case "hashValue":
case "state":
case "type":
case "URL":
@@ -1631,6 +1647,8 @@ UpdatePatch.prototype = {
// over writing nsIUpdatePatch attributes.
_attrNames: [
"errorCode",
+ "hashFunction",
+ "hashValue",
"finalURL",
"selected",
"size",
@@ -1644,6 +1662,8 @@ UpdatePatch.prototype = {
*/
serialize: function UpdatePatch_serialize(updates) {
var patch = updates.createElementNS(URI_UPDATE_NS, "patch");
+ patch.setAttribute("hashFunction", this.hashFunction);
+ patch.setAttribute("hashValue", this.hashValue);
patch.setAttribute("size", this.size);
patch.setAttribute("type", this.type);
patch.setAttribute("URL", this.URL);
@@ -4480,7 +4500,42 @@ Downloader.prototype = {
}
LOG("Downloader:_verifyDownload downloaded size == expected size.");
- return true;
+ let fileStream = Cc["@mozilla.org/network/file-input-stream;1"].
+ createInstance(Ci.nsIFileInputStream);
+ fileStream.init(destination, FileUtils.MODE_RDONLY, FileUtils.PERMS_FILE, 0);
+
+ let digest;
+ try {
+ let hash = Cc["@mozilla.org/security/hash;1"].
+ createInstance(Ci.nsICryptoHash);
+ var hashFunction = Ci.nsICryptoHash[this._patch.hashFunction.toUpperCase()];
+ if (hashFunction == undefined) {
+ throw Cr.NS_ERROR_UNEXPECTED;
+ }
+ hash.init(hashFunction);
+ hash.updateFromStream(fileStream, -1);
+ // NOTE: For now, we assume that the format of _patch.hashValue is hex
+ // encoded binary (such as what is typically output by programs like
+ // sha1sum). In the future, this may change to base64 depending on how
+ // we choose to compute these hashes.
+ digest = binaryToHex(hash.finish(false));
+ } catch (e) {
+ LOG("Downloader:_verifyDownload - failed to compute hash of the " +
+ "downloaded update archive");
+ digest = "";
+ }
+
+ fileStream.close();
+
+ if (digest == this._patch.hashValue.toLowerCase()) {
+ LOG("Downloader:_verifyDownload hashes match.");
+ return true;
+ }
+
+ LOG("Downloader:_verifyDownload hashes do not match. ");
+ AUSTLMY.pingDownloadCode(this.isCompleteUpdate,
+ AUSTLMY.DWNLD_ERR_VERIFY_NO_HASH_MATCH);
+ return false;
},
/**
@@ -5072,6 +5127,9 @@ Downloader.prototype = {
" is higher than patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_LARGER
@@ -5090,6 +5148,9 @@ Downloader.prototype = {
" is not equal to expected patch size: " +
this._patch.size
);
+ // It's important that we use a different code than
+ // NS_ERROR_CORRUPTED_CONTENT so that tests can verify the difference
+ // between a hash error and a wrong download error.
AUSTLMY.pingDownloadCode(
this.isCompleteUpdate,
AUSTLMY.DWNLD_ERR_PATCH_SIZE_NOT_EQUAL
diff --git a/toolkit/mozapps/update/UpdateTelemetry.jsm b/toolkit/mozapps/update/UpdateTelemetry.jsm
index c2018042f164..20c166849a5a 100644
--- a/toolkit/mozapps/update/UpdateTelemetry.jsm
+++ b/toolkit/mozapps/update/UpdateTelemetry.jsm
@@ -180,6 +180,7 @@ var AUSTLMY = {
DWNLD_ERR_VERIFY_NO_REQUEST: 13,
DWNLD_ERR_VERIFY_PATCH_SIZE_NOT_EQUAL: 14,
DWNLD_ERR_WRITE_FAILURE: 15,
+ DWNLD_ERR_VERIFY_NO_HASH_MATCH: 16,
// Temporary failure code to see if there are failures without an update phase
DWNLD_UNKNOWN_PHASE_ERR_WRITE_FAILURE: 40,
diff --git a/toolkit/mozapps/update/nsIUpdateService.idl b/toolkit/mozapps/update/nsIUpdateService.idl
index baf423622100..be19bfc989d5 100644
--- a/toolkit/mozapps/update/nsIUpdateService.idl
+++ b/toolkit/mozapps/update/nsIUpdateService.idl
@@ -39,6 +39,17 @@ interface nsIUpdatePatch : nsISupports
*/
attribute AString finalURL;
+ /**
+ * The hash function to use when determining this file's integrity
+ */
+ attribute AString hashFunction;
+
+ /**
+ * The value of the hash function named above that should be computed if
+ * this file is not corrupt.
+ */
+ attribute AString hashValue;
+
/**
* The size of this file, in bytes.
*/
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 11641: change TBB directory structure to be more like Firefox's
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit af498c4d40f4d86622a28a783f46baa6c2c5975c
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Apr 29 13:08:24 2014 -0400
Bug 11641: change TBB directory structure to be more like Firefox's
Unless the -osint command line flag is used, the browser now defaults
to the equivalent of -no-remote. There is a new -allow-remote flag that
may be used to restore the original (Firefox-like) default behavior.
---
toolkit/xre/nsAppRunner.cpp | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 51a1a43ec891..86f6d55988a9 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -1804,8 +1804,10 @@ static void DumpHelp() {
" --migration Start with migration wizard.\n"
" --ProfileManager Start with ProfileManager.\n"
#ifdef MOZ_HAS_REMOTE
- " --no-remote Do not accept or send remote commands; implies\n"
+ " --no-remote (default) Do not accept or send remote commands; "
+ "implies\n"
" --new-instance.\n"
+ " --allow-remote Accept and send remote commands.\n"
" --new-instance Open new instance, not a new window in running "
"instance.\n"
#endif
@@ -3975,16 +3977,25 @@ int XREMain::XRE_mainInit(bool* aExitFlag) {
gSafeMode);
#if defined(MOZ_HAS_REMOTE)
+ // In Tor Browser, remoting is disabled by default unless -osint is used.
+ bool allowRemote = (CheckArg("allow-remote") == ARG_FOUND);
+ bool isOsint = (CheckArg("osint", nullptr, CheckArgFlag::None) == ARG_FOUND);
+ if (!allowRemote && !isOsint) {
+ SaveToEnv("MOZ_NO_REMOTE=1");
+ }
// Handle --no-remote and --new-instance command line arguments. Setup
// the environment to better accommodate other components and various
// restart scenarios.
ar = CheckArg("no-remote");
- if (ar == ARG_FOUND || EnvHasValue("MOZ_NO_REMOTE")) {
+ if ((ar == ARG_FOUND) && allowRemote) {
+ PR_fprintf(PR_STDERR,
+ "Error: argument --no-remote is invalid when argument "
+ "--allow-remote is specified\n");
+ return 1;
+ }
+ if (EnvHasValue("MOZ_NO_REMOTE")) {
mDisableRemoteClient = true;
mDisableRemoteServer = true;
- if (!EnvHasValue("MOZ_NO_REMOTE")) {
- SaveToEnv("MOZ_NO_REMOTE=1");
- }
}
ar = CheckArg("new-instance");
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 13379: Sign our MAR files.
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 2e99453c8b442a504a244dac03a67a5bed6a090e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Dec 17 16:37:11 2014 -0500
Bug 13379: Sign our MAR files.
Configure with --enable-verify-mar (when updating, require a valid
signature on the MAR file before it is applied).
Use the Tor Browser version instead of the Firefox version inside the
MAR file info block (necessary to prevent downgrade attacks).
Use NSS on all platforms for checking MAR signatures (instead of using
OS-native APIs, which Mozilla does on Mac OS and Windows). So that the
NSS and NSPR libraries the updater depends on can be found at runtime,
we add the firefox directory to the shared library search path on macOS.
On Linux, rpath is used by Mozilla to solve that problem, but that
approach won't work on macOS because the updater executable is copied
during the update process to a location that is under TorBrowser-Data,
and the location of TorBrowser-Data varies.
Also includes the fix for bug 18900.
---
.mozconfig | 1 +
.mozconfig-asan | 1 +
.mozconfig-mac | 1 +
.mozconfig-mingw | 1 +
modules/libmar/tool/mar.c | 6 +--
modules/libmar/tool/moz.build | 12 ++++--
modules/libmar/verify/moz.build | 14 +++---
.../mozapps/update/updater/updater-common.build | 26 +++++++++--
toolkit/mozapps/update/updater/updater.cpp | 25 +++++++----
toolkit/xre/moz.build | 3 ++
toolkit/xre/nsUpdateDriver.cpp | 50 ++++++++++++++++++++++
11 files changed, 115 insertions(+), 25 deletions(-)
diff --git a/.mozconfig b/.mozconfig
index 24efaea57b0b..d71c858844e3 100755
--- a/.mozconfig
+++ b/.mozconfig
@@ -36,3 +36,4 @@ ac_add_options MOZ_TELEMETRY_REPORTING=
ac_add_options --disable-tor-launcher
ac_add_options --with-tor-browser-version=dev-build
ac_add_options --disable-tor-browser-update
+ac_add_options --enable-verify-mar
diff --git a/.mozconfig-asan b/.mozconfig-asan
index 13232e054d45..ca05fb12eedb 100644
--- a/.mozconfig-asan
+++ b/.mozconfig-asan
@@ -28,6 +28,7 @@ ac_add_options --enable-official-branding
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-strip
ac_add_options --disable-install-strip
diff --git a/.mozconfig-mac b/.mozconfig-mac
index 1f89cab30bbc..9be7751f8241 100644
--- a/.mozconfig-mac
+++ b/.mozconfig-mac
@@ -42,6 +42,7 @@ ac_add_options --disable-debug
ac_add_options --enable-tor-browser-data-outside-app-dir
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-crashreporter
ac_add_options --disable-webrtc
diff --git a/.mozconfig-mingw b/.mozconfig-mingw
index 4fb050308060..29c58d8fdab2 100644
--- a/.mozconfig-mingw
+++ b/.mozconfig-mingw
@@ -14,6 +14,7 @@ ac_add_options --enable-strip
ac_add_options --enable-official-branding
ac_add_options --enable-tor-browser-update
+ac_add_options --enable-verify-mar
ac_add_options --disable-bits-download
# Let's make sure no preference is enabling either Adobe's or Google's CDM.
diff --git a/modules/libmar/tool/mar.c b/modules/libmar/tool/mar.c
index 0bf2cb4bd1d4..ea2b79924914 100644
--- a/modules/libmar/tool/mar.c
+++ b/modules/libmar/tool/mar.c
@@ -65,7 +65,7 @@ static void print_usage() {
"signed_input_archive.mar base_64_encoded_signature_file "
"changed_signed_output.mar\n");
printf("(i) is the index of the certificate to extract\n");
-# if defined(XP_MACOSX) || (defined(XP_WIN) && !defined(MAR_NSS))
+# if (defined(XP_MACOSX) || defined(XP_WIN)) && !defined(MAR_NSS)
printf("Verify a MAR file:\n");
printf(" mar [-C workingDir] -D DERFilePath -v signed_archive.mar\n");
printf(
@@ -149,7 +149,7 @@ int main(int argc, char** argv) {
memset((void*)certBuffers, 0, sizeof(certBuffers));
#endif
#if !defined(NO_SIGN_VERIFY) && \
- ((!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX))
+ (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
memset(DERFilePaths, 0, sizeof(DERFilePaths));
memset(fileSizes, 0, sizeof(fileSizes));
#endif
@@ -181,7 +181,7 @@ int main(int argc, char** argv) {
argc -= 2;
}
#if !defined(NO_SIGN_VERIFY)
-# if (!defined(MAR_NSS) && defined(XP_WIN)) || defined(XP_MACOSX)
+# if (!defined(MAR_NSS) && (defined(XP_WIN) || defined(XP_MACOSX)))
/* -D DERFilePath, also matches -D[index] DERFilePath
We allow an index for verifying to be symmetric
with the import and export command line arguments. */
diff --git a/modules/libmar/tool/moz.build b/modules/libmar/tool/moz.build
index a6d26c66a668..d6fa1677ddf1 100644
--- a/modules/libmar/tool/moz.build
+++ b/modules/libmar/tool/moz.build
@@ -43,15 +43,21 @@ if CONFIG["MOZ_BUILD_APP"] != "tools/update-packaging":
"verifymar",
]
+ if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["MAR_NSS"] = True
+
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
OS_LIBS += [
"ws2_32",
- "crypt32",
- "advapi32",
]
- elif CONFIG["OS_ARCH"] == "Darwin":
+ if not CONFIG["TOR_BROWSER_UPDATE"]:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+ elif CONFIG["OS_ARCH"] == "Darwin" and not CONFIG["TOR_BROWSER_UPDATE"]:
OS_LIBS += [
"-framework Security",
]
diff --git a/modules/libmar/verify/moz.build b/modules/libmar/verify/moz.build
index b07475655f0d..03718eee50b4 100644
--- a/modules/libmar/verify/moz.build
+++ b/modules/libmar/verify/moz.build
@@ -16,15 +16,12 @@ FORCE_STATIC_LIB = True
if CONFIG["OS_ARCH"] == "WINNT":
USE_STATIC_LIBS = True
elif CONFIG["OS_ARCH"] == "Darwin":
- UNIFIED_SOURCES += [
- "MacVerifyCrypto.cpp",
- ]
- OS_LIBS += [
- "-framework Security",
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
]
else:
- DEFINES["MAR_NSS"] = True
- LOCAL_INCLUDES += ["../sign"]
USE_LIBS += [
"nspr",
"nss",
@@ -38,6 +35,9 @@ else:
"-Wl,-rpath=\\$$ORIGIN",
]
+DEFINES["MAR_NSS"] = True
+LOCAL_INCLUDES += ["../sign"]
+
LOCAL_INCLUDES += [
"../src",
]
diff --git a/toolkit/mozapps/update/updater/updater-common.build b/toolkit/mozapps/update/updater/updater-common.build
index 2f2a210f255b..74b24151757f 100644
--- a/toolkit/mozapps/update/updater/updater-common.build
+++ b/toolkit/mozapps/update/updater/updater-common.build
@@ -4,6 +4,12 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+DEFINES["MAR_NSS"] = True
+
+link_with_nss = DEFINES["MAR_NSS"] or (
+ CONFIG["OS_ARCH"] == "Linux" and CONFIG["MOZ_VERIFY_MAR_SIGNATURE"]
+)
+
srcs = [
"archivereader.cpp",
"updater.cpp",
@@ -36,10 +42,14 @@ if CONFIG["OS_ARCH"] == "WINNT":
"ws2_32",
"shell32",
"shlwapi",
- "crypt32",
- "advapi32",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "crypt32",
+ "advapi32",
+ ]
+
USE_LIBS += [
"bspatch",
"mar",
@@ -47,6 +57,13 @@ USE_LIBS += [
"xz-embedded",
]
+if link_with_nss:
+ USE_LIBS += [
+ "nspr",
+ "nss",
+ "signmar",
+ ]
+
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
have_progressui = 1
srcs += [
@@ -61,9 +78,12 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
]
OS_LIBS += [
"-framework Cocoa",
- "-framework Security",
"-framework SystemConfiguration",
]
+ if not link_with_nss:
+ OS_LIBS += [
+ "-framework Security",
+ ]
UNIFIED_SOURCES += [
"/toolkit/xre/updaterfileutils_osx.mm",
]
diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
index 226354d5e753..d6f1f6c568bc 100644
--- a/toolkit/mozapps/update/updater/updater.cpp
+++ b/toolkit/mozapps/update/updater/updater.cpp
@@ -106,9 +106,11 @@ struct UpdateServerThreadArgs {
# define USE_EXECV
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
-# include "nss.h"
-# include "prerror.h"
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+# include "nss.h"
+# include "prerror.h"
+# endif
#endif
#include "crctable.h"
@@ -2721,8 +2723,13 @@ static void UpdateThreadFunc(void* param) {
if (ReadMARChannelIDs(updateSettingsPath, &MARStrings) != OK) {
rv = UPDATE_SETTINGS_FILE_CHANNEL;
} else {
+# ifdef TOR_BROWSER_UPDATE
+ const char* appVersion = TOR_BROWSER_VERSION_QUOTED;
+# else
+ const char* appVersion = MOZ_APP_VERSION;
+# endif
rv = gArchiveReader.VerifyProductInformation(
- MARStrings.MARChannelID.get(), MOZ_APP_VERSION);
+ MARStrings.MARChannelID.get(), appVersion);
}
}
}
@@ -2923,11 +2930,10 @@ int NS_main(int argc, NS_tchar** argv) {
}
#endif
-#if defined(MOZ_VERIFY_MAR_SIGNATURE) && !defined(XP_WIN) && !defined(XP_MACOSX)
- // On Windows and Mac we rely on native APIs to do verifications so we don't
- // need to initialize NSS at all there.
- // Otherwise, minimize the amount of NSS we depend on by avoiding all the NSS
- // databases.
+#if defined(MOZ_VERIFY_MAR_SIGNATURE)
+# if defined(MAR_NSS) || (!defined(XP_WIN) && !defined(XP_MACOSX))
+ // If using NSS for signature verification, initialize NSS but minimize
+ // the portion we depend on by avoiding all of the NSS databases.
if (NSS_NoDB_Init(nullptr) != SECSuccess) {
PRErrorCode error = PR_GetError();
fprintf(stderr, "Could not initialize NSS: %s (%d)", PR_ErrorToName(error),
@@ -2935,6 +2941,7 @@ int NS_main(int argc, NS_tchar** argv) {
_exit(1);
}
#endif
+#endif
#ifdef XP_MACOSX
if (!isElevated) {
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
index 8f80bf7a9d95..e4a1f54e495c 100644
--- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build
@@ -225,6 +225,9 @@ for var in ("APP_VERSION", "APP_ID"):
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_BUILD_APP_IS_BROWSER"] = True
+if CONFIG["TOR_BROWSER_UPDATE"]:
+ DEFINES["MAR_NSS"] = True
+
LOCAL_INCLUDES += [
"../../other-licenses/nsis/Contrib/CityHash/cityhash",
"../components/find",
diff --git a/toolkit/xre/nsUpdateDriver.cpp b/toolkit/xre/nsUpdateDriver.cpp
index 9e128b0b04c7..8df2d54195f7 100644
--- a/toolkit/xre/nsUpdateDriver.cpp
+++ b/toolkit/xre/nsUpdateDriver.cpp
@@ -360,6 +360,42 @@ static nsresult GetUpdateDirFromAppDir(nsIFile* aAppDir, nsIFile** aResult) {
# endif
#endif
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+/**
+ * Ideally we would save and restore the original library path value after
+ * the updater finishes its work (and before firefox is re-launched).
+ * Doing so would avoid potential problems like the following bug:
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=1434033
+ */
+/**
+ * Appends the specified path to the library path.
+ * This is used so that the updater can find libnss3.dylib and other
+ * shared libs.
+ *
+ * @param pathToAppend A new library path to prepend to the dynamic linker's
+ * search path.
+ */
+# include "prprf.h"
+# define PATH_SEPARATOR ":"
+# define LD_LIBRARY_PATH_ENVVAR_NAME "DYLD_LIBRARY_PATH"
+static void AppendToLibPath(const char* pathToAppend) {
+ char* pathValue = getenv(LD_LIBRARY_PATH_ENVVAR_NAME);
+ if (nullptr == pathValue || '\0' == *pathValue) {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s =
+ Smprintf("%s=%s", LD_LIBRARY_PATH_ENVVAR_NAME, pathToAppend).release();
+ PR_SetEnv(s);
+ } else {
+ // Leak the string because that is required by PR_SetEnv.
+ char* s = Smprintf("%s=%s" PATH_SEPARATOR "%s", LD_LIBRARY_PATH_ENVVAR_NAME,
+ pathToAppend, pathValue)
+ .release();
+ PR_SetEnv(s);
+ }
+}
+#endif
+
/**
* Applies, switches, or stages an update.
*
@@ -606,6 +642,20 @@ static void ApplyUpdate(nsIFile* greDir, nsIFile* updateDir, nsIFile* appDir,
PR_SetEnv("MOZ_SAFE_MODE_RESTART=1");
}
+#if defined(TOR_BROWSER_UPDATE) && defined(MOZ_VERIFY_MAR_SIGNATURE) && \
+ defined(MAR_NSS) && defined(XP_MACOSX)
+ // On macOS, append the app directory to the shared library search path
+ // so the system can locate the shared libraries that are needed by the
+ // updater, e.g., libnss3.dylib).
+ nsAutoCString appPath;
+ nsresult rv2 = appDir->GetNativePath(appPath);
+ if (NS_SUCCEEDED(rv2)) {
+ AppendToLibPath(appPath.get());
+ } else {
+ LOG(("ApplyUpdate -- appDir->GetNativePath() failed (0x%x)\n", rv2));
+ }
+#endif
+
LOG(("spawning updater process [%s]\n", updaterPath.get()));
#ifdef DEBUG
dump_argv("ApplyUpdate updater", argv, argc);
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 16285: Exclude ClearKey system for now
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 0402549b0a9a10500e59f86a7e9310f584d63f9d
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon May 22 12:44:40 2017 +0000
Bug 16285: Exclude ClearKey system for now
In the past the ClearKey system had not been compiled when specifying
--disable-eme. But that changed and it is even bundled nowadays (see:
Mozilla's bug 1300654). We don't want to ship it right now as the use
case for it is not really visible while the code had security
vulnerabilities in the past.
---
browser/installer/package-manifest.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 6a2f19cb040a..74589084d4fa 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -469,8 +469,8 @@ bin/libfreebl_64int_3.so
#endif
; media
-@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
-@RESPATH@/gmp-clearkey/0.1/manifest.json
+;@RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@
+;@RESPATH@/gmp-clearkey/0.1/manifest.json
#ifdef MOZ_DMD
; DMD
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 25658: Replace security slider with security level UI
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit a49bcab57ccf94d76f4edf77cad3f1d67c9d472e
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Mar 4 16:09:51 2019 -0800
Bug 25658: Replace security slider with security level UI
This patch adds a new 'securitylevel' component to Tor Browser intended
to replace the torbutton 'Security Slider'.
This component adds a new Security Level toolbar button which visually
indicates the current global security level via icon (as defined by the
extensions.torbutton.security_slider pref), a drop-down hanger with a
short description of the current security level, and a new section in
the about:preferences#privacy page where users can change their current
security level. In addition, the hanger and the preferences page will
show a visual warning when the user has modified prefs associated with
the security level and provide a one-click 'Restore Defaults' button to
get the user back on recommended settings.
Strings used by this patch are pulled from the torbutton extension, but
en-US defaults are provided if there is an error loading from the
extension. With this patch applied, the usual work-flow of "./mach build
&& ./mach run" work as expected, even if the torbutton extension is
disabled.
---
browser/base/content/browser.js | 10 +
browser/base/content/browser.xhtml | 5 +
browser/components/moz.build | 1 +
browser/components/preferences/preferences.xhtml | 1 +
browser/components/preferences/privacy.inc.xhtml | 2 +
browser/components/preferences/privacy.js | 19 +
.../securitylevel/content/securityLevel.js | 501 +++++++++++++++++++++
.../securitylevel/content/securityLevelButton.css | 9 +
.../content/securityLevelButton.inc.xhtml | 7 +
.../securitylevel/content/securityLevelButton.svg | 21 +
.../securitylevel/content/securityLevelPanel.css | 82 ++++
.../content/securityLevelPanel.inc.xhtml | 38 ++
.../content/securityLevelPreferences.css | 26 ++
.../content/securityLevelPreferences.inc.xhtml | 62 +++
browser/components/securitylevel/jar.mn | 6 +
browser/components/securitylevel/moz.build | 1 +
16 files changed, 791 insertions(+)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 9abba4bc420c..d83553c3c0ef 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -215,6 +215,11 @@ XPCOMUtils.defineLazyScriptGetter(
["DownloadsButton", "DownloadsIndicatorView"],
"chrome://browser/content/downloads/indicator.js"
);
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["SecurityLevelButton"],
+ "chrome://browser/content/securitylevel/securityLevel.js"
+);
XPCOMUtils.defineLazyScriptGetter(
this,
"gEditItemOverlay",
@@ -1876,6 +1881,9 @@ var gBrowserInit = {
// doesn't flicker as the window is being shown.
DownloadsButton.init();
+ // Init the SecuritySettingsButton
+ SecurityLevelButton.init();
+
// Certain kinds of automigration rely on this notification to complete
// their tasks BEFORE the browser window is shown. SessionStore uses it to
// restore tabs into windows AFTER important parts like gMultiProcessBrowser
@@ -2557,6 +2565,8 @@ var gBrowserInit = {
DownloadsButton.uninit();
+ SecurityLevelButton.uninit();
+
gAccessibilityServiceIndicator.uninit();
if (gToolbarKeyNavEnabled) {
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 27e15b92f641..2340bb92e9af 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -20,6 +20,8 @@
<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/tabbrowser.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/downloads/downloads.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPanel.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelButton.css"?>
<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/content/usercontext/usercontext.css" type="text/css"?>
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
@@ -644,6 +646,7 @@
#include ../../components/controlcenter/content/protectionsPanel.inc.xhtml
#include ../../components/downloads/content/downloadsPanel.inc.xhtml
#include ../../../devtools/startup/enableDevToolsPopup.inc.xhtml
+#include ../../components/securitylevel/content/securityLevelPanel.inc.xhtml
#include browser-allTabsMenu.inc.xhtml
<hbox id="downloads-animation-container">
@@ -1981,6 +1984,8 @@
</stack>
</toolbarbutton>
+#include ../../components/securitylevel/content/securityLevelButton.inc.xhtml
+
<toolbarbutton id="library-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
removable="true"
onmousedown="PanelUI.showSubView('appMenu-libraryView', this, event);"
diff --git a/browser/components/moz.build b/browser/components/moz.build
index 7f82f14985fe..5a4144ffa43d 100644
--- a/browser/components/moz.build
+++ b/browser/components/moz.build
@@ -51,6 +51,7 @@ DIRS += [
"protocolhandler",
"resistfingerprinting",
"search",
+ "securitylevel",
"sessionstore",
"shell",
"ssb",
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
index 99d5ae9892a5..b1e08364e1cc 100644
--- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml
@@ -12,6 +12,7 @@
<?xml-stylesheet href="chrome://browser/skin/preferences/search.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/containers.css"?>
<?xml-stylesheet href="chrome://browser/skin/preferences/privacy.css"?>
+<?xml-stylesheet href="chrome://browser/content/securitylevel/securityLevelPreferences.css"?>
<!DOCTYPE html>
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index 46445e8dc28f..0f963208e6fe 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -922,6 +922,8 @@
<html:h1 data-l10n-id="security-header"/>
</hbox>
+#include ../securitylevel/content/securityLevelPreferences.inc.xhtml
+
<!-- addons, forgery (phishing) UI Security -->
<groupbox id="browsingProtectionGroup" data-category="panePrivacy" hidden="true">
<label><html:h2 data-l10n-id="security-browsing-protection"/></label>
diff --git a/browser/components/preferences/privacy.js b/browser/components/preferences/privacy.js
index d534d695a5c4..e7c7c331292b 100644
--- a/browser/components/preferences/privacy.js
+++ b/browser/components/preferences/privacy.js
@@ -80,6 +80,12 @@ XPCOMUtils.defineLazyGetter(this, "AlertsServiceDND", function() {
}
});
+XPCOMUtils.defineLazyScriptGetter(
+ this,
+ ["SecurityLevelPreferences"],
+ "chrome://browser/content/securitylevel/securityLevel.js"
+);
+
XPCOMUtils.defineLazyServiceGetter(
this,
"listManager",
@@ -304,6 +310,18 @@ function setUpContentBlockingWarnings() {
var gPrivacyPane = {
_pane: null,
+ /**
+ * Show the Security Level UI
+ */
+ _initSecurityLevel() {
+ SecurityLevelPreferences.init();
+ let unload = () => {
+ window.removeEventListener("unload", unload);
+ SecurityLevelPreferences.uninit();
+ };
+ window.addEventListener("unload", unload);
+ },
+
/**
* Whether the prompt to restart Firefox should appear when changing the autostart pref.
*/
@@ -515,6 +533,7 @@ var gPrivacyPane = {
this.trackingProtectionReadPrefs();
this.networkCookieBehaviorReadPrefs();
this._initTrackingProtectionExtensionControl();
+ this._initSecurityLevel();
Services.telemetry.setEventRecordingEnabled("pwmgr", true);
diff --git a/browser/components/securitylevel/content/securityLevel.js b/browser/components/securitylevel/content/securityLevel.js
new file mode 100644
index 000000000000..b47d0cfb545e
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevel.js
@@ -0,0 +1,501 @@
+"use strict";
+
+ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
+
+XPCOMUtils.defineLazyModuleGetters(this, {
+ CustomizableUI: "resource:///modules/CustomizableUI.jsm",
+ PanelMultiView: "resource:///modules/PanelMultiView.jsm",
+});
+
+ChromeUtils.defineModuleGetter(
+ this,
+ "TorStrings",
+ "resource:///modules/TorStrings.jsm"
+);
+
+/*
+ Security Level Prefs
+
+ Getters and Setters for relevant torbutton prefs
+*/
+const SecurityLevelPrefs = {
+ security_slider_pref : "extensions.torbutton.security_slider",
+ security_custom_pref : "extensions.torbutton.security_custom",
+
+ get securitySlider() {
+ try {
+ return Services.prefs.getIntPref(this.security_slider_pref);
+ } catch(e) {
+ // init pref to 4 (standard)
+ const val = 4;
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ return val;
+ }
+ },
+
+ set securitySlider(val) {
+ Services.prefs.setIntPref(this.security_slider_pref, val);
+ },
+
+ get securityCustom() {
+ try {
+ return Services.prefs.getBoolPref(this.security_custom_pref);
+ } catch(e) {
+ // init custom to false
+ const val = false;
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ return val;
+ }
+ },
+
+ set securityCustom(val) {
+ Services.prefs.setBoolPref(this.security_custom_pref, val);
+ },
+}; /* Security Level Prefs */
+
+/*
+ Security Level Button Code
+
+ Controls init and update of the security level toolbar button
+*/
+
+const SecurityLevelButton = {
+ _securityPrefsBranch : null,
+
+ _populateXUL : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.securityLevel);
+ securityLevelButton.setAttribute("label", TorStrings.securityLevel.securityLevel);
+ }
+ },
+
+ _configUIFromPrefs : function(securityLevelButton) {
+ if (securityLevelButton != null) {
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let classList = securityLevelButton.classList;
+ classList.remove("standard", "safer", "safest");
+ switch(securitySlider) {
+ case 4:
+ classList.add("standard");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.standard.tooltip);
+ break;
+ case 2:
+ classList.add("safer");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.safer.tooltip);
+ break;
+ case 1:
+ classList.add("safest");
+ securityLevelButton.setAttribute("tooltiptext", TorStrings.securityLevel.safest.tooltip);
+ break;
+ }
+ }
+ },
+
+ get button() {
+ let button = document.getElementById("security-level-button");
+ if (!button) {
+ return null;
+ }
+ return button;
+ },
+
+ get anchor() {
+ let anchor = this.button.icon;
+ if (!anchor) {
+ return null;
+ }
+
+ anchor.setAttribute("consumeanchor", SecurityLevelButton.button.id);
+ return anchor;
+ },
+
+ init : function() {
+ // set the initial class based off of the current pref
+ let button = this.button;
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+
+ CustomizableUI.addListener(this);
+
+ SecurityLevelPanel.init();
+ },
+
+ uninit : function() {
+ CustomizableUI.removeListener(this);
+
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+
+ SecurityLevelPanel.uninit();
+ },
+
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider") {
+ this._configUIFromPrefs(this.button);
+ }
+ break;
+ }
+ },
+
+ // callback for entering the 'Customize Firefox' screen to set icon
+ onCustomizeStart : function(window) {
+ let navigatorToolbox = document.getElementById("navigator-toolbox");
+ let button = navigatorToolbox.palette.querySelector("#security-level-button");
+ this._populateXUL(button);
+ this._configUIFromPrefs(button);
+ },
+
+ // callback when CustomizableUI modifies DOM
+ onWidgetAfterDOMChange : function(aNode, aNextNode, aContainer, aWasRemoval) {
+ if (aNode.id == "security-level-button" && !aWasRemoval) {
+ this._populateXUL(aNode);
+ this._configUIFromPrefs(aNode);
+ }
+ },
+
+ // for when the toolbar button needs to be activated and displays the Security Level panel
+ //
+ // In the toolbarbutton xul you'll notice we register this callback for both onkeypress and
+ // onmousedown. We do this to match the behavior of other panel spawning buttons such as Downloads,
+ // Library, and the Hamburger menus. Using oncommand alone would result in only getting fired
+ // after onclick, which is mousedown followed by mouseup.
+ onCommand : function(aEvent) {
+ // snippet stolen from /browser/components/downloads/indicator.js DownloadsIndicatorView.onCommand(evt)
+ if (
+ (aEvent.type == "mousedown" && aEvent.button != 0) ||
+ (aEvent.type == "keypress" && aEvent.key != " " && aEvent.key != "Enter")
+ ) {
+ return;
+ }
+
+ // we need to set this attribute for the button to be shaded correctly to look like it is pressed
+ // while the security level panel is open
+ this.button.setAttribute("open", "true");
+ SecurityLevelPanel.show();
+ },
+}; /* Security Level Button */
+
+/*
+ Security Level Panel Code
+
+ Controls init and update of the panel in the security level hanger
+*/
+
+const SecurityLevelPanel = {
+ _securityPrefsBranch : null,
+ _panel : null,
+ _anchor : null,
+ _populated : false,
+
+ _populateXUL : function() {
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelHeader = panelview.querySelector("#securityLevel-header");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let labelLearnMore = panelview.querySelector("#securityLevel-learnMore");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ labelHeader.setAttribute("value", TorStrings.securityLevel.securityLevel);
+ labelCustomWarning.setAttribute("value", TorStrings.securityLevel.customWarning);
+ labelLearnMore.setAttribute("value", TorStrings.securityLevel.learnMore);
+ labelLearnMore.setAttribute("href", TorStrings.securityLevel.learnMoreURL);
+ buttonRestoreDefaults.setAttribute("label", TorStrings.securityLevel.restoreDefaults);
+ buttonAdvancedSecuritySettings.setAttribute("label", TorStrings.securityLevel.advancedSecuritySettings);
+
+ // rest of the XUL is set based on security prefs
+ this._configUIFromPrefs();
+
+ this._populated = true;
+ },
+
+ _configUIFromPrefs : function() {
+ // get security prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get the panel elements we need to populate
+ let panelview = document.getElementById("securityLevel-panelview");
+ let labelLevel = panelview.querySelector("#securityLevel-level");
+ let labelCustomWarning = panelview.querySelector("#securityLevel-customWarning")
+ let summary = panelview.querySelector("#securityLevel-summary");
+ let buttonRestoreDefaults = panelview.querySelector("#securityLevel-restoreDefaults");
+ let buttonAdvancedSecuritySettings = panelview.querySelector("#securityLevel-advancedSecuritySettings");
+
+ // only visible when user is using custom settings
+ labelCustomWarning.hidden = !securityCustom;
+ buttonRestoreDefaults.hidden = !securityCustom;
+
+ // Descriptions change based on security level
+ switch(securitySlider) {
+ // standard
+ case 4:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.standard.level);
+ summary.textContent = TorStrings.securityLevel.standard.summary;
+ break;
+ // safer
+ case 2:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.safer.level);
+ summary.textContent = TorStrings.securityLevel.safer.summary;
+ break;
+ // safest
+ case 1:
+ labelLevel.setAttribute("value", TorStrings.securityLevel.safest.level);
+ summary.textContent = TorStrings.securityLevel.safest.summary;
+ break;
+ }
+
+ // override the summary text with custom warning
+ if (securityCustom) {
+ summary.textContent = TorStrings.securityLevel.custom.summary;
+ }
+ },
+
+ init : function() {
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ show : function() {
+ // we have to defer this until after the browser has finished init'ing before
+ // we can populate the panel
+ if (!this._populated) {
+ this._populateXUL();
+ }
+
+ let panel = document.getElementById("securityLevel-panel");
+ panel.hidden = false;
+ PanelMultiView.openPopup(panel, SecurityLevelButton.anchor, "bottomcenter topright",
+ 0, 0, false, null).catch(Cu.reportError);
+ },
+
+ hide : function() {
+ let panel = document.getElementById("securityLevel-panel");
+ PanelMultiView.hidePopup(panel);
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ // hide and reshow so that layout re-renders properly
+ this.hide();
+ this.show(this._anchor);
+ },
+
+ openAdvancedSecuritySettings : function() {
+ openPreferences("privacy-securitylevel");
+ this.hide();
+ },
+
+ // callback when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" || data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ // callback when the panel is displayed
+ onPopupShown : function(event) {
+ SecurityLevelButton.button.setAttribute("open", "true");
+ },
+
+ // callback when the panel is hidden
+ onPopupHidden : function(event) {
+ SecurityLevelButton.button.removeAttribute("open");
+ }
+}; /* Security Level Panel */
+
+/*
+ Security Level Preferences Code
+
+ Code to handle init and update of security level section in about:preferences#privacy
+*/
+
+const SecurityLevelPreferences =
+{
+ _securityPrefsBranch : null,
+
+ _populateXUL : function() {
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let labelHeader = groupbox.querySelector("#securityLevel-header");
+ labelHeader.textContent = TorStrings.securityLevel.securityLevel;
+
+ let spanOverview = groupbox.querySelector("#securityLevel-overview");
+ spanOverview.textContent = TorStrings.securityLevel.overview;
+
+ let labelLearnMore = groupbox.querySelector("#securityLevel-learnMore");
+ labelLearnMore.setAttribute("value", TorStrings.securityLevel.learnMore);
+ labelLearnMore.setAttribute("href", TorStrings.securityLevel.learnMoreURL);
+
+ let radiogroup = document.getElementById("securityLevel-radiogroup");
+ radiogroup.addEventListener("command", SecurityLevelPreferences.selectSecurityLevel);
+
+ let populateRadioElements = function(vboxQuery, stringStruct) {
+ let vbox = groupbox.querySelector(vboxQuery);
+
+ let radio = vbox.querySelector("radio");
+ radio.setAttribute("label", stringStruct.level);
+
+ let customWarning = vbox.querySelector("#securityLevel-customWarning");
+ customWarning.setAttribute("value", TorStrings.securityLevel.customWarning);
+
+ let labelSummary = vbox.querySelector("#securityLevel-summary");
+ labelSummary.textContent = stringStruct.summary;
+
+ let labelRestoreDefaults = vbox.querySelector("#securityLevel-restoreDefaults");
+ labelRestoreDefaults.setAttribute("value", TorStrings.securityLevel.restoreDefaults);
+ labelRestoreDefaults.addEventListener("click", SecurityLevelPreferences.restoreDefaults);
+
+ let description1 = vbox.querySelector("#securityLevel-description1");
+ if (description1) {
+ description1.textContent = stringStruct.description1;
+ }
+ let description2 = vbox.querySelector("#securityLevel-description2");
+ if (description2) {
+ description2.textContent = stringStruct.description2;
+ }
+ let description3 = vbox.querySelector("#securityLevel-description3");
+ if (description3) {
+ description3.textContent = stringStruct.description3;
+ }
+ };
+
+ populateRadioElements("#securityLevel-vbox-standard", TorStrings.securityLevel.standard);
+ populateRadioElements("#securityLevel-vbox-safer", TorStrings.securityLevel.safer);
+ populateRadioElements("#securityLevel-vbox-safest", TorStrings.securityLevel.safest);
+ },
+
+ _configUIFromPrefs : function() {
+ // read our prefs
+ let securitySlider = SecurityLevelPrefs.securitySlider;
+ let securityCustom = SecurityLevelPrefs.securityCustom;
+
+ // get our elements
+ let groupbox = document.getElementById("securityLevel-groupbox");
+
+ let radiogroup = groupbox.querySelector("#securityLevel-radiogroup");
+ let labelStandardCustom = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-customWarning");
+ let labelSaferCustom = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-customWarning");
+ let labelSafestCustom = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-customWarning");
+ let labelStandardRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-standard label#securityLevel-restoreDefaults");
+ let labelSaferRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safer label#securityLevel-restoreDefaults");
+ let labelSafestRestoreDefaults = groupbox.querySelector("#securityLevel-vbox-safest label#securityLevel-restoreDefaults");
+
+ // hide custom label by default until we know which level we're at
+ labelStandardCustom.hidden = true;
+ labelSaferCustom.hidden = true;
+ labelSafestCustom.hidden = true;
+
+ labelStandardRestoreDefaults.hidden = true;
+ labelSaferRestoreDefaults.hidden = true;
+ labelSafestRestoreDefaults.hidden = true;
+
+ switch(securitySlider) {
+ // standard
+ case 4:
+ radiogroup.value = "standard";
+ labelStandardCustom.hidden = !securityCustom;
+ labelStandardRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safer
+ case 2:
+ radiogroup.value = "safer";
+ labelSaferCustom.hidden = !securityCustom;
+ labelSaferRestoreDefaults.hidden = !securityCustom;
+ break;
+ // safest
+ case 1:
+ radiogroup.value = "safest";
+ labelSafestCustom.hidden = !securityCustom;
+ labelSafestRestoreDefaults.hidden = !securityCustom;
+ break;
+ }
+ },
+
+ init : function() {
+ // populate XUL with localized strings
+ this._populateXUL();
+
+ // read prefs and populate UI
+ this._configUIFromPrefs();
+
+ // register for pref chagnes
+ this._securityPrefsBranch = Services.prefs.getBranch("extensions.torbutton.");
+ this._securityPrefsBranch.addObserver("", this, false);
+ },
+
+ uninit : function() {
+ // unregister for pref change events
+ this._securityPrefsBranch.removeObserver("", this);
+ this._securityPrefsBranch = null;
+ },
+
+ // callback for when prefs change
+ observe : function(subject, topic, data) {
+ switch(topic) {
+ case "nsPref:changed":
+ if (data == "security_slider" ||
+ data == "security_custom") {
+ this._configUIFromPrefs();
+ }
+ break;
+ }
+ },
+
+ selectSecurityLevel : function() {
+ // radio group elements
+ let radiogroup = document.getElementById("securityLevel-radiogroup");
+
+ // update pref based on selected radio option
+ switch (radiogroup.value) {
+ case "standard":
+ SecurityLevelPrefs.securitySlider = 4;
+ break;
+ case "safer":
+ SecurityLevelPrefs.securitySlider = 2;
+ break;
+ case "safest":
+ SecurityLevelPrefs.securitySlider = 1;
+ break;
+ }
+
+ SecurityLevelPreferences.restoreDefaults();
+ },
+
+ restoreDefaults : function() {
+ SecurityLevelPrefs.securityCustom = false;
+ },
+}; /* Security Level Prefereces */
+
+Object.defineProperty(this, "SecurityLevelButton", {
+ value: SecurityLevelButton,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPanel", {
+ value: SecurityLevelPanel,
+ enumerable: true,
+ writable: false
+});
+
+Object.defineProperty(this, "SecurityLevelPreferences", {
+ value: SecurityLevelPreferences,
+ enumerable: true,
+ writable: false
+});
diff --git a/browser/components/securitylevel/content/securityLevelButton.css b/browser/components/securitylevel/content/securityLevelButton.css
new file mode 100644
index 000000000000..81f2365bae28
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.css
@@ -0,0 +1,9 @@
+toolbarbutton#security-level-button.standard {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#standard");
+}
+toolbarbutton#security-level-button.safer {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safer");
+}
+toolbarbutton#security-level-button.safest {
+ list-style-image: url("chrome://browser/content/securitylevel/securityLevelButton.svg#safest");
+}
diff --git a/browser/components/securitylevel/content/securityLevelButton.inc.xhtml b/browser/components/securitylevel/content/securityLevelButton.inc.xhtml
new file mode 100644
index 000000000000..96ee1ec0ca49
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.inc.xhtml
@@ -0,0 +1,7 @@
+<toolbarbutton id="security-level-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ badged="true"
+ removable="true"
+ onmousedown="SecurityLevelButton.onCommand(event);"
+ onkeypress="SecurityLevelButton.onCommand(event);"
+ closemenu="none"
+ cui-areatype="toolbar"/>
diff --git a/browser/components/securitylevel/content/securityLevelButton.svg b/browser/components/securitylevel/content/securityLevelButton.svg
new file mode 100644
index 000000000000..8535cdcc531e
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelButton.svg
@@ -0,0 +1,21 @@
+<svg width="14px" height="16px" viewBox="0 0 14 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <style>
+ use:not(:target) {
+ display: none;
+ }
+ </style>
+ <defs>
+ <g id="standard_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 2.16583509C7.0 2.16583509 2.0 4.24375717 2.0 4.24375717C2.0 4.24375717 2.0 7.27272727 2.0 7.27272727C2.0 10.2413541 4.13435329 13.0576771 7.0 13.9315843C9.8656467 13.0576771 12.0 10.2413541 12.0 7.27272727C12.0 7.27272727 12.0 4.24375717 12.0 4.24375717C12.0 4.24375717 7.0 2.16583509 7.0 2.16583509C7.0 2.16583509 7.0 2.16583509 7.0 2.16583509M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ <g id="safer_icon" stroke="none" stroke-width="1">
+ <path fill-rule="nonzero" d="M7.0 2.1658351C7.0 13.931584 7.0 2.1658351 7.0 13.931584C9.8656467 13.057677 12.0 10.241354 12.0 7.2727273C12.0 7.2727273 12.0 4.2437572 12.0 4.2437572C12.0 4.2437572 7.0 2.1658351 7.0 2.1658351C7.0 2.1658351 7.0 2.1658351 7.0 2.1658351M7.0 0.0C7.0 0.0 14.0 2.9090909 14.0 2.9090909C14.0 2.9090909 14.0 7.2727273 14.0 7.2727273C14.0 11.309091 11.013333 15.083636 7.0 16.0C2.9866667 15.083636 0.0 11.309091 0.0 7.2727273C0.0 7.2727273 0.0 2.9090909 0.0 2.9090909C0.0 2.9090909 7.0 0.0 7.0 0.0"/>
+ </g>
+ <g id="safest_icon" stroke="none" stroke-width="1">
+ <path d="M7.0 0.0C7.0 0.0 14.0 2.90909091 14.0 2.90909091C14.0 2.90909091 14.0 7.27272727 14.0 7.27272727C14.0 11.3090909 11.0133333 15.0836364 7.0 16.0C2.98666667 15.0836364 0.0 11.3090909 0.0 7.27272727C0.0 7.27272727 0.0 2.90909091 0.0 2.90909091C0.0 2.90909091 7.0 0.0 7.0 0.0C7.0 0.0 7.0 0.0 7.0 0.0" />
+ </g>
+ </defs>
+ <use id="standard" fill="context-fill" fill-opacity="context-fill-opacity" href="#standard_icon" />
+ <use id="safer" fill="context-fill" fill-opacity="context-fill-opacity" href="#safer_icon" />
+ <use id="safest" fill="context-fill" fill-opacity="context-fill-opacity" href="#safest_icon" />
+</svg>
diff --git a/browser/components/securitylevel/content/securityLevelPanel.css b/browser/components/securitylevel/content/securityLevelPanel.css
new file mode 100644
index 000000000000..70022e2bd4b2
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.css
@@ -0,0 +1,82 @@
+/* Security Level CSS */
+
+panel#securityLevel-panel > .panel-arrowcontainer > .panel-arrowcontent {
+ padding: 0;
+}
+
+panelview#securityLevel-panelview {
+ width: 20em;
+}
+
+panelview#securityLevel-panelview>vbox.panel-subview-body {
+ padding: 1em;
+}
+
+label#securityLevel-header {
+ text-transform: uppercase;
+ color: var(--panel-disabled-color);
+ font-size: 0.85em;
+ margin: 0 0 0.4em 0;
+ padding: 0;
+}
+
+hbox#securityLevel-levelHbox {
+ margin-bottom: 1em;
+}
+
+label#securityLevel-level {
+ font-size: 1.5em;
+ margin: 0 0.5em 0 0;
+ padding: 0;
+}
+
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.8em;
+ height: 1em;
+ line-height: 1em;
+ vertical-align: middle;
+ margin: auto;
+ padding: 0.4em;
+}
+
+panelview#securityLevel-panelview description {
+ margin: 0 -0.5em 0.5em 0;
+ padding: 0 !important;
+}
+
+label#securityLevel-learnMore {
+ margin: 0 0 1.0em 0;
+ padding: 0;
+}
+
+panelview#securityLevel-panelview button {
+ -moz-appearance: none;
+ background-color: var(--arrowpanel-dimmed);
+}
+
+panelview#securityLevel-panelview button:hover {
+ background-color: var(--arrowpanel-dimmed-further);
+}
+
+panelview#securityLevel-panelview button:active {
+ background-color: var(--arrowpanel-dimmed-even-further);
+}
+
+button#securityLevel-restoreDefaults {
+ margin: 0 0 1.0em 0;
+ padding: 0.45em;
+ color: inherit !important;
+}
+
+button#securityLevel-advancedSecuritySettings {
+ margin: 0 -1.0em -1.0em -1.0em;
+ border-radius: 0;
+ border-top: 1px solid var(--panel-separator-color);
+ padding: 0;
+ height: 3.0em;
+ color: inherit !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml b/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
new file mode 100644
index 000000000000..4abbb12dd856
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
@@ -0,0 +1,38 @@
+<panel id="securityLevel-panel"
+ role="group"
+ type="arrow"
+ orient="vertical"
+ level="top"
+ hidden="true"
+ class="panel-no-padding"
+ onpopupshown="SecurityLevelPanel.onPopupShown(event);"
+ onpopuphidden="SecurityLevelPanel.onPopupHidden(event);"
+ >
+ <panelmultiview mainViewId="securityLevel-panelview">
+ <panelview id="securityLevel-panelview" descriptionheightworkaround="true">
+ <vbox class="panel-subview-body">
+ <label id="securityLevel-header"/>
+ <hbox id="securityLevel-levelHbox">
+ <label id="securityLevel-level"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description id="securityLevel-summary"/>
+ <label
+ id="securityLevel-learnMore"
+ class="learnMore text-link"
+ onclick="SecurityLevelPanel.hide();"
+ is="text-link"/>
+ <button
+ id="securityLevel-restoreDefaults"
+ oncommand="SecurityLevelPanel.restoreDefaults();"/>
+ <button
+ id="securityLevel-advancedSecuritySettings"
+ oncommand="SecurityLevelPanel.openAdvancedSecuritySettings();"/>
+ </vbox>
+ </panelview>
+ </panelmultiview>
+</panel>
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.css b/browser/components/securitylevel/content/securityLevelPreferences.css
new file mode 100644
index 000000000000..0d1040d177d8
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.css
@@ -0,0 +1,26 @@
+label#securityLevel-customWarning {
+ border-radius: 2px;
+ background-color: #ffe845;
+ text-transform: uppercase;
+ font-weight: bolder;
+ font-size: 0.7em;
+ height: 1em;
+ line-height: 1em;
+ padding: 0.35em;
+}
+
+radiogroup#securityLevel-radiogroup radio {
+ font-weight: bold;
+}
+
+vbox#securityLevel-vbox-standard,
+vbox#securityLevel-vbox-safer,
+vbox#securityLevel-vbox-safest {
+ margin-top: 0.4em;
+}
+
+vbox#securityLevel-vbox-standard description.indent,
+vbox#securityLevel-vbox-safer description.indent,
+vbox#securityLevel-vbox-safest description.indent {
+ margin-inline-start: 0 !important;
+}
diff --git a/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml b/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
new file mode 100644
index 000000000000..a108d44a7b51
--- /dev/null
+++ b/browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
@@ -0,0 +1,62 @@
+<groupbox id="securityLevel-groupbox" data-category="panePrivacy" hidden="true">
+ <label><html:h2 id="securityLevel-header"/></label>
+ <vbox data-subcategory="securitylevel" flex="1">
+ <description flex="1">
+ <html:span id="securityLevel-overview" class="tail-with-learn-more"/>
+ <label id="securityLevel-learnMore" class="learnMore text-link" is="text-link"/>
+ </description>
+ <radiogroup id="securityLevel-radiogroup">
+ <vbox id="securityLevel-vbox-standard">
+ <hbox>
+ <radio value="standard"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ </vbox>
+ <vbox id="securityLevel-vbox-safer">
+ <hbox>
+ <radio value="safer"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ <vbox id="securityLevel-vbox-safest">
+ <hbox>
+ <radio value="safest"/>
+ <vbox>
+ <spacer flex="1"/>
+ <label id="securityLevel-customWarning"/>
+ <spacer flex="1"/>
+ </vbox>
+ </hbox>
+ <description flex="1">
+ <html:span id="securityLevel-summary" class="tail-with-learn-more"/>
+ <label id="securityLevel-restoreDefaults"
+ class="learnMore text-link"/>
+ </description>
+ <description id="securityLevel-description1" class="indent tip-caption"/>
+ <description id="securityLevel-description2" class="indent tip-caption"/>
+ <description id="securityLevel-description3" class="indent tip-caption"/>
+ </vbox>
+ </radiogroup>
+ </vbox>
+</groupbox>
diff --git a/browser/components/securitylevel/jar.mn b/browser/components/securitylevel/jar.mn
new file mode 100644
index 000000000000..9ac408083fbc
--- /dev/null
+++ b/browser/components/securitylevel/jar.mn
@@ -0,0 +1,6 @@
+browser.jar:
+ content/browser/securitylevel/securityLevel.js (content/securityLevel.js)
+ content/browser/securitylevel/securityLevelPanel.css (content/securityLevelPanel.css)
+ content/browser/securitylevel/securityLevelButton.css (content/securityLevelButton.css)
+ content/browser/securitylevel/securityLevelPreferences.css (content/securityLevelPreferences.css)
+ content/browser/securitylevel/securityLevelButton.svg (content/securityLevelButton.svg)
diff --git a/browser/components/securitylevel/moz.build b/browser/components/securitylevel/moz.build
new file mode 100644
index 000000000000..2661ad7cb9f3
--- /dev/null
+++ b/browser/components/securitylevel/moz.build
@@ -0,0 +1 @@
+JAR_MANIFESTS += ["jar.mn"]
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 21830: Copying large text from web console leaks to /tmp
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 4d5317bbe5bd9a81ee190d66fc53115af887039a
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Aug 4 05:55:49 2017 +0000
Bug 21830: Copying large text from web console leaks to /tmp
Patch written by Neill Miller
---
widget/nsTransferable.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/widget/nsTransferable.cpp b/widget/nsTransferable.cpp
index c82549a4d1d1..f8ecfbff0983 100644
--- a/widget/nsTransferable.cpp
+++ b/widget/nsTransferable.cpp
@@ -33,6 +33,7 @@ Notes to self:
#include "nsILoadContext.h"
#include "nsXULAppAPI.h"
#include "mozilla/UniquePtr.h"
+#include "mozilla/Preferences.h"
using namespace mozilla;
@@ -195,6 +196,11 @@ nsTransferable::Init(nsILoadContext* aContext) {
if (aContext) {
mPrivateData = aContext->UsePrivateBrowsing();
+ } else {
+ // without aContext here to provide PrivateBrowsing information,
+ // we defer to the active configured setting
+ mPrivateData =
+ mozilla::Preferences::GetBool("browser.privatebrowsing.autostart");
}
#ifdef DEBUG
mInitialized = true;
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 21431: Clean-up system extensions shipped in Firefox
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 1b7f321120403a083ed8c79acc029fabe360c70f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue May 23 17:05:29 2017 -0400
Bug 21431: Clean-up system extensions shipped in Firefox
Only ship the pdfjs extension.
---
browser/components/BrowserGlue.jsm | 6 ++++++
browser/extensions/moz.build | 2 +-
browser/installer/package-manifest.in | 1 -
browser/locales/Makefile.in | 8 --------
browser/locales/jar.mn | 7 -------
5 files changed, 7 insertions(+), 17 deletions(-)
diff --git a/browser/components/BrowserGlue.jsm b/browser/components/BrowserGlue.jsm
index 3725c8f8b7a5..869317142bb2 100644
--- a/browser/components/BrowserGlue.jsm
+++ b/browser/components/BrowserGlue.jsm
@@ -2201,6 +2201,9 @@ BrowserGlue.prototype = {
const ID = "screenshots(a)mozilla.org";
const _checkScreenshotsPref = async () => {
let addon = await AddonManager.getAddonByID(ID);
+ if (!addon) {
+ return;
+ }
let disabled = Services.prefs.getBoolPref(PREF, false);
if (disabled) {
await addon.disable({ allowSystemAddons: true });
@@ -2217,6 +2220,9 @@ BrowserGlue.prototype = {
const ID = "webcompat-reporter(a)mozilla.org";
Services.prefs.addObserver(PREF, async () => {
let addon = await AddonManager.getAddonByID(ID);
+ if (!addon) {
+ return;
+ }
let enabled = Services.prefs.getBoolPref(PREF, false);
if (enabled && !addon.isActive) {
await addon.enable({ allowSystemAddons: true });
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index df98fa94f629..8b16ddc4a84a 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -4,7 +4,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-DIRS += ["doh-rollout", "formautofill", "screenshots", "webcompat", "report-site-issue"]
+DIRS += []
if not CONFIG["TOR_BROWSER_DISABLE_TOR_LAUNCHER"]:
DIRS += ["tor-launcher"]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 74589084d4fa..937afa28fd71 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -272,7 +272,6 @@
@RESPATH@/browser/chrome/icons/default/default64.png
@RESPATH@/browser/chrome/icons/default/default128.png
#endif
-@RESPATH@/browser/features/*
; [DevTools Startup Files]
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
index 496379c4306f..0946188813da 100644
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -58,10 +58,6 @@ l10n-%:
@$(MAKE) -C ../../toolkit/locales l10n-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
-ifneq (,$(wildcard ../extensions/formautofill/locales))
- @$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
-endif
- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
@@ -75,14 +71,10 @@ chrome-%:
@$(MAKE) -C ../../toolkit/locales chrome-$*
@$(MAKE) -C ../../services/sync/locales chrome AB_CD=$*
@$(MAKE) -C ../../extensions/spellcheck/locales chrome AB_CD=$*
-ifneq (,$(wildcard ../extensions/formautofill/locales))
- @$(MAKE) -C ../extensions/formautofill/locales chrome AB_CD=$*
-endif
@$(MAKE) -C ../../devtools/client/locales chrome AB_CD=$*
@$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$*
@$(MAKE) chrome AB_CD=$*
@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
- @$(MAKE) -C ../extensions/report-site-issue/locales chrome AB_CD=$*
package-win32-installer: $(SUBMAKEFILES)
$(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 454dcf5fdf2f..7866d448d176 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -54,10 +54,3 @@
locale/browser/newInstall.dtd (%chrome/browser/newInstall.dtd)
locale/browser/brandings.dtd (%chrome/browser/brandings.dtd)
locale/browser/fxmonitor.properties (%chrome/browser/fxmonitor.properties)
-
-#ifdef XPI_NAME
-# Bug 1240628, restructure how l10n repacks work with feature addons
-# This is hacky, but ensures the chrome.manifest chain is complete
-[.] chrome.jar:
-% manifest features/chrome.manifest
-#endif
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 26353: Prevent speculative connect that violated FPI.
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 8e22f43a9584ed430c46471a20d3ff17faa5501e
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Sat Jul 14 08:50:55 2018 -0700
Bug 26353: Prevent speculative connect that violated FPI.
Connections were observed in the catch-all circuit when
the user entered an https or http URL in the URL bar, or
typed a search term.
---
toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm b/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
index ae551496509a..81b5ceaa78fe 100644
--- a/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
+++ b/toolkit/components/remotebrowserutils/RemoteWebNavigation.jsm
@@ -93,6 +93,9 @@ class RemoteWebNavigation {
}
uri = Services.uriFixup.getFixupURIInfo(aURI, fixupFlags).preferredURI;
+/*******************************************************************************
+ TOR BROWSER: Disable the following speculative connect until
+ we can make it properly obey first-party isolation.
// We know the url is going to be loaded, let's start requesting network
// connection before the content process asks.
@@ -116,6 +119,7 @@ class RemoteWebNavigation {
}
Services.io.speculativeConnect(uri, principal, null);
}
+*******************************************************************************/
} catch (ex) {
// Can't setup speculative connection for this uri string for some
// reason (such as failing to parse the URI), just ignore it.
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 28369: Stop shipping pingsender executable
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 4df93a8d8f8102815decdcf802b21b692e607a33
Author: Alex Catarineu <acat(a)torproject.org>
Date: Wed Apr 10 17:52:51 2019 +0200
Bug 28369: Stop shipping pingsender executable
---
browser/app/macbuild/Contents/MacOS-files.in | 1 -
browser/installer/package-manifest.in | 4 ----
browser/installer/windows/nsis/shared.nsh | 1 -
python/mozbuild/mozbuild/artifacts.py | 2 --
toolkit/components/telemetry/app/TelemetrySend.jsm | 19 +------------------
toolkit/components/telemetry/moz.build | 4 ----
6 files changed, 1 insertion(+), 30 deletions(-)
diff --git a/browser/app/macbuild/Contents/MacOS-files.in b/browser/app/macbuild/Contents/MacOS-files.in
index 3c6a1db5d6ea..bebc656a0a05 100644
--- a/browser/app/macbuild/Contents/MacOS-files.in
+++ b/browser/app/macbuild/Contents/MacOS-files.in
@@ -16,7 +16,6 @@
#if defined(MOZ_CRASHREPORTER)
/minidump-analyzer
#endif
-/pingsender
/pk12util
/ssltunnel
/xpcshell
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 937afa28fd71..6c314a352c3b 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -448,10 +448,6 @@ bin/libfreebl_64int_3.so
@BINPATH@/minidump-analyzer@BIN_SUFFIX@
#endif
-; [ Ping Sender ]
-;
-@BINPATH@/pingsender@BIN_SUFFIX@
-
; Shutdown Terminator
@RESPATH@/components/terminator.manifest
diff --git a/browser/installer/windows/nsis/shared.nsh b/browser/installer/windows/nsis/shared.nsh
index 0529ac4529db..c556fe016af0 100755
--- a/browser/installer/windows/nsis/shared.nsh
+++ b/browser/installer/windows/nsis/shared.nsh
@@ -1472,7 +1472,6 @@ ${EndIf}
Push "crashreporter.exe"
Push "default-browser-agent.exe"
Push "minidump-analyzer.exe"
- Push "pingsender.exe"
Push "updater.exe"
Push "updateagent.exe"
Push "${FileMainEXE}"
diff --git a/python/mozbuild/mozbuild/artifacts.py b/python/mozbuild/mozbuild/artifacts.py
index 1eb5e00aab00..b28b4703f5db 100644
--- a/python/mozbuild/mozbuild/artifacts.py
+++ b/python/mozbuild/mozbuild/artifacts.py
@@ -494,7 +494,6 @@ class LinuxArtifactJob(ArtifactJob):
"{product}/{product}",
"{product}/{product}-bin",
"{product}/minidump-analyzer",
- "{product}/pingsender",
"{product}/plugin-container",
"{product}/updater",
"{product}/**/*.so",
@@ -563,7 +562,6 @@ class MacArtifactJob(ArtifactJob):
"libosclientcerts.dylib",
"libsoftokn3.dylib",
"minidump-analyzer",
- "pingsender",
"plugin-container.app/Contents/MacOS/plugin-container",
"updater.app/Contents/MacOS/org.mozilla.updater",
# 'xpcshell',
diff --git a/toolkit/components/telemetry/app/TelemetrySend.jsm b/toolkit/components/telemetry/app/TelemetrySend.jsm
index caf11f440681..ce27382be7e0 100644
--- a/toolkit/components/telemetry/app/TelemetrySend.jsm
+++ b/toolkit/components/telemetry/app/TelemetrySend.jsm
@@ -1578,23 +1578,6 @@ var TelemetrySendImpl = {
},
runPingSender(pings, observer) {
- if (AppConstants.platform === "android") {
- throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
- }
-
- const exeName =
- AppConstants.platform === "win" ? "pingsender.exe" : "pingsender";
-
- let exe = Services.dirsvc.get("GreBinD", Ci.nsIFile);
- exe.append(exeName);
-
- let params = pings.flatMap(ping => [ping.url, ping.path]);
- let process = Cc["@mozilla.org/process/util;1"].createInstance(
- Ci.nsIProcess
- );
- process.init(exe);
- process.startHidden = true;
- process.noShell = true;
- process.runAsync(params, params.length, observer);
+ throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
},
};
diff --git a/toolkit/components/telemetry/moz.build b/toolkit/components/telemetry/moz.build
index a686d30d0912..d545a3df42f4 100644
--- a/toolkit/components/telemetry/moz.build
+++ b/toolkit/components/telemetry/moz.build
@@ -8,10 +8,6 @@ include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
-DIRS = [
- "pingsender",
-]
-
DEFINES["MOZ_APP_VERSION"] = '"%s"' % CONFIG["MOZ_APP_VERSION"]
LOCAL_INCLUDES += [
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 23104: Add a default line height compensation
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 1beb699627cf0de6edbbe99c8c37b249a6bf9263
Author: Igor Oliveira <igor.oliveira(a)posteo.net>
Date: Sun Dec 10 18:16:59 2017 -0200
Bug 23104: Add a default line height compensation
Many fonts have issues with their vertical metrics. they
are used to influence the height of ascenders and depth
of descenders. Gecko uses it to calculate the line height
(font height + ascender + descender), however because of
that idiosyncratic behavior across multiple operating
systems, it can be used to identify the user's OS.
The solution proposed in the patch uses a default factor
to be multiplied with the font size, simulating the concept
of ascender and descender. This way all operating
systems will have the same line height only and only if the
frame is outside the chrome.
---
layout/generic/ReflowInput.cpp | 19 ++++++++---
layout/generic/test/mochitest.ini | 1 +
layout/generic/test/test_tor_bug23104.html | 51 ++++++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 5 deletions(-)
diff --git a/layout/generic/ReflowInput.cpp b/layout/generic/ReflowInput.cpp
index d716986082f2..535b5ea9859c 100644
--- a/layout/generic/ReflowInput.cpp
+++ b/layout/generic/ReflowInput.cpp
@@ -31,6 +31,7 @@
#include "mozilla/SVGUtils.h"
#include "mozilla/dom/HTMLInputElement.h"
#include "nsGridContainerFrame.h"
+#include "nsContentUtils.h"
using namespace mozilla;
using namespace mozilla::css;
@@ -2647,7 +2648,8 @@ void ReflowInput::CalculateBlockSideMargins(LayoutFrameType aFrameType) {
// For risk management, we use preference to control the behavior, and
// eNoExternalLeading is the old behavior.
-static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
+static nscoord GetNormalLineHeight(nsIContent* aContent,
+ nsFontMetrics* aFontMetrics) {
MOZ_ASSERT(nullptr != aFontMetrics, "no font metrics");
nscoord normalLineHeight;
@@ -2655,6 +2657,12 @@ static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
nscoord externalLeading = aFontMetrics->ExternalLeading();
nscoord internalLeading = aFontMetrics->InternalLeading();
nscoord emHeight = aFontMetrics->EmHeight();
+
+ if (nsContentUtils::ShouldResistFingerprinting() &&
+ !aContent->IsInChromeDocument()) {
+ return NSToCoordRound(emHeight * NORMAL_LINE_HEIGHT_FACTOR);
+ }
+
switch (GetNormalLineHeightCalcControl()) {
case eIncludeExternalLeading:
normalLineHeight = emHeight + internalLeading + externalLeading;
@@ -2672,7 +2680,8 @@ static nscoord GetNormalLineHeight(nsFontMetrics* aFontMetrics) {
return normalLineHeight;
}
-static inline nscoord ComputeLineHeight(ComputedStyle* aComputedStyle,
+static inline nscoord ComputeLineHeight(nsIContent* aContent,
+ ComputedStyle* aComputedStyle,
nsPresContext* aPresContext,
nscoord aBlockBSize,
float aFontSizeInflation) {
@@ -2701,7 +2710,7 @@ static inline nscoord ComputeLineHeight(ComputedStyle* aComputedStyle,
RefPtr<nsFontMetrics> fm = nsLayoutUtils::GetFontMetricsForComputedStyle(
aComputedStyle, aPresContext, aFontSizeInflation);
- return GetNormalLineHeight(fm);
+ return GetNormalLineHeight(aContent, fm);
}
nscoord ReflowInput::CalcLineHeight() const {
@@ -2723,7 +2732,7 @@ nscoord ReflowInput::CalcLineHeight(nsIContent* aContent,
float aFontSizeInflation) {
MOZ_ASSERT(aComputedStyle, "Must have a ComputedStyle");
- nscoord lineHeight = ComputeLineHeight(aComputedStyle, aPresContext,
+ nscoord lineHeight = ComputeLineHeight(aContent, aComputedStyle, aPresContext,
aBlockBSize, aFontSizeInflation);
NS_ASSERTION(lineHeight >= 0, "ComputeLineHeight screwed up");
@@ -2736,7 +2745,7 @@ nscoord ReflowInput::CalcLineHeight(nsIContent* aContent,
if (!lh.IsNormal()) {
RefPtr<nsFontMetrics> fm = nsLayoutUtils::GetFontMetricsForComputedStyle(
aComputedStyle, aPresContext, aFontSizeInflation);
- nscoord normal = GetNormalLineHeight(fm);
+ nscoord normal = GetNormalLineHeight(aContent, fm);
if (lineHeight < normal) {
lineHeight = normal;
}
diff --git a/layout/generic/test/mochitest.ini b/layout/generic/test/mochitest.ini
index 8c744ad28b66..5694dbce7a23 100644
--- a/layout/generic/test/mochitest.ini
+++ b/layout/generic/test/mochitest.ini
@@ -170,3 +170,4 @@ skip-if = debug == true || tsan # the test is slow. tsan: bug 1612707
support-files =
file_reframe_for_lazy_load_image.html
[test_bug1655135.html]
+[test_tor_bug23104.html]
diff --git a/layout/generic/test/test_tor_bug23104.html b/layout/generic/test/test_tor_bug23104.html
new file mode 100644
index 000000000000..ae73a3446037
--- /dev/null
+++ b/layout/generic/test/test_tor_bug23104.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<meta charset="UTF-8">
+<html>
+<head>
+ <title>Test for Tor Bug #23104: CSS line-height reveals the platform Tor browser is running</title>
+ <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="application/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
+ <style type="text/css">
+ span {
+ background-color: #000;
+ color: #fff;
+ font-size: 16.5px;
+ }
+ </style>
+</head>
+<body>
+<span id="test1">Test1</span>
+<span id="test2">كلمة</span>
+<span id="test3">ação</span>
+<script type="application/javascript;version=1.7">
+
+let setPref = function* (key, value) {
+ return new Promise(function(resolve, reject) {
+ SpecialPowers.pushPrefEnv({"set": [[key, value]]}, resolve);
+ });
+}
+
+function getStyle(el, styleprop) {
+ el = document.getElementById(el);
+ return document.defaultView.getComputedStyle(el, null).getPropertyValue(styleprop);
+}
+
+function validateElement(elementName, isFingerprintResistent) {
+ var fontSize = getStyle(elementName, 'font-size');
+ var lineHeight = getStyle(elementName, 'line-height');
+ var validationCb = isFingerprintResistent ? is : isnot;
+ validationCb(parseFloat(lineHeight), parseFloat(fontSize) * 1.2, 'Line Height validation');
+}
+
+add_task(function* () {
+ for (let resistFingerprintingValue of [true, false]) {
+ yield setPref("privacy.resistFingerprinting", resistFingerprintingValue);
+ for (let elementId of ['test1', 'test2', 'test3']) {
+ validateElement(elementId, resistFingerprintingValue);
+ }
+ }
+});
+
+</script>
+</body>
+</html>
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 30541: Disable WebGL readPixel() for web content
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit 9dfe1278c4de6d8ea6d3d9f8c42dad3023c3f8d7
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed May 29 12:29:19 2019 +0000
Bug 30541: Disable WebGL readPixel() for web content
---
dom/canvas/ClientWebGLContext.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/dom/canvas/ClientWebGLContext.cpp b/dom/canvas/ClientWebGLContext.cpp
index 8a5e58e22d7a..8edd94336863 100644
--- a/dom/canvas/ClientWebGLContext.cpp
+++ b/dom/canvas/ClientWebGLContext.cpp
@@ -4615,6 +4615,14 @@ bool ClientWebGLContext::ReadPixels_SharedPrecheck(
return false;
}
+ // Security check passed, but don't let content readPixel calls through for
+ // now, if Resist Fingerprinting Mode is enabled.
+ if (nsContentUtils::ResistFingerprinting(aCallerType)) {
+ JsWarning("readPixels: Not allowed in Resist Fingerprinting Mode");
+ out_error.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
+ return false;
+ }
+
return true;
}
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 23247: Communicating security expectations for .onion
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit e7cb51f9ff29f99bfa48cab4bab0e32774ac99d6
Author: Richard Pospesel <richard(a)torproject.org>
Date: Fri Jun 8 13:38:40 2018 -0700
Bug 23247: Communicating security expectations for .onion
Encrypting pages hosted on Onion Services with SSL/TLS is redundant
(in terms of hiding content) as all traffic within the Tor network is
already fully encrypted. Therefore, serving HTTP pages from an Onion
Service is more or less fine.
Prior to this patch, Tor Browser would mostly treat pages delivered
via Onion Services as well as pages delivered in the ordinary fashion
over the internet in the same way. This created some inconsistencies
in behaviour and misinformation presented to the user relating to the
security of pages delivered via Onion Services:
- HTTP Onion Service pages did not have any 'lock' icon indicating
the site was secure
- HTTP Onion Service pages would be marked as unencrypted in the Page
Info screen
- Mixed-mode content restrictions did not apply to HTTP Onion Service
pages embedding Non-Onion HTTP content
This patch fixes the above issues, and also adds several new 'Onion'
icons to the mix to indicate all of the various permutations of Onion
Services hosted HTTP or HTTPS pages with HTTP or HTTPS content.
Strings for Onion Service Page Info page are pulled from Torbutton's
localization strings.
---
browser/base/content/browser-siteIdentity.js | 39 ++++++++-----
browser/base/content/pageinfo/security.js | 64 ++++++++++++++++++----
.../shared/identity-block/identity-block.inc.css | 19 +++++++
.../themes/shared/identity-block/onion-slash.svg | 5 ++
.../themes/shared/identity-block/onion-warning.svg | 6 ++
browser/themes/shared/identity-block/onion.svg | 3 +
browser/themes/shared/jar.inc.mn | 3 +
dom/base/nsContentUtils.cpp | 19 +++++++
dom/base/nsContentUtils.h | 5 ++
dom/base/nsGlobalWindowOuter.cpp | 3 +-
dom/ipc/WindowGlobalActor.cpp | 5 +-
dom/ipc/WindowGlobalChild.cpp | 6 +-
dom/presentation/PresentationRequest.cpp | 3 +-
dom/security/nsMixedContentBlocker.cpp | 16 +++++-
.../modules/geckoview/GeckoViewProgress.jsm | 4 ++
security/manager/ssl/nsSecureBrowserUI.cpp | 12 ++++
16 files changed, 180 insertions(+), 32 deletions(-)
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
index a936b7f4826b..0eb2124477f9 100644
--- a/browser/base/content/browser-siteIdentity.js
+++ b/browser/base/content/browser-siteIdentity.js
@@ -144,6 +144,10 @@ var gIdentityHandler = {
);
},
+ get _uriIsOnionHost() {
+ return this._uriHasHost ? this._uri.host.toLowerCase().endsWith(".onion") : false;
+ },
+
get _isAboutNetErrorPage() {
return (
gBrowser.selectedBrowser.documentURI &&
@@ -839,9 +843,9 @@ var gIdentityHandler = {
get pointerlockFsWarningClassName() {
// Note that the fullscreen warning does not handle _isSecureInternalUI.
if (this._uriHasHost && this._isSecureConnection) {
- return "verifiedDomain";
+ return this._uriIsOnionHost ? "onionVerifiedDomain" : "verifiedDomain";
}
- return "unknownIdentity";
+ return this._uriIsOnionHost ? "onionUnknownIdentity" : "unknownIdentity";
},
/**
@@ -849,6 +853,10 @@ var gIdentityHandler = {
* built-in (returns false) or imported (returns true).
*/
_hasCustomRoot() {
+ if (!this._secInfo) {
+ return false;
+ }
+
let issuerCert = null;
issuerCert = this._secInfo.succeededCertChain[
this._secInfo.succeededCertChain.length - 1
@@ -891,11 +899,13 @@ var gIdentityHandler = {
"identity.extension.label",
[extensionName]
);
- } else if (this._uriHasHost && this._isSecureConnection) {
+ } else if (this._uriHasHost && this._isSecureConnection && this._secInfo) {
// This is a secure connection.
- this._identityBox.className = "verifiedDomain";
+ // _isSecureConnection implicitly includes onion services, which may not have an SSL certificate
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.className = uriIsOnionHost ? "onionVerifiedDomain" : "verifiedDomain";
if (this._isMixedActiveContentBlocked) {
- this._identityBox.classList.add("mixedActiveBlocked");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedActiveBlocked" : "mixedActiveBlocked");
}
if (!this._isCertUserOverridden) {
// It's a normal cert, verifier is the CA Org.
@@ -906,17 +916,17 @@ var gIdentityHandler = {
}
} else if (this._isBrokenConnection) {
// This is a secure connection, but something is wrong.
- this._identityBox.className = "unknownIdentity";
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.className = uriIsOnionHost ? "onionUnknownIdentity" : "unknownIdentity";
if (this._isMixedActiveContentLoaded) {
- this._identityBox.classList.add("mixedActiveContent");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedActiveContent" : "mixedActiveContent");
} else if (this._isMixedActiveContentBlocked) {
- this._identityBox.classList.add(
- "mixedDisplayContentLoadedActiveBlocked"
- );
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedDisplayContentLoadedActiveBlocked" : "mixedDisplayContentLoadedActiveBlocked");
} else if (this._isMixedPassiveContentLoaded) {
- this._identityBox.classList.add("mixedDisplayContent");
+ this._identityBox.classList.add(uriIsOnionHost ? "onionMixedDisplayContent" : "mixedDisplayContent");
} else {
+ // TODO: ignore weak https cipher for onionsites?
this._identityBox.classList.add("weakCipher");
}
} else if (this._isAboutCertErrorPage) {
@@ -929,8 +939,8 @@ var gIdentityHandler = {
// Network errors and blocked pages get a more neutral icon
this._identityBox.className = "unknownIdentity";
} else if (this._isPotentiallyTrustworthy) {
- // This is a local resource (and shouldn't be marked insecure).
- this._identityBox.className = "localResource";
+ // This is a local resource or an onion site (and shouldn't be marked insecure).
+ this._identityBox.className = this._uriIsOnionHost ? "onionUnknownIdentity" : "localResource";
} else {
// This is an insecure connection.
let warnOnInsecure =
@@ -954,7 +964,8 @@ var gIdentityHandler = {
}
if (this._isCertUserOverridden) {
- this._identityBox.classList.add("certUserOverridden");
+ const uriIsOnionHost = this._uriIsOnionHost;
+ this._identityBox.classList.add(uriIsOnionHost ? "onionCertUserOverridden" : "certUserOverridden");
// Cert is trusted because of a security exception, verifier is a special string.
tooltip = gNavigatorBundle.getString(
"identity.identified.verified_by_you"
diff --git a/browser/base/content/pageinfo/security.js b/browser/base/content/pageinfo/security.js
index 6a2d09ec8442..192e9f763700 100644
--- a/browser/base/content/pageinfo/security.js
+++ b/browser/base/content/pageinfo/security.js
@@ -22,6 +22,13 @@ ChromeUtils.defineModuleGetter(
"PluralForm",
"resource://gre/modules/PluralForm.jsm"
);
+XPCOMUtils.defineLazyGetter(
+ this,
+ "gTorButtonBundle",
+ function() {
+ return Services.strings.createBundle("chrome://torbutton/locale/torbutton.properties");
+ }
+);
var security = {
async init(uri, windowInfo) {
@@ -60,6 +67,11 @@ var security = {
(Ci.nsIWebProgressListener.STATE_LOADED_MIXED_ACTIVE_CONTENT |
Ci.nsIWebProgressListener.STATE_LOADED_MIXED_DISPLAY_CONTENT);
var isEV = ui.state & Ci.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL;
+ var isOnion = false;
+ const hostName = this.windowInfo.hostName;
+ if (hostName && hostName.endsWith(".onion")) {
+ isOnion = true;
+ }
let retval = {
cAName: "",
@@ -69,6 +81,7 @@ var security = {
isBroken,
isMixed,
isEV,
+ isOnion,
cert: null,
certificateTransparency: null,
};
@@ -107,6 +120,7 @@ var security = {
isBroken,
isMixed,
isEV,
+ isOnion,
cert,
certChain: certChainArray,
certificateTransparency: undefined,
@@ -349,22 +363,50 @@ async function securityOnLoad(uri, windowInfo) {
}
msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else if (info.encryptionStrength > 0) {
- hdr = pkiBundle.getFormattedString(
- "pageInfo_EncryptionWithBitsAndProtocol",
- [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
- );
+ if (!info.isOnion) {
+ hdr = pkiBundle.getFormattedString(
+ "pageInfo_EncryptionWithBitsAndProtocol",
+ [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ );
+ } else {
+ try {
+ hdr = gTorButtonBundle.formatStringFromName(
+ "pageInfo_OnionEncryptionWithBitsAndProtocol",
+ [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ );
+ } catch(err) {
+ hdr = "Connection Encrypted (Onion Service, "
+ + info.encryptionAlgorithm
+ + ", "
+ + info.encryptionStrength
+ + " bit keys, "
+ + info.version
+ + ")";
+ }
+ }
msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
} else {
- hdr = pkiBundle.getString("pageInfo_NoEncryption");
- if (windowInfo.hostName != null) {
- msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_None1", [
- windowInfo.hostName,
- ]);
+ if (!info.isOnion) {
+ hdr = pkiBundle.getString("pageInfo_NoEncryption");
+ if (windowInfo.hostName != null) {
+ msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_None1", [
+ windowInfo.hostName,
+ ]);
+ } else {
+ msg1 = pkiBundle.getString("pageInfo_Privacy_None4");
+ }
+ msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else {
- msg1 = pkiBundle.getString("pageInfo_Privacy_None4");
+ try {
+ hdr = gTorButtonBundle.GetStringFromName("pageInfo_OnionEncryption");
+ } catch (err) {
+ hdr = "Connection Encrypted (Onion Service)";
+ }
+
+ msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
+ msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
}
- msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
}
setText("security-technical-shortform", hdr);
setText("security-technical-longform1", msg1);
diff --git a/browser/themes/shared/identity-block/identity-block.inc.css b/browser/themes/shared/identity-block/identity-block.inc.css
index 19918ac29c89..1cd2df01a0be 100644
--- a/browser/themes/shared/identity-block/identity-block.inc.css
+++ b/browser/themes/shared/identity-block/identity-block.inc.css
@@ -187,6 +187,25 @@ toolbar[brighttext] #identity-box[pageproxystate="valid"].chromeUI > #identity-i
list-style-image: url(chrome://browser/skin/connection-mixed-active-loaded.svg);
}
+#identity-box[pageproxystate="valid"].onionUnknownIdentity > #identity-icon,
+#identity-box[pageproxystate="valid"].onionVerifiedDomain > #identity-icon,
+#identity-box[pageproxystate="valid"].onionMixedActiveBlocked > #identity-icon {
+ list-style-image: url(chrome://browser/skin/onion.svg);
+ visibility: visible;
+}
+
+#identity-box[pageproxystate="valid"].onionMixedDisplayContent > #identity-icon,
+#identity-box[pageproxystate="valid"].onionMixedDisplayContentLoadedActiveBlocked > #identity-icon,
+#identity-box[pageproxystate="valid"].onionCertUserOverridden > #identity-icon {
+ list-style-image: url(chrome://browser/skin/onion-warning.svg);
+ visibility: visible;
+}
+
+#identity-box[pageproxystate="valid"].onionMixedActiveContent > #identity-icon {
+ list-style-image: url(chrome://browser/skin/onion-slash.svg);
+ visibility: visible;
+}
+
#permissions-granted-icon {
list-style-image: url(chrome://browser/skin/permissions.svg);
}
diff --git a/browser/themes/shared/identity-block/onion-slash.svg b/browser/themes/shared/identity-block/onion-slash.svg
new file mode 100644
index 000000000000..e7c98b769482
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion-slash.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M3.409559 13.112147C3.409559 13.112147 8.200807 8.103115 8.200807 8.103115C8.200807 8.103115 8.200807 6.516403 8.200807 6.516403C8.620819 6.516403 9.009719 6.703075 9.274171 6.998639C9.274171 6.998639 10.160863 6.080835 10.160863 6.080835C9.663071 5.567487 8.978607 5.256367 8.200807 5.256367C8.200807 5.256367 8.200807 4.400787 8.200807 4.400787C9.196391 4.400787 10.098639 4.805243 10.736435 5.458595C10.736435 5.458595 11.623127 4.540791 11.623127 4.540791C10.751991 3.669655 9.538623 3.125195 8.200807 3.125195C8.200807 3.125195 8.200807 2.269615 8.200807 2.269615C9.756407 2.269615 11.172003 2.907411 12.214255 3.918551C12.214255 3.918551 13.100947 3.000747 13.100947 3.000747C11.825355 1.756267 10.098639 0.994023 8.185251 0.994023C4.311807 0.994023 1.185051 4.120779 1.185051 7.994223C1.185051 10.016503 2.040631 11.836555 3.409559 13.112147C3.409559 13.112147 3.409559 13.112147 3.409559 13.112147" fill-opacity="context-fill-opacity" fill="context-fill" />
+ <path d="M14.205423 4.416343C14.205423 4.416343 13.287619 5.380815 13.287619 5.380815C13.692075 6.158615 13.909859 7.045307 13.909859 7.994223C13.909859 11.152091 11.358675 13.718831 8.200807 13.718831C8.200807 13.718831 8.200807 12.863251 8.200807 12.863251C10.891995 12.863251 13.069835 10.669855 13.069835 7.978667C13.069835 7.278647 12.929831 6.625295 12.665379 6.018611C12.665379 6.018611 11.685351 7.045307 11.685351 7.045307C11.763131 7.340871 11.809799 7.651991 11.809799 7.963111C11.809799 9.954279 10.207531 11.556547 8.216363 11.572103C8.216363 11.572103 8.216363 10.716523 8.216363 10.716523C9.725295 10.700967 10.954219 9.472043 10.954219 7.963111C10.954219 7.916443 10.954219 7.854219 10.954219 7.807551C10.954219 7.807551 4.887379 14.169955 4.887379 14.169955C5.867407 14.698859 6.987439 14.994423 8.185251 14.994423C12.058695 14.994423 15.185451 11.867667 15.185451 7.994223C15.185451 6.687519 14.827663 5.474151 14.205423 4.416343C14.205423 4.416343 14.205423 4.416343 14.205423
4.416343" fill-opacity="context-fill-opacity" fill="context-fill" />
+ <path d="M1.791735 15.461103C1.402835 15.461103 1.045047 15.212207 0.889487 14.838863C0.733927 14.465519 0.827267 14.014395 1.107271 13.734387C1.107271 13.734387 13.458735 0.822907 13.458735 0.822907C13.847635 0.434007 14.454319 0.449563 14.827663 0.838467C15.201007 1.227367 15.216563 1.865163 14.843223 2.269619C14.843223 2.269619 2.491759 15.181099 2.491759 15.181099C2.289531 15.352215 2.040635 15.461107 1.791739 15.461107C1.791739 15.461107 1.791735 15.461103 1.791735 15.461103" fill="#ff0039" />
+</svg>
diff --git a/browser/themes/shared/identity-block/onion-warning.svg b/browser/themes/shared/identity-block/onion-warning.svg
new file mode 100644
index 000000000000..d42a7dab7246
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion-warning.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M15.8630401732 14.127C15.8630401732 14.127 12.6649598146 7.716 12.6649598146 7.716C12.4469357756 7.279935 12.0003277145 7.0043454 11.5116853046 7.0043454C11.0230428947 7.0043454 10.5764348336 7.279935 10.3584107946 7.716C10.3584107946 7.716 7.1573218938 14.127 7.1573218938 14.127C6.95646770542 14.527294 6.97733695982 15.002669 7.21250176686 15.38393C7.4476665739 15.765191 7.86372750208 15.998191 8.3126020986 16.0C8.3126020986 16.0 14.7077599684 16.0 14.7077599684 16.0C15.1566344646 15.9982 15.572695794 15.765191 15.8078605007 15.38393C16.0430252075 15.002669 16.0638944619 14.527294 15.8630371647 14.127C15.8630371647 14.127 15.8630401732 14.127 15.8630401732 14.127" fill="#ffbf00" />
+ <path d="M11.5106824572 8.0C11.6210488221 7.99691 11.7223975832 8.060469 11.7674113916 8.161C11.7674113916 8.161 14.9644889028 14.573 14.9644889028 14.573C15.0126456349 14.66534 15.0076715118 14.776305 14.9514518866 14.864C14.9011992034 14.95041 14.8079143382 15.002854 14.7077599684 15.001048C14.7077599684 15.001048 8.3126020986 15.001048 8.3126020986 15.001048C8.2124480296 15.002854 8.1191607576 14.950409 8.0689101804 14.864C8.0124814615 14.77637 8.0075053327 14.665298 8.0558731642 14.573C8.0558731642 14.573 11.2529506754 8.161 11.2529506754 8.161C11.2981038796 8.0601247 11.3999560701 7.9964997 11.5106824572 8.0M11.5106824572 6.9999751C11.0194557096 6.9969427 10.5701148893 7.2754275 10.3554022524 7.716C10.3554022524 7.716 7.1573218938 14.127 7.1573218938 14.127C6.95646770542 14.527294 6.97733695982 15.002669 7.21250176686 15.38393C7.4476665739 15.765191 7.86372750208 15.998191 8.3126020986 16.0C8.3126020986 16.0 14.7077599684 16.0 14.7077599684 16.0C15.1566344646 15.9982 15.57269
5794 15.765191 15.8078605007 15.38393C16.0430252075 15.002669 16.0638944619 14.527294 15.8630371647 14.127C15.8630371647 14.127 12.6649598146 7.716 12.6649598146 7.716C12.4504036219 7.2757546 12.0015481798 6.9973287 11.5106824572 6.9999751C11.5106824572 6.9999751 11.5106824572 6.9999751 11.5106824572 6.9999751" opacity="0.35" fill="#d76e00" />
+ <path d="M11.5327451 12.0C11.8096733867 12.0 12.0341688 11.776142 12.0341688 11.5C12.0341688 11.5 12.0341688 9.5 12.0341688 9.5C12.0341688 9.2238576 11.8096733867 9.0 11.5327451 9.0C11.2558168133 9.0 11.0313214 9.2238576 11.0313214 9.5C11.0313214 9.5 11.0313214 11.5 11.0313214 11.5C11.0313214 11.776142 11.2558168133 12.0 11.5327451 12.0C11.5327451 12.0 11.5327451 12.0 11.5327451 12.0M11.5327451 12.809C11.1500294496 12.809 10.8397775466 13.118371 10.8397775466 13.5C10.8397775466 13.881629 11.1500294496 14.191 11.5327451 14.191C11.9154607504 14.191 12.2257126534 13.881629 12.2257126534 13.5C12.2257126534 13.118371 11.9154607504 12.809 11.5327451 12.809C11.5327451 12.809 11.5327451 12.809 11.5327451 12.809" fill="#ffffff" />
+ <path d="M7.08030321348 6.552C7.90163523408 6.56 8.5645173655 7.225 8.5645173655 8.046C8.5645173655 8.866 7.90163523408 9.532 7.08030321348 9.54C7.08030321348 9.54 7.08030321348 6.552 7.08030321348 6.552M6.30610502068 13.756C6.30610502068 13.756 9.4991711423 7.353 9.4991711423 7.353C9.5453021227 7.259 9.6144985933 7.184 9.6716608951 7.098C9.2845617987 6.039 8.2756973143 5.277 7.08030321348 5.271C7.08030321348 5.271 7.08030321348 4.417 7.08030321348 4.417C8.5043465215 4.423 9.7238089599 5.251 10.3164917733 6.443C10.6795225321 6.21 11.1067355245 6.074 11.5519997701 6.074C11.5519997701 6.074 11.5620282441 6.074 11.5620282441 6.074C11.5620282441 6.074 11.5640339389 6.074 11.5640339389 6.074C11.5660396337 6.074 11.5690481759 6.075 11.5710538707 6.075C10.8108955415 4.35 9.0900094031 3.141 7.08030321348 3.135C7.08030321348 3.135 7.08030321348 2.281 7.08030321348 2.281C9.6716608951 2.288 11.8618796167 3.993 12.5889439817 6.34C13.0231769059 6.561 13.3922247491 6.9 13.6088397875 7.344C13.60
88397875 7.344 14.1162805719 8.361 14.1162805719 8.361C14.1202919615 8.256 14.1313232829 8.152 14.1313232829 8.046C14.1313232829 4.155 10.9683425833 1.0 7.06626334988 1.0C3.16318126908 1.0 0.00020056948 4.155 0.00020056948 8.046C0.00020056948 11.603 2.64571201068 14.536 6.08046435568 15.015C6.03633907008 14.595 6.10252699848 14.16 6.30610502068 13.756C6.30610502068 13.756 6.30610502068 13.756 6.30610502068 13.756" fill-opacity="context-fill-opacity" fill="context-fill" />
+</svg>
diff --git a/browser/themes/shared/identity-block/onion.svg b/browser/themes/shared/identity-block/onion.svg
new file mode 100644
index 000000000000..b123a9786acc
--- /dev/null
+++ b/browser/themes/shared/identity-block/onion.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+ <path d="M8.01435945 13.726867125C8.01435945 13.726867125 8.01435945 12.87830525 8.01435945 12.87830525C10.70227825 12.87051775 12.87869375 10.689666 12.87869375 7.9998060125C12.87869375 5.310140275 10.70227825 3.1292621 8.01435945 3.121500325C8.01435945 3.121500325 8.01435945 2.272938975 8.01435945 2.272938975C11.170899375 2.280892725 13.727061375 4.8415202875 13.727061375 7.9998060125C13.727061375 11.158285375 11.170899375 13.719105 8.01435945 13.726867125C8.01435945 13.726867125 8.01435945 13.726867125 8.01435945 13.726867125M8.01435945 10.756805625C9.5304373 10.74884925 10.75758175 9.5180185125 10.75758175 7.9998060125C10.75758175 6.4817875 9.5304373 5.2509564125 8.01435945 5.2430005625C8.01435945 5.2430005625 8.01435945 4.3946332875 8.01435945 4.3946332875C9.999251625 4.4023945375 11.60614275 6.013167425 11.60614275 7.9998060125C11.60614275 9.986639375 9.999251625 11.597411125 8.01435945 11.605172375C8.01435945 11.605172375 8.01435945 10.756805625 8.01435945 10.756805625M8.01
435945 6.5157454625C8.8276046625 6.5235067125 9.484837025 7.184620575 9.484837025 7.9998060125C9.484837025 8.815185875 8.8276046625 9.4762985125 8.01435945 9.4840608125C8.01435945 9.4840608125 8.01435945 6.5157454625 8.01435945 6.5157454625M1.0 7.9998060125C1.0 11.8659705 4.1338360375 15.0 8.0000000875 15.0C11.8659705 15.0 15.0 11.8659705 15.0 7.9998060125C15.0 4.1338360375 11.8659705 1.0 8.0000000875 1.0C4.1338360375 1.0 1.0 4.1338360375 1.0 7.9998060125C1.0 7.9998060125 1.0 7.9998060125 1.0 7.9998060125" fill-rule="even-odd" fill-opacity="context-fill-opacity" fill="context-fill" />
+</svg>
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index 80c0e5432f34..6427db946f74 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -58,6 +58,9 @@
skin/classic/browser/connection-secure.svg (../shared/identity-block/connection-secure.svg)
skin/classic/browser/connection-mixed-passive-loaded.svg (../shared/identity-block/connection-mixed-passive-loaded.svg)
skin/classic/browser/connection-mixed-active-loaded.svg (../shared/identity-block/connection-mixed-active-loaded.svg)
+ skin/classic/browser/onion.svg (../shared/identity-block/onion.svg)
+ skin/classic/browser/onion-slash.svg (../shared/identity-block/onion-slash.svg)
+ skin/classic/browser/onion-warning.svg (../shared/identity-block/onion-warning.svg)
skin/classic/browser/info.svg (../shared/info.svg)
skin/classic/browser/newInstall.css (../shared/newInstall.css)
skin/classic/browser/newInstallPage.css (../shared/newInstallPage.css)
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index cf2b530e4d86..59d342d507df 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -9090,6 +9090,25 @@ bool nsContentUtils::ComputeIsSecureContext(nsIChannel* aChannel) {
return principal->GetIsOriginPotentiallyTrustworthy();
}
+/* static */ bool nsContentUtils::DocumentHasOnionURI(Document* aDocument) {
+ if (!aDocument) {
+ return false;
+ }
+
+ nsIURI* uri = aDocument->GetDocumentURI();
+ if (!uri) {
+ return false;
+ }
+
+ nsAutoCString host;
+ if (NS_SUCCEEDED(uri->GetHost(host))) {
+ bool hasOnionURI = StringEndsWith(host, ".onion"_ns);
+ return hasOnionURI;
+ }
+
+ return false;
+}
+
/* static */
void nsContentUtils::TryToUpgradeElement(Element* aElement) {
NodeInfo* nodeInfo = aElement->NodeInfo();
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
index c577ce30103a..1a02db22c63f 100644
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -3002,6 +3002,11 @@ class nsContentUtils {
*/
static bool HttpsStateIsModern(Document* aDocument);
+ /**
+ * Returns true of the document's URI is a .onion
+ */
+ static bool DocumentHasOnionURI(Document* aDocument);
+
/**
* Returns true if the channel is for top-level window and is over secure
* context.
diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp
index c61b2d32d135..303b826d40db 100644
--- a/dom/base/nsGlobalWindowOuter.cpp
+++ b/dom/base/nsGlobalWindowOuter.cpp
@@ -1877,7 +1877,8 @@ bool nsGlobalWindowOuter::ComputeIsSecureContext(Document* aDocument,
return false;
}
- if (nsContentUtils::HttpsStateIsModern(aDocument)) {
+ if (nsContentUtils::HttpsStateIsModern(aDocument) ||
+ nsContentUtils::DocumentHasOnionURI(aDocument)) {
return true;
}
diff --git a/dom/ipc/WindowGlobalActor.cpp b/dom/ipc/WindowGlobalActor.cpp
index 9b178c04e696..bc83f6ed1952 100644
--- a/dom/ipc/WindowGlobalActor.cpp
+++ b/dom/ipc/WindowGlobalActor.cpp
@@ -19,6 +19,7 @@
#include "mozilla/net/CookieJarSettings.h"
#include "mozilla/dom/WindowGlobalChild.h"
#include "mozilla/dom/WindowGlobalParent.h"
+#include "mozilla/dom/nsMixedContentBlocker.h"
#include "nsGlobalWindowInner.h"
@@ -118,7 +119,9 @@ WindowGlobalInit WindowGlobalActor::WindowInitializer(
// Init Mixed Content Fields
nsCOMPtr<nsIURI> innerDocURI = NS_GetInnermostURI(doc->GetDocumentURI());
if (innerDocURI) {
- fields.mIsSecure = innerDocURI->SchemeIs("https");
+ fields.mIsSecure =
+ innerDocURI->SchemeIs("https") ||
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI);
}
nsCOMPtr<nsIChannel> mixedChannel;
aWindow->GetDocShell()->GetMixedContentChannel(getter_AddRefs(mixedChannel));
diff --git a/dom/ipc/WindowGlobalChild.cpp b/dom/ipc/WindowGlobalChild.cpp
index 505c2951109b..b5e12fb35f1f 100644
--- a/dom/ipc/WindowGlobalChild.cpp
+++ b/dom/ipc/WindowGlobalChild.cpp
@@ -38,6 +38,8 @@
#include "nsIHttpChannelInternal.h"
#include "nsIURIMutator.h"
+#include "mozilla/dom/nsMixedContentBlocker.h"
+
using namespace mozilla::ipc;
using namespace mozilla::dom::ipc;
@@ -235,7 +237,9 @@ void WindowGlobalChild::OnNewDocument(Document* aDocument) {
nsCOMPtr<nsIURI> innerDocURI =
NS_GetInnermostURI(aDocument->GetDocumentURI());
if (innerDocURI) {
- txn.SetIsSecure(innerDocURI->SchemeIs("https"));
+ txn.SetIsSecure(
+ innerDocURI->SchemeIs("https") ||
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI));
}
nsCOMPtr<nsIChannel> mixedChannel;
mWindowGlobal->GetDocShell()->GetMixedContentChannel(
diff --git a/dom/presentation/PresentationRequest.cpp b/dom/presentation/PresentationRequest.cpp
index d0462e86ed4e..39dad53b89c9 100644
--- a/dom/presentation/PresentationRequest.cpp
+++ b/dom/presentation/PresentationRequest.cpp
@@ -468,7 +468,8 @@ bool PresentationRequest::IsProhibitMixedSecurityContexts(Document* aDocument) {
nsCOMPtr<Document> doc = aDocument;
while (doc && !nsContentUtils::IsChromeDoc(doc)) {
- if (nsContentUtils::HttpsStateIsModern(doc)) {
+ if (nsContentUtils::HttpsStateIsModern(doc) ||
+ nsContentUtils::DocumentHasOnionURI(doc)) {
return true;
}
diff --git a/dom/security/nsMixedContentBlocker.cpp b/dom/security/nsMixedContentBlocker.cpp
index f9dc1235dffd..e58e6ca68528 100644
--- a/dom/security/nsMixedContentBlocker.cpp
+++ b/dom/security/nsMixedContentBlocker.cpp
@@ -644,8 +644,8 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
return NS_OK;
}
- // Check the parent scheme. If it is not an HTTPS page then mixed content
- // restrictions do not apply.
+ // Check the parent scheme. If it is not an HTTPS or .onion page then mixed
+ // content restrictions do not apply.
nsCOMPtr<nsIURI> innerRequestingLocation =
NS_GetInnermostURI(requestingLocation);
if (!innerRequestingLocation) {
@@ -660,6 +660,17 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
bool parentIsHttps = innerRequestingLocation->SchemeIs("https");
if (!parentIsHttps) {
+ bool parentIsOnion = IsPotentiallyTrustworthyOnion(innerRequestingLocation);
+ if (!parentIsOnion) {
+ *aDecision = ACCEPT;
+ return NS_OK;
+ }
+ }
+
+ bool isHttpScheme = innerContentLocation->SchemeIs("http");
+ // .onion URLs are encrypted and authenticated. Don't treat them as mixed
+ // content if potentially trustworthy (i.e. whitelisted).
+ if (isHttpScheme && IsPotentiallyTrustworthyOnion(innerContentLocation)) {
*aDecision = ACCEPT;
MOZ_LOG(sMCBLog, LogLevel::Verbose,
(" -> decision: Request will be allowed because the requesting "
@@ -686,7 +697,6 @@ nsresult nsMixedContentBlocker::ShouldLoad(bool aHadInsecureImageRedirect,
return NS_OK;
}
- bool isHttpScheme = innerContentLocation->SchemeIs("http");
if (isHttpScheme && IsPotentiallyTrustworthyOrigin(innerContentLocation)) {
*aDecision = ACCEPT;
return NS_OK;
diff --git a/mobile/android/modules/geckoview/GeckoViewProgress.jsm b/mobile/android/modules/geckoview/GeckoViewProgress.jsm
index ecf9e98482fc..721fea965c9a 100644
--- a/mobile/android/modules/geckoview/GeckoViewProgress.jsm
+++ b/mobile/android/modules/geckoview/GeckoViewProgress.jsm
@@ -145,6 +145,10 @@ var IdentityHandler = {
result.host = uri.host;
}
+ if (!aBrowser.securityUI.secInfo) {
+ return result;
+ }
+
const cert = aBrowser.securityUI.secInfo.serverCert;
result.certificate = aBrowser.securityUI.secInfo.serverCert.getBase64DERString();
diff --git a/security/manager/ssl/nsSecureBrowserUI.cpp b/security/manager/ssl/nsSecureBrowserUI.cpp
index b4de1a331ffc..f1ce39582854 100644
--- a/security/manager/ssl/nsSecureBrowserUI.cpp
+++ b/security/manager/ssl/nsSecureBrowserUI.cpp
@@ -9,6 +9,7 @@
#include "mozilla/Logging.h"
#include "mozilla/Unused.h"
#include "mozilla/dom/Document.h"
+#include "mozilla/dom/nsMixedContentBlocker.h"
#include "nsContentUtils.h"
#include "nsIChannel.h"
#include "nsDocShell.h"
@@ -85,6 +86,17 @@ void nsSecureBrowserUI::RecomputeSecurityFlags() {
}
}
}
+
+ // any protocol routed over tor is secure
+ if (!(mState & nsIWebProgressListener::STATE_IS_SECURE)) {
+ nsCOMPtr<nsIURI> innerDocURI = NS_GetInnermostURI(win->GetDocumentURI());
+ if (innerDocURI &&
+ nsMixedContentBlocker::IsPotentiallyTrustworthyOnion(innerDocURI)) {
+ MOZ_LOG(gSecureBrowserUILog, LogLevel::Debug, (" is onion"));
+ mState = (mState & ~nsIWebProgressListener::STATE_IS_INSECURE) |
+ nsIWebProgressListener::STATE_IS_SECURE;
+ }
+ }
}
// Add upgraded-state flags when request has been
1
0
[tor-browser/tor-browser-84.0.2-10.0-1] Bug 27511: Add new identity button to toolbar
by sysrqb@torproject.org 08 Jan '21
by sysrqb@torproject.org 08 Jan '21
08 Jan '21
commit fd814df34b8fb998d7fd027a4f556b986d89824c
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Oct 4 19:08:33 2019 +0200
Bug 27511: Add new identity button to toolbar
Also added 'New circuit for this site' button to CustomizableUI, but
not visible by default.
---
browser/base/content/browser.xhtml | 10 ++++++++++
.../components/customizableui/CustomizableUI.jsm | 21 +++++++++++++++++++++
browser/themes/shared/icons/new_circuit.svg | 8 ++++++++
browser/themes/shared/icons/new_identity.svg | 9 +++++++++
browser/themes/shared/jar.inc.mn | 3 +++
browser/themes/shared/menupanel.inc.css | 8 ++++++++
browser/themes/shared/toolbarbutton-icons.inc.css | 8 ++++++++
7 files changed, 67 insertions(+)
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 06aef6f277fc..cfa0973a1ea3 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -2167,6 +2167,16 @@
ondragenter="newWindowButtonObserver.onDragOver(event)"
ondragexit="newWindowButtonObserver.onDragExit(event)"/>
+ <toolbarbutton id="new-identity-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"
+ tooltiptext="&torbutton.context_menu.new_identity;"/>
+
+ <toolbarbutton id="new-circuit-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"
+ tooltiptext="&torbutton.context_menu.new_circuit;"/>
+
<toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
observes="View:FullScreen"
type="checkbox"
diff --git a/browser/components/customizableui/CustomizableUI.jsm b/browser/components/customizableui/CustomizableUI.jsm
index 5de9550f1c0c..33984d146d23 100644
--- a/browser/components/customizableui/CustomizableUI.jsm
+++ b/browser/components/customizableui/CustomizableUI.jsm
@@ -75,6 +75,8 @@ const kSubviewEvents = ["ViewShowing", "ViewHiding"];
*/
var kVersion = 16;
+var kTorVersion = 1;
+
/**
* Buttons removed from built-ins by version they were removed. kVersion must be
* bumped any time a new id is added to this. Use the button id as key, and
@@ -575,6 +577,20 @@ var CustomizableUIInternal = {
navbarPlacements.push("fxa-toolbar-menu-button");
}
}
+
+ let currentTorVersion = gSavedState.currentTorVersion;
+ if (currentTorVersion < 1 && gSavedState.placements) {
+ let navbarPlacements = gSavedState.placements[CustomizableUI.AREA_NAVBAR];
+ if (navbarPlacements) {
+ let secLevelIndex = navbarPlacements.indexOf("security-level-button");
+ if (secLevelIndex === -1) {
+ let urlbarIndex = navbarPlacements.indexOf("urlbar-container");
+ secLevelIndex = urlbarIndex + 1;
+ navbarPlacements.splice(secLevelIndex, 0, "security-level-button");
+ }
+ navbarPlacements.splice(secLevelIndex + 1, 0, "new-identity-button");
+ }
+ }
},
/**
@@ -2363,6 +2379,10 @@ var CustomizableUIInternal = {
gSavedState.currentVersion = 0;
}
+ if (!("currentTorVersion" in gSavedState)) {
+ gSavedState.currentTorVersion = 0;
+ }
+
gSeenWidgets = new Set(gSavedState.seen || []);
gDirtyAreaCache = new Set(gSavedState.dirtyAreaCache || []);
gNewElementCount = gSavedState.newElementCount || 0;
@@ -2441,6 +2461,7 @@ var CustomizableUIInternal = {
seen: gSeenWidgets,
dirtyAreaCache: gDirtyAreaCache,
currentVersion: kVersion,
+ currentTorVersion: kTorVersion,
newElementCount: gNewElementCount,
};
diff --git a/browser/themes/shared/icons/new_circuit.svg b/browser/themes/shared/icons/new_circuit.svg
new file mode 100644
index 000000000000..e0a93cc83502
--- /dev/null
+++ b/browser/themes/shared/icons/new_circuit.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Icon / New Circuit(a)1.5x</title>
+ <g id="Icon-/-New-Circuit" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <path d="M13.4411138,10.1446317 L9.5375349,10.1446317 C8.99786512,10.1446317 8.56164018,10.5818326 8.56164018,11.1205264 C8.56164018,11.6592203 8.99786512,12.0964212 9.5375349,12.0964212 L11.4571198,12.0964212 C10.7554515,13.0479185 9.73466563,13.692009 8.60067597,13.9359827 C8.41818366,13.9720908 8.23276366,14.0033194 8.04734366,14.0218614 C7.97219977,14.0277168 7.89803177,14.0306445 7.82288788,14.0335722 C6.07506044,14.137017 4.290149,13.4499871 3.38647049,11.857327 C2.52280367,10.3349312 2.77263271,8.15966189 3.93687511,6.87343267 C5.12453898,5.56183017 7.44814431,5.04363008 8.21226987,3.38558497 C9.01738301,4.92847451 9.60682342,5.02801577 10.853041,6.15029468 C11.2892659,6.54455615 11.9704404,7.55558307 12.1861132,8.10501179 C12.3051723,8.40949094 12.5013272,9.17947187 12.5013272,9.17947187 L14.2862386,9.17947187 C14.2091429,7.59754654 13.439162,5.96877827 12.2261248,4.93628166 C11.279507,4.13116853 10.5065984,3.84718317 9.77662911,2.8088312 C9.63219669,2.60194152 9.599
99216,2.4565332 9.56290816,2.21646311 C9.53851079,2.00762164 9.54143848,1.78511764 9.62048595,1.53919218 C9.65952174,1.41720534 9.59804037,1.28545955 9.47702943,1.23764071 L6.40296106,0.0167964277 C6.32391359,-0.0134563083 6.23413128,-0.00272146652 6.16679454,0.0480250584 L5.95502539,0.206120002 C5.85743592,0.280288 5.82815908,0.416913259 5.89159223,0.523285783 C6.70060895,1.92564648 6.36978064,2.82542141 5.8984235,3.20211676 C5.4914754,3.4900057 4.99084141,3.72226864 4.63366394,3.95453159 C3.82367132,4.47956294 3.03222071,5.02508808 2.40374451,5.76774396 C0.434388969,8.09427695 0.519291809,12.0046871 2.77165682,14.1077402 C3.65288975,14.9284676 4.70295247,15.4749686 5.81742423,15.7570022 C5.81742423,15.7570022 6.13556591,15.833122 6.21754107,15.8497122 C7.36616915,16.0829511 8.53529102,16.0146384 9.62243774,15.6672199 C9.67416016,15.6525815 9.77174963,15.620377 9.76784605,15.6154975 C10.7730176,15.2700308 11.7049971,14.7010841 12.4652191,13.90573 L12.4652191,15.0241053 C12.4652191,
15.5627992 12.901444,16 13.4411138,16 C13.9798077,16 14.4170085,15.5627992 14.4170085,15.0241053 L14.4170085,11.1205264 C14.4170085,10.5818326 13.9798077,10.1446317 13.4411138,10.1446317" id="Fill-3" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ <path d="M5.107,7.462 C4.405,8.078 4,8.946 4,9.839 C4,10.712 4.422,11.57 5.13,12.132 C5.724,12.607 6.627,12.898 7.642,12.949 L7.642,5.8 C7.39,6.029 7.103,6.227 6.791,6.387 C5.993,6.812 5.489,7.133 5.107,7.462" id="Fill-1" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ </g>
+</svg>
diff --git a/browser/themes/shared/icons/new_identity.svg b/browser/themes/shared/icons/new_identity.svg
new file mode 100644
index 000000000000..91d5b35f7e80
--- /dev/null
+++ b/browser/themes/shared/icons/new_identity.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>New Identity Icon</title>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="New-Identity-Icon" fill="#000000" fill-rule="nonzero">
+ <path d="M4.65687153,14.5532899 L5.79494313,12.0855326 C5.8689125,11.9251399 5.6620883,11.7793527 5.53742729,11.9040137 L3.77194352,13.6694975 L2.32342782,12.2228406 L4.089841,10.4564274 C4.21450201,10.3317664 4.06871482,10.1249422 3.90832206,10.1989116 L1.43773764,11.338287 L0.206601383,10.1087306 C0.0509544211,9.9532834 -0.0167994233,9.75447206 0.00351451705,9.53432844 C0.0238284574,9.31418483 0.154794797,9.13897939 0.330406365,9.0302193 L4.61213917,6.53066101 C4.98542292,6.31331572 5.42541251,6.16259067 5.8659261,6.07796117 C6.63682488,5.92985954 7.40999434,6.06817199 8.09666802,6.42610336 L12.618483,1.910278 C13.0562019,1.47313888 13.7399062,1.45652879 14.1403159,1.87828207 C14.5407256,2.30003536 14.523905,2.96081599 14.0861861,3.39795511 L9.56437119,7.91378047 C9.92258101,8.57753432 10.0391721,9.37155544 9.91292178,10.1416209 C9.85023328,10.5817332 9.67706706,10.9989392 9.45960494,11.3937636 L6.95651989,15.6478297 C6.84761416,15.82321 6.6720026,15.9319701 6.47398108
,15.9964916 C6.25354962,16.0167745 6.0544801,15.9491049 5.89883314,15.7936577 L4.65687153,14.5532899 L4.65687153,14.5532899 Z M6.35600863,9.57888316 C6.35684236,9.57982492 6.35770616,9.58074275 6.35860024,9.58163642 L7.56801202,10.7899206 C7.78820303,11.010009 8.15567242,10.9533982 8.29166823,10.678253 C8.42766403,10.4031079 8.55818512,10.1511975 8.61427424,9.83946755 C8.73630873,9.14856819 8.51477165,8.45005355 8.01189873,7.92920397 C8.01085853,7.92816425 8.00979562,7.92715687 8.00871022,7.92618158 C8.00773493,7.92509618 8.00672754,7.92403327 8.00568783,7.92299307 C7.48483824,7.42012014 6.7863236,7.19858307 6.09542425,7.32061756 C5.78369428,7.37670668 5.53178393,7.50722777 5.25663877,7.64322357 C4.98149362,7.77921937 4.92488284,8.14668876 5.14497116,8.36687978 L6.35325537,9.57629155 C6.35414904,9.57718564 6.35506687,9.57804944 6.35600863,9.57888316 L6.35600863,9.57888316 Z M3.56503003,4.86094581 C3.44279837,4.85716019 3.33693302,4.76594656 3.31450832,4.6450962 C3.29259157,4.5009814
3 3.24425431,4.36089837 3.1719467,4.23194774 C3.04272848,4.15978087 2.90235166,4.11153221 2.75793184,4.08964745 C2.63678145,4.06729735 2.5453314,3.9616241 2.54155161,3.83961366 C2.53777182,3.71760322 2.62276629,3.61489221 2.74265726,3.59658884 C2.88757581,3.57942626 3.02687427,3.53584537 3.15371096,3.46798665 C3.21938702,3.3436261 3.26061987,3.20700605 3.27529255,3.0651408 C3.29205048,2.94466859 3.39451537,2.85825378 3.5172925,2.86104768 C3.6386065,2.86399065 3.74452528,2.95324633 3.76872081,3.07292141 C3.79288781,3.21715288 3.84342323,3.35694342 3.91777207,3.4852254 C4.04615548,3.55876237 4.18583906,3.60883869 4.32991405,3.63297757 C4.45015386,3.6576218 4.53936117,3.76418021 4.54139495,3.88559216 C4.54342874,4.00700411 4.45770065,4.10814717 4.33816215,4.12536877 C4.1960481,4.14067978 4.05931708,4.18249381 3.9349938,4.24866259 C3.86697751,4.37522253 3.82328954,4.51422019 3.80607564,4.65882867 C3.78847982,4.77811508 3.68677836,4.86339193 3.56503003,4.86094581 Z M14.4103464,14.3126948
C14.2513672,14.307719 14.1137716,14.188804 14.0849193,14.0314492 C14.045996,13.7585014 13.9510862,13.4938971 13.8061961,13.2543814 C13.5663773,13.109665 13.301434,13.0148623 13.0281329,12.9759728 C12.8707684,12.946921 12.75198,12.8095493 12.7470672,12.6509372 C12.7421545,12.492325 12.8525523,12.3587997 13.0082799,12.3350024 C13.2816632,12.3044807 13.5433622,12.2185794 13.7775725,12.0824861 C13.9099238,11.8524988 13.992337,11.5955854 14.0197279,11.3275956 C14.0417134,11.1717293 14.1740126,11.0598594 14.3327736,11.0628895 C14.4905572,11.0667732 14.6282205,11.1831391 14.6593783,11.3389665 C14.703143,11.6110771 14.8017156,11.8740418 14.9490566,12.1117486 C15.1872615,12.2578242 15.450159,12.3559923 15.7221615,12.4004323 C15.8783433,12.4324665 15.9942186,12.5709889 15.9968634,12.7288231 C15.9995083,12.8866572 15.8881575,13.0181443 15.7328877,13.0405352 C15.4641157,13.0669716 15.2064728,13.14931 14.9763475,13.2823129 C14.8406047,13.5164173 14.7548186,13.7777086 14.724105,14.0506041 C14.70
09285,14.2056508 14.5685348,14.3162427 14.4103464,14.3126948 Z M8.37194288,2.75251202 C8.23729358,2.7482977 8.12075529,2.6475812 8.09631849,2.5143077 C8.06335201,2.28313133 7.98296703,2.05902158 7.86025062,1.85616098 C7.65713325,1.73359169 7.43273641,1.65329741 7.2012608,1.62035947 C7.06797908,1.59575373 6.9673698,1.47940513 6.96320889,1.34506671 C6.95904797,1.21072829 7.05255074,1.09763741 7.18444606,1.07748204 C7.41599123,1.0516313 7.6376403,0.978876138 7.83600755,0.863610339 C7.94810399,0.668819911 8.01790485,0.45122403 8.04110388,0.224246882 C8.05972477,0.0922341146 8.17177714,-0.00251545243 8.30624168,5.089704e-05 C8.43987839,0.00334026838 8.55647391,0.101897787 8.58286336,0.233877601 C8.61993042,0.464344927 8.70341768,0.687066016 8.82820981,0.888394549 C9.02996027,1.012115 9.25262444,1.09525963 9.4830002,1.13289867 C9.6152802,1.16003037 9.71342219,1.27735361 9.71566226,1.41103311 C9.71790232,1.5447126 9.62359245,1.65607713 9.49208487,1.67504141 C9.26444525,1.69743199 9.0462315
3,1.76716948 8.85132417,1.87981789 C8.73635526,2.07809534 8.66369764,2.2993991 8.63768445,2.53053117 C8.61805481,2.66184983 8.50592239,2.75551697 8.37194288,2.75251202 Z" id="Shape" fill="context-fill" fill-opacity="context-fill-opacity"></path>
+ </g>
+ </g>
+</svg>
\ No newline at end of file
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index 6427db946f74..8d5d2bf5127d 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -307,3 +307,6 @@
skin/classic/browser/privatebrowsing/private-browsing.svg (../shared/privatebrowsing/private-browsing.svg)
skin/classic/browser/install-ssb.svg (../shared/install-ssb.svg)
skin/classic/browser/critical.svg (../shared/icons/critical.svg)
+
+ skin/classic/browser/new_circuit.svg (../shared/icons/new_circuit.svg)
+ skin/classic/browser/new_identity.svg (../shared/icons/new_identity.svg)
diff --git a/browser/themes/shared/menupanel.inc.css b/browser/themes/shared/menupanel.inc.css
index c919f32a1454..eae453ec5004 100644
--- a/browser/themes/shared/menupanel.inc.css
+++ b/browser/themes/shared/menupanel.inc.css
@@ -183,3 +183,11 @@ toolbarpaletteitem[place="palette"] > #bookmarks-menu-button,
-moz-context-properties: fill, fill-opacity;
fill-opacity: 0;
}
+
+#appMenuNewIdentity {
+ list-style-image: url("chrome://browser/skin/new_identity.svg");
+}
+
+#appMenuNewCircuit {
+ list-style-image: url("chrome://browser/skin/new_circuit.svg");
+}
diff --git a/browser/themes/shared/toolbarbutton-icons.inc.css b/browser/themes/shared/toolbarbutton-icons.inc.css
index 69e92272eb93..a948e1f1977a 100644
--- a/browser/themes/shared/toolbarbutton-icons.inc.css
+++ b/browser/themes/shared/toolbarbutton-icons.inc.css
@@ -233,6 +233,14 @@ toolbar[brighttext] {
list-style-image: url("chrome://browser/skin/new-tab.svg");
}
+#new-identity-button {
+ list-style-image: url("chrome://browser/skin/new_identity.svg");
+}
+
+#new-circuit-button {
+ list-style-image: url("chrome://browser/skin/new_circuit.svg");
+}
+
#privatebrowsing-button {
list-style-image: url("chrome://browser/skin/privateBrowsing.svg");
}
1
0