tbb-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 18605 discussions

[Git][tpo/applications/tor-browser][base-browser-128.1.0esr-14.0-1] 2 commits: fixup! Bug 40925: Implemented the Security Level component
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch base-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
feef7a00 by Henry Wilkes at 2024-08-21T02:31:01+00:00
fixup! Bug 40925: Implemented the Security Level component
Bug 41817: Drop browser-colors.css.
- - - - -
1ea7af2d by Henry Wilkes at 2024-08-21T02:31:46+00:00
fixup! Bug 41659: Add canonical color definitions to base-browser
Bug 41817: Drop browser-colors.css.
- - - - -
4 changed files:
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/themes/shared/browser-shared.css
- − toolkit/themes/shared/browser-colors.css
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
Changes:
=====================================
browser/components/securitylevel/content/securityLevelPanel.css
=====================================
@@ -51,7 +51,7 @@
#securityLevel-custom {
border-radius: 4px;
- background-color: var(--warning-color);
+ background-color: var(--warning-icon-bgcolor);
color: black;
padding: 0.4em 0.5em;
margin-inline-start: 1em;
=====================================
browser/themes/shared/browser-shared.css
=====================================
@@ -26,7 +26,6 @@
@import url("chrome://browser/skin/customizableui/customizeMode.css");
@import url("chrome://browser/skin/UITour.css");
@import url("chrome://browser/skin/formautofill-notification.css");
-@import url("chrome://global/skin/browser-colors.css");
@namespace html url("http://www.w3.org/1999/xhtml");
=====================================
toolkit/themes/shared/browser-colors.css deleted
=====================================
@@ -1,97 +0,0 @@
-:root {
- /* photon colors, not all of them are available for whatever reason
- in firefox, so here they are */
-
- --magenta-50: #ff1ad9;
- --magenta-60: #ed00b5;
- --magenta-70: #b5007f;
- --magenta-80: #7d004f;
- --magenta-90: #440027;
-
- --purple-30: #c069ff;
- --purple-40: #ad3bff;
- --purple-50: #9400ff;
- --purple-60: #8000d7;
- --purple-70: #6200a4;
- --purple-80: #440071;
- --purple-90: #25003e;
-
- --blue-40: #45a1ff;
- --blue-50: #0a84ff;
- --blue-50-a30: rgba(10, 132, 255, 0.3);
- --blue-60: #0060df;
- --blue-70: #003eaa;
- --blue-80: #002275;
- --blue-90: #000f40;
-
- --teal-50: #00feff;
- --teal-60: #00c8d7;
- --teal-70: #008ea4;
- --teal-80: #005a71;
- --teal-90: #002d3e;
-
- --green-50: #30e60b;
- --green-60: #12bc00;
- --green-70: #058b00;
- --green-80: #006504;
- --green-90: #003706;
-
- --yellow-50: #ffe900;
- --yellow-60: #d7b600;
- --yellow-70: #a47f00;
- --yellow-80: #715100;
- --yellow-90: #3e2800;
-
- --red-50: #ff0039;
- --red-60: #d70022;
- --red-70: #a4000f;
- --red-80: #5a0002;
- --red-90: #3e0200;
-
- --orange-50: #ff9400;
- --orange-60: #d76e00;
- --orange-70: #a44900;
- --orange-80: #712b00;
- --orange-90: #3e1300;
-
- --grey-10: #f9f9fa;
- --grey-10-a10: rgba(249, 249, 250, 0.1);
- --grey-10-a20: rgba(249, 249, 250, 0.2);
- --grey-10-a40: rgba(249, 249, 250, 0.4);
- --grey-10-a60: rgba(249, 249, 250, 0.6);
- --grey-10-a80: rgba(249, 249, 250, 0.8);
- --grey-20: #ededf0;
- --grey-30: #d7d7db;
- --grey-40: #b1b1b3;
- --grey-50: #737373;
- --grey-60: #4a4a4f;
- --grey-70: #38383d;
- --grey-80: #2a2a2e;
- --grey-90: #0c0c0d;
- --grey-90-a05: rgba(12, 12, 13, 0.05);
- --grey-90-a10: rgba(12, 12, 13, 0.1);
- --grey-90-a20: rgba(12, 12, 13, 0.2);
- --grey-90-a30: rgba(12, 12, 13, 0.3);
- --grey-90-a40: rgba(12, 12, 13, 0.4);
- --grey-90-a50: rgba(12, 12, 13, 0.5);
- --grey-90-a60: rgba(12, 12, 13, 0.6);
- --grey-90-a70: rgba(12, 12, 13, 0.7);
- --grey-90-a80: rgba(12, 12, 13, 0.8);
- --grey-90-a90: rgba(12, 12, 13, 0.9);
-
- --ink-70: #363959;
- --ink-80: #202340;
- --ink-90: #0f1126;
-
- --white-100: #ffffff;
-
- /* TODO: Switch to some Firefox variable, once Mozilla adds one for this
- color. Matches --warning-icon-bgcolor (but not on the dark theme variant). */
- --warning-color: #ffa436;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --warning-color: #ffbd4f;
- }
-}
=====================================
toolkit/themes/shared/minimal-toolkit.jar.inc.mn
=====================================
@@ -45,5 +45,3 @@ toolkit.jar:
# Text recognition widget
skin/classic/global/media/textrecognition.css (../../shared/media/textrecognition.css)
-
- skin/classic/global/browser-colors.css (../../shared/browser-colors.css)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9781ac…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9781ac…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 8 commits: Bug 41817: tor-browser semantic colors.
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
a0742a1b by Henry Wilkes at 2024-08-21T02:05:06+00:00
Bug 41817: tor-browser semantic colors.
- - - - -
8639aaa5 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 7494: Create local home page for TBB.
Bug 41817: Use semantic tor color names in about:tor.
- - - - -
3cf73e78 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 41817: Use semantic color names for tor preferences.
- - - - -
2595f644 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
Bug 41817: Use semantic tor color names for tor buttons.
Also, for about:torconnect:
+ Use dark-mode variant for the buttons colors.
+ Add purple focus outline to the select element to match the buttons.
+ Stop applying the "primary" class to the cancel button.
+ Remove the checkbox styling since the checkbox was replaced with a
moz-toggle-button.
+ Removed the "danger-button" class since it does not sufficiently
telegraph a distinguished action, and has no dark-mode variant.
+ Use warning color from common-shared.css.
+ Drop --grey-40 for breadcrumb arrows, which did not adjust to theme.
- - - - -
6d76bafb by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 21952: Implement Onion-Location
- - - - -
4eaccbd8 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 41817: Drop browser-colors.css.
- - - - -
6be73a77 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 40925: Implemented the Security Level component
Bug 41817: Drop browser-colors.css.
- - - - -
d45ef470 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 41659: Add canonical color definitions to base-browser
Bug 41817: Drop browser-colors.css.
- - - - -
16 changed files:
- browser/base/content/navigator-toolbox.inc.xhtml
- browser/components/abouttor/content/aboutTor.css
- browser/components/onionservices/content/authPreferences.css
- browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/components/torpreferences/content/torPreferences.css
- browser/themes/shared/browser-shared.css
- browser/themes/shared/tor-urlbar-button.css
- toolkit/components/torconnect/content/aboutTorConnect.css
- toolkit/components/torconnect/content/aboutTorConnect.html
- toolkit/components/torconnect/content/aboutTorConnect.js
- toolkit/components/torconnect/content/torConnectTitlebarStatus.css
- − toolkit/themes/shared/browser-colors.css
- toolkit/themes/shared/desktop-jar.inc.mn
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
- + toolkit/themes/shared/tor-colors.css
Changes:
=====================================
browser/base/content/navigator-toolbox.inc.xhtml
=====================================
@@ -431,7 +431,7 @@
<hbox id="tor-connect-urlbar-button"
role="button"
- class="tor-urlbar-button"
+ class="tor-button tor-urlbar-button"
hidden="true">
<label id="tor-connect-urlbar-button-label"/>
</hbox>
=====================================
browser/components/abouttor/content/aboutTor.css
=====================================
@@ -1,4 +1,4 @@
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
body {
margin: 0;
@@ -179,7 +179,7 @@ body:not(.show-tor-check) #tor-check {
/* On dark background */
:root {
background-color: #2C0449;
- --focus-outline-color: var(--purple-30);
+ --focus-outline-color: var(--tor-focus-outline-color-dark);
--focus-outline: var(--focus-outline-width) solid var(--focus-outline-color);
--in-content-focus-outline-color: var(--focus-outline-color);
--in-content-focus-outline: var(--focus-outline);
@@ -194,14 +194,9 @@ body:not(.show-tor-check) #tor-check {
--in-content-page-color: #fbfbfe;
--in-content-text-color: #fbfbfe;
color: var(--in-content-text-color);
- --link-color: var(--purple-30);
- /* FIXME: Since we have a dark background, the color should get lighter on
- * hover, but --purple-40 and --pruple-50 are darker than --purple-30.
- * However, we do not have a standard lighter purple in our current set of
- * Photon colors.
- * See tor-browser#42025 */
- --link-color-hover: var(--purple-40);
- --link-color-active: var(--purple-50);
+ --link-color: var(--tor-link-color-dark);
+ --link-color-hover: var(--tor-link-color-hover-dark);
+ --link-color-active: var(--tor-link-color-active-dark);
}
#search-form {
@@ -209,7 +204,9 @@ body:not(.show-tor-check) #tor-check {
}
#search-form.search-input-focus-visible {
- border-color: var(--purple-60);
+ /* Use a light-themed inner-border to contrast with the dark-themed
+ * focus outline. */
+ border-color: var(--tor-focus-outline-color-light);
}
#search-form.onionized-search:not(.search-input-focus-visible) {
@@ -218,17 +215,17 @@ body:not(.show-tor-check) #tor-check {
/* Light background. */
#search-form > * {
- --focus-outline-color: var(--purple-60);
+ --focus-outline-color: var(--tor-focus-outline-color-light);
--focus-outline: var(--focus-outline-width) solid var(--focus-outline-color);
--in-content-focus-outline-color: var(--focus-outline-color);
--in-content-focus-outline: var(--focus-outline);
/* Variables used for --toggle- variables. */
- --color-accent-primary: var(--purple-60);
- --color-accent-primary-hover: var(--purple-70);
- --color-accent-primary-active: var(--purple-80);
+ --color-accent-primary: var(--tor-button-background-color-light);
+ --color-accent-primary-hover: var(--tor-button-background-color-hover-light);
+ --color-accent-primary-active: var(--tor-button-background-color-active-light);
}
#search-form.onionized-search #onionize-toggle {
- color: var(--purple-60);
+ color: var(--tor-link-color-light);
}
}
=====================================
browser/components/onionservices/content/authPreferences.css
=====================================
@@ -1,7 +1,5 @@
/* Copyright (c) 2020, The Tor Project, Inc. */
-@import url("chrome://global/skin/browser-colors.css");
-
#onionservices-savedkeys-dialog {
min-width: 45em;
}
@@ -23,5 +21,5 @@
margin-inline-end: 4px;
list-style-image: url("chrome://global/skin/icons/warning.svg");
-moz-context-properties: fill;
- fill: var(--warning-color);
+ fill: var(--in-content-warning-icon-color);
}
=====================================
browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
=====================================
@@ -1,7 +1,7 @@
# Copyright (c) 2020, The Tor Project, Inc.
<hbox id="onion-location-box"
- class="tor-urlbar-button"
+ class="tor-button tor-urlbar-button"
role="button"
hidden="true"
onclick="OnionLocationParent.buttonClick(event);">
=====================================
browser/components/securitylevel/content/securityLevelPanel.css
=====================================
@@ -51,7 +51,7 @@
#securityLevel-custom {
border-radius: 4px;
- background-color: var(--warning-color);
+ background-color: var(--warning-icon-bgcolor);
color: black;
padding: 0.4em 0.5em;
margin-inline-start: 1em;
=====================================
browser/components/torpreferences/content/torPreferences.css
=====================================
@@ -1,4 +1,4 @@
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
#category-connection > .category-icon {
@@ -137,13 +137,7 @@ button.spoof-button-disabled {
}
.bridge-status-badge.bridge-status-connected {
- color: var(--purple-60);
-}
-
-@media (prefers-color-scheme: dark) {
- .bridge-status-badge.bridge-status-connected {
- color: var(--purple-30);
- }
+ color: var(--tor-accent-color);
}
.bridge-status-badge.bridge-status-current-built-in {
@@ -990,7 +984,7 @@ hbox#torPreferences-requestBridge-incorrectCaptchaHbox {
image#torPreferences-requestBridge-errorIcon {
list-style-image: url("chrome://global/skin/icons/warning.svg");
-moz-context-properties: fill;
- fill: var(--warning-color);
+ fill: var(--in-content-warning-icon-color);
}
groupbox#torPreferences-bridges-group textarea {
=====================================
browser/themes/shared/browser-shared.css
=====================================
@@ -26,8 +26,8 @@
@import url("chrome://browser/skin/customizableui/customizeMode.css");
@import url("chrome://browser/skin/UITour.css");
@import url("chrome://browser/skin/formautofill-notification.css");
-@import url("chrome://global/skin/browser-colors.css");
@import url("chrome://browser/skin/tor-branding.css");
+@import url("chrome://global/skin/tor-colors.css");
@import url("chrome://browser/skin/tor-urlbar-button.css");
@import url("chrome://browser/skin/onionlocation.css");
=====================================
browser/themes/shared/tor-urlbar-button.css
=====================================
@@ -1,9 +1,4 @@
.tor-urlbar-button:not([hidden]) {
- --tor-urlbar-button-background-color: var(--purple-60);
- background-color: var(--tor-urlbar-button-background-color);
- /* FIXME: Use different colors for light and dark theme, rather than "white".
- * See tor-browser#41787 */
- color: white;
display: flex;
align-items: center;
gap: 0.5em;
@@ -31,8 +26,7 @@
* urlbar background, but we keep the rounded corners. */
outline: var(--focus-outline);
outline-offset: var(--focus-outline-offset);
- /* Use the background color for the outline, same as in-content buttons. */
- outline-color: var(--tor-urlbar-button-background-color);
+ outline-color: var(--tor-focus-outline-color);
/* Calculate the difference between the button's border area and the outline
* area. */
--tor-urlbar-focus-outline-difference: calc(
@@ -64,31 +58,9 @@
display: none;
}
-.tor-urlbar-button:hover {
- --tor-urlbar-button-background-color: var(--purple-70);
-}
-
-.tor-urlbar-button:hover:active {
- --tor-urlbar-button-background-color: var(--purple-80);
-}
-
-@media (prefers-color-scheme: dark) {
- .tor-urlbar-button {
- --tor-urlbar-button-background-color: var(--purple-50);
- }
-
- .tor-urlbar-button:hover {
- --tor-urlbar-button-background-color: var(--purple-60);
- }
-
- .tor-urlbar-button:hover:active {
- --tor-urlbar-button-background-color: var(--purple-70);
- }
-}
-
/* Make the button look plain like the identity #urlbar-label-box. */
.tor-urlbar-button.tor-urlbar-button-plain {
- --tor-urlbar-button-background-color: var(--urlbar-box-bgcolor);
+ background-color: var(--urlbar-box-bgcolor);
color: var(--urlbar-box-text-color);
}
@@ -97,11 +69,11 @@
}
.tor-urlbar-button.tor-urlbar-button-plain:hover {
- --tor-urlbar-button-background-color: var(--urlbar-box-hover-bgcolor);
+ background-color: var(--urlbar-box-hover-bgcolor);
color: var(--urlbar-box-hover-text-color);
}
.tor-urlbar-button.tor-urlbar-button-plain:hover:active {
- --tor-urlbar-button-background-color: var(--urlbar-box-active-bgcolor);
+ background-color: var(--urlbar-box-active-bgcolor);
color: var(--urlbar-box-hover-text-color);
}
=====================================
toolkit/components/torconnect/content/aboutTorConnect.css
=====================================
@@ -2,7 +2,7 @@
/* Copyright (c) 2021, The Tor Project, Inc. */
@import url("chrome://global/skin/error-pages.css");
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
:root {
--onion-opacity: 1;
@@ -14,23 +14,10 @@ html {
height: 100%;
}
-input[type="checkbox"]:focus, select:focus {
- outline: none!important;
- box-shadow: 0 0 0 3px var(--purple-30) !important;
- border: 1px var(--purple-80) solid !important;
-}
-
-@media (prefers-color-scheme: dark) {
- input[type="checkbox"]:focus, select:focus {
- box-shadow: 0 0 0 3px var(--purple-50)!important;
- }
-}
-
#breadcrumbs {
display: flex;
align-items: center;
margin: 0 0 24px 0;
- color: var(--grey-40);
}
#breadcrumbs.hidden {
@@ -129,23 +116,8 @@ input[type="checkbox"]:focus, select:focus {
list-style-image: url("chrome://global/content/torconnect/bridge.svg");
}
-button {
- --purple-button-text-color: rgb(251,251,254);
- --in-content-primary-button-text-color: var(--purple-button-text-color);
- --in-content-primary-button-background: var(--purple-60);
- --in-content-primary-button-text-color-hover: var(--purple-button-text-color);
- --in-content-primary-button-background-hover: var(--purple-70);
- --in-content-primary-button-text-color-active: var(--purple-button-text-color);
- --in-content-primary-button-background-active: var(--purple-80);
- --in-content-focus-outline-color: var(--purple-60);
- fill: white;
-}
-
-#cancelButton {
- color: var(--in-content-button-text-color);
- border: 1px solid var(--in-content-button-border-color);
- border-radius: 4px;
- background-color: var(--in-content-button-background);
+button, select {
+ --in-content-focus-outline-color: var(--tor-focus-outline-color);
}
#locationDropdownLabel {
@@ -157,18 +129,6 @@ button {
color: var(--text-color-error)
}
-#tryBridgeButton.danger-button {
- background-color: var(--purple-70);
-}
-
-#tryBridgeButton.danger-button:hover {
- background-color: var(--purple-80);
-}
-
-#tryBridgeButton.danger-button:active {
- background-color: var(--purple-90);
-}
-
/* this follows similar css in error-pages.css for buttons */
@media only screen and (min-width: 480px) {
form#locationDropdown {
@@ -195,35 +155,6 @@ form#locationDropdown select {
font-weight: 700;
}
-/* checkbox css */
-input[type="checkbox"]:not(:disabled) {
- background-color: var(--grey-20)!important;
-}
-
-input[type="checkbox"]:not(:disabled):checked {
- background-color: var(--purple-60)!important;
- color: white;
- fill: white;
-}
-
-input[type="checkbox"]:not(:disabled):hover {
- /* override firefox's default blue border on hover */
- border-color: var(--purple-70);
- background-color: var(--grey-30)!important;
-}
-
-input[type="checkbox"]:not(:disabled):hover:checked {
- background-color: var(--purple-70)!important;
-}
-
-input[type="checkbox"]:not(:disabled):active {
- background-color: var(--grey-40)!important;
-}
-
-input[type="checkbox"]:not(:disabled):active:checked {
- background-color: var(--purple-80)!important;
-}
-
:root {
--progressbar-shadow-start: rgba(255, 255, 255, 0.7);
--progressbar-gradient: linear-gradient(90deg, #FC00FF 0%, #00DBDE 50%, #FC00FF 100%);
@@ -352,7 +283,7 @@ body.aboutTorConnect .title {
.title.location {
background-image: url("chrome://global/content/torconnect/connection-location.svg");
- stroke: var(--warning-color);
+ stroke: var(--in-content-warning-icon-color);
}
:root {
=====================================
toolkit/components/torconnect/content/aboutTorConnect.html
=====================================
@@ -75,8 +75,8 @@
<button id="restartButton" hidden="true"></button>
<button id="configureButton" hidden="true"></button>
<button id="cancelButton" hidden="true"></button>
- <button id="connectButton" class="primary" hidden="true"></button>
- <button id="tryBridgeButton" class="primary" hidden="true"></button>
+ <button id="connectButton" hidden="true"></button>
+ <button id="tryBridgeButton" hidden="true"></button>
</span>
</div>
</div>
=====================================
toolkit/components/torconnect/content/aboutTorConnect.js
=====================================
@@ -188,8 +188,9 @@ class AboutTorConnect {
Element helper methods
*/
- show(element, primary) {
- element.classList.toggle("primary", primary !== undefined && primary);
+ show(element, primary = false) {
+ element.classList.toggle("primary", primary);
+ element.classList.toggle("tor-button", primary);
element.removeAttribute("hidden");
}
@@ -554,7 +555,7 @@ class AboutTorConnect {
} else {
this.hide(this.elements.viewLogButton);
}
- this.show(this.elements.cancelButton, true);
+ this.show(this.elements.cancelButton);
if (state.StateChanged) {
this.elements.cancelButton.focus();
}
@@ -687,7 +688,6 @@ class AboutTorConnect {
this.show(this.elements.locationDropdown);
this.elements.locationDropdownLabel.classList.toggle("error", isError);
this.show(this.elements.tryBridgeButton, true);
- this.elements.tryBridgeButton.classList.toggle("danger-button", isError);
if (buttonLabel !== undefined) {
this.elements.tryBridgeButton.textContent = buttonLabel;
}
=====================================
toolkit/components/torconnect/content/torConnectTitlebarStatus.css
=====================================
@@ -44,13 +44,7 @@
}
#tor-connect-titlebar-status.tor-connect-status-connected {
- color: var(--purple-60);
-}
-
-@media (prefers-color-scheme: dark) {
- #tor-connect-titlebar-status.tor-connect-status-connected {
- color: var(--purple-30);
- }
+ color: var(--tor-accent-color);
}
@keyframes onion-not-connected-to-connected {
=====================================
toolkit/themes/shared/browser-colors.css deleted
=====================================
@@ -1,97 +0,0 @@
-:root {
- /* photon colors, not all of them are available for whatever reason
- in firefox, so here they are */
-
- --magenta-50: #ff1ad9;
- --magenta-60: #ed00b5;
- --magenta-70: #b5007f;
- --magenta-80: #7d004f;
- --magenta-90: #440027;
-
- --purple-30: #c069ff;
- --purple-40: #ad3bff;
- --purple-50: #9400ff;
- --purple-60: #8000d7;
- --purple-70: #6200a4;
- --purple-80: #440071;
- --purple-90: #25003e;
-
- --blue-40: #45a1ff;
- --blue-50: #0a84ff;
- --blue-50-a30: rgba(10, 132, 255, 0.3);
- --blue-60: #0060df;
- --blue-70: #003eaa;
- --blue-80: #002275;
- --blue-90: #000f40;
-
- --teal-50: #00feff;
- --teal-60: #00c8d7;
- --teal-70: #008ea4;
- --teal-80: #005a71;
- --teal-90: #002d3e;
-
- --green-50: #30e60b;
- --green-60: #12bc00;
- --green-70: #058b00;
- --green-80: #006504;
- --green-90: #003706;
-
- --yellow-50: #ffe900;
- --yellow-60: #d7b600;
- --yellow-70: #a47f00;
- --yellow-80: #715100;
- --yellow-90: #3e2800;
-
- --red-50: #ff0039;
- --red-60: #d70022;
- --red-70: #a4000f;
- --red-80: #5a0002;
- --red-90: #3e0200;
-
- --orange-50: #ff9400;
- --orange-60: #d76e00;
- --orange-70: #a44900;
- --orange-80: #712b00;
- --orange-90: #3e1300;
-
- --grey-10: #f9f9fa;
- --grey-10-a10: rgba(249, 249, 250, 0.1);
- --grey-10-a20: rgba(249, 249, 250, 0.2);
- --grey-10-a40: rgba(249, 249, 250, 0.4);
- --grey-10-a60: rgba(249, 249, 250, 0.6);
- --grey-10-a80: rgba(249, 249, 250, 0.8);
- --grey-20: #ededf0;
- --grey-30: #d7d7db;
- --grey-40: #b1b1b3;
- --grey-50: #737373;
- --grey-60: #4a4a4f;
- --grey-70: #38383d;
- --grey-80: #2a2a2e;
- --grey-90: #0c0c0d;
- --grey-90-a05: rgba(12, 12, 13, 0.05);
- --grey-90-a10: rgba(12, 12, 13, 0.1);
- --grey-90-a20: rgba(12, 12, 13, 0.2);
- --grey-90-a30: rgba(12, 12, 13, 0.3);
- --grey-90-a40: rgba(12, 12, 13, 0.4);
- --grey-90-a50: rgba(12, 12, 13, 0.5);
- --grey-90-a60: rgba(12, 12, 13, 0.6);
- --grey-90-a70: rgba(12, 12, 13, 0.7);
- --grey-90-a80: rgba(12, 12, 13, 0.8);
- --grey-90-a90: rgba(12, 12, 13, 0.9);
-
- --ink-70: #363959;
- --ink-80: #202340;
- --ink-90: #0f1126;
-
- --white-100: #ffffff;
-
- /* TODO: Switch to some Firefox variable, once Mozilla adds one for this
- color. Matches --warning-icon-bgcolor (but not on the dark theme variant). */
- --warning-color: #ffa436;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --warning-color: #ffbd4f;
- }
-}
=====================================
toolkit/themes/shared/desktop-jar.inc.mn
=====================================
@@ -46,6 +46,7 @@
skin/classic/global/popupnotification.css (../../shared/popupnotification.css)
skin/classic/global/splitter.css (../../shared/splitter.css)
skin/classic/global/toolbarbutton.css (../../shared/toolbarbutton.css)
+ skin/classic/global/tor-colors.css (../../shared/tor-colors.css)
skin/classic/global/tree/tree.css (../../shared/tree/tree.css)
skin/classic/global/dirListing/dirListing.css (../../shared/dirListing/dirListing.css)
#ifdef XP_MACOSX
=====================================
toolkit/themes/shared/minimal-toolkit.jar.inc.mn
=====================================
@@ -45,5 +45,3 @@ toolkit.jar:
# Text recognition widget
skin/classic/global/media/textrecognition.css (../../shared/media/textrecognition.css)
-
- skin/classic/global/browser-colors.css (../../shared/browser-colors.css)
=====================================
toolkit/themes/shared/tor-colors.css
=====================================
@@ -0,0 +1,120 @@
+:root {
+ /* Photon colors not available in Firefox. */
+ --purple-30: #c069ff;
+ --purple-40: #ad3bff;
+ --purple-50: #9400ff;
+ --purple-60: #8000d7;
+ --purple-70: #6200a4;
+ --purple-80: #440071;
+ --purple-90: #25003e;
+
+ /* On light backgrounds. */
+ --tor-accent-color-light: var(--purple-60);
+ --tor-accent-color-hover-light: var(--purple-70);
+ --tor-accent-color-active-light: var(--purple-80);
+
+ /* Acorn color grey light 05. */
+ --tor-button-text-color-light: var(--color-gray-05);
+ --tor-button-text-color-hover-light: var(--color-gray-05);
+ --tor-button-text-color-active-light: var(--color-gray-05);
+ --tor-button-background-color-light: var(--tor-accent-color-light);
+ --tor-button-background-color-hover-light: var(--tor-accent-color-hover-light);
+ --tor-button-background-color-active-light: var(--tor-accent-color-active-light);
+ --tor-focus-outline-color-light: var(--tor-accent-color-light);
+ --tor-link-color-light: var(--tor-accent-color-light);
+ --tor-link-color-hover-light: var(--tor-accent-color-hover-light);
+ --tor-link-color-active-light: var(--tor-accent-color-active-light);
+
+
+ /* On dark backgrounds. */
+ /* TODO: Need a dark theme purple color that gets *lighter* with hover and
+ * active states, see tor-browser#42025 */
+ --tor-accent-color-dark: var(--purple-30);
+ --tor-accent-color-hover-dark: var(--purple-40);
+ --tor-accent-color-active-dark: var(--purple-50);
+
+ /* TODO: Use a dark text color for dark theme. tor-browser#41787. */
+ --tor-button-text-color-dark: var(--color-gray-05);
+ --tor-button-text-color-hover-dark: var(--color-gray-05);
+ --tor-button-text-color-active-dark: var(--color-gray-05);
+ --tor-button-background-color-dark: var(--tor-accent-color-dark);
+ --tor-button-background-color-hover-dark: var(--tor-accent-color-hover-dark);
+ --tor-button-background-color-active-dark: var(--tor-accent-color-active-dark);
+ --tor-focus-outline-color-dark: var(--tor-accent-color-dark);
+ --tor-link-color-dark: var(--tor-accent-color-dark);
+ --tor-link-color-hover-dark: var(--tor-accent-color-hover-dark);
+ --tor-link-color-active-dark: var(--tor-accent-color-active-dark);
+
+
+ /* Generic colors that adapt to theme. */
+ --tor-accent-color: light-dark(
+ var(--tor-accent-color-light),
+ var(--tor-accent-color-dark)
+ );
+ --tor-accent-color-hover: light-dark(
+ var(--tor-accent-color-hover-light),
+ var(--tor-accent-color-hover-dark)
+ );
+ --tor-accent-color-active: light-dark(
+ var(--tor-accent-color-active-light),
+ var(--tor-accent-color-active-dark)
+ );
+ --tor-button-text-color: light-dark(
+ var(--tor-button-text-color-light),
+ var(--tor-button-text-color-dark)
+ );
+ --tor-button-text-color-hover: light-dark(
+ var(--tor-button-text-color-hover-light),
+ var(--tor-button-text-color-hover-dark)
+ );
+ --tor-button-text-color-active: light-dark(
+ var(--tor-button-text-color-active-light),
+ var(--tor-button-text-color-active-dark)
+ );
+ --tor-button-background-color: light-dark(
+ var(--tor-button-background-color-light),
+ var(--tor-button-background-color-dark)
+ );
+ --tor-button-background-color-hover: light-dark(
+ var(--tor-button-background-color-hover-light),
+ var(--tor-button-background-color-hover-dark)
+ );
+ --tor-button-background-color-active: light-dark(
+ var(--tor-button-background-color-active-light),
+ var(--tor-button-background-color-active-dark)
+ );
+ --tor-focus-outline-color: light-dark(
+ var(--tor-focus-outline-color-light),
+ var(--tor-focus-outline-color-dark)
+ );
+ --tor-link-color: light-dark(
+ var(--tor-link-color-light),
+ var(--tor-link-color-dark)
+ );
+ --tor-link-color-hover: light-dark(
+ var(--tor-link-color-hover-light),
+ var(--tor-link-color-hover-dark)
+ );
+ --tor-link-color-active: light-dark(
+ var(--tor-link-color-active-light),
+ var(--tor-link-color-active-dark)
+ );
+}
+
+button.tor-button,
+.tor-button {
+ color: var(--tor-button-text-color);
+ background-color: var(--tor-button-background-color);
+}
+
+button.tor-button:hover,
+.tor-button:hover {
+ color: var(--tor-button-text-color-hover);
+ background-color: var(--tor-button-background-color-hover);
+}
+
+button.tor-button:hover:active,
+.tor-button:hover:active {
+ color: var(--tor-button-text-color-active);
+ background-color: var(--tor-button-background-color-active);
+}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/908dda…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/908dda…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build][main] Bug 41198: Add anti-censorship team to stakeholders to notify on packaging changes
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
e7e6c2f3 by Morgan at 2024-08-19T20:11:34+00:00
Bug 41198: Add anti-censorship team to stakeholders to notify on packaging changes
- - - - -
1 changed file:
- .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
Changes:
=====================================
.gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
=====================================
@@ -155,6 +155,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch
- [ ] Guardian Project: nathan(a)guardianproject.info
- [ ] FreeBSD port: freebsd(a)sysctl.cz <!-- Gitlab user maxfx -->
- [ ] OpenBSD port: caspar(a)schutijser.com <!-- Gitlab user cschutijser -->
+ - [ ] Anti-Censorship: meskio(a)torproject.org
- [ ] Note any changes which may affect packaging/downstream integration
- [ ] ***(Optional, only after internal API-breaking changes)*** Email downstream project maintainers:
- [ ] selenium-tor: matzfan(a)tempr.email <!-- Forum user Noino -->
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] fixup! Bug 40009: [android] Change the default search engines
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
908dda03 by clairehurst at 2024-08-20T17:34:07+00:00
fixup! Bug 40009: [android] Change the default search engines
Bug 43037: Fix the crash when searching with DDG from the toolbar.
- - - - -
1 changed file:
- mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg.xml
Changes:
=====================================
mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg.xml
=====================================
@@ -6,7 +6,7 @@
<ShortName>DuckDuckGo</ShortName>
<InputEncoding>UTF-8</InputEncoding>
<Image width="32" height="32">data:image/png;base64,AAABAAIAEBAAAAEAIAB5AwAAJgAAACAgAAABACAAUAcAAJ8DAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAANASURBVDiNpZNNTFsFAMd/76t9rx+UsZYCGTNsIytVsXGGA5qNmAjG0Ok+OsXNuIMas4MnT4o6g4bTYnYw7jCnS/QAZHMmbBlKluzCphlK5mAbAcamlKyUQt+jtH19Hx6MZpz93f6X3+n/g/+J8OiYTe0KObLysikqRz3F9WeVcsVTUr1rjs9z04vTr66YVxqGx4sCuBsELgj39rW1CtWevkDjzqT60mHU5icRbBvbKmOvrmKODrF669qIvZr/aFvLjXHhU5z/BHOH2p6SNkdGwq8cjUqxXVTSM6xfGcYYHESMBAkeeofgiylYnGPpu5O5tfRMsuXc5BiAeG/PHlUO+ftq33gvaksa6SMdWOlZNn1wkoYz55DDtegDp/irpx3TWCOServGH6k/PptsigKIVqPdEYi3JcXGGJkP30Lt7kHb/y4KoD3dTrj/NJ5YHEJBMn3HsMNbCTXFXyAQTg6mkMQKbq+3qwdjZACpfivSa8e4PZ1leaWA48KkZwfLWiOyK+NKGsblAZTnDyAGQnvjk3FJpGgm5Ooa9KGvkULViKEwur5OJmciCpDOLFNqqMX/hA81plL+5WeUphZESdpdVaVLslYu+SVfACuTRaxrxLOWIxGvQ7H+xJkfYq9gU9zxALPawV1SyN+YBcdFFgkthm1Briieius6indnM1ZBpzh5nWjnQTDuYM+8T26sFtv1IdYoFCZcxFAEx1yn4rJgZiVXNP3qWOnuTdTnunBWsli3fvvnIb527HA/eANomoKdFnBWdYIH3oRCAWxnKpxVHVFx7W/Kl76nqqsHwTCwp+9iAkib8FTtQ/gjwsV1l/lFG3G5SLDzINbV8wjF0pfNMzOmLD+sXDCU6WHt/lR39PMz5E8c5/dfB/lKuYSl51lOZpmvdei/bZD4+BTkFliauDaa0x9cfQxccfvoeN61jN7sD6cfSppM3bcX8W/egmWVEVSN1+V2DrsdxE6cR/BB5uwXufLC4ieJH+/nN7ZwJNEqaDWfVcef6RY6X6UYDhGoieIt2RhT49iXByjM3fnJ0fXeba0TG1v4l7HUFq1Ord9dcb29brGc0MqlgKl4zYpPvS5jnzXN/IXHh6ZWHq3xb489Z7RfaFfAAAAAAElFTkSuQmCCiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAHF0lEQVRYhZ2XX2xT9xXHP7/r6z+x48Qhc1lCWWzKopFOqluHDW0SCZuElmpIqaASoRXwMCL2MNE1PGyTNog6qXsoLbBpMHgBNAqVyBaaqbDugaSaSlXwlq4hrNkgzhgOYEJMnFw7zvX97eHa13bsFLrzZJ/7+53v95x7/l3BY8p4Z7sv65rptCHapCSEQgCJDwBBAoOoFAxL5JAtXdMf7B9MPI5d8UjgresCSH2PVOROC/AxRMIJBXtv8OxH0f+LwHhnu4+qmX1SilfyOteaMO617VS1hFH9DShuLwCGliQTHWN+YgztyiDp65ECESEOKim9N9g/XDEiFQmMb10XkCxcAgIA1es3UbdlF6q/8fOcsUSPx5g+d5zZDwbyqqjAvqFSNMoIjG9bG5KG8UcgoPobWd7zBo6mZsvThxfOkB6NoMcn0eMxABSPF0dTM+7WdjytbRZRPR5j8rXd+XNRoSgvBN++MrwkgWLPves3sWzHqyhuL3o8xtztKE6HE0NLMndlCC0yiDGXrBiB6rZN1G02I2ZoSeJHetGuDlaMRAmBm1vD40DA3drO8p43AHh44Qwzl87je/nHiIYmHLXLcDgc6PEYU6fezBsuE8Xtxbelm9qOLgDuH+0lOTRgkkhnn83nhM3yvuu5t0B8T/U38uWfHkbYnUz3HWP6zG8wZh6g/fU9tEvnma+px/nkKhw1dVR/ayN2fyOZiTEMrTQaciFD6pPLIKCqJYyrJczc5b9gaEmftNtch0dif7YikAv9OMDKw++i+ht5eOEMD04dsAw6NnRS/+IPcdXVV/S4yMMyWba9h9qOLjITY9z+ybZc6O3B4NmPogqAwcI+MLNd9Teix2Mk+o4VwDteouEHP1sS3AR5dckqSZw7hh6P4Whqpnr9JgAMufAKgDK+M+QTsBOgbssuAKb7jhcSrO4Jlm/7EZ/+8w7vf/AZs9p8GcC/J6a4PDrFQkd3RQKGliR+tJdiDKGwY7wz5FOzaaVTwWwyee9ni0Jp+8Z3UVUVj8fJxpbKHq5uqmd1Uz2GVs+tPm/F6kiPRjC0JKq/EVdLmPRoxJd12TsVgWgDcK9tB2Du6lDJRfvK1RbIrDbPnXjl0vvtqQ+5PHof15pwxecAD987A4C71cSyYbSpQhBCgjPXbMrKyuWxfvb8coDqKie9PRupdjtLjn0YiQLwNX/DkgTyLbqqxSQphQip5NqtI2ASyEyMlVxayHU7gG+HAwBl4AC/P2Rm9/S5EQAUF1Q/DVUrIX4RjDTo8UkAVIukDKj5CWcNlkXvT0/OWL+3b24tPMgmYepPoJUS9j75Gd5uUGtyXt8ywYFC685hIfGpZa4sljtRMpkMDoejVD/6EmRiZcdVOxiGCZwcgdlrn29eRZBA4jO0JIrba1VCXsTkBKlUqpRAaswCT92Ce+dNL9UaMDIFjxdL8fg2jZNQgCiAfm/x+8nJ5DjzD6dLdY4GsJnGbC5QcimhzywNDlhTNRPNvzYRVZF8AoRS1yM4As241oRJj0ZKLmo3rsFXAgWFzQvNv4Obe3H4Y6zcBZl4KbhaC5l7cLe/oMuX+nwu0YWUw4qBHIRC+dU+31XG3Bj5GF3XS5XuZvj6u+iebpLXAGmCqrUmkeSImf3F4mltoxgL5JBqcxn9ct72Vno04tPjseJOZV0Uk1Hm5uaora0tI5ccgcSFMnWZFM8Zy3ba6FeCJ4YTEk6COQMA/Lv3oXi8hdvj10gnpioati8aQP9qsPHfeqVEp3i8JXMGQMCJYP9wQgFQZPYgwOzQAJnoGKq/kbrNpYMldfM6ALMLST598Hfm9FkAXC3PMeVV0JyCP3zTzq87HFwMlVZ33ebuCnMm2wugAgTPDkdvdIUPCcmeu2/uZcWvTlPT0YUxl2Q6N5aNkY9JrfsOF28PcHL8CABP1z7DvfQd4i86MbIGQhEIKIlA3eZu05aWZPK13QBIyaFV7wxHAayTijO7H4jmVy0A35Zu6rf3oHi8iMko6XRpjf1j6m/c0XI9Q0BWzwLwoFqgeLzUb+/Bt8WMZPxIr7WcPvVOxFr1LQLBE8MJQXYDEJ0dGuDugb0YWpKaji5WvH6a6pWrSE1P8VTNV5FSmlExDOy6HbtuJ/CfecLX01TfT7HM/iVWvH7a8jx+tHgpzW4oduKRa3nDz48W1mxdJy1TvPz+9/HYa9gb+gXPPrEWMLcegJrnu6yOl5kY4+6BvUVrefaF4NvDS6/lFomtoYDEVvgwKVqzwUzEaru30lWTaDzGdN/x4sUmKshuCJ413/sjCeTlRlf4oJDsyf93tYRxt7bjbGrGEWgu6e36vUlS1yNoVwdLeoiUHFLms/u/0KdZseSisR/Y8aizRVYT0uCkIrIHK3n9hQhYRDpDvqxL6VQQ7QjxDMjSz3NEVEgxnCU7ZEsb/Ut5vFj+B4mSK5j/ya9iAAAAAElFTkSuQmCC</Image>
-<Url type="application/x-suggestions+json" method="GET" template="https://ac.duckduckgo.com/ac/">
+<Url type="text/html" method="GET" template="https://duckduckgo.com/">
<Param name="q" value="{searchTerms}"/>
</Url>
<SearchForm>https://duckduckgo.com</SearchForm>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/908dda0…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/908dda0…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-update-responses][main] alpha: new version, 14.0a2
by morgan (@morgan) 20 Aug '24
by morgan (@morgan) 20 Aug '24
20 Aug '24
morgan pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
6dfcbd54 by Morgan at 2024-08-20T18:45:38+00:00
alpha: new version, 14.0a2
- - - - -
30 changed files:
- update_3/alpha/13.5a8-14.0a2-linux-i686-ALL.xml
- update_3/alpha/13.5a8-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/13.5a8-14.0a2-macos-ALL.xml
- update_3/alpha/13.5a8-14.0a2-windows-i686-ALL.xml
- update_3/alpha/13.5a8-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/13.5a9-14.0a2-linux-i686-ALL.xml
- update_3/alpha/13.5a9-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/13.5a9-14.0a2-macos-ALL.xml
- update_3/alpha/13.5a9-14.0a2-windows-i686-ALL.xml
- update_3/alpha/13.5a9-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a1-14.0a2-linux-i686-ALL.xml
- update_3/alpha/14.0a1-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/14.0a1-14.0a2-macos-ALL.xml
- update_3/alpha/14.0a1-14.0a2-windows-i686-ALL.xml
- update_3/alpha/14.0a1-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a2-linux-i686-ALL.xml
- update_3/alpha/14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/14.0a2-macos-ALL.xml
- update_3/alpha/14.0a2-windows-i686-ALL.xml
- update_3/alpha/14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/download-android-aarch64.json
- update_3/alpha/download-android-armv7.json
- update_3/alpha/download-android-x86.json
- update_3/alpha/download-android-x86_64.json
- update_3/alpha/download-linux-i686.json
- update_3/alpha/download-linux-x86_64.json
- update_3/alpha/download-macos.json
- update_3/alpha/download-windows-i686.json
- update_3/alpha/download-windows-x86_64.json
- update_3/alpha/downloads.json
Changes:
=====================================
update_3/alpha/13.5a8-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="3f363d4bbba46c28c326f0cde60bcde2287ed024cde0fb7de313d563f3606de308aff23be14219110d8184118999559d4b17e908900d550f4add3cae504a096c" size="68093561" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="0c3a8ae6608a906c21b34af473ee820db7a6fa54724b4bb64096ad7d9ce171a91607fe98ae91afda3f856f52961869d2aa06f3593d1ce7a480ce484821642598" size="68085665" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="4186b9909c90ee2f669075d32e84bda37d6931bdf371e4cc4d89a0a0517f19b6e86ba667583374498bfccb085d778e3a81d36303cd3bffb4ab9d7770c3a6da82" size="64660449" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="33ffd61e63c44404de35a88773b84dfeb92e761f8cf98654ef769a2621561d02d1f3356e58300221aff8060905a45035c0346d82d4448ea11ed17acd3f543642" size="64659785" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a8…" hashFunction="SHA512" hashValue="5b08d340e9fbbc00ed681490364c03dcc9911d8fea369f5e20b08798cf79de6c68fe1749d7e5c56b196a471306b21f7f3aebe6db9fca766a988b4ae7d859a609" size="104863676" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a8…" hashFunction="SHA512" hashValue="721cbf99cbac5a432c3402e4b9cbd0753d36c04215293c1b97915c05a5e559ff9dae0115baca01dd9bc290dc9e1fc5c37dbabd4dc791f92c8351af1904dcf541" size="104867508" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6b4c9821c43a41d4353c6a30ad1f66e944a651e705ab365505746025d2a22c548c3347e29aa9bd7025e259def20b9f09b22de1e93c2b84f005c74f4e9c942a6c" size="73787815" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="a70e70dbaf460f49bc8716a615ca39b75bd5aec114f2b738e3b163320e92a64a2151664ec5eb7f16850b44931c16c2eaf4d035a1bb96ef0165c7334805676703" size="73787775" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="fe102fc7aaf1957af4fa1e92df7ac34233565cd582fc885e9d79dc4db7274546fec120dd554270127094f3e3cf7696c6cba8ce0798f631b577d23d768f1010f2" size="72223671" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="8dd572bf9f24cb71b06f40446db4ce4043800d392d7102fc4749e3f493c75d3e4e2068e2d7b9d98105943f9cc6bd0214360019ea1b496674fd39ea24d4c70f31" size="72224963" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="46d1e332a35b5d7a7f81e798d263bde87d7c0c0af1cd490cb256f14f38fd03711fccbc9210a26f3062e65732d304c716b9d79f1e75b42e9894f9dab9eeea0453" size="67501218" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="59d1674071d46e21d955a138c6ff757bb163861f141a02e8a5be70054b465fc16b8cbe9c0297bca3daa09f582057bf2a0a6e2a62e098ef8338f359885109701f" size="67504678" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="90c047ccf6f9c0911bd9323427fee1ce5dfaedf512f303fc687baf9a014a7697f821a278e917d36bdcf55f16acaa9c9269ae486c0ea8635b819c39ddcae18a84" size="64085290" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="5c07945f2d990e22e90151947ac5fe398dd494903a5aaf59cded615112626fc2a1d1ba61fd6fe01a2fdfffaf1115581b5b34c1074b5c07a79c676822ac067820" size="64086554" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a9…" hashFunction="SHA512" hashValue="0fb2e37c3f6201d3c3a2a15ace3bfffb2eb25d74fc3c9aee2105b0ab26ee4eeb67ac6061b9971520c2008d3e33d8ee9256f6753983cf2b9d71239c96c077929b" size="104456671" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a9…" hashFunction="SHA512" hashValue="9940a4b3ce4e42d3f195ef614045637cf4caed3bcc7e284c919680aba1650d4bc5b6cb36af82d22c9c9628b5dc285b7ad493d35603f0919788cacaebd5899bc8" size="104450455" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="e639ca89fa5dbace8a3189a66e405850b735f4476f28972214b7506c3c656f7e73b1c4d66adde94e0bdea3f3bc190fff102375e0cd168e1617df72f82f32aa7c" size="73460202" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="93319e2b7d1a65d3acc22c26aaef45650379bf92d049f075a16c1442c688457b0568449816a8c41025bed06031714139e63cc9fc10efe0b6b0370901479a852b" size="73459422" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="5745018db60ffcacf5802cdfc1d451ee8f2b4e011742696e2871852e788615be74d9a67682ba1fd838c675ec2a31e10076930f456eef9c0d88ba11b6cf99a1cd" size="71894554" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="5ea294c0dd5c820053a117b4e27eee72c04a4606154546d004cf40393138dfd4a523cddb0a7d495ded8416554ff0fdac5481c1161a400c435a2b8f6c43ea5b53" size="71889070" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="33d5ab7bff02722f6c2933cdb557d6eb7532de26d317d32cc989b7e61ccef20cda67a773b42ed8ed027f68750a7c1d3acfce9f4bb646dd442e6610b69a7570c7" size="12899065" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="2ea3b7ba8e106151c1b67fd877aad9aaefc95784bdc9991537260ff6c7ef5623125a2e0071d222f5314c6ac69068bfa7419f509a71fb05fb5e9629d4e2ed1f41" size="12897637" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="e396d51182435649ec65ce39bfc3fec2031c25536c327595524251dd6b444e4f205faed86f70442d87afb39ef9b9ab3d1de877b284ac48a08f36bfc54014efce" size="12736953" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="10a9396ee8f9a4dcfcbbef26baaaac9d5c99880efff7967d151eae9ea53fedf5b0d47a790d66131f134ee255ace63c3c9e886bb9b9c630af24017cce56aae641" size="12740333" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--14.0a1…" hashFunction="SHA512" hashValue="89dc56eb7e1807510fc0808bd3b3ae3a18ad10b54b77084ffa39834beaf34ffd23411c8c24550160d6eed839f02cfb90ce9fe9b33520c949e1ee6d80cdd40071" size="20542570" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--14.0a1…" hashFunction="SHA512" hashValue="1e2ba9e9c8c11de885d8ab3a032d5bbc6af5d51ba567b85996bdf3b3961954e12331cf33b4747d19e398c3f85482183da8ab982708ea4b346c33795f70a5e226" size="20538826" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="ab132c7c0018df867e8807ffb530523f3dc6c87b543e0aa3818abc9078d645cf12b9044a2809a52d177ab47fddaeff7071b3c927d9ddeb79c29ed73747030068" size="13954311" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="5ff4e603df0e57872b463ed771051b1803c87c707f84ec195541d16eefe09802e31bb17f9ee1e0d59c8a1a9c79a65aa62948af9fcceb89c2e2486daba2093964" size="13954019" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="908e09eb7591c056c420445dda6e4f0b778983e4e78c351e24ed5efd1c9fc9b91c5401195af46230437a5f66a00c17930d208fa22029d97d25506081fed0f428" size="13301219" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="097af5c374014b0d209ca99456931656b720fd268efc7dfac0f51d5910a5d71f7d98d5bc78ec410304b58af5bfd9dcab39cc372a3fe56f0fed948839a2b51dce" size="13298551" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch></update></updates>
=====================================
update_3/alpha/download-android-aarch64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-armv7.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-x86.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-linux-i686.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-windows-i686.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-i686":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…"}},"linux-x86_64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…"}},"macos":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…"}},"win32":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…"}},"win64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…"}}},"tag":"tbb-14.0a2-build1","version":"14.0a2"}
\ No newline at end of file
+{"downloads":{"linux-i686":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…"}},"linux-x86_64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…"}},"macos":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…"}},"win32":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…"}},"win64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…"}}},"tag":"tbb-14.0a2-build2","version":"14.0a2"}
\ No newline at end of file
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 2 commits: fixup! Bug 30237: Add v3 onion services client authentication prompt
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
05861e0d by Henry Wilkes at 2024-08-20T15:59:58+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 43067: Use html:link instead of xml-stylesheet
- - - - -
57cc4697 by Henry Wilkes at 2024-08-20T16:00:44+01:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 43067: Use html:link instead of xml-stylesheet
- - - - -
8 changed files:
- browser/components/onionservices/content/savedKeysDialog.xhtml
- browser/components/torpreferences/content/bridgeQrDialog.xhtml
- browser/components/torpreferences/content/builtinBridgeDialog.xhtml
- browser/components/torpreferences/content/connectionSettingsDialog.xhtml
- browser/components/torpreferences/content/loxInviteDialog.xhtml
- browser/components/torpreferences/content/provideBridgeDialog.xhtml
- browser/components/torpreferences/content/requestBridgeDialog.xhtml
- browser/components/torpreferences/content/torLogDialog.xhtml
Changes:
=====================================
browser/components/onionservices/content/savedKeysDialog.xhtml
=====================================
@@ -1,10 +1,6 @@
<?xml version="1.0"?>
<!-- Copyright (c) 2020, The Tor Project, Inc. -->
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/onionservices/authPreferences.css" type="text/css"?>
-
<window
id="onionservices-savedkeys-dialog"
windowtype="OnionServices:SavedKeys"
@@ -13,6 +9,16 @@
data-l10n-id="onion-site-saved-keys-dialog-title"
>
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/onionservices/authPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/bridgeQrDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="bridgeQr-dialog" buttons="accept">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/builtinBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-builtinBridge-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="branding/brand.ftl" />
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/connectionSettingsDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-connection-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="branding/brand.ftl" />
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/loxInviteDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -19,6 +16,16 @@
</menupopup>
<dialog id="lox-invite-dialog" buttons="accept">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
<html:link
rel="localization"
=====================================
browser/components/torpreferences/content/provideBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -14,6 +11,16 @@
class="show-entry-page"
>
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/requestBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-requestBridge-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/torLogDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-torLog-dialog" buttons="accept,extra1">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7143db…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7143db…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 5 commits: fixup! Bug 30237: Add v3 onion services client authentication prompt
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
ace2c34b by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42212: Migrate onion service strings to Fluent.
+ Use "onion site" instead of "onionsite" or "onion service".
+ Use sentence case by default.
+ Changed the prompt accept button from "Done" to "OK", in line with
other prompts.
+ Re-ordered the saved keys dialog introduction text from "Keys for the
following onionsite are..." to "The following onion site keys are..."
+ Use bold text for the prompt title, rather than just the onion site
part.
+ Clear the error message in the saved key dialog whenever the user
tries to remove a key (again).
+ Other small tidies in the touched areas.
- - - - -
611b5828 by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Bug 23247: Communicating security expectations for .onion
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
0e22809c by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Tor Browser strings
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
35b2a147 by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Add TorStrings module for localization
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
7143db9a by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Tor Browser localization migration scripts.
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
16 changed files:
- browser/base/content/browser.xhtml
- browser/base/content/pageinfo/pageInfo.xhtml
- browser/base/content/pageinfo/security.js
- browser/components/onionservices/content/authNotificationIcon.inc.xhtml
- browser/components/onionservices/content/authPopup.inc.xhtml
- browser/components/onionservices/content/authPreferences.inc.xhtml
- browser/components/onionservices/content/authPreferences.js
- browser/components/onionservices/content/authPrompt.js
- browser/components/onionservices/content/onionservices.css
- browser/components/onionservices/content/savedKeysDialog.js
- browser/components/onionservices/content/savedKeysDialog.xhtml
- toolkit/locales/en-US/toolkit/global/tor-browser.ftl
- toolkit/modules/TorStrings.sys.mjs
- − toolkit/torbutton/chrome/locale/en-US/torbutton.dtd
- toolkit/torbutton/chrome/locale/en-US/torbutton.properties
- + tools/torbrowser/l10n/migrations/bug-42212-onion-services.py
Changes:
=====================================
browser/base/content/browser.xhtml
=====================================
@@ -6,11 +6,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-<!DOCTYPE window [
- <!ENTITY % torbuttonDTD SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-%torbuttonDTD;
-]>
-
<html id="main-window"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
=====================================
browser/base/content/pageinfo/pageInfo.xhtml
=====================================
@@ -27,6 +27,7 @@
<html:link rel="stylesheet" href="chrome://browser/skin/pageInfo.css" />
<html:link rel="localization" href="browser/pageInfo.ftl"/>
+ <html:link rel="localization" href="toolkit/global/tor-browser.ftl"/>
</linkset>
#ifdef XP_MACOSX
#include ../macWindow.inc.xhtml
=====================================
browser/base/content/pageinfo/security.js
=====================================
@@ -15,11 +15,6 @@ const { DownloadUtils } = ChromeUtils.importESModule(
ChromeUtils.defineESModuleGetters(this, {
LoginHelper: "resource://gre/modules/LoginHelper.sys.mjs",
});
-ChromeUtils.defineLazyGetter(this, "gTorButtonBundle", function () {
- return Services.strings.createBundle(
- "chrome://torbutton/locale/torbutton.properties"
- );
-});
var security = {
async init(uri, windowInfo) {
@@ -364,9 +359,13 @@ async function securityOnLoad(uri, windowInfo) {
);
} else {
try {
- hdr = gTorButtonBundle.formatStringFromName(
- "pageInfo_OnionEncryptionWithBitsAndProtocol",
- [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ hdr = await document.l10n.formatValue(
+ "page-info-onion-site-encryption-with-bits",
+ {
+ "encryption-type": info.encryptionAlgorithm,
+ "encryption-strength": info.encryptionStrength,
+ "encryption-version": info.version,
+ }
);
} catch (err) {
hdr =
@@ -392,11 +391,9 @@ async function securityOnLoad(uri, windowInfo) {
}
msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else {
- try {
- hdr = gTorButtonBundle.GetStringFromName("pageInfo_OnionEncryption");
- } catch (err) {
- hdr = "Connection Encrypted (Onion Service)";
- }
+ hdr = await document.l10n.formatValue(
+ "page-info-onion-site-encryption-plain"
+ );
msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
=====================================
browser/components/onionservices/content/authNotificationIcon.inc.xhtml
=====================================
@@ -3,4 +3,4 @@
<image id="tor-clientauth-notification-icon"
class="notification-anchor-icon tor-clientauth-icon"
role="button"
- tooltiptext="&torbutton.onionServices.authPrompt.tooltip;"/>
+ data-l10n-id="onion-site-authentication-urlbar-button"/>
=====================================
browser/components/onionservices/content/authPopup.inc.xhtml
=====================================
@@ -2,17 +2,25 @@
<popupnotification id="tor-clientauth-notification" hidden="true">
<popupnotificationcontent orient="vertical">
- <description id="tor-clientauth-notification-desc"/>
- <label id="tor-clientauth-notification-learnmore"
- class="text-link popup-notification-learnmore-link"
- is="text-link"
- href="about:manual#onion-services_onion-service-authentication"
- useoriginprincipal="true"/>
+ <description id="tor-clientauth-notification-desc" />
+ <label
+ class="text-link popup-notification-learnmore-link"
+ is="text-link"
+ href="about:manual#onion-services_onion-service-authentication"
+ useoriginprincipal="true"
+ data-l10n-id="onion-site-authentication-prompt-learn-more"
+ />
<html:div>
- <html:input id="tor-clientauth-notification-key" type="password"/>
- <html:div id="tor-clientauth-warning"/>
- <checkbox id="tor-clientauth-persistkey-checkbox"
- label="&torbutton.onionServices.authPrompt.persistCheckboxLabel;"/>
+ <html:input
+ id="tor-clientauth-notification-key"
+ type="password"
+ data-l10n-id="onion-site-authentication-prompt-key-input"
+ />
+ <html:div id="tor-clientauth-warning"></html:div>
+ <checkbox
+ id="tor-clientauth-persistkey-checkbox"
+ data-l10n-id="onion-site-authentication-prompt-remember-checkbox"
+ />
</html:div>
</popupnotificationcontent>
</popupnotification>
=====================================
browser/components/onionservices/content/authPreferences.inc.xhtml
=====================================
@@ -2,21 +2,34 @@
<groupbox id="torOnionServiceKeys" orient="vertical"
data-category="panePrivacy" hidden="true">
- <label><html:h2 id="torOnionServiceKeys-header"/></label>
+ <label><html:h2
+ data-l10n-id="onion-site-authentication-preferences-heading"
+ ></html:h2></label>
<hbox>
<description
class="description-deemphasized description-with-side-element"
flex="1"
>
- <html:span id="torOnionServiceKeys-overview"
- class="tail-with-learn-more"/>
- <label id="torOnionServiceKeys-learnMore" class="learnMore text-link"
- is="text-link"/>
+ <html:span
+ id="torOnionServiceKeys-overview"
+ class="tail-with-learn-more"
+ data-l10n-id="onion-site-authentication-preferences-overview"
+ ></html:span>
+ <label
+ id="torOnionServiceKeys-learnMore"
+ class="learnMore text-link"
+ is="text-link"
+ href="about:manual#onion-services_onion-service-authentication"
+ useoriginprincipal="true"
+ data-l10n-id="onion-site-authentication-preferences-learn-more"
+ />
</description>
<vbox align="end">
- <button id="torOnionServiceKeys-savedKeys"
- is="highlightable-button"
- class="accessory-button"/>
+ <html:button
+ id="torOnionServiceKeys-savedKeys"
+ class="accessory-button"
+ data-l10n-id="onion-site-authentication-preferences-saved-keys-button"
+ ></html:button>
</vbox>
</hbox>
</groupbox>
=====================================
browser/components/onionservices/content/authPreferences.js
=====================================
@@ -2,69 +2,19 @@
"use strict";
-ChromeUtils.defineESModuleGetters(this, {
- TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
-});
-
-/* globals gSubDialog */
-
-/*
- Onion Services Client Authentication Preferences Code
-
- Code to handle init and update of onion services authentication section
- in about:preferences#privacy
-*/
-
-const OnionServicesAuthPreferences = {
- selector: {
- groupBox: "#torOnionServiceKeys",
- header: "#torOnionServiceKeys-header",
- overview: "#torOnionServiceKeys-overview",
- learnMore: "#torOnionServiceKeys-learnMore",
- savedKeysButton: "#torOnionServiceKeys-savedKeys",
- },
+/* import-globals-from /browser/components/preferences/preferences.js */
+/**
+ * Onion site preferences.
+ */
+var OnionServicesAuthPreferences = {
init() {
- // populate XUL with localized strings
- this._populateXUL();
- },
-
- _populateXUL() {
- const groupbox = document.querySelector(this.selector.groupBox);
-
- let elem = groupbox.querySelector(this.selector.header);
- elem.textContent = TorStrings.onionServices.authPreferences.header;
-
- elem = groupbox.querySelector(this.selector.overview);
- elem.textContent = TorStrings.onionServices.authPreferences.overview;
-
- elem = groupbox.querySelector(this.selector.learnMore);
- elem.setAttribute("value", TorStrings.onionServices.learnMore);
- elem.setAttribute(
- "href",
- "about:manual#onion-services_onion-service-authentication"
- );
- elem.setAttribute("useoriginprincipal", "true");
-
- elem = groupbox.querySelector(this.selector.savedKeysButton);
- elem.setAttribute(
- "label",
- TorStrings.onionServices.authPreferences.savedKeys
- );
- elem.addEventListener("command", () =>
- OnionServicesAuthPreferences.onViewSavedKeys()
- );
+ document
+ .getElementById("torOnionServiceKeys-savedKeys")
+ .addEventListener("click", () => {
+ gSubDialog.open(
+ "chrome://browser/content/onionservices/savedKeysDialog.xhtml"
+ );
+ });
},
-
- onViewSavedKeys() {
- gSubDialog.open(
- "chrome://browser/content/onionservices/savedKeysDialog.xhtml"
- );
- },
-}; // OnionServicesAuthPreferences
-
-Object.defineProperty(this, "OnionServicesAuthPreferences", {
- value: OnionServicesAuthPreferences,
- enumerable: true,
- writable: false,
-});
+};
=====================================
browser/components/onionservices/content/authPrompt.js
=====================================
@@ -56,28 +56,47 @@ var OnionAuthPrompt = {
show(details) {
this._logger.debug(`New Notification: ${this._detailsRepr(details)}`);
+ // NOTE: PopupNotifications currently requires the accesskey and label to be
+ // set for all actions, and does not accept fluent IDs in their place.
+ // Moreover, there doesn't appear to be a simple way to work around this, so
+ // we have to fetch the strings here before calling the show() method.
+ // NOTE: We avoid using the async formatMessages because we don't want to
+ // race against the browser's location changing.
+ // In principle, we could check that the details.browser.currentURI still
+ // matches details.uri or use a LocationChange listener. However, we expect
+ // that PopupNotifications will eventually change to accept fluent IDs, so
+ // we won't have to use formatMessages here at all.
+ // Moreover, we do not expect this notification to be common, so this
+ // shouldn't be too expensive.
+ // NOTE: Once we call PopupNotifications.show, PopupNotifications should
+ // take care of listening for changes in locations for us and remove the
+ // notification.
+ let [okButtonMsg, cancelButtonMsg] = this._lazy.SyncL10n.formatMessagesSync(
+ [
+ "onion-site-authentication-prompt-ok-button",
+ "onion-site-authentication-prompt-cancel-button",
+ ]
+ );
+
+ // Get an attribute string from a L10nMessage.
+ // We wrap the return value as a String to prevent the notification from
+ // throwing (and not showing) if a locale is unexpectedly missing a value.
+ const msgAttribute = (msg, name) =>
+ String((msg.attributes ?? []).find(attr => attr.name === name)?.value);
+
let mainAction = {
- label: this.TorStrings.onionServices.authPrompt.done,
- accessKey: this.TorStrings.onionServices.authPrompt.doneAccessKey,
+ label: msgAttribute(okButtonMsg, "label"),
+ accessKey: msgAttribute(okButtonMsg, "accesskey"),
leaveOpen: true, // Callback is responsible for closing the notification.
- callback: this._onDone.bind(this),
+ callback: () => this._onDone(),
};
- let dialogBundle = Services.strings.createBundle(
- "chrome://global/locale/dialog.properties"
- );
-
- let cancelAccessKey = dialogBundle.GetStringFromName("accesskey-cancel");
- if (!cancelAccessKey) {
- cancelAccessKey = "c";
- } // required by PopupNotifications.show()
-
// The first secondarybuttoncommand (cancelAction) should be triggered when
// the user presses "Escape".
let cancelAction = {
- label: dialogBundle.GetStringFromName("button-cancel"),
- accessKey: cancelAccessKey,
- callback: this._onCancel.bind(this),
+ label: msgAttribute(cancelButtonMsg, "label"),
+ accessKey: msgAttribute(cancelButtonMsg, "accesskey"),
+ callback: () => this._onCancel(),
};
let options = {
@@ -134,22 +153,17 @@ var OnionAuthPrompt = {
this._keyInput.value = "";
this._persistCheckbox.checked = false;
- // Handle replacement of the onion name within the localized
- // string ourselves so we can show the onion name as bold text.
- // We do this by splitting the localized string and creating
- // several HTML <span> elements.
- const fmtString = this.TorStrings.onionServices.authPrompt.description;
- const [prefix, suffix] = fmtString.split("%S");
-
- const domainEl = document.createElement("span");
- domainEl.id = "tor-clientauth-notification-onionname";
- domainEl.textContent = TorUIUtils.shortenOnionAddress(
- this._shownDetails?.onionHost ?? ""
+ document.l10n.setAttributes(
+ this._descriptionEl,
+ "onion-site-authentication-prompt-description",
+ {
+ onionsite: TorUIUtils.shortenOnionAddress(
+ this._shownDetails?.onionHost ?? ""
+ ),
+ }
);
- this._descriptionEl.replaceChildren(prefix, domainEl, suffix);
-
- this._showWarning(undefined);
+ this._showWarning(null);
},
/**
@@ -187,12 +201,13 @@ var OnionAuthPrompt = {
);
// Grab the details before they might change as we await.
- const { browser, onionServiceId, notification } = this._shownDetails;
+ const details = this._shownDetails;
+ const { browser, onionServiceId, notification } = details;
const isPermanent = this._persistCheckbox.checked;
const base64key = this._keyToBase64(this._keyInput.value);
if (!base64key) {
- this._showWarning(this.TorStrings.onionServices.authPrompt.invalidKey);
+ this._showWarning("onion-site-authentication-prompt-invalid-key");
return;
}
@@ -200,12 +215,11 @@ var OnionAuthPrompt = {
const provider = await this._lazy.TorProviderBuilder.build();
await provider.onionAuthAdd(onionServiceId, base64key, isPermanent);
} catch (e) {
- if (e.torMessage) {
- this._showWarning(e.torMessage);
- } else {
- this._logger.error(`Failed to set key for ${onionServiceId}`, e);
+ this._logger.error(`Failed to set key for ${onionServiceId}`, e);
+ if (details === this._shownDetails) {
+ // Notification has not been replaced.
this._showWarning(
- this.TorStrings.onionServices.authPrompt.failedToSetKey
+ "onion-site-authentication-prompt-setting-key-failed"
);
}
return;
@@ -245,16 +259,19 @@ var OnionAuthPrompt = {
/**
* Show a warning message to the user or clear the warning.
*
- * @param {string?} warningMessage - The message to show, or undefined to
- * clear the current message.
+ * @param {?string} warningMessageId - The l10n ID for the message to show, or
+ * null to clear the current message.
*/
- _showWarning(warningMessage) {
- this._logger.debug(`Showing warning: ${warningMessage}`);
- if (warningMessage) {
- this._warningEl.textContent = warningMessage;
+ _showWarning(warningMessageId) {
+ this._logger.debug(`Showing warning: ${warningMessageId}`);
+ if (warningMessageId) {
+ document.l10n.setAttributes(this._warningEl, warningMessageId);
this._warningEl.removeAttribute("hidden");
this._keyInput.classList.add("invalid");
} else {
+ // Clean up.
+ this._warningEl.removeAttribute("data-l10n-id");
+ this._warningEl.textContent = "";
this._warningEl.setAttribute("hidden", "true");
this._keyInput.classList.remove("invalid");
}
@@ -264,7 +281,7 @@ var OnionAuthPrompt = {
* Convert the user-entered key into base64.
*
* @param {string} keyString - The key to convert.
- * @returns {string?} - The base64 representation, or undefined if the given
+ * @returns {?string} - The base64 representation, or undefined if the given
* key was not the correct format.
*/
_keyToBase64(keyString) {
@@ -310,14 +327,17 @@ var OnionAuthPrompt = {
maxLogLevelPref: "browser.onionAuthPrompt.loglevel",
});
- const { TorStrings } = ChromeUtils.importESModule(
- "resource://gre/modules/TorStrings.sys.mjs"
- );
- this.TorStrings = TorStrings;
ChromeUtils.defineESModuleGetters(this._lazy, {
TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
CommonUtils: "resource://services-common/utils.sys.mjs",
});
+ // Allow synchornous access to the localized strings. Used only for the
+ // button actions, which is currently a hard requirement for
+ // PopupNotifications.show. Hopefully, PopupNotifications will accept fluent
+ // ids in their place, or get replaced with something else that does.
+ ChromeUtils.defineLazyGetter(this._lazy, "SyncL10n", () => {
+ return new Localization(["toolkit/global/tor-browser.ftl"], true);
+ });
this._keyInput = document.getElementById("tor-clientauth-notification-key");
this._persistCheckbox = document.getElementById(
@@ -328,19 +348,6 @@ var OnionAuthPrompt = {
"tor-clientauth-notification-desc"
);
- // Set "Learn More" label and href.
- const learnMoreElem = document.getElementById(
- "tor-clientauth-notification-learnmore"
- );
- learnMoreElem.setAttribute(
- "value",
- this.TorStrings.onionServices.learnMore
- );
-
- this._keyInput.setAttribute(
- "placeholder",
- this.TorStrings.onionServices.authPrompt.keyPlaceholder
- );
this._keyInput.addEventListener("keydown", event => {
if (event.key === "Enter") {
event.preventDefault();
@@ -349,7 +356,7 @@ var OnionAuthPrompt = {
});
this._keyInput.addEventListener("input", () => {
// Remove the warning.
- this._showWarning(undefined);
+ this._showWarning(null);
});
// Force back focus on click: tor-browser#41856
=====================================
browser/components/onionservices/content/onionservices.css
=====================================
@@ -1,12 +1,10 @@
/* Copyright (c) 2020, The Tor Project, Inc. */
-@namespace html url("http://www.w3.org/1999/xhtml");
-
-html|*#tor-clientauth-notification-onionname {
+#tor-clientauth-notification-desc {
font-weight: bold;
}
-html|*#tor-clientauth-notification-key {
+#tor-clientauth-notification-key {
box-sizing: border-box;
width: 100%;
margin-top: 15px;
@@ -17,12 +15,12 @@ html|*#tor-clientauth-notification-key {
* browser/components/newtab/css/activity-stream-mac.css (linux and windows
* use the same rules).
*/
-html|*#tor-clientauth-notification-key.invalid {
+#tor-clientauth-notification-key.invalid {
border: 1px solid #D70022;
box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3);
}
-html|*#tor-clientauth-warning {
+#tor-clientauth-warning {
display: inline-block;
animation: fade-up-tt 450ms;
background: #D70022;
@@ -35,11 +33,11 @@ html|*#tor-clientauth-warning {
z-index: 1;
}
-html|*#tor-clientauth-warning[hidden] {
+#tor-clientauth-warning[hidden] {
display: none;
}
-html|*#tor-clientauth-warning::before {
+#tor-clientauth-warning::before {
background: #D70022;
bottom: -8px;
content: '.';
=====================================
browser/components/onionservices/content/savedKeysDialog.js
=====================================
@@ -3,23 +3,10 @@
"use strict";
ChromeUtils.defineESModuleGetters(this, {
- TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
});
var gOnionServicesSavedKeysDialog = {
- selector: {
- dialog: "#onionservices-savedkeys-dialog",
- intro: "#onionservices-savedkeys-intro",
- tree: "#onionservices-savedkeys-tree",
- onionSiteCol: "#onionservices-savedkeys-siteCol",
- onionKeyCol: "#onionservices-savedkeys-keyCol",
- errorIcon: "#onionservices-savedkeys-errorIcon",
- errorMessage: "#onionservices-savedkeys-errorMessage",
- removeButton: "#onionservices-savedkeys-remove",
- removeAllButton: "#onionservices-savedkeys-removeall",
- },
-
_tree: undefined,
_busyCount: 0,
get _isBusy() {
@@ -27,8 +14,8 @@ var gOnionServicesSavedKeysDialog = {
return this._busyCount > 0;
},
- // Public functions (called from outside this file).
- async deleteSelectedKeys() {
+ async _deleteSelectedKeys() {
+ this._showError(null);
this._withBusy(async () => {
const indexesToDelete = [];
const count = this._tree.view.selection.getRangeCount();
@@ -42,8 +29,6 @@ var gOnionServicesSavedKeysDialog = {
}
if (indexesToDelete.length) {
- const controllerFailureMsg =
- TorStrings.onionServices.authPreferences.failedToRemoveKey;
const provider = await TorProviderBuilder.build();
try {
// Remove in reverse index order to avoid issues caused by index
@@ -53,28 +38,23 @@ var gOnionServicesSavedKeysDialog = {
}
} catch (e) {
console.error("Removing a saved key failed", e);
- if (e.torMessage) {
- this._showError(e.torMessage);
- } else {
- this._showError(controllerFailureMsg);
- }
+ this._showError(
+ "onion-site-saved-keys-dialog-remove-keys-error-message"
+ );
}
}
});
},
- async deleteAllKeys() {
+ async _deleteAllKeys() {
this._tree.view.selection.selectAll();
- await this.deleteSelectedKeys();
+ await this._deleteSelectedKeys();
},
- updateButtonsState() {
+ _updateButtonsState() {
const haveSelection = this._tree.view.selection.getRangeCount() > 0;
- const dialog = document.querySelector(this.selector.dialog);
- const removeSelectedBtn = dialog.querySelector(this.selector.removeButton);
- removeSelectedBtn.disabled = this._isBusy || !haveSelection;
- const removeAllBtn = dialog.querySelector(this.selector.removeAllButton);
- removeAllBtn.disabled = this._isBusy || this.rowCount === 0;
+ this._removeButton.disabled = this._isBusy || !haveSelection;
+ this._removeAllButton.disabled = this._isBusy || this.rowCount === 0;
},
// Private functions.
@@ -82,38 +62,40 @@ var gOnionServicesSavedKeysDialog = {
document.mozSubdialogReady = this._init();
},
- async _init() {
+ _init() {
this._populateXUL();
window.addEventListener("keypress", this._onWindowKeyPress.bind(this));
this._loadSavedKeys();
},
_populateXUL() {
- const dialog = document.querySelector(this.selector.dialog);
- const authPrefStrings = TorStrings.onionServices.authPreferences;
- dialog.setAttribute("title", authPrefStrings.dialogTitle);
-
- let elem = dialog.querySelector(this.selector.intro);
- elem.textContent = authPrefStrings.dialogIntro;
-
- elem = dialog.querySelector(this.selector.onionSiteCol);
- elem.setAttribute("label", authPrefStrings.onionSite);
-
- elem = dialog.querySelector(this.selector.onionKeyCol);
- elem.setAttribute("label", authPrefStrings.onionKey);
-
- elem = dialog.querySelector(this.selector.removeButton);
- elem.setAttribute("label", authPrefStrings.remove);
-
- elem = dialog.querySelector(this.selector.removeAllButton);
- elem.setAttribute("label", authPrefStrings.removeAll);
+ this._errorMessageContainer = document.getElementById(
+ "onionservices-savedkeys-errorContainer"
+ );
+ this._errorMessageEl = document.getElementById(
+ "onionservices-savedkeys-errorMessage"
+ );
+ this._removeButton = document.getElementById(
+ "onionservices-savedkeys-remove"
+ );
+ this._removeButton.addEventListener("click", () => {
+ this._deleteSelectedKeys();
+ });
+ this._removeAllButton = document.getElementById(
+ "onionservices-savedkeys-removeall"
+ );
+ this._removeButton.addEventListener("click", () => {
+ this._deleteAllKeys();
+ });
- this._tree = dialog.querySelector(this.selector.tree);
+ this._tree = document.getElementById("onionservices-savedkeys-tree");
+ this._tree.addEventListener("select", () => {
+ this._updateButtonsState();
+ });
},
async _loadSavedKeys() {
- const controllerFailureMsg =
- TorStrings.onionServices.authPreferences.failedToGetKeys;
+ this._showError(null);
this._withBusy(async () => {
try {
this._tree.view = this;
@@ -139,11 +121,10 @@ var gOnionServicesSavedKeysDialog = {
// Render the tree content.
this._tree.rowCountChanged(0, this.rowCount);
} catch (e) {
- if (e.torMessage) {
- this._showError(e.torMessage);
- } else {
- this._showError(controllerFailureMsg);
- }
+ console.error("Failed to load keys", e);
+ this._showError(
+ "onion-site-saved-keys-dialog-fetch-keys-error-message"
+ );
}
});
},
@@ -160,14 +141,14 @@ var gOnionServicesSavedKeysDialog = {
async _withBusy(func) {
this._busyCount++;
if (this._busyCount === 1) {
- this.updateButtonsState();
+ this._updateButtonsState();
}
try {
await func();
} finally {
this._busyCount--;
if (this._busyCount === 0) {
- this.updateButtonsState();
+ this._updateButtonsState();
}
}
},
@@ -179,16 +160,25 @@ var gOnionServicesSavedKeysDialog = {
if (event.keyCode === KeyEvent.DOM_VK_ESCAPE) {
window.close();
} else if (event.keyCode === KeyEvent.DOM_VK_DELETE) {
- this.deleteSelectedKeys();
+ this._deleteSelectedKeys();
}
},
- _showError(aMessage) {
- document
- .getElementById("onionservices-savedkeys-errorContainer")
- .classList.toggle("show-error", !!aMessage);
- const errorDesc = document.querySelector(this.selector.errorMessage);
- errorDesc.textContent = aMessage ? aMessage : "";
+ /**
+ * Show an error, or clear it.
+ *
+ * @param {?string} messageId - The l10n ID of the message to show, or null to
+ * clear it.
+ */
+ _showError(messageId) {
+ this._errorMessageContainer.classList.toggle("show-error", !!messageId);
+ if (messageId) {
+ document.l10n.setAttributes(this._errorMessageEl, messageId);
+ } else {
+ // Clean up.
+ this._errorMessageEl.removeAttribute("data-l10n-id");
+ this._errorMessageEl.textContent = "";
+ }
},
// XUL tree widget view implementation.
=====================================
browser/components/onionservices/content/savedKeysDialog.xhtml
=====================================
@@ -9,29 +9,37 @@
id="onionservices-savedkeys-dialog"
windowtype="OnionServices:SavedKeys"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ data-l10n-id="onion-site-saved-keys-dialog-title"
>
+ <linkset>
+ <html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
+ </linkset>
+
<script src="chrome://browser/content/onionservices/savedKeysDialog.js" />
<vbox id="onionservices-savedkeys" class="contentPane" flex="1">
<label
id="onionservices-savedkeys-intro"
control="onionservices-savedkeys-tree"
+ data-l10n-id="onion-site-saved-keys-dialog-intro"
/>
<separator class="thin" />
- <tree
- id="onionservices-savedkeys-tree"
- flex="1"
- hidecolumnpicker="true"
- onselect="gOnionServicesSavedKeysDialog.updateButtonsState();"
- >
+ <tree id="onionservices-savedkeys-tree" flex="1" hidecolumnpicker="true">
<treecols>
<treecol
id="onionservices-savedkeys-siteCol"
flex="1"
persist="width"
+ data-l10n-id="onion-site-saved-keys-dialog-table-header-site"
/>
<splitter class="tree-splitter" />
- <treecol id="onionservices-savedkeys-keyCol" flex="1" persist="width" />
+ <treecol
+ id="onionservices-savedkeys-keyCol"
+ flex="1"
+ persist="width"
+ data-l10n-id="onion-site-saved-keys-dialog-table-header-key"
+ />
</treecols>
<treechildren />
</tree>
@@ -41,15 +49,15 @@
</hbox>
<separator class="thin" />
<hbox id="onionservices-savedkeys-buttons">
- <button
+ <html:button
id="onionservices-savedkeys-remove"
disabled="true"
- oncommand="gOnionServicesSavedKeysDialog.deleteSelectedKeys();"
- />
- <button
+ data-l10n-id="onion-site-saved-keys-dialog-remove-button"
+ ></html:button>
+ <html:button
id="onionservices-savedkeys-removeall"
- oncommand="gOnionServicesSavedKeysDialog.deleteAllKeys();"
- />
+ data-l10n-id="onion-site-saved-keys-dialog-remove-all-button"
+ ></html:button>
</hbox>
</vbox>
</window>
=====================================
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
=====================================
@@ -637,3 +637,62 @@ onion-neterror-invalid-address-description = The provided onion site address is
# "Circuit" refers to a Tor network circuit.
onion-neterror-timed-out-header = Onion site circuit creation timed out
onion-neterror-timed-out-description = Failed to connect to the onion site, possibly due to a poor network connection.
+
+## Onion site authentication prompt.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+# Here "open" is a verb.
+onion-site-authentication-urlbar-button =
+ .tooltiptext = Open the onion site authentication panel
+
+# $onionsite (String) - The shortened onion address for the current web site, for example "a3jx8k…pbsh7y.onion".
+onion-site-authentication-prompt-description = The onion site { $onionsite } is requesting that you authenticate.
+onion-site-authentication-prompt-learn-more = Learn more
+onion-site-authentication-prompt-key-input =
+ .placeholder = Enter your private key for this onion site
+onion-site-authentication-prompt-remember-checkbox =
+ .label = Remember this key
+onion-site-authentication-prompt-ok-button =
+ .label = OK
+ .accesskey = O
+onion-site-authentication-prompt-cancel-button =
+ .label = Cancel
+ .accesskey = C
+# Error message shown when the entered key is the wrong length or the wrong format.
+# "base32" and "base64" are technical names for binary-to-text encodings: https://en.wikipedia.org/wiki/Base64
+onion-site-authentication-prompt-invalid-key = Please enter a valid key (52 base32 characters or 44 base64 characters)
+onion-site-authentication-prompt-setting-key-failed = Unable to configure Tor with your key
+
+## Page Info window for onion sites.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+# $encryption-type (String) - The name of the encryption algorithm used for the page, for example "TLS_AES_128_GCM_SHA256".
+# $encryption-stength (Number) - The number of bits for the encryption key, for example "128" or "256". The "NUMBER" function will format this number to the same locale, and the "useGrouping" option will remove grouping symbols, like thousand separators. Note that the "bit" in "bit keys" refers to a computer "binary digit".
+# $encryption-version (String) - The name and version of the encryption, for example "TLS 1.3".
+page-info-onion-site-encryption-with-bits = Connection encrypted (Onion site, { $encryption-type }, { NUMBER($encryption-strength, useGrouping: "false") } bit keys, { $encryption-version })
+page-info-onion-site-encryption-plain = Connection encrypted (Onion site)
+
+## Onion site authentication preferences.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+onion-site-authentication-preferences-heading = Onion site authentication
+onion-site-authentication-preferences-overview = Some onion sites require that you identify yourself with a key (a kind of password) before you can access them.
+onion-site-authentication-preferences-learn-more = Learn more
+onion-site-authentication-preferences-saved-keys-button = Saved keys…
+
+## Onion site saved keys dialog.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+onion-site-saved-keys-dialog-title =
+ .title = Onion site keys
+
+onion-site-saved-keys-dialog-intro = The following onion site keys are stored on your computer.
+onion-site-saved-keys-dialog-table-header-site =
+ .label = Onion site
+# "Key" is a noun, for an access key.
+onion-site-saved-keys-dialog-table-header-key =
+ .label = Key
+onion-site-saved-keys-dialog-remove-button = Remove
+onion-site-saved-keys-dialog-remove-all-button = Remove all
+onion-site-saved-keys-dialog-fetch-keys-error-message = Unable to retrieve keys from Tor
+onion-site-saved-keys-dialog-remove-keys-error-message = Unable to remove key
=====================================
toolkit/modules/TorStrings.sys.mjs
=====================================
@@ -221,71 +221,6 @@ const Loader = {
};
},
- /*
- Tor Onion Services Strings, e.g., for the authentication prompt.
- */
- onionServices() {
- const tsb = new TorPropertyStringBundle(
- "chrome://torbutton/locale/torbutton.properties",
- "onionServices."
- );
- const getString = tsb.getString.bind(tsb);
-
- const retval = {
- learnMore: getString("learnMore", "Learn more"),
- authPrompt: {
- description: getString(
- "authPrompt.description2",
- "%S is requesting that you authenticate."
- ),
- keyPlaceholder: getString(
- "authPrompt.keyPlaceholder",
- "Enter your key"
- ),
- done: getString("authPrompt.done", "Done"),
- doneAccessKey: getString("authPrompt.doneAccessKey", "d"),
- invalidKey: getString("authPrompt.invalidKey", "Invalid key"),
- failedToSetKey: getString(
- "authPrompt.failedToSetKey",
- "Failed to set key"
- ),
- },
- authPreferences: {
- header: getString(
- "authPreferences.header",
- "Onion Services Authentication"
- ),
- overview: getString(
- "authPreferences.overview",
- "Some onion services require that you identify yourself with a key"
- ),
- savedKeys: getString("authPreferences.savedKeys", "Saved Keys"),
- dialogTitle: getString(
- "authPreferences.dialogTitle",
- "Onion Services Keys"
- ),
- dialogIntro: getString(
- "authPreferences.dialogIntro",
- "Keys for the following onionsites are stored on your computer"
- ),
- onionSite: getString("authPreferences.onionSite", "Onionsite"),
- onionKey: getString("authPreferences.onionKey", "Key"),
- remove: getString("authPreferences.remove", "Remove"),
- removeAll: getString("authPreferences.removeAll", "Remove All"),
- failedToGetKeys: getString(
- "authPreferences.failedToGetKeys",
- "Failed to get keys"
- ),
- failedToRemoveKey: getString(
- "authPreferences.failedToRemoveKey",
- "Failed to remove key"
- ),
- },
- };
-
- return retval;
- } /* Tor Onion Services Strings */,
-
/*
OnionLocation
*/
@@ -330,13 +265,6 @@ export const TorStrings = {
return this._torConnect;
},
- get onionServices() {
- if (!this._onionServices) {
- this._onionServices = Loader.onionServices();
- }
- return this._onionServices;
- },
-
get onionLocation() {
if (!this._onionLocation) {
this._onionLocation = Loader.onionLocation();
=====================================
toolkit/torbutton/chrome/locale/en-US/torbutton.dtd deleted
=====================================
@@ -1,8 +0,0 @@
-<!-- Copyright (c) 2022, The Tor Project, Inc.
- - This Source Code Form is subject to the terms of the Mozilla Public
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- Onion services strings. Strings are kept here for ease of translation. -->
-<!ENTITY torbutton.onionServices.authPrompt.tooltip "Open onion service client authentication prompt">
-<!ENTITY torbutton.onionServices.authPrompt.persistCheckboxLabel "Remember this key">
=====================================
toolkit/torbutton/chrome/locale/en-US/torbutton.properties
=====================================
@@ -3,35 +3,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# .Onion Page Info prompt.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
-
-# Shared between Onion Auth prompt and preferences
-onionServices.learnMore=Learn more
-
-# Onion Services Authentication prompt
-# LOCALIZATION NOTE: %S will be replaced with the .onion address.
-onionServices.authPrompt.description2=%S is requesting that you authenticate.
-onionServices.authPrompt.keyPlaceholder=Enter your private key for this onion service
-onionServices.authPrompt.done=Done
-onionServices.authPrompt.doneAccessKey=d
-onionServices.authPrompt.invalidKey=Please enter a valid key (52 base32 characters or 44 base64 characters)
-onionServices.authPrompt.failedToSetKey=Unable to configure Tor with your key
-
-# Onion Services Authentication preferences
-onionServices.authPreferences.header=Onion Services Authentication
-onionServices.authPreferences.overview=Some onion services require that you identify yourself with a key (a kind of password) before you can access them.
-onionServices.authPreferences.savedKeys=Saved Keys…
-onionServices.authPreferences.dialogTitle=Onion Service Keys
-onionServices.authPreferences.dialogIntro=Keys for the following onionsites are stored on your computer
-onionServices.authPreferences.onionSite=Onionsite
-onionServices.authPreferences.onionKey=Key
-onionServices.authPreferences.remove=Remove
-onionServices.authPreferences.removeAll=Remove All
-onionServices.authPreferences.failedToGetKeys=Unable to retrieve keys from tor
-onionServices.authPreferences.failedToRemoveKey=Unable to remove key
-
# Profile/startup error messages.
# LOCALIZATION NOTE: %S is the application name.
profileProblemTitle=%S Profile Problem
=====================================
tools/torbrowser/l10n/migrations/bug-42212-onion-services.py
=====================================
@@ -0,0 +1,27 @@
+from fluent.migrate.helpers import transforms_from
+
+
+def migrate(ctx):
+ dtd_path = "torbutton.dtd"
+ properties_path = "torbutton.properties"
+
+ ctx.add_transforms(
+ "tor-browser.ftl",
+ "tor-browser.ftl",
+ transforms_from(
+ """
+onion-site-authentication-prompt-learn-more = { COPY(path, "onionServices.learnMore") }
+onion-site-authentication-prompt-remember-checkbox =
+ .label = { COPY(dtd_path, "torbutton.onionServices.authPrompt.persistCheckboxLabel") }
+onion-site-authentication-prompt-invalid-key = { COPY(path, "onionServices.authPrompt.invalidKey") }
+onion-site-authentication-prompt-setting-key-failed = { COPY(path, "onionServices.authPrompt.failedToSetKey") }
+onion-site-authentication-preferences-learn-more = { COPY(path, "onionServices.learnMore") }
+onion-site-saved-keys-dialog-table-header-key =
+ .label = { COPY(path, "onionServices.authPreferences.onionKey") }
+onion-site-saved-keys-dialog-remove-button = { COPY(path, "onionServices.authPreferences.remove") }
+onion-site-saved-keys-dialog-remove-keys-error-message = { COPY(path, "onionServices.authPreferences.failedToRemoveKey") }
+""",
+ dtd_path=dtd_path,
+ path=properties_path,
+ ),
+ )
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8b57c0…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8b57c0…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] fixup! Bug 42835: Create an actor to filter file data transfers
by ma1 (@ma1) 20 Aug '24
by ma1 (@ma1) 20 Aug '24
20 Aug '24
ma1 pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
8b57c078 by hackademix at 2024-08-20T10:50:47+02:00
fixup! Bug 42835: Create an actor to filter file data transfers
Bug 43064: Make file filtering more specific
- - - - -
1 changed file:
- toolkit/actors/FilesFilterChild.sys.mjs
Changes:
=====================================
toolkit/actors/FilesFilterChild.sys.mjs
=====================================
@@ -12,11 +12,14 @@ ChromeUtils.defineLazyGetter(lazy, "console", () => {
export class FilesFilterChild extends JSWindowActorChild {
handleEvent(event) {
+ if (!Services.prefs.getBoolPref("browser.filesfilter.enabled", true)) {
+ return;
+ }
// drop or paste
const { composedTarget } = event;
const dt = event.clipboardData || event.dataTransfer;
- if (dt.files.length) {
+ if ([...dt.files].some(f => f.mozFullPath)) {
if (
["HTMLInputElement", "HTMLTextAreaElement"].includes(
ChromeUtils.getClassName(composedTarget)
@@ -25,7 +28,7 @@ export class FilesFilterChild extends JSWindowActorChild {
event.preventDefault();
lazy.console.log(
`Preventing path leak on ${event.type} for ${[...dt.files]
- .map(f => f.name)
+ .map(f => `${f.name} (${f.mozFullPath})`)
.join(", ")}.`
);
}
@@ -33,7 +36,7 @@ export class FilesFilterChild extends JSWindowActorChild {
}
// "Paste Without Formatting" (ctrl+shift+V) in HTML editors coerces files into paths
- if (!(event.clipboardData && dt.getData("text"))) {
+ if (!(event.clipboardData && /[\/\\]/.test(dt.getData("text")))) {
return;
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/8b57c07…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/8b57c07…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build][maint-13.5] Bug 41206: Pass the number of processors to GeckoView's mozconfig.
by morgan (@morgan) 19 Aug '24
by morgan (@morgan) 19 Aug '24
19 Aug '24
morgan pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build
Commits:
ec572810 by Pier Angelo Vendrame at 2024-08-19T20:13:55+00:00
Bug 41206: Pass the number of processors to GeckoView's mozconfig.
- - - - -
1 changed file:
- projects/geckoview/build
Changes:
=====================================
projects/geckoview/build
=====================================
@@ -37,6 +37,7 @@ cd /var/tmp/build/[% project %]-[% c("version") %]
cat > .mozconfig << 'MOZCONFIG_EOF'
. $topsrcdir/mozconfig-[% c("var/osname") %]
+mk_add_options MOZ_PARALLEL_BUILD=[% c("num_procs") %]
export MOZ_INCLUDE_SOURCE_INFO=1
export MOZ_SOURCE_REPO="[% c('var/gitlab_project') %]"
export MOZ_SOURCE_CHANGESET=[% c("var/git_commit") %]
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build] Pushed new tag tbb-14.0a2-build2
by morgan (@morgan) 19 Aug '24
by morgan (@morgan) 19 Aug '24
19 Aug '24
morgan pushed new tag tbb-14.0a2-build2 at The Tor Project / Applications / tor-browser-build
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/tbb…
You're receiving this email because of your account on gitlab.torproject.org.
1
0