tbb-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 19495 discussions
[Git][tpo/applications/tor-browser][tor-browser-140.3.0esr-15.0-1] fixup! Firefox preference overrides.
by morgan (@morgan) 17 Sep '25
by morgan (@morgan) 17 Sep '25
17 Sep '25
morgan pushed to branch tor-browser-140.3.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
e6102fd2 by Pier Angelo Vendrame at 2025-09-17T12:44:48+00:00
fixup! Firefox preference overrides.
BB 44183: Remove Noto Color Emoji from Windows again.
- - - - -
1 changed file:
- browser/app/profile/001-base-profile.js
Changes:
=====================================
browser/app/profile/001-base-profile.js
=====================================
@@ -887,9 +887,9 @@ pref("font.name-list.monospace.x-unicode", "Menlo, Courier New, Noto Sans Baline
#endif
#ifdef XP_WIN
-pref("font.system.whitelist", "Arial, Cambria Math, Consolas, Courier New, Georgia, Lucida Console, MS Gothic, MS ゴシック, MS PGothic, MS Pゴシック, MV Boli, Malgun Gothic, Microsoft Himalaya, Microsoft JhengHei, Microsoft YaHei, 微软雅黑, Segoe UI, SimSun, 宋体, Sylfaen, Tahoma, Times New Roman, Verdana, Noto Color Emoji, Noto Sans Adlam, Noto Sans Balinese, Noto Sans Bamum, Noto Sans Bassa Vah, Noto Sans Batak, Noto Sans Bengali, Noto Sans Buginese, Noto Sans Buhid, Noto Sans Canadian Aboriginal, Noto Sans Chakma, Noto Sans Cham, Noto Sans Cherokee, Noto Sans Coptic, Noto Sans Deseret, Noto Sans Devanagari, Noto Sans Elbasan, Noto Sans Ethiopic, Noto Sans Georgian, Noto Sans Grantha, Noto Sans Gujarati, Noto Sans Gunjala Gondi, Noto Sans Gurmukhi, Noto Sans Hanifi Rohingya, Noto Sans Hanunoo, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Javanese, Noto Sans Kayah Li, Noto Sans Khojki, Noto Sans Khudawadi, Noto Sans Lao, Noto Sans Lepcha, Noto Sans Limbu, Noto Sans Lisu, Noto Sans Mahajani, Noto Sans Malayalam, Noto Sans Mandaic, Noto Sans Masaram Gondi, Noto Sans Medefaidrin, Noto Sans Meetei Mayek, Noto Sans Mende Kikakui, Noto Sans Miao, Noto Sans Modi, Noto Sans Mongolian, Noto Sans Mro, Noto Sans Multani, Noto Sans Newa, Noto Sans New Tai Lue, Noto Sans NKo, Noto Sans Ol Chiki, Noto Sans Oriya, Noto Sans Osage, Noto Sans Osmanya, Noto Sans Pahawh Hmong, Noto Sans Pau Cin Hau, Noto Sans Rejang, Noto Sans Runic, Noto Sans Samaritan, Noto Sans Saurashtra, Noto Sans Sharada, Noto Sans Shavian, Noto Sans Sinhala, Noto Sans Sora Sompeng, Noto Sans Soyombo, Noto Sans Sundanese, Noto Sans Syloti Nagri, Noto Sans Symbols 2, Noto Sans Symbols, Noto Sans Syriac, Noto Sans Tagalog, Noto Sans Tagbanwa, Noto Sans Tai Le, Noto Sans Tai Tham, Noto Sans Tai Viet, Noto Sans Takri, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tifinagh Adrar, Noto Sans Tifinagh Agraw Imazighen, Noto Sans Tifinagh Ahaggar, Noto Sans Tifinagh Air, Noto Sans Tifinagh APT, Noto Sans Tifinagh Azawagh, Noto Sans Tifinagh Ghat, Noto Sans Tifinagh Hawad, Noto Sans Tifinagh, Noto Sans Tifinagh Rhissa Ixa, Noto Sans Tifinagh SIL, Noto Sans Tifinagh Tawellemmet, Noto Sans Tirhuta, Noto Sans Vai, Noto Sans Wancho, Noto Sans Warang Citi, Noto Sans Yi, Noto Sans Zanabazar Square, Noto Serif Balinese, Noto Serif Bengali, Noto Serif Devanagari, Noto Serif Dogra, Noto Serif Ethiopic, Noto Serif Georgian, Noto Serif Grantha, Noto Serif Gujarati, Noto Serif Gurmukhi, Noto Serif Kannada, Noto Serif Khmer, Noto Serif Khojki, Noto Serif Lao, Noto Serif Malayalam, Noto Serif Myanmar, Noto Serif NP Hmong, Noto Serif Sinhala, Noto Serif Tamil, Noto Serif Telugu, Noto Serif Tibetan, Noto Serif Yezidi, Noto Naskh Arabic, Noto Sans, Noto Serif, Pyidaungsu, Twemoji Mozilla");
+pref("font.system.whitelist", "Arial, Cambria Math, Consolas, Courier New, Georgia, Lucida Console, MS Gothic, MS ゴシック, MS PGothic, MS Pゴシック, MV Boli, Malgun Gothic, Microsoft Himalaya, Microsoft JhengHei, Microsoft YaHei, 微软雅黑, Segoe UI, SimSun, 宋体, Sylfaen, Tahoma, Times New Roman, Verdana, Noto Sans Adlam, Noto Sans Balinese, Noto Sans Bamum, Noto Sans Bassa Vah, Noto Sans Batak, Noto Sans Bengali, Noto Sans Buginese, Noto Sans Buhid, Noto Sans Canadian Aboriginal, Noto Sans Chakma, Noto Sans Cham, Noto Sans Cherokee, Noto Sans Coptic, Noto Sans Deseret, Noto Sans Devanagari, Noto Sans Elbasan, Noto Sans Ethiopic, Noto Sans Georgian, Noto Sans Grantha, Noto Sans Gujarati, Noto Sans Gunjala Gondi, Noto Sans Gurmukhi, Noto Sans Hanifi Rohingya, Noto Sans Hanunoo, Noto Sans Kannada, Noto Sans Khmer, Noto Sans Javanese, Noto Sans Kayah Li, Noto Sans Khojki, Noto Sans Khudawadi, Noto Sans Lao, Noto Sans Lepcha, Noto Sans Limbu, Noto Sans Lisu, Noto Sans Mahajani, Noto Sans Malayalam, Noto Sans Mandaic, Noto Sans Masaram Gondi, Noto Sans Medefaidrin, Noto Sans Meetei Mayek, Noto Sans Mende Kikakui, Noto Sans Miao, Noto Sans Modi, Noto Sans Mongolian, Noto Sans Mro, Noto Sans Multani, Noto Sans Newa, Noto Sans New Tai Lue, Noto Sans NKo, Noto Sans Ol Chiki, Noto Sans Oriya, Noto Sans Osage, Noto Sans Osmanya, Noto Sans Pahawh Hmong, Noto Sans Pau Cin Hau, Noto Sans Rejang, Noto Sans Runic, Noto Sans Samaritan, Noto Sans Saurashtra, Noto Sans Sharada, Noto Sans Shavian, Noto Sans Sinhala, Noto Sans Sora Sompeng, Noto Sans Soyombo, Noto Sans Sundanese, Noto Sans Syloti Nagri, Noto Sans Symbols 2, Noto Sans Symbols, Noto Sans Syriac, Noto Sans Tagalog, Noto Sans Tagbanwa, Noto Sans Tai Le, Noto Sans Tai Tham, Noto Sans Tai Viet, Noto Sans Takri, Noto Sans Tamil, Noto Sans Telugu, Noto Sans Thaana, Noto Sans Tifinagh Adrar, Noto Sans Tifinagh Agraw Imazighen, Noto Sans Tifinagh Ahaggar, Noto Sans Tifinagh Air, Noto Sans Tifinagh APT, Noto Sans Tifinagh Azawagh, Noto Sans Tifinagh Ghat, Noto Sans Tifinagh Hawad, Noto Sans Tifinagh, Noto Sans Tifinagh Rhissa Ixa, Noto Sans Tifinagh SIL, Noto Sans Tifinagh Tawellemmet, Noto Sans Tirhuta, Noto Sans Vai, Noto Sans Wancho, Noto Sans Warang Citi, Noto Sans Yi, Noto Sans Zanabazar Square, Noto Serif Balinese, Noto Serif Bengali, Noto Serif Devanagari, Noto Serif Dogra, Noto Serif Ethiopic, Noto Serif Georgian, Noto Serif Grantha, Noto Serif Gujarati, Noto Serif Gurmukhi, Noto Serif Kannada, Noto Serif Khmer, Noto Serif Khojki, Noto Serif Lao, Noto Serif Malayalam, Noto Serif Myanmar, Noto Serif NP Hmong, Noto Serif Sinhala, Noto Serif Tamil, Noto Serif Telugu, Noto Serif Tibetan, Noto Serif Yezidi, Noto Naskh Arabic, Noto Sans, Noto Serif, Pyidaungsu, Twemoji Mozilla");
-pref("font.name-list.emoji", "Noto Color Emoji, Twemoji Mozilla");
+pref("font.name-list.emoji", "Twemoji Mozilla");
// Arabic
pref("font.name-list.serif.ar", "Times New Roman, Noto Naskh Arabic");
pref("font.name-list.sans-serif.ar", "Segoe UI, Tahoma, Arial, Noto Naskh Arabic");
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e6102fd…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/e6102fd…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.14.0esr-14.5-1] 3 commits: fixup! Tor Browser strings
by morgan (@morgan) 17 Sep '25
by morgan (@morgan) 17 Sep '25
17 Sep '25
morgan pushed to branch tor-browser-128.14.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
6e98860e by Henry Wilkes at 2025-09-17T12:12:26+00:00
fixup! Tor Browser strings
TB 44032: Add YEC strings.
These strings are likely to be used in future year end campaigns, so we
keep them separate from the 2025-specific strings.
- - - - -
c8fec369 by Henry Wilkes at 2025-09-17T12:16:30+00:00
fixup! TB 7494: Create local home page for TBB.
TB 44032: Implement the 2025 YEC banner.
This adds the 2025 year end campaign banner. We want to keep this beyond
the end of the campaign since next year's campaign is likely going to be
similar.
Assets specific to 2025 are in a separate commit.
- - - - -
67f2f0d3 by Henry Wilkes at 2025-09-17T12:24:24+00:00
TB 44032: YEC 2025 assets.
Assets only needed for the 2025 Year end campaign.
- - - - -
12 changed files:
- browser/components/BrowserGlue.sys.mjs
- browser/components/abouttor/AboutTorChild.sys.mjs
- browser/components/abouttor/AboutTorParent.sys.mjs
- browser/components/abouttor/content/aboutTor.css
- browser/components/abouttor/content/aboutTor.html
- browser/components/abouttor/content/aboutTor.js
- + browser/components/abouttor/content/yec-heart.svg
- + browser/components/abouttor/content/yec2025-font.css
- + browser/components/abouttor/content/yec2025-image.svg
- browser/components/abouttor/jar.mn
- toolkit/content/license.html
- toolkit/locales/en-US/toolkit/global/tor-browser.ftl
Changes:
=====================================
browser/components/BrowserGlue.sys.mjs
=====================================
@@ -529,6 +529,7 @@ let JSWINDOWACTORS = {
L10nMutationsFinished: {},
SubmitSearchOnionize: { wantUntrusted: true },
SurveyDismissed: { wantUntrusted: true },
+ UserDismissedYEC: { wantUntrusted: true },
},
},
=====================================
browser/components/abouttor/AboutTorChild.sys.mjs
=====================================
@@ -26,6 +26,23 @@ export class AboutTorChild extends JSWindowActorChild {
new this.contentWindow.CustomEvent("L10nMutationsFinished")
);
break;
+ case "UserDismissedYEC":
+ // YEC banner was closed. Persist this for the rest of this session.
+ // See tor-browser#42188.
+ this.sendAsyncMessage("AboutTor:UserDismissedYEC");
+ break;
+ }
+ }
+
+ receiveMessage(message) {
+ switch (message.name) {
+ case "AboutTor:DismissYEC": {
+ this.contentWindow.dispatchEvent(
+ new this.contentWindow.CustomEvent("DismissYEC")
+ );
+ break;
+ }
}
+ return undefined;
}
}
=====================================
browser/components/abouttor/AboutTorParent.sys.mjs
=====================================
@@ -7,16 +7,37 @@ ChromeUtils.defineESModuleGetters(lazy, {
TorConnect: "resource://gre/modules/TorConnect.sys.mjs",
});
+const initializedActors = new Set();
+
/**
* Actor parent class for the about:tor page.
*/
export class AboutTorParent extends JSWindowActorParent {
+ /*
+ * Whether the user has dismissed the Year End Campaign (YEC) banner this
+ * session.
+ *
+ * @type {boolean}
+ */
+ static #dismissYEC = false;
+
+ didDestroy() {
+ initializedActors.delete(this);
+ }
+
receiveMessage(message) {
const onionizePref = "torbrowser.homepage.search.onionize";
const surveyDismissVersionPref =
"torbrowser.homepage.survey.dismiss_version";
switch (message.name) {
- case "AboutTor:GetInitialData":
+ case "AboutTor:GetInitialData": {
+ // Track this actor to send future updates.
+ initializedActors.add(this);
+
+ let appLocale = Services.locale.appLocaleAsBCP47;
+ if (appLocale === "ja-JP-macos") {
+ appLocale = "ja";
+ }
return Promise.resolve({
torConnectEnabled: lazy.TorConnect.enabled,
messageData: lazy.AboutTorMessage.getNext(),
@@ -26,8 +47,10 @@ export class AboutTorParent extends JSWindowActorParent {
surveyDismissVersionPref,
0
),
- appLocale: Services.locale.appLocaleAsBCP47,
+ appLocale,
+ dismissYEC: AboutTorParent.#dismissYEC,
});
+ }
case "AboutTor:SetSearchOnionize":
Services.prefs.setBoolPref(onionizePref, message.data);
break;
@@ -43,6 +66,23 @@ export class AboutTorParent extends JSWindowActorParent {
// the version value to decrease.
Services.prefs.setIntPref(surveyDismissVersionPref, message.data);
break;
+ case "AboutTor:UserDismissedYEC":
+ AboutTorParent.#dismissYEC = true;
+ for (const actor of initializedActors) {
+ if (actor === this) {
+ // Don't send to ourselves.
+ continue;
+ }
+ // Tell all existing instances to also close the banner, if they still
+ // exist.
+ // NOTE: If the user's new tab page is `about:tor`, this may include
+ // some preloaded pages that have not been made visible yet (see
+ // NewTabPagePreloading).
+ try {
+ actor.sendAsyncMessage("AboutTor:DismissYEC");
+ } catch {}
+ }
+ break;
}
return undefined;
}
=====================================
browser/components/abouttor/content/aboutTor.css
=====================================
@@ -324,3 +324,209 @@ body:not(.show-survey) #survey {
--in-content-primary-button-background-active: var(--tor-button-background-color-active-dark);
}
}
+
+/* Year End Campaign (YEC). */
+body:not(.show-yec) #yec-banner {
+ display: none;
+}
+
+body.show-yec h1 {
+ /* Text of heading is still available to screen readers, but it does not
+ * contribute visually to the page or the body grid layout. */
+ position: absolute;
+ clip-path: inset(50%);
+}
+
+#yec-banner {
+ grid-area: heading;
+ border-radius: 8px;
+ border: 1px solid var(--in-content-box-border-color);
+ display: grid;
+ grid-template:
+ "yec-heading yec-image" auto
+ "yec-body yec-image" auto
+ "yec-matching yec-image" auto
+ "yec-donate yec-image" min-content
+ / 1fr min-content;
+ --yec-image-background: #1f0333;
+ /* Remove 1px from padding for border. */
+ padding-block: 55px 55px;
+ padding-inline: 47px 47px;
+ box-sizing: border-box;
+ max-width: 850px;
+ margin-block-end: 40px;
+ /* Position for the close button. */
+ position: relative;
+ gap: 0 24px;
+}
+
+#yec-image {
+ grid-area: yec-image;
+ align-self: center;
+ /* Center horizontally for small width layout. */
+ justify-self: center;
+ /* background color, padding and border radius only stands out when using a
+ * contrast or forced color theme. */
+ background-color: var(--yec-image-background);
+ border-radius: 8px;
+ padding: 4px;
+ height: 196px;
+ border: 1px solid transparent;
+ /* Remove border and padding from the layout size. These parts are only
+ * visible in contrast or forced color themes. */
+ margin: -5px;
+ /* Do not let forced colors ignore the background-color, which is needed to
+ * see the drawing. */
+ forced-color-adjust: none;
+}
+
+#yec-image:dir(rtl) {
+ transform: scaleX(-1);
+}
+
+#yec-heading {
+ grid-area: yec-heading;
+ margin-block: 0 16px;
+ font-size: 64px;
+ font-weight: 400;
+ font-family: "Jacquard 12", serif;
+}
+
+#yec-heading.all-jacquard12-chars {
+ /* All characters are supported by Jacquard 12.
+ * These have a high natural line-height. */
+ line-height: 1.0;
+}
+
+#yec-body {
+ grid-area: yec-body;
+ margin-block: 0 12px;
+}
+
+#yec-body-highlight {
+ font-weight: 600;
+}
+
+#yec-matching {
+ grid-area: yec-matching;
+ margin-block: 0 32px;
+}
+
+#yec-donate-link {
+ grid-area: yec-donate;
+ justify-self: start;
+ /* Style like a button. */
+ font-weight: var(--button-font-weight);
+ 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);
+ padding: var(--button-padding);
+ box-sizing: border-box;
+ min-height: var(--button-min-height);
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ white-space: nowrap;
+}
+
+#yec-donate-link > * {
+ flex: 0 0 auto;
+}
+
+#yec-donate-link:hover {
+ background-color: var(--in-content-button-background-hover);
+ color: var(--in-content-button-text-color-hover);
+ border-color: var(--in-content-button-border-color-hover);
+}
+
+#yec-donate-link:hover:active {
+ background-color: var(--in-content-button-background-active);
+ color: var(--in-content-button-text-color-active);
+ border-color: var(--in-content-button-border-color-active);
+}
+
+#yec-donate-icon {
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+#yec-close {
+ position: absolute;
+ inset-block-start: 16px;
+ inset-inline-end: 16px;
+}
+
+@media (max-width: 768px) {
+ /* Small width layout. */
+ #yec-banner {
+ grid-template:
+ "yec-image" min-content
+ "yec-heading" auto
+ "yec-body" auto
+ "yec-matching" auto
+ "yec-donate" min-content
+ / 1fr;
+ padding-block: 31px 39px;
+ padding-inline: 15px;
+ /* Match max-width of the form. */
+ max-width: var(--form-max-width);
+ margin-block-end: 32px;
+ }
+
+ #yec-image {
+ height: 156px;
+ }
+
+ #yec-heading {
+ margin-block-start: 16px;
+ text-align: center;
+ text-wrap-style: balance;
+ }
+
+ #yec-heading {
+ font-size: 3.5rem;
+ }
+
+ #yec-matching {
+ margin-block-end: 16px;
+ }
+
+ #yec-donate-link {
+ justify-self: center;
+ }
+}
+
+@media ((prefers-contrast) or (forced-colors)) and (prefers-color-scheme: dark) {
+ #yec-image {
+ /* Give the dark image a light border to separate from background. */
+ border-color: var(--in-content-box-border-color);
+ }
+}
+
+@media not ((prefers-contrast) or (forced-colors)) {
+ #yec-banner {
+ border-color: transparent;
+ background-color: var(--yec-image-background);
+ --yec-text: #ffffff;
+ --yec-button-background: #b6e368;
+ --yec-button-background-hover: #d2f2a1;
+ --yec-button-background-active: #ecfcd8;
+ --yec-button-text: #15141A;
+ color: var(--yec-text);
+ }
+
+ #yec-body-highlight {
+ color: var(--yec-button-background);
+ }
+
+ #yec-donate-link {
+ --in-content-button-text-color: var(--yec-button-text);
+ --in-content-button-text-color-hover: var(--yec-button-text);
+ --in-content-button-text-color-active: var(--yec-button-text);
+ --in-content-button-background: var(--yec-button-background);
+ --in-content-button-background-hover: var(--yec-button-background-hover);
+ --in-content-button-background-active: var(--yec-button-background-active);
+ }
+}
=====================================
browser/components/abouttor/content/aboutTor.html
=====================================
@@ -4,7 +4,7 @@
<head>
<meta
http-equiv="Content-Security-Policy"
- content="default-src chrome:; object-src 'none'"
+ content="default-src chrome:; font-src data:; object-src 'none'"
/>
<title data-l10n-id="newtab-page-title"></title>
<link
@@ -18,6 +18,10 @@
rel="stylesheet"
href="chrome://browser/content/abouttor/aboutTor.css"
/>
+ <link
+ rel="stylesheet"
+ href="chrome://browser/content/abouttor/yec2025-font.css"
+ />
<link rel="localization" href="browser/newtab/newtab.ftl" />
<link rel="localization" href="toolkit/global/tor-browser.ftl" />
@@ -33,6 +37,35 @@
<script src="chrome://browser/content/abouttor/aboutTor.js"></script>
</head>
<body class="onion-pattern-background">
+ <!-- Year End Campaign (YEC). -->
+ <article id="yec-banner" aria-labelledby="yec-heading">
+ <img
+ id="yec-image"
+ alt=""
+ src="chrome://browser/content/abouttor/yec2025-image.svg"
+ />
+ <h2 id="yec-heading" data-l10n-id="yec2025-title"></h2>
+ <p id="yec-body" data-l10n-id="yec2025-body">
+ <b id="yec-body-highlight" data-l10n-name="highlight"></b>
+ </p>
+ <p id="yec-matching" data-l10n-id="yec2025-matching"></p>
+ <a id="yec-donate-link">
+ <span data-l10n-id="yec-donate-button"></span>
+ <img
+ id="yec-donate-icon"
+ alt=""
+ src="chrome://browser/content/abouttor/yec-heart.svg"
+ />
+ </a>
+ <moz-button
+ id="yec-close"
+ type="icon ghost"
+ class="close"
+ size="16"
+ iconSrc="chrome://global/skin/icons/close.svg"
+ data-l10n-id="yec-close-button"
+ ></moz-button>
+ </article>
<h1>
<img
id="tor-browser-logo"
=====================================
browser/components/abouttor/content/aboutTor.js
=====================================
@@ -150,20 +150,6 @@ const MessageArea = {
"shown-message"
);
}
-
- // In the case where we set the update message, we are still waiting for the
- // l10n message to complete. We wait until then before showing the content.
- if (document.hasPendingL10nMutations) {
- window.addEventListener(
- "L10nMutationsFinished",
- () => {
- document.body.classList.add("initialized");
- },
- { once: true }
- );
- } else {
- document.body.classList.add("initialized");
- }
},
};
@@ -185,16 +171,16 @@ const SurveyArea = {
/**
* The date to start showing the survey.
*
- * @type {integer}
+ * @type {?integer}
*/
- _startDate: Date.UTC(2025, 3, 14, 12), // 2025 April 14th, 12:00.
+ _startDate: null, // No survey date.
/**
* The date to stop showing the current survey.
*
- * @type {integer}
+ * @type {?integer}
*/
- _endDate: Date.UTC(2025, 3, 28), // 2025 April 28th, 00:00.
+ _endDate: null, // No survey date.
/**
* The survey URL.
@@ -293,10 +279,41 @@ const SurveyArea = {
},
],
+ /**
+ * Whether the area has been initialised.
+ *
+ * @type {boolean}
+ */
+ _initialized: false,
+
+ /**
+ * The app locale, or `null` whilst unset.
+ *
+ * @type {?string}
+ */
+ _locale: null,
+
+ /**
+ * Whether the banner should be shown.
+ *
+ * @type {boolean}
+ */
+ _shouldShow: false,
+
+ /**
+ * The survey element.
+ *
+ * @type {?Element}
+ */
+ _areaEl: null,
+
/**
* Initialize the survey area.
*/
init() {
+ this._initialized = true;
+
+ this._areaEl = document.getElementById("survey");
document.getElementById("survey-launch").addEventListener("click", () => {
if (!this._localeData) {
return;
@@ -311,15 +328,16 @@ const SurveyArea = {
document.getElementById("survey-dismiss").addEventListener("click", () => {
this._hide();
});
+
+ this._update();
},
/**
* Permanently hide this survey.
*/
_hide() {
- document.body.classList.remove("show-survey");
- // Move focus to the search input.
- document.getElementById("search-input").focus();
+ this._shouldShow = false;
+ this._update();
dispatchEvent(
new CustomEvent("SurveyDismissed", {
@@ -343,14 +361,29 @@ const SurveyArea = {
*/
potentiallyShow(dismissVersion, isStable, appLocale) {
const now = Date.now();
- if (
- now < this._startDate ||
- now >= this._endDate ||
- // The user has already dismissed this version of the survey before:
- dismissVersion >= this._version ||
- !isStable
- ) {
- // Don't show the survey.
+ this._shouldShow =
+ isStable &&
+ dismissVersion < this._version &&
+ this._startDate &&
+ now >= this._startDate &&
+ now < this._endDate;
+ this._locale = appLocale;
+ this._update();
+ },
+
+ /**
+ * Update the display.
+ */
+ _update() {
+ if (!this._initialized) {
+ return;
+ }
+ if (!this._shouldShow) {
+ if (this._areaEl.contains(document.activeElement)) {
+ // Move focus to the search input.
+ document.getElementById("search-input").focus();
+ }
+ document.body.classList.remove("show-survey");
return;
}
@@ -360,7 +393,7 @@ const SurveyArea = {
// match the languages that the survey itself supports. This should match
// the language of the survey when it is opened by the user.
for (const localeData of this._localeDataSet) {
- if (localeData.browserLocales.includes(appLocale)) {
+ if (localeData.browserLocales.includes(this._locale)) {
this._localeData = localeData;
break;
}
@@ -387,10 +420,152 @@ const SurveyArea = {
},
};
+/**
+ * Area for the Year End Campaign (YEC).
+ * See tor-browser#42072.
+ */
+const YecArea = {
+ /**
+ * The epoch time to start showing the banner, if at all.
+ *
+ * @type {?integer}
+ */
+ _startDate: Date.UTC(2025, 9, 14, 15), // 2025 October 14th 15:00 UTC.
+
+ /**
+ * The epoch time to stop showing the banner, if at all.
+ *
+ * @type {?integer}
+ */
+ _endDate: Date.UTC(2026, 0, 2, 0), // 2026 January 2nd 0:00 UTC.
+
+ /**
+ * Whether the area has been initialised.
+ *
+ * @type {boolean}
+ */
+ _initialized: false,
+
+ /**
+ * The app locale, or `null` whilst unset.
+ *
+ * @type {?string}
+ */
+ _locale: null,
+
+ /**
+ * Whether the banner should be shown.
+ *
+ * @type {boolean}
+ */
+ _shouldShow: false,
+
+ /**
+ * The banner element.
+ *
+ * @type {?Element}
+ */
+ _areaEl: null,
+
+ /**
+ * Initialize the widget.
+ */
+ init() {
+ this._initialized = true;
+
+ this._areaEl = document.getElementById("yec-banner");
+
+ document.getElementById("yec-close").addEventListener("click", () => {
+ this.dismiss();
+ dispatchEvent(new CustomEvent("UserDismissedYEC", { bubbles: true }));
+ });
+
+ this._update();
+ },
+
+ /**
+ * Close the banner.
+ */
+ dismiss() {
+ this._shouldShow = false;
+ this._update();
+ },
+
+ /**
+ * Possibly show the banner.
+ *
+ * @param {boolean} dismissYEC - Whether the user has dismissed YEC.
+ * @param {boolean} isStable - Whether this is a stable release.
+ * @param {string} appLocale - The app locale, as BCP47.
+ */
+ potentiallyShow(dismissYEC, isStable, appLocale) {
+ const now = Date.now();
+ this._shouldShow =
+ !dismissYEC &&
+ isStable &&
+ this._startDate &&
+ now >= this._startDate &&
+ now < this._endDate;
+ this._locale = appLocale;
+ this._update();
+ },
+
+ /**
+ * Update the visibility of the banner to reflect the new state.
+ */
+ _update() {
+ if (!this._initialized) {
+ return;
+ }
+ if (!this._shouldShow) {
+ if (this._areaEl.contains(document.activeElement)) {
+ document.documentElement.focus();
+ }
+ document.body.classList.remove("show-yec");
+ return;
+ }
+
+ const donateLink = document.getElementById("yec-donate-link");
+ const base = "https://www.torproject.org/donate";
+ const locale = this._locale;
+ donateLink.href = locale ? `${base}/donate-${locale}-yec2025` : base;
+
+ if (!this._addedHeadingCharObserver) {
+ // Observer to determine whether the heading contains Jacquard 12
+ // supported characters.
+ this._addedHeadingCharObserver = true;
+ const headingEl = document.getElementById("yec-heading");
+ const measure = () => {
+ const jacquard12Charset =
+ // eslint does not like the range \u{300}-\u{304} and onward, which
+ // are combining characters. But we want to detect the combining
+ // characters as individual characters.
+ // eslint-disable-next-line no-misleading-character-class
+ /^[\u{20}-\u{7e}\u{a0}-\u{a3}\u{a5}\u{a7}-\u{ab}\u{ae}-\u{b0}\u{b4}\u{b6}-\u{b8}\u{ba}-\u{bb}\u{bf}-\u{107}\u{10a}-\u{113}\u{116}-\u{11b}\u{11e}-\u{123}\u{126}-\u{127}\u{12a}-\u{12b}\u{12e}-\u{133}\u{136}-\u{137}\u{139}-\u{13e}\u{141}-\u{148}\u{14a}-\u{14d}\u{150}-\u{15b}\u{15e}-\u{161}\u{164}-\u{165}\u{16a}-\u{17e}\u{218}-\u{21b}\u{237}\u{2c6}-\u{2c7}\u{2d8}-\u{2dd}\u{300}-\u{304}\u{306}-\u{308}\u{30a}-\u{30c}\u{312}\u{326}-\u{328}\u{1e80}-\u{1e85}\u{1e9e}\u{1ef2}-\u{1ef3}\u{200a}\u{2013}-\u{2014}\u{2018}-\u{201a}\u{201c}-\u{201e}\u{2022}\u{2026}\u{2039}-\u{203a}\u{20ac}\u{2122}\u{2212}]+$/u;
+ headingEl.classList.toggle(
+ "all-jacquard12-chars",
+ jacquard12Charset.test(headingEl.textContent)
+ );
+ };
+
+ const headingObserver = new MutationObserver(measure);
+ headingObserver.observe(headingEl, {
+ subtree: true,
+ childList: true,
+ characterData: true,
+ });
+ measure();
+ }
+
+ document.body.classList.add("show-yec");
+ },
+};
+
window.addEventListener("DOMContentLoaded", () => {
SearchWidget.init();
MessageArea.init();
SurveyArea.init();
+ YecArea.init();
});
window.addEventListener("InitialData", event => {
@@ -401,8 +576,28 @@ window.addEventListener("InitialData", event => {
messageData,
surveyDismissVersion,
appLocale,
+ dismissYEC,
} = event.detail;
SearchWidget.setOnionizeState(!!searchOnionize);
MessageArea.setMessageData(messageData, !!isStable, !!torConnectEnabled);
SurveyArea.potentiallyShow(surveyDismissVersion, isStable, appLocale);
+ YecArea.potentiallyShow(dismissYEC, isStable, appLocale);
+
+ // Wait to show the content when the l10n population has completed.
+ if (document.hasPendingL10nMutations) {
+ window.addEventListener(
+ "L10nMutationsFinished",
+ () => {
+ document.body.classList.add("initialized");
+ },
+ { once: true }
+ );
+ } else {
+ document.body.classList.add("initialized");
+ }
+});
+
+window.addEventListener("DismissYEC", () => {
+ // User closed the banner in another about:tor instance.
+ YecArea.dismiss();
});
=====================================
browser/components/abouttor/content/yec-heart.svg
=====================================
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" xmlns="http://www.w3.org/2000/svg">
+ <path d="M8 6C8 6 8 2 11.5 2C15 2 15 5 15 6C15 10.5 8 15 8 15V6Z"/>
+ <path d="M8 6C8 6 8 2 4.5 2C1 2 1 5 1 6C1 10.5 8 15 8 15L9 9L8 6Z"/>
+</svg>
=====================================
browser/components/abouttor/content/yec2025-font.css
=====================================
@@ -0,0 +1,105 @@
+/**
+ * The embedded "Jacquard 12" font is under the following license:
+ *
+ * Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jacquard)
+ *
+ * This Font Software is licensed under the SIL Open Font License, Version 1.1.
+ * This license is copied below, and is also available with a FAQ at:
+ * https://openfontlicense.org
+ *
+ *
+ * -----------------------------------------------------------
+ * SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ * -----------------------------------------------------------
+ *
+ * PREAMBLE
+ * The goals of the Open Font License (OFL) are to stimulate worldwide
+ * development of collaborative font projects, to support the font creation
+ * efforts of academic and linguistic communities, and to provide a free and
+ * open framework in which fonts may be shared and improved in partnership
+ * with others.
+ *
+ * The OFL allows the licensed fonts to be used, studied, modified and
+ * redistributed freely as long as they are not sold by themselves. The
+ * fonts, including any derivative works, can be bundled, embedded,
+ * redistributed and/or sold with any software provided that any reserved
+ * names are not used by derivative works. The fonts and derivatives,
+ * however, cannot be released under any other type of license. The
+ * requirement for fonts to remain under this license does not apply
+ * to any document created using the fonts or their derivatives.
+ *
+ * DEFINITIONS
+ * "Font Software" refers to the set of files released by the Copyright
+ * Holder(s) under this license and clearly marked as such. This may
+ * include source files, build scripts and documentation.
+ *
+ * "Reserved Font Name" refers to any names specified as such after the
+ * copyright statement(s).
+ *
+ * "Original Version" refers to the collection of Font Software components as
+ * distributed by the Copyright Holder(s).
+ *
+ * "Modified Version" refers to any derivative made by adding to, deleting,
+ * or substituting -- in part or in whole -- any of the components of the
+ * Original Version, by changing formats or by porting the Font Software to a
+ * new environment.
+ *
+ * "Author" refers to any designer, engineer, programmer, technical
+ * writer or other person who contributed to the Font Software.
+ *
+ * PERMISSION & CONDITIONS
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Font Software, to use, study, copy, merge, embed, modify,
+ * redistribute, and sell modified and unmodified copies of the Font
+ * Software, subject to the following conditions:
+ *
+ * 1) Neither the Font Software nor any of its individual components,
+ * in Original or Modified Versions, may be sold by itself.
+ *
+ * 2) Original or Modified Versions of the Font Software may be bundled,
+ * redistributed and/or sold with any software, provided that each copy
+ * contains the above copyright notice and this license. These can be
+ * included either as stand-alone text files, human-readable headers or
+ * in the appropriate machine-readable metadata fields within text or
+ * binary files as long as those fields can be easily viewed by the user.
+ *
+ * 3) No Modified Version of the Font Software may use the Reserved Font
+ * Name(s) unless explicit written permission is granted by the corresponding
+ * Copyright Holder. This restriction only applies to the primary font name as
+ * presented to the users.
+ *
+ * 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+ * Software shall not be used to promote, endorse or advertise any
+ * Modified Version, except to acknowledge the contribution(s) of the
+ * Copyright Holder(s) and the Author(s) or with their explicit written
+ * permission.
+ *
+ * 5) The Font Software, modified or unmodified, in part or in whole,
+ * must be distributed entirely under this license, and must not be
+ * distributed under any other license. The requirement for fonts to
+ * remain under this license does not apply to any document created
+ * using the Font Software.
+ *
+ * TERMINATION
+ * This license becomes null and void if any of the above conditions are
+ * not met.
+ *
+ * DISCLAIMER
+ * THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ * OTHER DEALINGS IN THE FONT SOFTWARE.
+ */
+
+@font-face {
+ font-family: "Jacquard 12";
+ font-weight: 400 400;
+ font-style: normal;
+ /* woff2 stream */
+ src: url("data:font/woff2;base64,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");
+}
=====================================
browser/components/abouttor/content/yec2025-image.svg
=====================================
@@ -0,0 +1,20 @@
+<svg width="495" height="381" viewBox="0 0 495 381" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <path d="M247.419 264.776C201.679 273.69 174.117 246.935 166.057 232.441L105.262 261.112L170.602 258.902L131.868 327.126L195.407 280.785L189.197 362.111L227.832 285.742L262.535 343.489L247.432 264.776H247.419Z" fill="#B6E368"/>
+ <path d="M223.938 98.8502C269.555 89.3133 297.484 115.702 305.741 130.086L366.144 100.584L300.841 103.686L338.631 34.949L275.741 82.1453L280.837 0.733295L243.255 77.6271L207.756 20.3445L223.938 98.8502Z" fill="#B6E368"/>
+ <g opacity="0.8">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M256.349 131.796H260.465V136.119H256.141V132.016H247.921V136.119H252.025V140.222H256.141V148.648H260.465V157.293H256.141V148.867H251.817V140.442H247.701V136.119H243.597V132.016H239.273V165.499H260.477V157.293H264.801V165.499H277.137V169.822H285.577V174.145H276.928V169.822H264.814V207.408H277.149V203.305H285.797V207.408H289.913V211.731H285.797V216.053H281.681V220.376H277.357V224.479H273.033V228.582H269.138V232.905H264.814V228.582H268.709V224.259H273.033V220.156H277.357V216.053H281.473V211.731H285.589V207.628H277.149V211.731H264.814V220.364H260.489V228.79H256.165V232.893H264.814V237.215H251.829V228.582H256.153V220.156H260.477V211.731H239.273V237.215H251.817V241.099H222.393V237.215H209.629V232.893H205.525V228.57H201.409V224.467H197.085V220.364H192.981V216.041H197.306V220.144H201.409V224.247H205.733V228.57H209.849V232.893H218.289V228.79H213.965V220.364H209.849V211.731H197.085V207.628H188.645V211.731H184.321V207.408H180.217V169.822H184.541V207.408H188.657V203.305H197.306V207.408H209.849V169.822H197.306V174.145H188.657V169.822H184.541V161.188H188.657V152.763H192.981V148.66H197.306V144.557H201.409V140.454H205.525V136.131H214.173V140.454H205.733V144.777H201.618V148.88H197.293V152.983H192.969V161.408H188.853V169.834H197.073V165.511H209.837V157.305H214.161V165.511H234.924V132.028H231.029V136.131H226.705V132.028H218.485V136.131H214.161V131.808H218.277V127.705H256.349V131.808V131.796ZM214.161 220.132H218.277V228.558H222.601V237.191H234.937V211.706H214.173V220.132H214.161ZM239.261 207.396H260.465V169.81H239.261V207.396ZM214.161 207.396H234.924V169.81H214.161V207.396Z" fill="#C272FF"/>
+ <path d="M192.968 216.029H188.644V211.706H192.968V216.029Z" fill="#C272FF"/>
+ <path d="M294.212 207.395H289.888V169.809H294.212V207.395Z" fill="#C272FF"/>
+ <path d="M269.113 140.429H273.008V144.532H277.332V148.635H281.448V152.738H285.772V161.164H289.888V169.797H285.564V161.371H281.448V152.946H277.124V148.843H273.008V144.74H268.684V140.417H260.465V136.094H269.113V140.417V140.429Z" fill="#C272FF"/>
+ <path d="M226.718 140.429H222.602V148.855H218.486V157.281H214.162V148.635H218.278V140.209H222.394V136.106H226.718V140.429Z" fill="#C272FF"/>
+ <path d="M260.464 136.119V131.796H256.348V127.693H218.276V131.796H214.16V136.119M260.464 136.119H256.14V132.016H247.92V136.119H252.024V140.222H256.14V148.648H260.464V157.293M260.464 136.119V140.442H268.683V144.764H273.008V148.867H277.123V152.97H281.448V161.396H285.564V169.822M260.464 136.119H269.112V140.442H273.008V144.545H277.332V148.648H281.448V152.75H285.772V161.176H289.888V169.81M214.16 136.119H205.512V140.442H201.396V144.545H197.292V148.648H192.968V152.75H188.644V161.176H184.528V169.81M214.16 136.119V140.442H205.72V144.764H201.604V148.867H197.28V152.97H192.956V161.396H188.84V169.822H197.06V165.499H209.824V157.293H214.148M214.16 136.119H218.484V132.016H226.704V136.119M289.888 169.81H294.212V207.396H289.888M289.888 169.81V207.396M260.464 157.281H256.14V148.855H251.816V140.429H247.7V136.107H243.596V132.004H239.272V165.487H260.476V157.281H260.464ZM260.464 157.281H264.788V165.487H277.123V169.81H285.564M289.888 207.396H285.772V203.293H277.123V207.396H264.788V169.81H276.903V174.132H285.551V169.81H289.875M289.888 207.396V211.718H285.772V216.041H281.656V220.364H277.332V224.467H273.008V228.57H269.112V232.892H264.788M264.788 232.88V228.558H268.683V224.235H273.008V220.132H277.332V216.029H281.448V211.706H285.564V207.603H277.123V211.706H264.788V220.339H260.464V228.765H256.14V232.868H264.788V232.88ZM264.788 232.88V237.203H251.803M251.803 237.191V228.558H256.128V220.132H260.452V211.706H239.248V237.191H251.791H251.803ZM251.803 237.191V241.074H222.38V237.191H209.616V232.868H205.512V228.545H201.396V224.442H197.072V220.339H192.968V216.017M192.968 216.029H197.292V220.132H201.396V224.235H205.72V228.558H209.836V232.88H218.276V228.777H213.952V220.352H209.836V211.718H197.072V207.615H188.632V211.718M192.968 216.029H188.644V211.706H192.968V216.029ZM188.632 211.706H184.308V207.383H180.204V169.797H184.528M184.528 169.81V207.396H188.644V203.293H197.292V207.396H209.836V169.81H197.292V174.132H188.644V169.81H184.528ZM214.16 157.281V165.487H234.923V132.004H231.028V136.107H226.704M214.16 157.281H218.484V148.855H222.6V140.429H226.716V136.107H222.392V140.21H218.276V148.635H214.16V157.281ZM214.16 220.132H218.276V228.558H222.6V237.191H234.936V211.706H214.172V220.132H214.16ZM239.26 207.396H260.464V169.81H239.26V207.396ZM214.16 207.396H234.923V169.81H214.16V207.396Z" stroke="#C272FF" stroke-width="0.618845"/>
+ </g>
+ <path d="M166.566 131.845H175.239L169.665 124.591L179.881 122.381L170.633 111.794L178.264 111.587L178.607 109.511L127.183 90.5711C125.738 90.0338 124.28 89.5942 122.81 89.2401L97.6982 24.4963C92.2226 10.3802 78.3437 0.904321 63.1542 0.904321C58.6095 0.904321 54.1139 1.73468 49.8265 3.3954L23.6612 13.4696C4.62526 20.8208 -4.86823 42.227 2.49382 61.2032L38.3608 153.715C43.8364 167.831 57.7153 177.319 72.8926 177.319C74.9261 177.319 76.935 177.148 78.9195 176.807C82.7169 180.238 87.1513 182.937 92.1001 184.756L143.855 203.818L137.804 193.072H149.686L145.643 183.242H158.493L153.238 173.546L119.454 161.103C130.674 153.727 136.958 140.771 135.954 127.534L175.349 142.041L166.566 131.845ZM151.731 175.28L154.904 181.105H142.446L146.501 190.935H134.141L139.139 199.812L92.8473 182.753C83.1946 179.2 75.5263 172.117 71.2389 162.825C66.9638 153.544 66.5718 143.165 70.1365 133.591L76.9963 115.164C80.2914 106.324 86.551 99.412 94.2316 95.1259L104.509 121.649C103.799 122.528 103.211 123.541 102.794 124.665L95.9343 143.091C94.9175 145.827 95.0278 148.782 96.2527 151.419C97.4655 154.069 99.6581 156.096 102.402 157.11L151.731 175.28ZM65.6653 144.337C65.4938 144.032 65.3468 143.702 65.2121 143.36L29.3328 50.8481C28.2549 48.0884 28.9653 45.7316 29.4798 44.5837C30.0066 43.4237 31.2805 41.3111 34.049 40.2488L60.202 30.1623C61.182 29.7838 62.1742 29.6006 63.1542 29.6006C65.9716 29.6006 69.4382 31.2247 70.8469 34.8636L93.4476 93.1232C85.2158 97.6169 78.503 104.98 74.9873 114.42L68.1275 132.858C66.7311 136.595 65.9103 140.466 65.6653 144.337ZM104.803 125.397C104.975 124.921 105.195 124.469 105.44 124.054L106.726 127.363C107.804 130.135 107.094 132.48 106.579 133.628H106.567C106.065 134.8 104.803 136.9 102.022 137.963L99.8174 138.817L104.803 125.397ZM116.918 160.163L103.149 155.095C100.932 154.289 99.1804 152.665 98.2004 150.528C97.2205 148.403 97.1225 146.034 97.9432 143.836L98.8129 141.492L102.794 139.965C106.297 138.622 107.89 135.96 108.539 134.495C109.188 133.042 110.083 130.086 108.723 126.594L106.983 122.113V122.064L106.273 120.281L106.163 119.988L96.1303 94.1245L96.1058 94.0757L95.4565 92.3906L95.3585 92.1219L72.8436 34.0821C71.0674 29.5029 66.6943 27.4637 63.1542 27.4637C61.9169 27.4637 60.6552 27.6957 59.4303 28.1597L33.2772 38.2461C29.7983 39.5894 28.1814 42.2514 27.5321 43.7045C26.8706 45.1699 25.9764 48.1372 27.3361 51.6296L63.2154 144.142C63.7666 145.595 64.5996 146.804 65.5918 147.744C65.7021 153.202 66.9393 158.624 69.2912 163.716C71.2389 167.929 73.8359 171.702 76.9718 174.938C75.6121 175.109 74.2646 175.182 72.8926 175.182C58.5973 175.182 45.5146 166.244 40.3575 152.934L4.49051 60.4217C-2.4428 42.5567 6.49946 22.396 24.433 15.4723L50.5982 5.39804C54.6406 3.8228 58.8668 3.04128 63.1542 3.04128C77.4618 3.04128 90.5322 11.9677 95.7015 25.2779L120.299 88.6906L120.385 88.9226L121.156 90.913L121.218 91.0595L131.581 117.79C132.414 119.939 133.014 122.113 133.381 124.311C133.406 124.384 133.418 124.457 133.43 124.53C133.553 125.19 133.639 125.861 133.7 126.533C133.7 126.594 133.712 126.643 133.712 126.704C135.133 140.039 128.629 153.214 116.918 160.163ZM135.697 125.165C135.317 122.43 134.619 119.683 133.577 117.008L123.765 91.7067C124.66 91.9632 125.554 92.244 126.436 92.5737L172.666 109.608L166.039 109.791L175.888 121.062L165.904 123.212L170.902 129.708H161.899L168.33 137.181L135.697 125.165Z" fill="white"/>
+ <path d="M488.077 306.123L422.933 212.255C415.84 202.035 404.252 195.831 391.819 195.55C388.193 192.314 383.893 189.701 379.018 187.906L332.347 170.713L332.151 170.64L320.771 170.957L329.198 180.592L318.639 182.875L325.034 191.191H316.802L323.417 198.872L356.38 211.01L348.847 216.212C339.145 222.903 333.449 233.222 332.31 244.078L302.004 232.917L307.259 242.576H293.846L297.888 252.406H286.643L291.126 260.355L344.694 280.088C345.221 280.284 345.735 280.467 346.262 280.626L404.13 364.016C411.406 374.481 423.374 380.733 436.15 380.733C444.076 380.733 451.707 378.352 458.249 373.846L478.228 360.072C486.766 354.174 492.499 345.321 494.361 335.137C496.223 324.94 493.993 314.646 488.077 306.123ZM324.678 197.052L321.469 193.328H329.37L322.388 184.255L333.192 181.923L325.377 172.972L331.795 172.789L378.271 189.909C382.092 191.313 385.535 193.255 388.548 195.611C381.48 196.039 374.706 198.371 368.826 202.425L358.536 209.52L324.678 197.052ZM345.429 278.086L344.168 277.622L292.609 258.621L290.306 254.543H301.085L297.043 244.713H310.861L306.598 236.885L332.138 246.288L334.245 247.069L354.237 254.433C356.932 255.422 359.749 255.397 362.273 254.53C362.971 254.311 363.632 254.018 364.269 253.651C366.695 252.32 368.667 250.147 369.696 247.375L374.179 235.359L386.012 227.19C387.495 226.176 389.148 225.651 390.924 225.651C392.296 225.651 395.751 226.017 398.091 229.388L401.447 234.223C401.226 235.078 400.969 235.921 400.675 236.775L393.497 256.106L393.142 257.022C390.14 264.507 385.02 270.49 378.748 274.52C378.148 274.911 377.536 275.289 376.911 275.631C368.287 280.504 357.777 281.896 347.61 278.806C346.887 278.599 346.152 278.354 345.429 278.086ZM362.432 246.544C362.665 245.226 363.461 242.747 366.033 240.976L371.092 237.484L367.687 246.63C366.829 248.95 365.176 250.745 363.142 251.844C362.101 249.683 362.224 247.656 362.432 246.544ZM402.366 238.424L402.709 237.471C402.819 237.142 402.929 236.824 403.027 236.495L463.234 323.255C465.023 325.819 464.888 328.42 464.643 329.739C464.398 331.058 463.614 333.525 461.042 335.307L441.062 349.082C439.58 350.107 437.926 350.62 436.15 350.62C434.778 350.62 431.312 350.266 428.972 346.884L379.973 276.279C386.588 272.005 391.966 265.704 395.138 257.803L402.366 238.424ZM492.254 334.746C490.49 344.38 485.075 352.745 477.003 358.313L457.024 372.088C450.85 376.349 443.635 378.596 436.15 378.596C424.072 378.596 412.766 372.698 405.894 362.807L349.496 281.529C352.534 282.25 355.584 282.592 358.598 282.592C365.519 282.592 372.256 280.76 378.136 277.39L427.208 348.105C430.136 352.305 434.435 352.757 436.15 352.757C438.367 352.757 440.425 352.11 442.275 350.84L462.254 337.066C465.464 334.843 466.456 331.766 466.75 330.118C467.044 328.481 467.228 325.245 464.998 322.046L403.774 233.808L402.084 231.378L399.854 228.166C396.939 223.966 392.639 223.514 390.924 223.514H390.912C388.695 223.514 386.637 224.161 384.787 225.431L375.478 231.854L372.403 233.979L364.808 239.218C361.599 241.428 360.619 244.517 360.313 246.154C360.068 247.533 359.908 250.012 361.158 252.65C359.198 253.224 357.042 253.187 354.984 252.43L334.38 244.847C335.323 234.394 340.738 224.405 350.06 217.97L358.83 211.913L360.986 210.424L370.039 204.184C376.213 199.934 383.44 197.675 390.912 197.675H390.961C392.039 197.675 393.117 197.724 394.171 197.822C405.012 198.774 414.934 204.477 421.169 213.476L486.313 307.344C491.898 315.391 494.005 325.123 492.254 334.746Z" fill="white"/>
+ <path d="M82.7096 239.196L95.6423 239.231L95.6325 242.957L82.7096 242.922V259.141H78.9108V242.912L65.5817 242.877L65.5925 239.151L78.9108 239.186V223.021H82.7096V239.196Z" fill="#C272FF"/>
+ <path d="M410.924 116.181L423.856 116.216L423.846 119.937L410.924 119.902V136.101H407.125V119.892L393.796 119.857L393.806 116.136L407.125 116.171V100.028H410.924V116.181Z" fill="#C272FF"/>
+ <path d="M62.4132 304.747C62.4132 303.479 61.387 302.452 60.1215 302.452C58.8559 302.452 57.8297 303.479 57.8297 304.747C57.8297 306.014 58.8559 307.041 60.1215 307.041V310.767C56.801 310.767 54.1093 308.072 54.1093 304.747C54.1093 301.422 56.801 298.727 60.1215 298.727C63.4419 298.727 66.1336 301.422 66.1336 304.747C66.1336 308.072 63.4419 310.767 60.1215 310.767V307.041C61.387 307.041 62.4132 306.014 62.4132 304.747Z" fill="#C272FF"/>
+ <path d="M359.727 133.175C363.047 133.175 365.739 135.87 365.739 139.195C365.739 142.52 363.047 145.215 359.727 145.215C356.406 145.215 353.715 142.52 353.715 139.195C353.715 135.87 356.406 133.175 359.727 133.175Z" fill="#C272FF"/>
+ <path d="M416.842 157.255C420.163 157.255 422.854 159.95 422.854 163.275C422.854 166.6 420.163 169.295 416.842 169.295C413.522 169.295 410.83 166.6 410.83 163.275C410.83 159.95 413.522 157.255 416.842 157.255Z" fill="#C272FF"/>
+ <path d="M101.492 281.67C101.492 280.403 100.466 279.375 99.2004 279.375C97.9348 279.375 96.9087 280.403 96.9087 281.67C96.9087 282.937 97.9348 283.965 99.2004 283.965V287.69C95.88 287.69 93.1883 284.995 93.1883 281.67C93.1883 278.345 95.88 275.65 99.2004 275.65C102.521 275.65 105.213 278.345 105.213 281.67C105.213 284.995 102.521 287.69 99.2004 287.69V283.965C100.466 283.965 101.492 282.937 101.492 281.67Z" fill="#C272FF"/>
+</svg>
=====================================
browser/components/abouttor/jar.mn
=====================================
@@ -8,3 +8,6 @@ browser.jar:
content/browser/abouttor/26a1-high-voltage.svg (content/26a1-high-voltage.svg)
content/browser/abouttor/2728-sparkles.svg (content/2728-sparkles.svg)
content/browser/abouttor/2764-red-heart.svg (content/2764-red-heart.svg)
+ content/browser/abouttor/yec-heart.svg (content/yec-heart.svg)
+ content/browser/abouttor/yec2025-image.svg (content/yec2025-image.svg)
+ content/browser/abouttor/yec2025-font.css (content/yec2025-font.css)
=====================================
toolkit/content/license.html
=====================================
@@ -98,6 +98,7 @@
<li><a href="about:license#harfbuzz">HarfBuzz License</a></li>
<li><a href="about:license#icu">ICU License</a></li>
<li><a href="about:license#immutable">Immutable.js License</a></li>
+ <li><a href="about:license#jacquard12">Jacquard 12 Font License</a></li>
<li><a href="about:license#jpnic">Japan Network Information Center License</a></li>
<li><a href="about:license#jszip">JSZip License</a></li>
<li><a href="about:license#jemalloc">jemalloc License</a></li>
@@ -2943,7 +2944,104 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</pre>
+ <hr>
+ <h1><a id="jacquard12"></a>Immutable.js License</h1>
+ <p>This license applies to embedded "Jacquard 12" font in <code>browser/components/abouttor/content/yec2025-font.css</code>.</p>
+<pre>
+Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jacquard)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+https://openfontlicense.org
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+</pre>
<hr>
<h1><a id="jpnic"></a>Japan Network Information Center License</h1>
=====================================
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
=====================================
@@ -724,3 +724,20 @@ 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
+
+## Year end campaign.
+
+yec-donate-button = Donate now
+# Here "Close" is a verb, referring to closing the banner.
+yec-close-button =
+ .title = Close
+
+## 2025 Year end campaign.
+
+# Here "Free" is a verb, as in "release" or "liberate".
+yec2025-title = Free the internet
+# The second sentence's translation should be wrapped in '<b data-l10n-name="highlight">' and '</b>', which will make the text green and bold.
+yec2025-body = Support tools that break the chains of censorship and surveillance. <b data-l10n-name="highlight">Donate to the Tor Project today.</b>
+# The end date should match the end of the year 2025.
+# The "$250,000" should be localised: it should be shown as USD (United States dollar) currency, but you may use numbers and formatting appropriate to your locale.
+yec2025-matching = Through December 31, your gift will be matched, up to $250,000!
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/fdb404…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/fdb404…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-140.3.0esr-15.0-1] 3 commits: fixup! Tor Browser strings
by morgan (@morgan) 17 Sep '25
by morgan (@morgan) 17 Sep '25
17 Sep '25
morgan pushed to branch tor-browser-140.3.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
7ed8428c by Henry Wilkes at 2025-09-16T18:08:38+01:00
fixup! Tor Browser strings
TB 44032: Add YEC strings.
These strings are likely to be used in future year end campaigns, so we
keep them separate from the 2025-specific strings.
- - - - -
4f94de34 by Henry Wilkes at 2025-09-17T10:45:46+01:00
fixup! TB 7494: Create local home page for TBB.
TB 44032: Implement the 2025 YEC banner.
This adds the 2025 year end campaign banner. We want to keep this beyond
the end of the campaign since next year's campaign is likely going to be
similar.
Assets specific to 2025 are in a separate commit.
- - - - -
6b51477c by Henry Wilkes at 2025-09-17T10:45:47+01:00
TB 44032: YEC 2025 assets.
Assets only needed for the 2025 Year end campaign.
- - - - -
12 changed files:
- browser/components/DesktopActorRegistry.sys.mjs
- browser/components/abouttor/AboutTorChild.sys.mjs
- browser/components/abouttor/AboutTorParent.sys.mjs
- browser/components/abouttor/content/aboutTor.css
- browser/components/abouttor/content/aboutTor.html
- browser/components/abouttor/content/aboutTor.js
- + browser/components/abouttor/content/yec-heart.svg
- + browser/components/abouttor/content/yec2025-font.css
- + browser/components/abouttor/content/yec2025-image.svg
- browser/components/abouttor/jar.mn
- toolkit/content/license.html
- toolkit/locales/en-US/toolkit/global/tor-browser.ftl
Changes:
=====================================
browser/components/DesktopActorRegistry.sys.mjs
=====================================
@@ -202,6 +202,7 @@ let JSWINDOWACTORS = {
L10nMutationsFinished: {},
SubmitSearchOnionize: { wantUntrusted: true },
SurveyDismissed: { wantUntrusted: true },
+ UserDismissedYEC: { wantUntrusted: true },
},
},
=====================================
browser/components/abouttor/AboutTorChild.sys.mjs
=====================================
@@ -26,6 +26,23 @@ export class AboutTorChild extends JSWindowActorChild {
new this.contentWindow.CustomEvent("L10nMutationsFinished")
);
break;
+ case "UserDismissedYEC":
+ // YEC banner was closed. Persist this for the rest of this session.
+ // See tor-browser#42188.
+ this.sendAsyncMessage("AboutTor:UserDismissedYEC");
+ break;
+ }
+ }
+
+ receiveMessage(message) {
+ switch (message.name) {
+ case "AboutTor:DismissYEC": {
+ this.contentWindow.dispatchEvent(
+ new this.contentWindow.CustomEvent("DismissYEC")
+ );
+ break;
+ }
}
+ return undefined;
}
}
=====================================
browser/components/abouttor/AboutTorParent.sys.mjs
=====================================
@@ -7,16 +7,37 @@ ChromeUtils.defineESModuleGetters(lazy, {
TorConnect: "resource://gre/modules/TorConnect.sys.mjs",
});
+const initializedActors = new Set();
+
/**
* Actor parent class for the about:tor page.
*/
export class AboutTorParent extends JSWindowActorParent {
+ /*
+ * Whether the user has dismissed the Year End Campaign (YEC) banner this
+ * session.
+ *
+ * @type {boolean}
+ */
+ static #dismissYEC = false;
+
+ didDestroy() {
+ initializedActors.delete(this);
+ }
+
receiveMessage(message) {
const onionizePref = "torbrowser.homepage.search.onionize";
const surveyDismissVersionPref =
"torbrowser.homepage.survey.dismiss_version";
switch (message.name) {
- case "AboutTor:GetInitialData":
+ case "AboutTor:GetInitialData": {
+ // Track this actor to send future updates.
+ initializedActors.add(this);
+
+ let appLocale = Services.locale.appLocaleAsBCP47;
+ if (appLocale === "ja-JP-macos") {
+ appLocale = "ja";
+ }
return Promise.resolve({
torConnectEnabled: lazy.TorConnect.enabled,
messageData: lazy.AboutTorMessage.getNext(),
@@ -26,8 +47,10 @@ export class AboutTorParent extends JSWindowActorParent {
surveyDismissVersionPref,
0
),
- appLocale: Services.locale.appLocaleAsBCP47,
+ appLocale,
+ dismissYEC: AboutTorParent.#dismissYEC,
});
+ }
case "AboutTor:SetSearchOnionize":
Services.prefs.setBoolPref(onionizePref, message.data);
break;
@@ -43,6 +66,23 @@ export class AboutTorParent extends JSWindowActorParent {
// the version value to decrease.
Services.prefs.setIntPref(surveyDismissVersionPref, message.data);
break;
+ case "AboutTor:UserDismissedYEC":
+ AboutTorParent.#dismissYEC = true;
+ for (const actor of initializedActors) {
+ if (actor === this) {
+ // Don't send to ourselves.
+ continue;
+ }
+ // Tell all existing instances to also close the banner, if they still
+ // exist.
+ // NOTE: If the user's new tab page is `about:tor`, this may include
+ // some preloaded pages that have not been made visible yet (see
+ // NewTabPagePreloading).
+ try {
+ actor.sendAsyncMessage("AboutTor:DismissYEC");
+ } catch {}
+ }
+ break;
}
return undefined;
}
=====================================
browser/components/abouttor/content/aboutTor.css
=====================================
@@ -326,3 +326,209 @@ body:not(.show-survey) #survey {
--in-content-primary-button-background-active: var(--tor-button-background-color-active-dark);
}
}
+
+/* Year End Campaign (YEC). */
+body:not(.show-yec) #yec-banner {
+ display: none;
+}
+
+body.show-yec h1 {
+ /* Text of heading is still available to screen readers, but it does not
+ * contribute visually to the page or the body grid layout. */
+ position: absolute;
+ clip-path: inset(50%);
+}
+
+#yec-banner {
+ grid-area: heading;
+ border-radius: 8px;
+ border: 1px solid var(--in-content-box-border-color);
+ display: grid;
+ grid-template:
+ "yec-heading yec-image" auto
+ "yec-body yec-image" auto
+ "yec-matching yec-image" auto
+ "yec-donate yec-image" min-content
+ / 1fr min-content;
+ --yec-image-background: #1f0333;
+ /* Remove 1px from padding for border. */
+ padding-block: 55px 55px;
+ padding-inline: 47px 47px;
+ box-sizing: border-box;
+ max-width: 850px;
+ margin-block-end: 40px;
+ /* Position for the close button. */
+ position: relative;
+ gap: 0 24px;
+}
+
+#yec-image {
+ grid-area: yec-image;
+ align-self: center;
+ /* Center horizontally for small width layout. */
+ justify-self: center;
+ /* background color, padding and border radius only stands out when using a
+ * contrast or forced color theme. */
+ background-color: var(--yec-image-background);
+ border-radius: 8px;
+ padding: 4px;
+ height: 196px;
+ border: 1px solid transparent;
+ /* Remove border and padding from the layout size. These parts are only
+ * visible in contrast or forced color themes. */
+ margin: -5px;
+ /* Do not let forced colors ignore the background-color, which is needed to
+ * see the drawing. */
+ forced-color-adjust: none;
+}
+
+#yec-image:dir(rtl) {
+ transform: scaleX(-1);
+}
+
+#yec-heading {
+ grid-area: yec-heading;
+ margin-block: 0 16px;
+ font-size: 64px;
+ font-weight: 400;
+ font-family: "Jacquard 12", serif;
+}
+
+#yec-heading.all-jacquard12-chars {
+ /* All characters are supported by Jacquard 12.
+ * These have a high natural line-height. */
+ line-height: 1.0;
+}
+
+#yec-body {
+ grid-area: yec-body;
+ margin-block: 0 12px;
+}
+
+#yec-body-highlight {
+ font-weight: 600;
+}
+
+#yec-matching {
+ grid-area: yec-matching;
+ margin-block: 0 32px;
+}
+
+#yec-donate-link {
+ grid-area: yec-donate;
+ justify-self: start;
+ /* Style like a button. */
+ font-weight: var(--button-font-weight);
+ 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);
+ padding: var(--button-padding);
+ box-sizing: border-box;
+ min-height: var(--button-min-height);
+ text-decoration: none;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ white-space: nowrap;
+}
+
+#yec-donate-link > * {
+ flex: 0 0 auto;
+}
+
+#yec-donate-link:hover {
+ background-color: var(--in-content-button-background-hover);
+ color: var(--in-content-button-text-color-hover);
+ border-color: var(--in-content-button-border-color-hover);
+}
+
+#yec-donate-link:hover:active {
+ background-color: var(--in-content-button-background-active);
+ color: var(--in-content-button-text-color-active);
+ border-color: var(--in-content-button-border-color-active);
+}
+
+#yec-donate-icon {
+ -moz-context-properties: fill;
+ fill: currentColor;
+}
+
+#yec-close {
+ position: absolute;
+ inset-block-start: 16px;
+ inset-inline-end: 16px;
+}
+
+@media (max-width: 768px) {
+ /* Small width layout. */
+ #yec-banner {
+ grid-template:
+ "yec-image" min-content
+ "yec-heading" auto
+ "yec-body" auto
+ "yec-matching" auto
+ "yec-donate" min-content
+ / 1fr;
+ padding-block: 31px 39px;
+ padding-inline: 15px;
+ /* Match max-width of the form. */
+ max-width: var(--form-max-width);
+ margin-block-end: 32px;
+ }
+
+ #yec-image {
+ height: 156px;
+ }
+
+ #yec-heading {
+ margin-block-start: 16px;
+ text-align: center;
+ text-wrap-style: balance;
+ }
+
+ #yec-heading {
+ font-size: 3.5rem;
+ }
+
+ #yec-matching {
+ margin-block-end: 16px;
+ }
+
+ #yec-donate-link {
+ justify-self: center;
+ }
+}
+
+@media ((prefers-contrast) or (forced-colors)) and (prefers-color-scheme: dark) {
+ #yec-image {
+ /* Give the dark image a light border to separate from background. */
+ border-color: var(--in-content-box-border-color);
+ }
+}
+
+@media not ((prefers-contrast) or (forced-colors)) {
+ #yec-banner {
+ border-color: transparent;
+ background-color: var(--yec-image-background);
+ --yec-text: #ffffff;
+ --yec-button-background: #b6e368;
+ --yec-button-background-hover: #d2f2a1;
+ --yec-button-background-active: #ecfcd8;
+ --yec-button-text: #15141A;
+ color: var(--yec-text);
+ }
+
+ #yec-body-highlight {
+ color: var(--yec-button-background);
+ }
+
+ #yec-donate-link {
+ --in-content-button-text-color: var(--yec-button-text);
+ --in-content-button-text-color-hover: var(--yec-button-text);
+ --in-content-button-text-color-active: var(--yec-button-text);
+ --in-content-button-background: var(--yec-button-background);
+ --in-content-button-background-hover: var(--yec-button-background-hover);
+ --in-content-button-background-active: var(--yec-button-background-active);
+ }
+}
=====================================
browser/components/abouttor/content/aboutTor.html
=====================================
@@ -4,7 +4,7 @@
<head>
<meta
http-equiv="Content-Security-Policy"
- content="default-src chrome:; object-src 'none'"
+ content="default-src chrome:; font-src data:; object-src 'none'"
/>
<title data-l10n-id="newtab-page-title"></title>
<link
@@ -18,6 +18,10 @@
rel="stylesheet"
href="chrome://browser/content/abouttor/aboutTor.css"
/>
+ <link
+ rel="stylesheet"
+ href="chrome://browser/content/abouttor/yec2025-font.css"
+ />
<link rel="localization" href="browser/newtab/newtab.ftl" />
<link rel="localization" href="toolkit/global/tor-browser.ftl" />
@@ -33,6 +37,35 @@
<script src="chrome://browser/content/abouttor/aboutTor.js"></script>
</head>
<body class="onion-pattern-background">
+ <!-- Year End Campaign (YEC). -->
+ <article id="yec-banner" aria-labelledby="yec-heading">
+ <img
+ id="yec-image"
+ alt=""
+ src="chrome://browser/content/abouttor/yec2025-image.svg"
+ />
+ <h2 id="yec-heading" data-l10n-id="yec2025-title"></h2>
+ <p id="yec-body" data-l10n-id="yec2025-body">
+ <b id="yec-body-highlight" data-l10n-name="highlight"></b>
+ </p>
+ <p id="yec-matching" data-l10n-id="yec2025-matching"></p>
+ <a id="yec-donate-link">
+ <span data-l10n-id="yec-donate-button"></span>
+ <img
+ id="yec-donate-icon"
+ alt=""
+ src="chrome://browser/content/abouttor/yec-heart.svg"
+ />
+ </a>
+ <moz-button
+ id="yec-close"
+ type="icon ghost"
+ class="close"
+ size="16"
+ iconSrc="chrome://global/skin/icons/close.svg"
+ data-l10n-id="yec-close-button"
+ ></moz-button>
+ </article>
<h1>
<img
id="tor-browser-logo"
=====================================
browser/components/abouttor/content/aboutTor.js
=====================================
@@ -150,20 +150,6 @@ const MessageArea = {
"shown-message"
);
}
-
- // In the case where we set the update message, we are still waiting for the
- // l10n message to complete. We wait until then before showing the content.
- if (document.hasPendingL10nMutations) {
- window.addEventListener(
- "L10nMutationsFinished",
- () => {
- document.body.classList.add("initialized");
- },
- { once: true }
- );
- } else {
- document.body.classList.add("initialized");
- }
},
};
@@ -185,16 +171,16 @@ const SurveyArea = {
/**
* The date to start showing the survey.
*
- * @type {integer}
+ * @type {?integer}
*/
- _startDate: Date.UTC(2025, 3, 14, 12), // 2025 April 14th, 12:00.
+ _startDate: null, // No survey date.
/**
* The date to stop showing the current survey.
*
- * @type {integer}
+ * @type {?integer}
*/
- _endDate: Date.UTC(2025, 3, 28), // 2025 April 28th, 00:00.
+ _endDate: null, // No survey date.
/**
* The survey URL.
@@ -293,10 +279,41 @@ const SurveyArea = {
},
],
+ /**
+ * Whether the area has been initialised.
+ *
+ * @type {boolean}
+ */
+ _initialized: false,
+
+ /**
+ * The app locale, or `null` whilst unset.
+ *
+ * @type {?string}
+ */
+ _locale: null,
+
+ /**
+ * Whether the banner should be shown.
+ *
+ * @type {boolean}
+ */
+ _shouldShow: false,
+
+ /**
+ * The survey element.
+ *
+ * @type {?Element}
+ */
+ _areaEl: null,
+
/**
* Initialize the survey area.
*/
init() {
+ this._initialized = true;
+
+ this._areaEl = document.getElementById("survey");
document.getElementById("survey-launch").addEventListener("click", () => {
const url = URL.parse(this._urlBase);
if (!url || !this._localeData) {
@@ -312,15 +329,16 @@ const SurveyArea = {
document.getElementById("survey-dismiss").addEventListener("click", () => {
this._hide();
});
+
+ this._update();
},
/**
* Permanently hide this survey.
*/
_hide() {
- document.body.classList.remove("show-survey");
- // Move focus to the search input.
- document.getElementById("search-input").focus();
+ this._shouldShow = false;
+ this._update();
dispatchEvent(
new CustomEvent("SurveyDismissed", {
@@ -344,14 +362,29 @@ const SurveyArea = {
*/
potentiallyShow(dismissVersion, isStable, appLocale) {
const now = Date.now();
- if (
- now < this._startDate ||
- now >= this._endDate ||
- // The user has already dismissed this version of the survey before:
- dismissVersion >= this._version ||
- !isStable
- ) {
- // Don't show the survey.
+ this._shouldShow =
+ isStable &&
+ dismissVersion < this._version &&
+ this._startDate &&
+ now >= this._startDate &&
+ now < this._endDate;
+ this._locale = appLocale;
+ this._update();
+ },
+
+ /**
+ * Update the display.
+ */
+ _update() {
+ if (!this._initialized) {
+ return;
+ }
+ if (!this._shouldShow) {
+ if (this._areaEl.contains(document.activeElement)) {
+ // Move focus to the search input.
+ document.getElementById("search-input").focus();
+ }
+ document.body.classList.remove("show-survey");
return;
}
@@ -361,7 +394,7 @@ const SurveyArea = {
// match the languages that the survey itself supports. This should match
// the language of the survey when it is opened by the user.
for (const localeData of this._localeDataSet) {
- if (localeData.browserLocales.includes(appLocale)) {
+ if (localeData.browserLocales.includes(this._locale)) {
this._localeData = localeData;
break;
}
@@ -388,10 +421,152 @@ const SurveyArea = {
},
};
+/**
+ * Area for the Year End Campaign (YEC).
+ * See tor-browser#42072.
+ */
+const YecArea = {
+ /**
+ * The epoch time to start showing the banner, if at all.
+ *
+ * @type {?integer}
+ */
+ _startDate: Date.UTC(2025, 9, 14, 15), // 2025 October 14th 15:00 UTC.
+
+ /**
+ * The epoch time to stop showing the banner, if at all.
+ *
+ * @type {?integer}
+ */
+ _endDate: Date.UTC(2026, 0, 2, 0), // 2026 January 2nd 0:00 UTC.
+
+ /**
+ * Whether the area has been initialised.
+ *
+ * @type {boolean}
+ */
+ _initialized: false,
+
+ /**
+ * The app locale, or `null` whilst unset.
+ *
+ * @type {?string}
+ */
+ _locale: null,
+
+ /**
+ * Whether the banner should be shown.
+ *
+ * @type {boolean}
+ */
+ _shouldShow: false,
+
+ /**
+ * The banner element.
+ *
+ * @type {?Element}
+ */
+ _areaEl: null,
+
+ /**
+ * Initialize the widget.
+ */
+ init() {
+ this._initialized = true;
+
+ this._areaEl = document.getElementById("yec-banner");
+
+ document.getElementById("yec-close").addEventListener("click", () => {
+ this.dismiss();
+ dispatchEvent(new CustomEvent("UserDismissedYEC", { bubbles: true }));
+ });
+
+ this._update();
+ },
+
+ /**
+ * Close the banner.
+ */
+ dismiss() {
+ this._shouldShow = false;
+ this._update();
+ },
+
+ /**
+ * Possibly show the banner.
+ *
+ * @param {boolean} dismissYEC - Whether the user has dismissed YEC.
+ * @param {boolean} isStable - Whether this is a stable release.
+ * @param {string} appLocale - The app locale, as BCP47.
+ */
+ potentiallyShow(dismissYEC, isStable, appLocale) {
+ const now = Date.now();
+ this._shouldShow =
+ !dismissYEC &&
+ isStable &&
+ this._startDate &&
+ now >= this._startDate &&
+ now < this._endDate;
+ this._locale = appLocale;
+ this._update();
+ },
+
+ /**
+ * Update the visibility of the banner to reflect the new state.
+ */
+ _update() {
+ if (!this._initialized) {
+ return;
+ }
+ if (!this._shouldShow) {
+ if (this._areaEl.contains(document.activeElement)) {
+ document.documentElement.focus();
+ }
+ document.body.classList.remove("show-yec");
+ return;
+ }
+
+ const donateLink = document.getElementById("yec-donate-link");
+ const base = "https://www.torproject.org/donate";
+ const locale = this._locale;
+ donateLink.href = locale ? `${base}/donate-${locale}-yec2025` : base;
+
+ if (!this._addedHeadingCharObserver) {
+ // Observer to determine whether the heading contains Jacquard 12
+ // supported characters.
+ this._addedHeadingCharObserver = true;
+ const headingEl = document.getElementById("yec-heading");
+ const measure = () => {
+ const jacquard12Charset =
+ // eslint does not like the range \u{300}-\u{304} and onward, which
+ // are combining characters. But we want to detect the combining
+ // characters as individual characters.
+ // eslint-disable-next-line no-misleading-character-class
+ /^[\u{20}-\u{7e}\u{a0}-\u{a3}\u{a5}\u{a7}-\u{ab}\u{ae}-\u{b0}\u{b4}\u{b6}-\u{b8}\u{ba}-\u{bb}\u{bf}-\u{107}\u{10a}-\u{113}\u{116}-\u{11b}\u{11e}-\u{123}\u{126}-\u{127}\u{12a}-\u{12b}\u{12e}-\u{133}\u{136}-\u{137}\u{139}-\u{13e}\u{141}-\u{148}\u{14a}-\u{14d}\u{150}-\u{15b}\u{15e}-\u{161}\u{164}-\u{165}\u{16a}-\u{17e}\u{218}-\u{21b}\u{237}\u{2c6}-\u{2c7}\u{2d8}-\u{2dd}\u{300}-\u{304}\u{306}-\u{308}\u{30a}-\u{30c}\u{312}\u{326}-\u{328}\u{1e80}-\u{1e85}\u{1e9e}\u{1ef2}-\u{1ef3}\u{200a}\u{2013}-\u{2014}\u{2018}-\u{201a}\u{201c}-\u{201e}\u{2022}\u{2026}\u{2039}-\u{203a}\u{20ac}\u{2122}\u{2212}]+$/u;
+ headingEl.classList.toggle(
+ "all-jacquard12-chars",
+ jacquard12Charset.test(headingEl.textContent)
+ );
+ };
+
+ const headingObserver = new MutationObserver(measure);
+ headingObserver.observe(headingEl, {
+ subtree: true,
+ childList: true,
+ characterData: true,
+ });
+ measure();
+ }
+
+ document.body.classList.add("show-yec");
+ },
+};
+
window.addEventListener("DOMContentLoaded", () => {
SearchWidget.init();
MessageArea.init();
SurveyArea.init();
+ YecArea.init();
});
window.addEventListener("InitialData", event => {
@@ -402,8 +577,28 @@ window.addEventListener("InitialData", event => {
messageData,
surveyDismissVersion,
appLocale,
+ dismissYEC,
} = event.detail;
SearchWidget.setOnionizeState(!!searchOnionize);
MessageArea.setMessageData(messageData, !!isStable, !!torConnectEnabled);
SurveyArea.potentiallyShow(surveyDismissVersion, isStable, appLocale);
+ YecArea.potentiallyShow(dismissYEC, isStable, appLocale);
+
+ // Wait to show the content when the l10n population has completed.
+ if (document.hasPendingL10nMutations) {
+ window.addEventListener(
+ "L10nMutationsFinished",
+ () => {
+ document.body.classList.add("initialized");
+ },
+ { once: true }
+ );
+ } else {
+ document.body.classList.add("initialized");
+ }
+});
+
+window.addEventListener("DismissYEC", () => {
+ // User closed the banner in another about:tor instance.
+ YecArea.dismiss();
});
=====================================
browser/components/abouttor/content/yec-heart.svg
=====================================
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="context-fill" xmlns="http://www.w3.org/2000/svg">
+ <path d="M8 6C8 6 8 2 11.5 2C15 2 15 5 15 6C15 10.5 8 15 8 15V6Z"/>
+ <path d="M8 6C8 6 8 2 4.5 2C1 2 1 5 1 6C1 10.5 8 15 8 15L9 9L8 6Z"/>
+</svg>
=====================================
browser/components/abouttor/content/yec2025-font.css
=====================================
@@ -0,0 +1,105 @@
+/**
+ * The embedded "Jacquard 12" font is under the following license:
+ *
+ * Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jacquard)
+ *
+ * This Font Software is licensed under the SIL Open Font License, Version 1.1.
+ * This license is copied below, and is also available with a FAQ at:
+ * https://openfontlicense.org
+ *
+ *
+ * -----------------------------------------------------------
+ * SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ * -----------------------------------------------------------
+ *
+ * PREAMBLE
+ * The goals of the Open Font License (OFL) are to stimulate worldwide
+ * development of collaborative font projects, to support the font creation
+ * efforts of academic and linguistic communities, and to provide a free and
+ * open framework in which fonts may be shared and improved in partnership
+ * with others.
+ *
+ * The OFL allows the licensed fonts to be used, studied, modified and
+ * redistributed freely as long as they are not sold by themselves. The
+ * fonts, including any derivative works, can be bundled, embedded,
+ * redistributed and/or sold with any software provided that any reserved
+ * names are not used by derivative works. The fonts and derivatives,
+ * however, cannot be released under any other type of license. The
+ * requirement for fonts to remain under this license does not apply
+ * to any document created using the fonts or their derivatives.
+ *
+ * DEFINITIONS
+ * "Font Software" refers to the set of files released by the Copyright
+ * Holder(s) under this license and clearly marked as such. This may
+ * include source files, build scripts and documentation.
+ *
+ * "Reserved Font Name" refers to any names specified as such after the
+ * copyright statement(s).
+ *
+ * "Original Version" refers to the collection of Font Software components as
+ * distributed by the Copyright Holder(s).
+ *
+ * "Modified Version" refers to any derivative made by adding to, deleting,
+ * or substituting -- in part or in whole -- any of the components of the
+ * Original Version, by changing formats or by porting the Font Software to a
+ * new environment.
+ *
+ * "Author" refers to any designer, engineer, programmer, technical
+ * writer or other person who contributed to the Font Software.
+ *
+ * PERMISSION & CONDITIONS
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Font Software, to use, study, copy, merge, embed, modify,
+ * redistribute, and sell modified and unmodified copies of the Font
+ * Software, subject to the following conditions:
+ *
+ * 1) Neither the Font Software nor any of its individual components,
+ * in Original or Modified Versions, may be sold by itself.
+ *
+ * 2) Original or Modified Versions of the Font Software may be bundled,
+ * redistributed and/or sold with any software, provided that each copy
+ * contains the above copyright notice and this license. These can be
+ * included either as stand-alone text files, human-readable headers or
+ * in the appropriate machine-readable metadata fields within text or
+ * binary files as long as those fields can be easily viewed by the user.
+ *
+ * 3) No Modified Version of the Font Software may use the Reserved Font
+ * Name(s) unless explicit written permission is granted by the corresponding
+ * Copyright Holder. This restriction only applies to the primary font name as
+ * presented to the users.
+ *
+ * 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+ * Software shall not be used to promote, endorse or advertise any
+ * Modified Version, except to acknowledge the contribution(s) of the
+ * Copyright Holder(s) and the Author(s) or with their explicit written
+ * permission.
+ *
+ * 5) The Font Software, modified or unmodified, in part or in whole,
+ * must be distributed entirely under this license, and must not be
+ * distributed under any other license. The requirement for fonts to
+ * remain under this license does not apply to any document created
+ * using the Font Software.
+ *
+ * TERMINATION
+ * This license becomes null and void if any of the above conditions are
+ * not met.
+ *
+ * DISCLAIMER
+ * THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ * DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ * OTHER DEALINGS IN THE FONT SOFTWARE.
+ */
+
+@font-face {
+ font-family: "Jacquard 12";
+ font-weight: 400 400;
+ font-style: normal;
+ /* woff2 stream */
+ src: url("data:font/woff2;base64,d09GMgABAAAAAG0wABEAAAABv5gAAGzMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoFAG40gHIgABmAAh34IPgmcDBEICoaYIIXiXwuFOgABNgIkA4puBCAFhzAHjkYMgSdb86BxgO1qA3QbCCBaRTo7H1EEGwfMYngTFcd1txOQ1LbOTFRVzUkqcpi0nmYbPnAPxFWGm7sHKd2EBkWGApNoFZqKNwiGITiz7Vw9EH15YphacEhGd4nOQdorMs/DwYWVzeo0+GYP9OihTiVqQ5XsS9yZYrHj4l/s+GQFl1KPYmuBEy+UfSN9zos5azrqObOWKVbu5n+0o/KnBOU2HcpcGmL9TlR9X7vhj7XsQtVwtVbS06p12D9jpwmTV0yIngvesC8Dyrj1QCPtOnLlyRf+AX6bf+57iA6xMIoxnFFYjbqKYJG6rHb7FcWPKqWoFrNnH5AIylMHGoURaCSREbFonYp0MSI6PMC7Gb4TjR6QEPiIntpYW6b+aes6thUWAhr6vbqSm2rukq83qdZyCB3SMWmC0lJRb1Grq758DM/Xfq/n0SJ82iQFctWd6Bpz4d+rqMsT8UVElNJKaa2MNcYc1h5O+//nZn8fEoGCVzwVMdopjxKqaICKxxBLJyUjbpuV6dl/3a3/8ps5NWvhdMJij5csuVD25XgBrtVe9e/AZWYXZM+8758kD1QsJSCjVFLL/+qs/tdA2HYmdmKzJMsyBl6/4HcVAGQWtcwHBB0gltfe1YRNdRDiWmUCLS8dkHulquRD0OZSIHXu8Tnicf6baj5/bpgQGUVJa/+Y+1/0Dh23o4B9wLBcC70wjX041e5OzvJYiceUtlfaIvS40FAF8GH86l3/atcmvAEyXK0JR0kZeE5wDRvC2WeikQm7DbjXhArxKITdwTWyNoRSCHv+A0qg2ttLm7ar06EJw7ooOoNkogBtHoCN0/83pb9rQtMHAuY0Ll2DiI0mGtTkWxsmpu0v07fwGw0SyEwAwZBekDSTd52vPlwk+0Y5chybR5fqvvUc/v//fVWrffc/QADECaAjNZvoQmexmZ4tGlL2pljNTlFutxm4738+4n8AXwTA9CFG2PSIMGURgBPpgA98/M9kiZJsSk5Jkp050SGSiuBEyZOkjeTmydJslfLEVG0KXSrTpzfxbCVtpZLcakoX9W637ZbbNS5n237qZv9XzbIlZpSdtHe5c0ili/JC7tx1pw+AfwUQxNsJ0nszChdSNkEwgCAnaEbZMVQptC7dNq7LcadyS5fWMdyHov1okz2//0+adbqPGc6oqqiIiOhG1Rhzn/736TsxXkl6pDvS48pCMNpDNf6aqnnCCGM80/9r2/+5wGAlMUVNNOiPXOzUt4wtiogrYiNsFITZ9///mFbPTH4m1+rs280k2GJpgCDtI6LZu//X1Gj9yT6vWwOIAxT2Z72em40wCOXrf3+uYpCACEaEcCHckok0ZUSFjkQ3/YgBxhDj+IjJFhPLWI1Yy1rEerYjdrIHcYCjiOOcQJziEuIKNxC3uAdxH/chHuZpxLO8iXib9xEf8hVSUkmk5JJJJfVgIgQEYSCV1AoIsEnTjtHusX8+Fzr1s/wWigWgqQkDEMaUL/Ut7ufDBlbM0cEEDbRYU7aFLccm/FgggpDG+RAphZ1hnj+6jM08mTnVvJaHkRdzJPrOsPemAon3DfH1mCvsL8NpvIws16syeeB0wiB40sDx0QRD1MB8cRQpkzxvmkHLaCvonpitz1SUoRrBylK9GHKrV6rFrSYaPMTwVjAf51jerh45wZd/pVw4ffszcirmgPDTsi2xuGn8xsm2omeJzeMv5y8nNfKdMRtORn2RClo18gNiYU6FdFoYTHBQ6/TB7nLPZhd+0vhJbMETk3+G4EvItEd4SiTBBJfH4JqqQCGbOovZTySNoU7anKbRLJpPC2kVbUU70k60Nx1Bx/adzg7UlOrlUFi9plotb4eiYUDprch8foKN6d9l7Nc368bq7/es3j7ufFXP7z+ph3MaJFk19zJACyD/sdSQTja+CoZPDg/84fs/v3zyvg6TvSDk1BbgeJnUOSLmcW53usUSDeuolu6mbstoAMXT0p+8flhqOOOWcgarqE84HTPtPBjUbhB//ThdSvNbhibRItqGdqWD6HA6k86l8+hyuppupJvpHnqQnqAn6SV6N32APq08cyOooSUhvNvUplrXprYMghCE7YtLHOz+6htI3f/jLEuwHnbCLXgIHhfvqBNPy+5c/5hLGUXbdoCRa6sSuXzbzy3LdVXb3u4xWLEaDrKdHi6G2mjCxyjvV9bYzeYw3hgIIKkVGVdkIHp+OzoMgT2d4kcXynD4KmIa2BbF4hFEC4pYgNWKsnQ+NT3jgFQ68wltwgC00EAjeEXsFUvBFOLQ9sLBbKsxezwTpVf1uDaX125pvgpLKYa3eZKlhkkjpd/bBi7ssqpd7etQxzrVuS51rVvd68HAUIACQCXVkjAzFAtf8lUqF5ZUrTq3HKUMUtheAcjFu7Qr4VEkat3qrjghIeqq7b/mFzC7uBODfKexkglhM1EcwtY8Jz2ED26tEErWyMh93TE4kPjCAaxYw51sW2KwIimSqnKwn3gObQHBOshnfrbs66lO6xcEBOJ0QoqzPhz42ghf5YUdJL+vc5VOrBHmTAOHM/eUAAzUPhv9Gg42OwDCt7TBceZ+TmIlPE7FrhEmJ7KIAoVP9sDpdPDbhbEc+/npVUI7StPyDLbOcnW+aL7MLV/RL5Uf4fTonl6+qUU0Ik+tvur8/vje4ikFqKTSyiqvosqq8lZdTbUsRu+2EwBm0fwGjKzvXfdQmNuz8jjM8Mwu8JecPwgP4x5O5sONr4P5n/EysAtA/tbrZrACZioKE2G5xfzmv/JRWgnALU+FpU5xhktcp4G7uU+BilSikksvu6LKqqlT3Rva6Ma3dBKNsnnK+MC0mEGm3XSYGec1rqOuX91W5i7djXtYaatyXU66nm5qAtzyVTrOGc5xlQbucC8PyVaMXEorq9xKq6h1XerViMY1eeKMsnnSeNvEtJq2zWGmnZe7jrp+cVup++CuTKpXRO/huXQN39SjnNU4tXFr681tTHR/fFcf/9f+3wE7PvS/7qdDabFfHyUgRoHFWUBBCgc5FKM4nde9elwv6mW9qvf1ob7SH/rPcBhxRoLRZqMAjHZGD2OAMQRgW2aMwTtqJD38/PuNf0uUoXTGc8mpYNklZfuvQP6QyV/8XUF5Dfu/5ghksBPCQQwtcEuRJk+BIuUq1Oqsq256GWCwscaZZLIZhcmicBVlq7c6S6F2mbmeHexkr0lxOr6XucItHvgfBh7mcZ7lBd7ibT7gQz5VSKmFqtDv/Ke0MnMf9SzJl4pVywaXUguaNMRXiqMRKwYWbAJoJphwnMQSTwIeGTJliaRaW6201lGbcnQwwhDDDDdFF88wX725FptnkSVWspUNbGIzRznIIQ6zhhvcRQO3uY87ynUvr/IiL/MKH/EgHxPIAiZzBLFQKMuJYBVhrCCKtUSzjuZsI5EtuNhOHBtJsotke2hpN6n2keM4uU6Q7QDpjlHoLMXOU+oiJS5Q5hKVruJ1nSrXqHGT9u6hnbvp5H66e4SeHqOHR+ntCX89PPp4koGeY5TXGeolxniTkV5jtDeY4F2m8jPNTJ8x2xfM8jn9PM0gz2tAvRrY0AbV10HkyovjD8+8lVZSdRVV8Xmf8d5hoveY7hNFK0YRilSUHNjzXNrLa74MDeTn4+U9+K8J5IemG7Ivm//JEAwIn+KGAXsPkHy3R+fDr8i+XFctTVE+RTKVHz3wYDHSoYSO8I1Aut4DAqXQEg1FmrZkRp26lpbB+NrKF+ByjTlCSqGyPIWqFomMzmdgXJLRWh6Tv531jDFKgeFkJaT07ZMFvFwRoY+GPoe59lRKeBsn1heRTUp4H0uzQFH7ZaQoMb2xIsbgw1vy6FdfnU/QxmiDzqPoaCk7/R0n+sr6K/j2+D94HqMcN84em6FCZx6zqiSMf0Roy21u8rAWpijr2ZsEwVSUBV0OGsKQDPdtamZyzRTjNCK8j4QXDKA5TgJhN333RX5Iw4Kr48GGueRi42xEbWYEsR8LFkmDtbQNNkCu8hh06TjSlYGeDBK6LTlt6djcr4nuqe48gAF1DokOWAmM+rdO2nXX0UwoxwFfo67tZUUencR0LLNTi2rOwPOzSNTiGkmeHbV0DX1qemC+Jt7avgwKQjpVJptPiYtmunWv+QYK903S6IHDvC+QtfNkEEvr+e4C0/tJoI0wcNFDYvpoCsVHakGtrQ5ylQq9RWaMLR6FLa/4v+1yfW61ZlpqKLQ+zWgSQ9TzQAhQsCBJ1GpP14k4WI+OoxPpbOD4AilTGXvE5WiVlmlDnEJL0e4ggVePDMY0Bt4r6ZCRTIxpy+wJDxwWRWZmKKFMbV2mi+ges2bvPFa+XLdnTKx0ttblimecxL2zTb2EnuZ886ZCli4my2aJOAvMaNOrh6lQU3eQvgCxKEFLJbnaMJ1chbIWU3em605na5sh4SEscLH92sYUbTGNQCOPx4z4cdoKkJPrRCKc9oi4m7GCmbsB9ug8MisDNpiUgQlJnAak+3IZIQM5uAzBCST/2MRZzXua/7Xsb3XBoqlQ0C1LTwFJWWBkQ7DIpsDJlmCTbcEhO4JLdgWP7Al+m/YagknpTPfOo+I58deC8bvBhsFVdPyt3nBFjn8vNuHnrlPa1DOIs9sNgs5ECEHAPgiQIOAABCgQEIGACgiogoAaCKiDSDY9uqglrbTE8hRrcshrfsWZKDfTdmXbD3Q0bA3SKR0PbBUOaJfmj/pwN84liwNIV1x31aTzKOmmuu4Mqo2FR/HlNlTt2cggX7Lv8U751oGfgxEeidWIWp3CtJJQvAcAgKtv+rH25wvmvliGHh22TGgmkPW7h2nkn+fHLcfsK4nNwMwFJ74yKCo8NxpBLpgX7JT1Ez16MuJQnrwXlKEfz2MhX1d9Dz2heF1a67k6GWtzjcPfY8aomZSmAl0ZYwVHcTwfcyWdYm0PDZw+V0qen8RrLpaF3PFoefNbeNqmAkKRvVbqZtioQ3NWTk888TvT43BKY6VNeRw6OWX5yumYt19LVggmi3QzfxTJgDa/a8UCErTJhCKkz9U6Z0WP3L6tMu2RNfJIEkEFrYf0NM0RV2dr5NgdQTQa7Aiatct110mMAU/dJnBiDGTklM40Ep3tL1b5GJ+jUyd8I0O1MGeqd1RhyM7PL6InCya8FDBZ4z5ydmIBkPZy+iEnr961fm4+9zqKjvRfey5RPJb3FtHZ89qez+uBmhff9lTejnzZ33CvO02eh82k/a88j5oi0KXZ5Sxj9j506DnbijyKQTFFQ5HzmzPjQdQfD+dWdHiuH0VkPvY14Cp0Mzmu58VWIqNZ+CzbvtOPEqZMgzNVyZM2OGwcE3xa8McGp0gyiNsBnoUKcz/awyKvy7Xcw8HpeX7hF74C5nPXo2/nS8/JnbzqgOIjVV5sllqHRV/7qK7nZnV/94n4HuhgICqIxJYigBNE4uVAR0gIIsmlCFgX1HfDcw3QlmGTimyVIWCbiuwcBwh2qcheGQL2qeQDsdBeOMSM8EsRIAgiYjnQCSRBRF6KgJQgJa0atKMZzEm2DAE5KiUPCFCgIsUyBJSozlGyza3i9aIyE1PPVs4xC1rLsy3PMmhTV1cNi4/UO0XnOEXmNlE9MsxzVMN8R7W8AMQjLJSOZJFTZLFTwSWrqwaWOmpgmaMGljtqYIUEZKVTZJVTwdVw1cIaRy2sddTCOkctrJeAbHCKbHQqucnzE/zT7etOa+JNi2G2f2mSJH1YaK4Hjf82U56zb9hy+9cx0vSDCAPQMIBxN1gHoPqOtr+cp/Lgix9oqqKgosFD9dwTAjwCrFYIjE1EJDgxIyEfUhIRA0YZ+6ixN/K0Fgy8SvybpOr5FPd371YHfwOr1L83T9GRk1hWRr40JfSmY/lKhIVRVgdb5A8JfCipWFbUXlOIJgalEQkPFCaHQlRzVfdQYR/nCcTFNhSgFboAE3oIC9g3haYkENy1BsXMNOGy0Cc6wQdFYbLtIIbQrQwlHCiKVfkE6dUBGdFYqc+IxsDGMDI3dGNnZJQ9+Y1lT54bzsVAxGpsB+oCljMmqXMavXIVVQMcmZcdf1DcOMieEgq45nR/qLEz6kALufhDchDPPk5VpY8razwoRRUwBKWY9T4ghOnqvjamzR50rPcbyVPFcg3iNTitBsu15jW8RGiH48orF14GETk1cBGYLrLD1hoXl4Y/ho6My/DyILAcYdOpTkjDtBZpGgM2Vi2wjUIDsNv+hLf8B+Q0GiIhTs9GeSIZhGPttxBTtHZbTvT9UvUAKQEHTtl2aX85e297gKKIld6XszgOGgYg+dO8rqcE3VY/hK3CAvXMTHS/VFD0G/LA+JgfOLkhOeOq0UK2b0XDlx3R1MEh9rZq4BQ9Y6OEXIhkHDenc0Yyg7eNcR17V4WASGz34eACvooyb31hW56hbximtuaoXHK/rR27NlDJ3theqK17W8qyLI/pwfJ8jPOglrpQkB9xQwjovmbzduKKYiiAx++xBmNo1ICPrHWAvUz7MU1X+sQ1HRmptCSN9XucOseo81patQBeab1mY9TSc8OGu01tZX1gLETRSagkvKimG4+mTZH9jk6cOuz2Tzqcl3G4e6t39QakDSfp0l3uq3zuBhRISd9oIvehwoSAKntFKIjpuCwkKtxst6IF91IPcsmXCxCv/V1u/KT73gW7O9vdsH7+LBjigrXLlkkE5gDxeRr8sC9JrBXidGOCc5mI/d8RSSJNci9fH50I8u5/Pz78MuPy8V5XpF96SYLbKtVPDPpAdf2D/oalTC3LldNxDaVSvpQLVscLFJ4cWudBTYVgTbdj8AnQhEkK4nlKpEsb3BEcQw58DjFl+Cf4i/8x6g8exuB3JTG4Aaye2GTeWwoHFWgyt28JSalpShDgLB58yxBdNOEXLmu7+SA/XNvBHJ4HCoHFEpmaBE0IsFAnanl9oVVyVmX6FYBXvwJ7HtIKIyCkaGLcV3byJH4dpG2kAyAg+6cqKNNdEnG66KNaFmWwu87vNKtXAaVs7rC1VV6oJI3MBo+ss0ORdNqpe4hgnA/ZeMTRl2+FZysxw9FTXr6WDEdb5TUelZ4wynw5aSeJaxZQtGrknqgDYiHdJMWVNuDE9HTprlrgUV9Fq65wRRvfa0gXFFBd7ymtRs0o7cVkeN8C8HcclRGZ3TTFZ2prK1dhBoNwMYA22AQgIzaiRdBlMcr0feU0egviFWzCZHhSb/UdrTWWYIjpq4qMysDl6pGMJLhfMp8719vAi3pJsH2JgXAWrW7MW5UZiUC9mSHDEE0cZ4XgnDkipdmRUc17FIyf5nqTdWjypfK/2fagLcFtNViO0siH3jQL0r5avkpp+7jn0BoJYB2poqCUzjsEzYlo1lI3vPAvpFEeYrRTWCt04chfo4aO9e4+Ypb/qc9vRTpdRnvm199cweIbr382w0N9faYqgMldzbDZvW2soVgsrhw6UlVBjS650yt0Ci+80IyLtwJktpOYA+Ae1B5fr3D7N8PuVvv7Yo2RIym+UF9ofHpq2kO3dbHgeD17jsHkwg2AUsYTf3PJpIkpYO69lw9BhPeVyeEBDTQfN0Pq+jzqjhupYsAyS2kWBSEDfUav5W/plimfeGyXLRhfEjS55kQjc5IwhNl9qCLS9qQSg4nqVUN2pcy1gW/pm6qNXvU3dP8bT6MLoC0GTnrB1o+Y6owgqZnb0Nq2LnTSfZbiS7DUqa2ghMSrQxOmjoXRIDzesrA3i8Mi1ZP8l7imnxh7KyoLBtdxeRBsL2WVhLJMHAKVt8eVjD+QASBJ7F/NTaeWCQzaM7gmTLNt8VnZ7YZDEQJuPNQSW0S8l8IM+ucVj1zA0d987E6BTlL7PL0yqPf2LFoq/cSHM+qdKh80uEuZI6WmR4GLJMCtgsC46lAYefLsBcJA7HHeSq/qMQvyJN+x9iKSfXpcL9zDg4h9ULU1p8ih5MeSr8ZA23x3PDcneRzFM1yRlK/Z0/TTyUx2bPX46QvQmpNHbIf1Wv1XKOBtMi8Sy2JJojXSLQjcGhSHXdSwVp7U8MIO1kJfJg1sXd8qsBGZsGN2i8nC8a2S0RmrMrcZr2wL4FatqpvVFc0mPqGLzTEdAxfSDF7WwpbZ/BBmFISO53m4woeg5DiX3vg1GZYeR8J4U5v3pNIk1w9k/8SiL3AZg8XI/cZbWP2MhCukbBRuZQpmjxrlCld2kfUpj9rZZGZp5jAHJ0GTXrQjKfaEANJWU/1zTJ4K78a8iP/4xVlNBnZpI3vNe9xJG3NvT0UM4AWypJt6+7ylO+bCkYBlo3Artcg4TSoDuqIN/8L/JDXCM7Kxbqj23oAYNA8tlDvWw9DucopztXKB2d0o/ykfdTKxqF/5ONSw9IKDpHYvYd9hHBRkNAWP9TjLDDTwF6V5kn4iC8jWfMeVccIvUhJJO4+y8hEdxbsMY7AixfBKEQ37RLMtjjIB0Wh5sLoaKAc3QK4/s4OyS+BEr8+z/45KmLrQ7BR9nf+9FluGxNgDogj4tEcrk09Uq40JqSHdTMsIdmMYs8ExV1rIUWhInmuQRIQo/caDZP3HOOoCbpNwhSVNyhRfk426sEiWNdFXpRtFoGj07Gjcsqc1TilmJUxoAGWXCXf4vIaeFRPbTzWqeAwxtYzRY5qIwKFpY7mhYf3nJsBl2A6jeE3ltQ0wDQGaCwGz8ELWuu7edNyRYK16kwYesyCyPJlOWguTkqM6L884mhyYxmQyQBVUimZpNRwQ73CCZIhVG1IMNQ2bJ+f8/di2TOk0hQuKO3alnNhaVbBW5Pl+krS5ee9PAHRYNIbXTkrwsS0pMtbYC1IypjvVcDk3+9QCSQXnYBZuaZ3FM0AmzOZJswW1lj0NKy5jMvp41iSzyuynqcjobYaZE45e90+GkzF836JVejvUHlgCtRxZtQ8EnRZrNHOaPZpZuTC6ANfQN1NS6hIWffAHQu31aVoXps+bZnpTQBGxLCOcFUVNr78xngIKIfBDRdpoyyavwVokYaM/fIvpRhcibRHAp23UYxzT/kySnWhz0FgiYfaeJle6GVTynaZn5OdA78ifDdR5/7R7yYimgNx7Zonx4OvR+ZFPJ4glsHuPkcBufyAPSzGaWrFU1K9oAMRdJNHQtbATQjFd6aJC4ooKc36Xkc1A0EdIkVPUqItwBqn6pGYtxjR8UWQUrCgSilXUqcc7oqpIQ4CzmizeXHXkWhLtzjy2zIoP+SmZhxRZg44aO2VinX4Rcqu1rCgU52pLJAYxhmwAmGxkH485Y8NoGXxOn2+Gjm7CZciQCCoYe5COS+o9YZfbF66zIc1oY+DdmMGHC2CcxFfUjIGGNt9iK0l+qaYeQw4RYkCZMn9ZO5Av4VjD0CHsmt1pBQoyPVhZ4NkoJ73CeP7hAiLmKN9gJFeUgW0rMCxhBGOk4KdbC1Lnm3o8qS6u+5bs+s3pndutFaayRP93/uiRaq0gWaEOFMvRUv9HRvkBvywCjUJr0id+euH2+U82FJyWodzozS+kZbEBAFYRllSGv53ZlSSlhDgYgUgmEIGLFxSgChazQF+8c8crZUjb4bUUYwvRo/QQefJtnKh4fbVenO/b1W6g3nTwkLUnr34zPswnCPmv3Ry4ahOq4+JTwPsQNIBK0dAXsiZPzNz7G1hbX7Cielc6Hn3H8higpchTr+XLsg8vWaHO4IW4RK8eCXwyF7vFHFKIo9U3jcNcAcd17hIXF5vnuflodzNz92VvF25cZmV24SpEG8MEBAdELYvwlt4h1+Hpks0lF3a2VXmLNP5PUS78WRp8yhBgGiOEn+hX/s44SOctF9sxpbjR65ZFd+51b9Hl/4Wk/AfvjOn4y0dOyhM9jVY7frisj0+PKeBw9CruBHTbV64PqPWWSa9hictqV10HOUt3rLffs7guWou0sUF1PZzV4pBaL5oDZLXN8x5bc3yWIMxXvW+bPdA/KmJzTVKAbP9bXWR3x8f9mFHNcy4xx3kjw8S89MbgkddMM8BglOAKygB4xeAeQPAA3gtAlWvfFAAgAoZ5MCYAIoqWQB5A4DMe2Ob+e6YifOw9d7peasM1L0ZEFa74C+ttLGoseRHxmgRLd+f8/sX3z3BmI282104Y0dGHfa9mTyev3XK0zsxCzGKyfrrJ4h5GcwHiBaNZgMjFC3E9czZj5FXyYrY+xwelS4V0Hi7ccjTDYf6NtQioDlX92z28HlmI+MZ+iXzKP/f7Z8WEz0mJwTtJrlDzbIhWmAoC3CO3vdnIz2nALMoL1Zi6UwWZKzN2u0fb4elAeSkManZGvTOHp7taoQbEfZY7kbUvV3FWwz0mHWBFq5y5SHDfy+HJOMKDj9atgHBWChJe7SQlfY8KF8iKtVt4k7m+AQOt8rlH1u8XA5D86DLawZ/g2JYG/sZwzNp0DDdm7AJI/SsZTrZWUY8MgvEWcD91Ewln9lPDHzZZPH5uAvJWGIrUc030PT7FDRotGZfnK142+2/DjxpmPq+KTi8pAFU9VwFPe3u79PFNFmV7GkbaTnHY7rZf1G87RAUjVKetUPxVecuylEVuE+zj3Fe2HLnaqlstQ/jApWDNFtJ3xNLVvOGkkklxuBLt/5nD2S8YxcGrk5Qcnrw2jX6Lgz64+8X33/gj7oRQ5te/h0QcvXmiVOfgyBeMoufilIP8Xrg07SRUBCSVSYWlYR1CnQo9yg4myeWzmogDahj2hfsz7HP26XIC3PFO/6sG4HoLea/wHl8wo4pKQSmjX9RkZRfc+9BwJrTJKFHeJ6oWz3fp4Z/Rk0JLDJKa9dq90DDqT21GyeMl0z3lvBfT2tq4LwYN9HLyvZreA63dYVQm7pC5ETtiVFsxoXYaFHGgYZMA+OeqCkhAVH/F3gJ8duC9rlwBKNRJ6OapS7cTA8UcaVrVBu4slzUolYgPJgtgwUE20qXmysmkYua+RpTBPvzpy/ZauRLeh05gDqaX8+2R1iOSr5MVlBSDFsFi1+E/PsX3/P45St7rctZ2frd78Hy+32FBKaouB6iYTDpdeH1A7mcOW22yCLtn4alAnhu2dveH2JKQots8dUwYq3EMyNf1G2LCe54RWfkEL4VAWU5uxnxD06J37JeSkULTa5BaKze5zTS5m5GvaChkdbjlaHyLYMbl+e1c6GzrZrR13cIA6VjLvpfsd8adLxyDbDAzm8CU3bLkuNnxEz1T0XvC6od1OjkoMXkgct8ZIwDX5T7QUJXokNcLX7mZ2M+iCHmfsUUPUN457P1AY1Zb+RWYdr8OysQCuJ6KHR9RJ/y5fLpSbPdZghGuRgaVI6JSRreE7bggo1OG97anaE7iWvMnhn05sYDkXXD873JV3Z/3Arcb7AbL3R516WcoYI64iQlUp0znEW0HVeyK4ghJNONVHNbuaN0xjgybdaH5LgDNCUnnSaQGv/TwLUdk+iaJScXcEyTT0F1MrHVqRyjxXOcAl75zk8VswlURy+U8NnakPdBl/Dq12FWehGP9q1rQaMMNoK7EoSjBMFuBbpwoyOi3p3ahau9alAWQdNyThQLvZw67l9P4eoYksId7zIsoW+b1uY9tOeorz1CcbdM7vnzs6SIslgg9eOPaNAqXmdvDD7iAQU8FMHHWJYgxFgAeKuOWQ22NrccEHJfq2rQtlGnjkxIEk3DP1MPdNUADjp0D9/Z7TWpgjH3IGE6BGqwCUv2EovZ6t+Qw63ew1+XaZYRiujxjNvyLbwtB8x1jjUDCP96jQc/IEztpJg64qKfy5EcAVP0alX3IDUef2eZAA+3mCqqtmx9LIdasQxn2KWU7LvKZMmAIE0K3KUzVHbmmBclvGdVqe3VICeYwPEoiCD+tqc5owN7Cphh4RcOeC4wHYoJIZT4Gj0/Hc6NlHXOGW2LDKaT2FbM8Yq9KfLCAFsn+KS+9xfNXW1tF9W7uJvyWROIq5sYFu/HyJL1nh1m7kkop2hmwPe+ZSF08PTUfnla9+cxru0KppJCddb7/P+D/u1WFmRb0b5MZBME/mCRt2di0tgpr2gfoUo0P3qTbGqcobWLaQE0c2/bhfZ1g8FB40CAHomfBMdCG5FDpWbCPc0+69KAU9dKvb3N/rd4sFHSc7nC+yTa4Z3xiTBS5MlkTHR9aDwMmrn/QM+jb0eA6r+jTo4FDPxuCkUDyHIdBbOZ1BmshynFP5eY6fzUYDlq7xSmwXiQiYYepIY1zJSDXfJs0nY6kF+qvGnQmOwcnT4sAq79IoWjrKr9gGxyQSp15tALuDUcRqgUoAtE0T6th8zpz2GzZ1lVWh8Or1HTUmbvOxM4miwVQeaehUz2IVdQPFucHN7r4CS9Vk4BBcjODYkLk6KiG1xNN3wbMrZ2z2mId9omCuN8M6tCKN6yozeo6gbF4fXMGP3N3w+rUMzKkFGwHk3jlg174zNq0m5Sde7mbOz0TC+RVAUcrUTGp5PPMQY19HChl/uogF7TMXXe7E2MKxBoZm1QOczFULqYwSM3WQXjr8u6SHJaPXHNaRZ8qpWdKC/2C75xe2QsCXDmoxkksvyjEscmDmlzS0ZVKIwyNGSY2dc3WUCCKosBTmAQBqnwyfTxj50Br/ksVTzMStGqcEeF7/3/u4swZGxn5lTs8Ie+XXNI9J5v8PB9i7ftxpWPu3PncvGJff1wq+GVsFqbLZoY/PIPaZpiZ9ycOe8FoPFnROBjckXbGIDNg83cXzb55fHwb3/mC0VizFxANM5ceJe2UQGa5587vOuU/ktxDDzwjGvPrO77lCT0gbs1c0gOU76m3WqdQsdwxlqnzpXbneno/JxZqKStv/cNKYBIiYL4xCGoxA8LezZ7W2sD4UKfLY8yAPffytVizRMrd87Q2nfn4k8UOX/+7svloNeanuFkSJElWc+CsBjpOpMyqcOuucmwy7pkrV7KNs4j/j92luajQP3rOw7whlsPeypc61fEpZo0+jyCQOcrRkZYlVp3mGWW2OuwwDmg4QPUD9bYB1SWnQBEknKP+zOCUXzy69WwWmV3qlFwQ7g5PK+FTkk5seKmncE5KeMW1KT7jhyR4+4xu0sQowlxCnSvIHuL5VULm+73K0wlKn7hpNlGog9SGWddzTs19c7QiNT3QtqlnLhrfXB/MEAlAOgVRm3EC3JlnTrDzQ99Qa3uldnvQ99Ej0Rf5/LW+3wRulnSw12Ny8jcZ8FacDYTP/VLtG+dP0JE+n057jr1hEa3JOTJ9F/m7JOkyChnLc+oZAEvz89j1xUnPxWcuZgzBe9la47QVp+i+y4Br0B4HaureQGcXcTu17hBs/7rdyhVeylvOs0q+Cth7qFQN+I4c5KhKPpGZEj3xiE5wtIdtMSdmZn/DYn5OPfd/Ll+Jxdead4VA7PNr3kDarKw1D9KwjAL67JfMnHVHvtjVG/XlUrDJJqV/QdmyMJ2fOze1OWTky3UjfhgZas5PxTJi117wAr+s13Xfqz+44msY4RlWz2U+lFpxdtb6Y9NQfJnSd+vEDta1GDuPvFKCeCbOmq8keZH0vX4Tu/zemI5bWv/Bl1LRpbTUCPoBfkYB2+U/DYcdo5efPbwwnRrnEmUs29us9AmcFoTbzziZc6oo26xogXj3+a7cmIDKWLE6hLAZq38GeC8DP/NEhNo8xfsHaDsPDdRNPgGQrDj9GVcyglEVd5WDKO5onYhHaBfxed79J4Qk4vO869NCU26J6gZCO2LISIZQNVovLB/2WXmtavjO0scUL9wk3OOvDTbz1oCw4hRH4BM00Vhh8HCoH6xCKTV1ApXI6VknPvsvbhxTIMjuTV1dFyk9fcEmySSxwkxfJ48FDjVCoNO5+OF4b61CdHgsT4kAMKeF6137pdgkVuW0xFAVR/rSsR7PC1rNf3ruwiD0+9pMgbKVK1rPqfna6I5Pe3Cs20/SnfBcXVbgyOieXTzSBjQmRsMsPXt4RkQ4RScG9Ia1kVuRos0vny5qegtdE+8rxw7KW1zx43fixtKj5yU/VWE72uWz3omhS4Qq6HxKbldY4/jdUBB+HD4sLhNUxMWQ8+WcP0Ydxdgn0Q0YNO/ILb8ZUxjAQKFgornFPIsvma0qPp1nL4ck3XuXXBZ2TEzFaKz1QFx5pojl+b9xGao7x3sXdl8Sw8TsrPQbXF7RFjt4Uh7Gr+3HQeFrZdTAru/+IUOEVqHDMbg6vIhiU9JcIryXH/B7nNiu1EeqKvD2uU/MvNmESOrHcDcf2lPKD0pAqvZ/Pc+9u0h8Tmuk6SEvL6W/XTaA7usp/xoOr/cFzV9c3b1kFukUXkYzw/kv5Zqm2HaH9O2erPZX2y73n9tVjAB7sDV5j/HuswXqM9v5d0uq+pkZH4ne7cJfLe2r6ib/KR9BAv03w3h0/ziDx4y87fLn9XVrNJfIdpVcx/7ucIPUhyrG9gNv8K2UzK9khmoOXOR/BoswMDc/oILNy5MdRWxHnIdVn9Pi9bL+V6HJ5WV8UT7apl617yN7ubpCVfF5UVu3tTnWa5pJzqclBzqifrqx273Te6iNoz+X4BPDYb27adDcHetxDQBsIdvvX2JgwCE1X7ChpXV4i8AGhk/48IOcDcBNwL02w+4x9A1UzKy/fxcR8FY+oJDE97/XtTXTdV6D/WwXUdVBxWg2nSPifEc8IbHN3d8z7LeYjjPyqpbtCp9JhgwT1BYWkQ6vON++DelzN2PjCgWNtVtgcoKO0CcjF8iTmXXypH5pAmCjsbDJgGBmrZRN7q/71mdwf1srrLikcXk5orRINe9ZiAHUK/B//SSGt3gau6QmVTOM/axBe79afs18iDDlz73qUyZZmjOmRYF/5D6cATrDMxii5lVO/IPY5xsUoTh3W+MAEYZ3AMXTeRisEMv4vTfEF/b38QmU/lPshgetsMlBcbkuPSTaV/jN/TeZxh2HKENPXfJKX4xA7NjDRYzc+QSWRiwignmng7zGv6CX8+bOnSuRU+zwwdlakOwdvkoMMBdas854IezOrEjCq5ymZA5fQe1I/x2quuvq+nd5z1Xm7ChJZ32+s4sCeG4X/v/370Su+nrLt5g+OM5mPZ1Y4KQqu1/Q/W/eMzb52avnoNiKjIwSnX4olBb5e8LwfXLojfNvhqtNA7W2rsTvM/DXZ1+QZ/n/S5mz7v8rgZnmCCwDumZk1rL9n7tg9tATtMz+zavK1v6H5aTks2yqSmzf6u90gbwWfNc0DEONpIPUhUSbCkXLmBSMHuhnOe7Bo4R5kTMNN1oubFXLSuNC7i+ixeDTHc4lWZYfHczz8Hogxu6Apkuvnpf2mXWQ0ETz9olfit/73Nd5BO+s0QrvurWY9cyUqyAhMcXgB8dVX5FnXTIRMWfUGflwf238f8bP+9//7b/cBcYR2McrAQDPgOwBDUfadaiSVTvTMdknSRxMcz9R1qIdmXBW0Bv82uV7N6ODK+9Kld6Jsqh7SqtMkuRbrrH8e+9y3qC1OQw0JrzWDMN8wDinVx+V7RwXJCtj+RbyvcA4coYPit4zEXHNGoB/uDauOXqrZQFa5rxrvDgE3GXDT6T632u6QINeiBn/PTB8q3/ZMcgZz4ATILMso32PunN6Z3umhk4RD/MyzBPxN5duYtI7SW+IWyL2vpk83ExP+fKVmArtmilUspH0s9SZ+KFdzwRj7NFHa8NrwzguB0xLevU5Ns5JSvIqVm9/yBuuH+1KqY6ttLxr0XFJc/3e5z5jDAUfenYgAAWdApLlHvLzYNAOhd35kZlpMGSEdZtWygcsFqbLQtNHuxpd/Y4tJIOnRDeqeCZ2Rc6wjvtXK//54WDqN+N+ZjjnjwF6Hys75nnz8O3xvqcr5yxHVzaxWZT7GVrsyMQDHqrI4Vn//On/xoVo0U573PDm9/Cnq+sfdwyMpoHtmr91lK2RuyEx0bWCWBinbqS0QTOw3JqcXpgvdt3bCS1crh1BtxuRAlUsuUofJP6aWVj2rRucW5TSh45ah9eKvp8OGKb06r3UzqqHpEUs6v7+6dlHfrfys/oYX1Rxpv6veHnviLx/UHkiUII2AEdSG/Porw7zvStCTGIhO9ZfybZtjnzy4f8OHfyvAORAlEeJxjyofNdFlrUhIwP0Q9vTTY2qY1wrTk+Mq573ekQN66ZXmhbCbyjMdtFXJNxzh+GXkM41Qsijh1IulSUpDZ5uqHzdumeRGbvo3n6FJyPWsGWyQrx5/eDvwtT8tXOI0g70a+SNdXe3wRObqj10fexoqxxp1l8YFjntplUu+8jQekWu1o2mldw/2RaDz004q4AS7NdGRCsbT7uVBW3be9re/ZItzSVum/TqEN5VzVuYkJ5F3dnLmyFA12zzm49cL7WwsjerF36+7/8t3gHYN/AvIHxv4HeZmkevh3gjxmi1ZHEz/7smraTIM+DA698azbf6vz0MMrafk+WQvR9bHJCTjN+Jm+DbcJVCJnnRnSPT5ufPiv0/uGQyNg2dlzlekWhGSrze5LJ/eiYKdqp2BfP3nEz5upDDfSnY39Dld23a5a5m1YzibbB6pj+9y2Z1Zaoo9ra5X+6ddpszE11B6fV6OIgy0z2AKzSYmeZmZmSOGHdM6AR2u+OwJnUOh9sRvnhh0e/ZM6dPaeVj9eSRUioW8rlsJp2SJVGYB7765t8F79+LPoBCC0bkZndqcrGT4CvnyVBU7U6VebGnV83zyMouL2lPBV1fdcRNbJj7gS73CMCORULGwusNUjYHlE16FefxCHAc4/jGnrD+7L3YMZ+H3IdHXWDWsNxnOelcGXYl6NJoKgdUiVWTqs6a6cLWeVrpgiENjuXutQivrtYdNjqXXvMey/IFMvmo2X4B3+L2No3qVSmHr4Qnv4qG6HoX+8dLaCDkP1sV2oK5aB1xIfW7BqpUV9QGLCfWXcruHBDPqBnVquVRiPxo31D/VdU24QgwhDWVx5RevBILE6tghGkuDPmWqGRusnG7kYgI6bQo8IBP4gzP7PUrAy4ZfPRUfvLt9MgY5oxxZGT/BW+KSyoMupH5VogrxthNr0ELddfUNExUray/G+2J1yRDTsRS6SVqrQ4tQqV8lS7Eg2KMa9qIXfeiw12kWLYs5qLczshi5SAfcM9GOEIP9FZQQinJLV8bkxbkYVKxUl5keXnAMs3T8iE+eeN/bS8oNJOlkCQV9WUnwdbO0mDI3LHsTHMWdBsb+26k0/0OfMYSVal8cZhYFGt6F9X1i0m4fvoV4jTFEa6dzMFa2ypxyUe+ysrR8nQGNpZvZePomh+wreNmUdcLL5O8O7Bat7puHy6xgCVKVJbpWmkyVEHnv/XAh8JTZdH1LC4uni3LDcW6XOj8iJzj0QgQMbyqy+pwsarSa2EwhBe/3ZnX6ypIZsoL6VbvunX62AU5Osg/HHjBs+KhzA5sV4DiWhHpBfLMcaJqVjZFSYySDEcZptAFkU36K1kdA0wiJEK+9HcXBubuAdcm0jouV6yydgUXLOM+F1lJVXUJLkVKT4bzPkuwhMKhVEwSHVgdq5p4wzIM59bH5rAwRaCc/4vbWnD2gGsb6VwhV4oUdPO7usGbqPwHaZN1STeSGXRK6a0xOmD3Sd8WaF20xAysG1NHQnQZBmZuZBhelTD2h4d9H/u3kPcoYUZywRofH3B3R6YRShWWfyws9yzUrzes5g2vm4dRiFYjr5FTTVP5ZqdWpjrcrSMXGLw9nc84DjNdVAKwY/mZjNFhdMfgGHrDOC2IYYrTQb3mkX03g9tc2B6fYbO6KtAF/gNxgDfjthvv2NfTSJOn+IzSel23SapP2Ka2P5XHuXE3TXdHXT93MKkLy5oudq7b5iYjgUzi3F+w3jNzfVly87tsGfzoh9HxzZ3o1aFGP/AfiDN9344784LVlFq6SxQ/43g1x/MBWaDhTJyq2K4/Quz77pppeu6wqjgs07GpXXfOWWoCmaxbHqXpFYrre+RGappzmicpDMruM67egUrPWVaOnUg0IBa+7eDLgbU66TY9cGjI9nctUZUedas09dSxTrv2hl69e4zkiS7x6cVbSlucMM+zbdqQZT11owWDw22c1wDU+jEIn8jH56vkLKvZzyPLWRfeoqyEpJa57Oadu7Cu6DvqDdU3nJt6PUfKJ6xC09KVXp7RvJT7oXSXZXdNUTwjX95f8Nq88Y16eJYcfyk9zjWmDp2G3O5qO3IrMj5HKTkWIqtirXyWi+92x4KMMkQaKmJTRqIryrYqvYGKZfVUJDIgppK3Q8ap3Z3Tts9PY8R5+QXTEpf+oK81rJaNrJsHzNPzMH54OJnsa3sUVqOsxyG5Io4L9PQWAHR+DF0jsSK6UHCNPcmYW7FD/3yU1D9/eLF41p0BW4nGz9ZdZWW5ynK178mAZ/sOiIyNwEiACceJbmrDc8CQI+kGxrvAyb/sJ8XRe6AQmbRU1/W/AofZGqTvneajOmLWsVxn+ZmildT7GgVlo0oSqn58p2G+GiM19NuE0vTyVF6E2S0chb1SPxI9ZaeiJ0yy02KbLNYheKXz2z7x0csoFir1GXEQh1qu0PWstK48K+wU7N6jAW7hcPPQqqp5d4H46f6iify5p7BU4TS9ONPueUUuXJzKmb9it60D7ZntMit5HIU2R9wnY/LTqNt2+QXiEi9vVpDXWtS/pIKsA67DbFqd6rlQVcyxXh+3h8vVFFRRb80i1M5AntUH2V5gW3s2LZLT8Q5t9bw1VtV5Xj1sOt+AoXvZOcqzK3CsRMJTDl8b6+8Us7sKh9LCpBXyLLBG232LgboxNUkpXN4ZuOmh8iHhapJ2QZ9kq9xuE1j5u+Vnkhe8F17RGTr7GV7gtl08ajeCVxUlZl7t4HlwsfnZvAXbJNrtI9HOZHmoPUed42nc5mnPEAOTSkjK0T1TF61O6YrjTYykdAwS16Vu5x2qin2Mx6Qola4yu7Qo45DW0LbpyJDJSTvua3CmgkxLfPX1NZ3Dz9T+uTDku6hZxNMmHoCZbTvmboTfSzzRpliYPB86y9HzOGsS6sbVVHboJ9bMvjlFWNZ5IfM1ovI2Z3TlONeRybvIslPWqowzpvU1VrImPP1FdKpzR9SMG+SkrL3ZaSiLqiQKgisCaRrmYu1I3zHfRp8mUA7zC851FdMbDcJ4aP4UulCJnE215NgwpD3NNjT7hOY7TvO60MD4CaU9XhWl/xy1u5cSuy9rrZ/hL/j6eXuRr18Nv00sv6mszvIyXpoWG5Xnp9XPbFuhP3PeC/PfZ/s9nY0c00/+/adHwU798/0WTiEcQ9qEAog3541C2TDlpSJVqvxugBjaSDroy9AT07FySCXxM6vGoaJliXkujo5Rx5JdcjpCxGPaQlYohp2J3WMRnwhcwnUZRaZ9C/TMpxpNzWxjLGmHttk56FLfEQNTTBPxI4vzEEncWLvMMiAjTqhpMZ5eZceyrAfDeY3rW8jbY2Fbk7u+IvPCA7d4/WBQCznZ9AjPZFHCqFBtXcxiD6GJgbTQVU1HhsSqvq2Im1g99DUtCsyy/Gjf45htWzEM5V35busHfOX6GkgpmGQZvMmZQTUtDa2rWtJF5lJwqdvSvkuerhwi8qN5Rc4bJpq6Drc1kx513lgjyc1ZIGx1jWyNMu37NcSvzReYodv6uFeRWMF9RxlK5yxIQQtSzq/yANI3BTbNvrvb4rLM/2VlTnOgZYvXIu/q1bSsv2Be+zUDKacJLujUzQ8Ym7cRW5hpXv6A9RdF4r7PQMhrbuoHixZZ9q/eXtLukuV78atUUj7ZJYseQr9ku73JWf94565/0IUzGa9Lz0FzODmYYz+T08hkIyRpJ9ZtTUducLlGgixNK6/aoRNTt8edblGwrK2pgpcyJ1ZnHWoJxvDoBBLRBixTCzqEgc/oWKyOC9L2YTd3x/Wz8wX8Npudd+ooX/Lwy18B/rwy957MmLO3SuQnaPt3Y2Q5YIW2fb1Q+LODru/LneC89pKD5UAuUBaqpBQLxWiLBBI0O8lohg7buWmlyb2IEpqhwDEV53QE6mrdJ0+CC0q4qB2GjDsV5GPvGstVahzPK5V7qIgfcKCCsFVhXaCbsqBbZxyvo56uGzFpCwNmOFiTU6938oDMeGSPirD9V1FPkBXLs3fw1K9+ESBH2GPjWRCxKXjGnGBktm7dFVCVuqLaoINycyXT0E6a084j9lerpUupvNf8aGCeV0Qg3cR5ivBoGOJQyO0swu3Su44/xO4lZwEl+Sbpw1JM5uUAcekvi8tIHvnXmyFA6xtPFoSVWc0+TZs+ag3PWkOZllJGU7r4z2lTbCu0b/R0CqwpLKkcM5s3C00VVaSp40W/uqtC3kHuyG4eYP0kHRb1p7Bs67asD2cUF3PjOUfBz0AYWYQQiYBtgY1ukbCkMlU8dW1WPGu7rvOyKsqziiLZeUh+QYoTQFjGy/kUn6qRFFsg9XwjvNkl8E3qh4+dRFHl4p2GuqtqUkBodKCs9jyHZsibk4XUd4magP22TBxlj2ea06MFuj1bukNKdTCflIrqLeQt31qwzZAeYGk0yycmcsEhnGgupmX9uBvA9CsNKqfVe1WzML+pj1AWeUnFYLmGYtXFKcK0zBONN1qeOGVNtzRnSl2bw8zRmPDqJOQBN5le51CmVTLSihQ5YwWQhUVUrNMDPm0iMaKuw/V5yeWJLP35cj1wJF/Bl6o92tLZdzVUW1mpyN93Ta0aqlzBHdTXbnG6wXrZVrpdifhk44VqvLTnnhj9MXqi90fl3iduzIWFVW+p6EA6FlF9DT+ARpck7NTI4frWdQE6vadbbEL4B/EBq0YuM/7uDKqTiggwGgxlSvAM9JDpLffhYavenh7gErlpgHP5sZKgepK7PxgcdzAfkd50MQcjbCO+SMMZekgPOHqSmyGg5tNy8SF8QVoN/XHFziIbOS2pc44Fm+WluPf1RFzddv2H04STwEdktsz5qJ4qU+V47unzNANtl1r/tmNm46LPfdqBRFlm8/QCvV80dloSY/Iekoug7tsHWJggm6lEYFZoZDxjpxoilpESeJCIwJH2AKgWlOPcMbJ+0i84lxijHR2vrmpPUbvHKebjYC49g5Y2XMkeDjtEJG+KpEYfDObO56ceBhsHynF9hVY7SwEN9ahrqhg3tlzG5bw8ODTv0CZPncamC/Yd2W3/7E/yHo4sEXn2uJzrPoqSlQDMTOxarJJHVVbqZGEuuplKyilg4cqCGhwg4x1E7tFzEeBadvTbuD5sL2OL2VygJ/wWIe+1Fdg/12MgwqIcQs/aDUBMeqPQNRoz67LT1AXmgPfYrkSjrKESBdWgKgoMK5u3YT4v0HvFeohgyOxje0DVXpLLQdFTyOqwq5HyZnuQNuz96i7jvc2ztIewvEpdBjLvWwsLcvZr30u4ZOjsmzbvselLNHVjTh7Walipol5arIq6oo4C0lYk6uFPqGyk/npkrTsG6FzwVpLC6M/1sPFcopdo68Fl2MQcyfkeiyRbk4zbTTA/6PDO2fXjAMAy69nvSVNJRG3w1EBSdaIM3XpUQis6IKDoRDErIRpjguzoYJatM9DNRhZdD5v3CofmvkKgDZzW9nL7lYS87EzLpEqSCrRnKtOKSjIoYlZQIK5sDnE+t3tkDA89MjFm5+R5fzCkbdNJ/DvVheVXNGWt9xAY4V1ByabU0AbXqf+MoRVZtkypkDnfP7QeFsJuxPZbNP8oiaX52VeoPSYEN/LfnmLwFym6RIOn3+D6x18Vxb6vGDHk8/laJh0Gc9Tc51GNWb79YVUw7f4/yj9aTI+ZQu1pTd/XAgv//6Z+IzXbXG3HLCwzd1zWbb1sfYrsR3LJu5OOXFNuOGRWaRm+0lJ4aU+x6xk11RvGupOd+kUp66OedV2/4fwx81fh66HxTi7JpIvpuLm7u937TCMGHocThawsjTu0rtoYSJecGoHNm605/Btdrb82yhh1cM6OhFAP19o7aZEdoLvvc7/dv1+ELyU/7p4tyL53MBvs1lHQA0/GBN1IT57X1Ym5bQYZhAI9DGM/UBeRH8D1d2QFzePNvYRa49EN/WxlOONwXhWeCWewRTjg7r4Tg1Z6UI+RLU+EafLR6GmvUSuTF7XG0X0doGejBrVQVX4op5fBdZ+R4JakVLyl/B5VPGR5OCVvSltUDt8zD1n8JYaEGbeT+qc+1QVN5Kxb7eM7QH5otRRNWbxrIVyaQJJ3l30gumP4HIXk4Yb2t2qwhKjLeCq+DR/7I3JwNF2p0oHUZ2GzJFU6A1juMjfX+kbawmDnkPj06iy7X7lDOPLIozLyk0TBbj+yA8A4rDceuX5UezFBL/bX7gfIb1Af9gNZqMp3HcT74EU2LblfNRO/YPS5G5GXfLRe1bZYQWuq9lT+tOH+gjb4LrZvVRjS31KHdUp3Z8M810cwYF2H14kh74sDpvV5Lqr/VdXp69QndEpPGmXbLrIPwNDtpHFy/U6eXlgKOYgHfM7la6su2hsNnwqKyRfaqOSoJ+I5+UXk0K8i0UCZmfJzDy/9QFjwauLTPXmNvD69wVGUm4ZT/1lW5JVSee7Ku8NGNqN5YHy4zHwO22Zvo0RfrqO792YI0HrnLoWj9WRdiFEaQp96WFmG+zVMM+4YJ1dQ3irKcYnFwkUqKEJT7CXlxpqpbE7jyup5qklcWHX1cxoQL2hSapZZPnAsIwCGEKT7w0bvU9X6JfMMWWtaExUrwmKrrvQDAZofwYvrS/gF7f/u3qOzrJUHJn/ZXpGshNw3iIKpWiiiwTeVp4p6YkOoB2oIfRf2lviEzSV2p3TH+kprsnCsXpjl77AHbu+O3IRzVknfr91p+KjwoGv2C0N+kvmzsi3+yiU3Q3vkID6g3WYB129LXn8XT2ztmvUcIH8C6iCWmKDNnqBrZqO2pIOqDRW1yglJuNLOPY3pA80n7O+mvVnaJHZPsePdE2y/GNs/sk7wPc36Mzreq0NDpUKwYEZ7UGzbWEJkfGl9js2vC0N+hhOw4v1HYG/rFeiNCCDEextyBPqnUEReMKNOeEoT8VPHzfB8iGQfayCfT2eO21mRdBUuS9wuelCLvBvpZfkWb5qUZwCnNaehTx6FW1hxk1gMDvpBZXmH1L+VYnvxr5ckfMBXNbBpFsE6mLicw1HaR4uIZTvqqyuAod92W5oLP0/1DUihhdS/MNzqmvWRKsWx47izMIhuoN0ROQjJBW3QBTOLNmTyYdlLPLjGOzJvU88tWy1Nidiz9lkAFkhTZwcEWXi9bSEA8VfKFTXbrDZ8U79VMN04w0XQgnaExGIeIgWH+cy6LO/IDphHRjVQMLuCPQfmO8povirDg0DR6ajMnAYuBlPHvf+oWxNnsZ6KBzRJs5l+FiPfoTrwgnqMDS+muqCaaWWzn2YaE/kn5M5vtD0ZtPUzunR4aT7PR1yJ2yJzZRP2CSPpZ8rP7FHVfsRhlp4dwpq514Amzr3mbmkCdKxtEhyK/gDfeR2e3dQoDvQZd++9Fza6RhroTMZfc77MG3mGNc3EgUNtyKWPHCHNYi4R2eWk7db7iiU5WtObwV6Cc3r9RC6RJzd/KVN2aVdBG31LaXOpiH0WP+VuYJ3qOypRy6Q5rgppCWNwrEQ5B/BQzJpXc0RjtG8ryqZeplv4WKAfdpaXe1KJasLRlBqbedpp6Luqp31/qegW3clTvyfL1C3+JlIu770blUaRLqcyHLg2DY3DRI+wCLiRQ/L6nMn60yISImRveNlE/cFK5DfVoUc7O/summXeXaAqVUX5UHAH5erK07yxZVgX6hjuzGXhyXlSEnB81rDwHBS4ZNyFdybc48B6EyTv+tFqkbZJL6/P8Xxns63CpWq6Ih8uGw2eZw0vqPzcrz/8uubeJ+4nqaaoDfWIS3bOZG6rEP7Br8TJJnrvo5LvgpjG3QGczZz7fWS4Ajsre4oLm9p5oob2GtW8vFUZFRSFPuzSc63N9plWNTpjqj20CVcdSXXWQm7faa4etNrOkZytd8DzuoucdeB+e0/FDqanclheTJeJVFy3IpztGFyk4BteQbjlz9OqUQZKKsH0yYas+xw0tMdac7hVzd1nkpaSbawsNLONadpDPmHJnVMFQJN1tykEuNjGqSt8V5+LCk7U3nuRv3PZ0O92YDQaN5niAvQo9CkYZshIqn7bErm/BK9eZDp5DHPLXfjePc/Kgoy0L/shtW1s3y6Tl2GVccwPGBLzVNYvMFmXyjYV9GwOpzWpp224XWtLElw5lcqay483U8nLjIkQekKIr9aV1PoJyoezXjSMxzeDTdArn9l+DjcAdgM/gXBv4L2rx50oduEI3MLzfj8NXfCh8w+QIgmZHoXCvMHcZiR0B3mFVtiWbuqMY2RCojgPpIkNcxrO62Y/wXhw7hKyfEvmvzgf5jVyzPg7AaGBQNde8AyaKmvOnKpkNlWWGodpGgru5uROQ5sfpvc8loj4aI9bslgsRZ6uknvoPaGdwQae4r5Rnu94C/d2dd/GCC9slmamRYFyWwruSulOdL7cbZPea8Nbl17Jy4y4Li5A2j9Xe8mOUtON8ggPNyuzJZ16/a6HT85cfBhH3sNLr33ZJkjuyJXfoqNNchMFLxtVnlh7eTAMer8mb9tUDQOKvjp4vwBm/3xtJXs5ngfh23eUNzFP13DnhlYteaARbo/X7Y+iNzZleqJrj9k6e26LzJ7k7HKnafVCRIYq3BFkcf5tInaddtGmI0PdI3HZPlObzBg/ew81reayZ8JIcSrBZsbSkswzXmScmoDFxrAskILHcmmwupTVmR2R2p4wfKrGdPF4nwc1/3+8Aly75OwH456z+wcMoR6nj61SXHiWa5GfCjCZNmQHncWOyJaFyYXT1/AVNMvYnB3LFedl/XeUzrAZP45mlBo7ELO8YWfTAxZgmOoH2APjGL8B5/70PNXVh1G7+8L8AaJP2yUwCPLZ2XWe24aZwpqTglIXJTnDXMmZNCPrL3V/Ig8naW68OWeUQ4SOEkr/xwcvVxs52A9xoxrU1dVyBSzLDedqesBi6C/pAbZdHaTe4hgXbpa5qT/E5vmi/QHaaW5ajc/Y9wV3wcdIOAXzB9oFllotpJ3YcF/pzgm1YPus7L97tBu6RG5m8M0fdG5/aSjxsVHv4SNYmhsu9fyARTHcRx+w5woM31NQDX3h613xvI8/gLdh3T4W/feSaMNV6ZfnEH+ADT4biOpYuxXt2bHe8XUNX+eETFBJvjlgmvTh9/Uv8n6FeU94C/lY5jccfP+Ahd1u4QH2iHXPNcrS/FeQNuSZo+z6o3rnrGggmQOFsdO6K5AlFQehMPugy1hWH/SQgnirX0A7pckJpBWSkgptYIWxxamsWVmZkvTQ9rGlih6Wrl+ooIMxdSPZ4Tb7zAHRaNLG4OEgs2LWi0Fk6gF4ypPtER0fgM7ddT3ZQq41cpsvVhbWS307QxxiGx8BRH9Hw5TNFWGvoMYxDdUs5y1WPQtlFU51YrEtI/EwLsNIPRPcxunmQ2bYpnkjsTYMV7auSbLI1bbc4DtFWpRW+wfoDu3MU56jbHjAvIkbO0itr95DYf6qZVEZ98F1c9fbMckL6P4untlCWQrzhogMB8LrVA4YJpaakE7twLq+6SiS4Os2MMN2DTmNSDBUCgWl2UOBbWvtTZdnEXsm7aapK9WiLVz1gKb8gDs1T5GOtvkBOAhI0A62VPoJ5Cs7DSdlMvGhrVPdfGzmNa2dZLnCnJRgC2NpGPjpshp9yyrnq5MMbBvJBAN7ZPRrGGEbxm1tVzPMvb4wodLjKgeYGOngGinuc22ny2eKsLi8jR02ss5mf1RsHbA915dHk/XDxSw4OEK3xHDErhljlMQhIpwHeCS3bwGnayFSapV+yFI5lNNTNtmaLl8AJvE4ZOtyizrFtJHrYCp5gjxrZRsqDhR5ObVtCtEO11wwzSAs9yXJxRZnu1VznwIexfnSUmW7TDyMdsgr/1E8obYPT7HXB4cL6uCH4BcKH7pExBDi0Epnf1l4mv10HhDpUkPj+BRTrj+0TSJpMtojWSRjUwuZdRq4VC3rJm6kA5DcYoXdaI2SHzJ3+MnEyqXKwgmXOwonXF61klzxp4PnsMBBuHtSBNHQXDAPhVPmdAINJ90mGLGEgcwI4cFjo0jTqQXjUB35Oa6QncOYb3wxvRw8ore5UXSpbZNhnDoUf1qy+x4HME4YGyfITdQaKX/TGM1CmCPHQ19ahVe4x3crVIek6AUHOivGAO+U1AJGdphOwWT5BZqJd5sEgxYONr6JUWwRwHTx7ZvPTDQeP2pr+QltfRLbwbR9un6f4CBK/FvI0W+JCo3oniSQRtF2gUIpox1kzkUwZt9+gklNGsr0qUgyr+MEyoOdbL2u/gHxeOTBe5JsqMMV0RdsKaw5u2IkMB/8ipqzIT5JwdlPRn6fvlIuPjf63ZBdT26lhoj5utkAiSVdtB3GNbwgoEauaXp1KLa6IjX+imYMuTypOYbPi5ZI6hVJiFqpnZMbW1zj0Tvy+IBhowZlPiSYjCV0GPf8grsi2kEkMVikxtd3+b3Tc8np2ZEvYkNOMXcot4tHb7Xx8/UGMbVxLR2KffugT5JVrHtiVuXTYBKFaEKjyI2uNryzk40PEEiia/rupDrpMD72BVclnCVy5bfAGt0am0yHYWs+QYtS6QiwKdhGg1LUdoCR6oB6ss6H+RUk+aggQ4nDDQ2muPn4BddMNJyEqV/Zbo0dTMv1TEpTp1UQp6PBDtGeCQ8ln2fGSvOC2QPcJxxmQmjmnLLDzgxkxVFc18V3FyjClHakmMY4aVtS/DSzOgc7dwBcwC0hSKOkxo5gh9AM5kLLapYzoErxmfUl6Q4HdI5hg7W19rO4cSHpcAS4F5i2L10/WQkueFfTJO9P7pFcIjs62y4YSlzHOx+oVJSTcxoP2N2hdlFmkqg17RQilvDUCNSLKhFgNIfhCfdiUgMa5CSL80J0TT+8VQW2wzUXVbNKJMreK8MnayR6TIKo3qD2AuJ9Z+JM4xRH9pzLv3p7mh5gB4pwtB7T3cbepA7FiT+8SmqC+m9fUg1eTxDPmF+YMg5Fa5Th1F2WdqPcOlkUuzby6LXq+jyAaW/75GuHu0P0I+o5vcInHKleAfu30eLcsgOiZ4xEK2YLsqYeAVraj7to9Olx8Nn5xu4gaIkwu5KQo+josYZjWpytZTalbeY0drj2omlET+tDjRd+WgxsNFY3AE4LOJoRdeVEkA+5dEbx9cE2tLUW0tlGhn2HayXqFjQ40k8iVm69MJhw07LBhKt6UmIh4eKTJ9/6l+i+uJQ0zPy5EpifludbVIa5+YAn1hI2q/73YYYMhuMOtuBPh+QGwnc3jlrU2CgFYI6Rg5MN9Tw+LvYFxnkZxhLblUIJ3RF74toZlXJAxhsIw33uM6VxSG3c48FMSt9iEBEF5Fa8jDQxfigu2mhkInHaStH52Cx2pXmws4tYuNzn40bTdpma0SnWU9VE2YzZ2KLXwx1MbiZGD+FtkxIYdIG8KphgZvOBEFpoLhSYSU8ZC03VTPoGWDHKPhnZ1GQ9PN+x1MOsG+63ryVyd5vmdJ2KweN6pj+PWbbCPZBGsqLiW8ZINXG1MAvThOdKZZ6mtSSfi0K59m2CEkJrMrkVXwLh+oQL4MyUO8YY4hh6IamkWOhfwpN1sI19uDZQ7gM9GedWLkpmNhWLNPGQS8cp64/vWktdSzfElmhkahU3k4fzzYJMMSE2Nly2emlN37APEmyyk5JqRzase7OqXGLWijoSVmkGVtJqMo5eUTUrdI3jAdEJoCmgfgLqTWRMD1H46pjmAuqFLS6SNc6ugqlpWKdKegfXjJmPG1d2N4KTshKkjkAscPuoJby84fCsy+PbN/mimGsp7DPYQEataQ6lkER1Uksx2iJLW4nXuh73VzDRcXR9wmUD8x4vXrNzgEEiZTVPhqb82Y4gbhmi2OpsG3iOkC1PnbFo6Rk9+cNBbjFXM5J8K64cJplMJnfYfPoCrMK66GVc8+HWVr4YWiop3nbWWj7TJPm0UntP6/F95IaSECNTXzpv5VTqC4p/851EfUh8Zk0+lJZ4Hfnu4s2RBzPuKDfNEN6d9Bw6jEd6gaG3LDxtAMu5L0WOZLwz3FndLChXvoXv9w9K0mc+eoQU4F0gH4xvjIFiyfHHhhrkDb1GTl1gS5YQKqbZ3xz4CJyYUoeOontGMBoZGwE7G9u44Oe9Z8Y6RfEBfnbqF8k5HVao1kvhJIQ16OlVYT6sv95639ufeBXdI4JqpBYh44O3+9tHSZQSpxFsUsLivrUc8N6ZJKLP6Ai7dwjQOh7exm2HXcBgQhfC5oTSnN8bZjXfP606RT4ygWp5gMkZZ03PW+HmakFZ6IhkKlUnPVDMu/tOiHoB/oMW+KSP4UyspmISB3wiYAUrRyC5OmPJS4zZGoaOP3iF4wuMG24jE415fvgQg3/WKiPbHtNH0yJXlMYtqx/9o+MQOxguzqk8uLFGrdeJS8OY5ROxBf5SKAhMp9AlVZJtvxhax2qMMJvKVnDCL9jImkthvKQDogqGdw9XoVTdMEmFlxrwbV/GHgXXyzwWkzJS08FyWfx2hhOYNrcNWFDOnB2nXSoWxliThIjQLtINZQSCQf03r//hvOyWHZIdzSxPyGes+K7LMoojOZdiKo4zR4ZFWsXM1gIyJuuyCsR8SE+D4zqwdNj/nAf727aIo3RMe5oHlch0I/dXtFBZjaNVpO4+MYoggOgbfDrnuZaB0T3b896547JePjoVDQpsjYV8QwGHvEQ2w9rBNC1+5KQz2lAtGXJI6xvMHGYv3AfEaGMeY35GZ4HUMw0cxvPygZSTCeJ/+hJoUJJ2tocGvAwateNbPTUY0hQvNL25vMx9eCpDDbaeU02oxt6qV9pjEzm9+TTQLdIl46oamkzWplm8nvXdgxU1TzlMHZPPk38tuqCSXGWkHGJuHm1gxLOEC0vmub4OEO8QvnhTOor6oi8zNpM31jeN2vSI5i4HdKZvZBfGmRpvmedvxMr1p4USvlwqmHB1y8I0TTR9t8YM/cun16WmZaol1iW+CMjR++SVPFNNubZIRLg2xBVTAUadKUJm/SvqNRsMQ8wWhAO0jro1G+9yErPJSupIbBO/jEm4cL1qzqf2iCuvBk0F2ccEoUAjDg7ltQoX1WX0mfyYhO+4HNSiW0H0Eelix3S4YHntotj0+PdlnxBqw52aPhKTLDhqDFBI88cRnwc3ZkHrQMFaABPM+MrrzONkxtNRsxCkpw5OaGctYAmpANZB+/Tv2mBE+zqj6s4ZqrsmGCRmntqHeNg5FlP7izXZVTkAWJn0i6SQQ8qvXCayEHuWzCiRfV2CiS4G3FIjZFuUXMuRb7gslfMx+07EkkpM7poHFw9QyfR9Z+nplnqv5gmmGQa/6zFTNchh+u3X+4TZPSC71WkoCivLStEEDXq3T3Aegc8NHkdVt8U5+7VeWbaCUDGeFtzLqYDshnw3rcT3QvLqJWnwcOeyXbY1QpiqvaXMD5DeXItWEcNfSHexUpvrko5h1qGWKqSL4XeDKIEgGTvGYfywshAiRttYZ4YS1stydBMhH5nNMnQo0qslosXMKG1xiOziqWDIwJKPVtNAJQ/GTMnshYRJ09QiutJ80fmkePYumum/mlZ+4L2+VzJTAeSBiYzB5eG0HMOKR5nD+KGrxG2M+2TEFsatNcKdrm/hKt5sdJYXTFLTA9e+uaGUb81B5SPkej1aEGEYUBkwx2FGMx9wusbUeGFbrlsblPtS9gcL7nm5t0k+ooLkwV/69UaPcWcmNT8x7J0jrgrePEgIBPy9mPiKbuttXcwdtHXTke3i7xHFuug6dNHOVwdaXY+ZkG/HYIaknI7UWweT7Wr8MPv6932E1QOYSTQGXo0/e76kzG5jIoeSm0OGIHsiYOAwNA/PNF54PPniy9uXD5KdvjAxqWbM61oToVReR+5bB+vGTA9H+Ml74rmaikbpMyjq3SC9cjpR2gtYBy4Vpf16nuVbgMh/AF/WDFzMC0GOE14g3kwdTJJ69nMSF/0twvI7EyL5AH+qXVTByDC3o1t14TudJTOxow6ypkJwl05YDMYOzbk/9HTpS7x96FwK42ZfULzNYdD8E96b5FJLflbzhWXDUIeP50WpqLEc9qFhvUTGrXYwXlA0k2XbrMLRwlIf5+ZckE+ToGphepKdRhA3pDdPaeiXT0zOyRklsYUnVpAxKxmDBdzEBz3PKH7M7Kx3Z+1st5Xnxc6rc0TZaF1Ojr8JnHPPZtc9S5yrhmhpn728XvxqMggXYxCqjmYm/ddj92JrZLdt6syVVTEhqvslGgBpYVL0lXew3hVrLOGKfYGE6wksIGOuETTCGghylPcPeT+r5HXkFHM6587x7cbbNW5LeKXFRo48N2hQA1oBy9Iy35YzIOqrFc1+m6rUGTNzwBIwNwKc5TAmWMkM76kq82xlLnW+/XlZ5k868HWmQSj8JanIDSlTDpGtWeblBSbND+992wiWFUvjDjIrtUbRN4UJGQxYohMowWOnj2VKSpxApeJHNToRoIrUsMyA4E6gFX0ZotCqtKdgXIIX62DP0vmiOQbDwDZZ1R1VKK5mLh+WxLf7WGPvQYylH/dB7D3YvTc2b7WIWpr7U2weh4ZoVSe/X/x+cQj5qIcXqgnmaxPSVkg6DxDfk6/Bh68hjZBKrdcs4WsO+22y/5vJatLg60/a48aGRK32zu8DXg/OeTia+oRVh9J9ik95GzU37delirl5s7fKei9ZYtLIXLWxs1jEGqVs+5ZMRx0GcnPHP2/xk4mVM8/CCf+1uIRTY0tJW3yadCsESyEehU/PboH6J6aFPMhr1zOiHtbOAmZK4B70xCne/Cjn7Ic9q2deMjiw20yBltCQlLHTK6WdbaBcam4npCC9RPEAsxrT447bbeSUwx2IQciFd3QZ2LvRn+TN/+hDwbylsvOO5rbT7pRC1CAhf8YwyEZjllDY0KIJrn2tw9Fqw2xMRz4O8+wE66T3By+3mVNc0lkIhkh7rTi+1HHnV/yXnfmVai7VNw13h8Yu8Hr/5vm+4QQWkT3mjl7hb+RLKyh3tFZ2dnAn6eLN9iFlXGPeeQW97tQbRR8isiraUOTl2CdCB8oKJzLTU5onkvFeoZeczEr4xCsq4SPa+mysP4UU4Tq277gHCOj/DKl2z8VPRaGWqe6ZstC0lumkeDpIiLaXejQV96OfgMzg+Stxcbe4Qqk6L3SkNrC865Nl3pZ9MN9ou8/buf6Hq3vxzx0XTVYd+tiOOZkvL3LtYgFzGiqwSZ92t6pVmNJPzMs0t8PhYJvkwXa5b/udS8xVchn6YdYSnQD6iKuoXeSmNPvmFqDrYw4xosHf7Qe+qDGWzX7CnmxiOwyhoAsHxnepMQ7LuFeGCy3bsDjYUi3KQUuBSBESRzVBRWa0Db3BLzLpGnlXM8UQ4i8CykabjaQrBOz/1BAewfgTIPxca+Lu8Yh/zkaCFCK2SMN5XPwDoMeYfpHWkw5tDv+SMWI/AOKjgoj407M2P4Ernv6cC3sBDbJoq1lwckafVJYYngYCB+JGtiTRSSNM2whbY3p4JslTj3aRug5bgYN0MOSZKTOslDBnkIHJpMkqyLnO0bgvJjxMOz+ZUTR2xODjJ2Fh3klwYl3bAUQhpycg+5CbXycPQscTJ7I1JYYXFBdQGQoat/x4Y0eIIcduSCyxEz6RQNgNhFQosVBoUTd/AoauZQf7R2+TlZ9ryyxO07QQq9QcRowgCSI2mRYFZ0ArHN+tc+yKNeWkJ2v4mOx4pOuE2WkU18y+iygp8RvnxugnxUXnY4eBBCMn1aWw07g9x+QprN+nVypqaJlYvXbe6qTmBcWXGvxTEX9SoQja28/zfkypnvSkweRo6CTYMRGMwYbJrlq73oh/EyoGZw/DdwBcHGutqW4iMnxwfnKOSdbrUh585NaLug6FokwMwLIG9jFAuEQhR941gAwkJuHYQqB5Qh+nobYjvGEmc5ARVXiphGJDFaqgnc09IV/RKIb9zrSx7NRMYtOafZAD3N3Mel7rNjds2o3YQ9kuttL3erC79YJkrRAH1D8hg4p+IOADlFf+vlbdtzchHZpkFhjozQKIQT4jnEE2jeq/e6kWMDUqz5tx/DXaj7VXWat+X6v1c5fTdNhSmPDKPbjGmZ8sYTR+F7/eat3XnC/VCaFOzdO3XhfqJg1DhhQOdd18RVyHdlFRs2oYRwO7CVI1T7V3BPgmi9TA6F6DIzO55/ZbRUY7oMt6YldAJ91In52FNG2cSqCArsTe8G6dIjRlA8REsSHwmU1ggs7jcW6QYxS+MsSRjzvv1L+uFk6ta1hg2T0hE5fAbSDp1zd4WyzG0z53pYAIewqrQD/6YRQP8A2G6SCNyHMQBKINaaPh+6RM404QaHbcWTsgT7aSbd8XhxL33ohWcEHdX2c97NBlHGIgwDiIeMCH6PyzQWDQ88l2uV62Z9x3Dtxs5M4Oo3Xj2Z0Zq/DasC83vmxyOWsw0Ng5m/lKof8NAb9vm6SPp7ykG7jD5rp2WB9ivPmUBwhYMbbhcKyuYfAkvqEI4NA7Q4fcVfDqDRAeZ1IJ4i3jJkw4rYCiJ/WRgOBytZiWwX5n8FtqMy4iISKfIeI1iETPLP/lVn9If/3/JEEWR0Py2/l1FetLkzzHkDUVyk5luXPwR8SPJoh9G5mKMlezENDPATidjEguthRJciLsLSgSLoslJBe5BdSSncn3ZR6HJwCW8Fu3dWz5b/7FfzoTy1CWhTKZh8xRCNG7sFbijOxtFIRZLJhlmDuY93LbT+wQUMP0ZJ+XOjyJlSwG/vTwijbxcNG7diPGYxrY7mSkMaclsDDgFquk8jmTeYnlrACUhWy6lEyHBTYPS4d3WcwkfLdtnmsF3v5t1UHLdt/syvlyVKxLnSrGAUVsDO3uvvZ1zvX9ICzmMpRHg8zvo6LEFgKIlFZzkxODZWGqac66j4PfGoxAuPmmTdsOhQRAiXjVQgbWmqf9oo7U6l/7c9Ghh2gBe1sJAwM/FU4KlxpLEwRdPbCc9J8ymERqA+7P52Dlv+ZsGfXKzVV5b9CfCrePFH9rxCXhN+iTWce7BkgIkXA2YnBxL/gc/D7Il6GIs9m1fiYJlWywVRzHjc18LZ5oarM9/zJACXtAjdHdVxGqZEeyrTOuNM3j1PJ0YgwfprxwVTASGOf5z9k0dIF7ltmAI5xkq24ngjU7NZJK0GawECsfkDaCa4kPgaGIFVXh7HNAsJ5Rc4hRTRHDULnoIB2ROXf582js2e/UHcRE/OuEaPj10Pe1XF/bkP+cr1LQUnjMIQRkzmE4R+1yzv1yvSTbvbj7f+HfkqbblG7LAGZO7BLL0lT7NTi7Qz8a6+o9+Io76GfXb00M5ickqdCMXcvDasJphu2ybjQg7igFlUorUMr9PdG9oHsNfXu8dkb695HlHPPe9JduxbN32upqDwoRbI2WNhVyMA03Z4MOjd579FRd2GsakLGR1BHFGPd7TmMS4/uI6hfhsK5P3Sl6S69XFL1bd9pZ1f9KcJc22lN1/yZN5Bn//wAgchAEyDMWknxpPBqIGLK3uwTt+ToUZfg35SW50/n7Ag2y0PIkQZROUE4RWT0WNQlhHveDwRLCVgbiYZuGjfpDfuFyXhuYWGwWa84dXnctVtU2nZkD4rIcyfftYosOROlMXBn5oBXXopH2oycKZmZLp1EWRlKqsbC+2LXRN3tO7OuS+zZ6YsY2vQePLTpUaPE/mwTXfbFwzq6yMD4HJflFv7wv10VR2OYBlr94HAqqTKQd4XrJp1hcUDhmSmFQ2u2+rCLNo4vnT+AazWVbS8ppe5aGNhE/jsPOD+MB/TAC948SVf9SSzX3z9lBn2Tx7hMAJjRVRvAlKCH4neLDA6rXrssjD3Wyus63kp28oAAXxnIwAX8X9FsYApa+SdOgm1HEF8cRCIXaln5gUhSY8h0V9lbSXDTOhEaQnJ9kNY4whLrrLSpc+OR+uay/fHfBkeRIwljlwJDHoUX3nF+LSsaseW4J3Wi56uK1m/W6Xo4aQqFERfkpbpOK8DuPxrVB/ohZ/5xRpV3X/c5a3xhF2PmXF+rMjvlZdgcnjUXVABYqK0r2/UJzXef/SgNs6JWQoQeBqqOIjPz/5YDpLgzx3MHM6B7s+dAMXum8E5/y7PxngaSiQMbYdAB9tmMEBt+h82mMC7+geGMv1AP2a4yq+XTwNAo/PTRiJHTMmHieGosMULVeeQu0BJX4/XOPsR7h5fenI7f1Jx47iKXafOZ3SutCNmj2GbNAMBmmIYF8xlZhiFMQL15syxuRqCj9A7EHjxMJtsLvJAp2D8ECeMGZ8WPiEA0C3olixgeQHsiHy0ZhXuqYE4U53JF9yXCydjWSm71Eq0SbdT8e9Hr3tzCQFAMx9IbVcNSu7kM/vyF/f8TL4nGrZnyBbichwBqWokhpiIbJkVkzJK9IwGBR0+RMgOZAYg8lIlmgD1qMBJgZvyO4gmDt2TMVNv95R1G38A5NYgmOoYImdKMehTyupOZne+XnV5kDRih4LLbe+EAS2glH8mDfFHAOuwJwDzMOLimDj9z6QL5DQcemNFv9HP0prMJ7RCpREmrPwYoh6tBeRExxX4QrTT5M5xuz8/P+jv97FuuX9mtWh9W4tZH+uVkv/2iP9jgYCN2VvyEZEkcbws0k/87t/9/zZpPYkuqU9Hl80b0hSI+GNxrR+eVrieGasTmsW8O7AHoe4h9rMa5DQ7flLH4LpO+Fcu4UpUpUc2jCl+YGbjN4GqHDqzl2QSB6AXG6XFo7KcD4zYXEGn2WI7XtqLrSmARnFfMgMTA/1fYd7IzeuqUwT/G8eRV8PYm9wcmOiTsonLgf4LgTo7f6aUu7wA8EAh8eE7UBorR/jwEy1TshrszyH5lZqwLEIBBaCrko59Ph7sDmyL7Ny9hzf37d1dy+6oHWxjdM4szUhvANVflnfzJ0m9G+Kpl86gQeQsJUGxMTKtzwY+S2uZj+GiYRVthyE+Eh/KxkEmJDb/kS46zFUGvZjZVI6YaZeEyDru2UYsTPgA/JQjjSsvWSsc+tERaIq+Syka7j97+NrxEJRA0QJ8mmtdsKGL8dc7vD+haBo+kh25qa2J+KmEA9orizR4P0OxEi2c8fyTGJ0I/T1ambu3qc7rk6m2UY6oP/PGtOfNKcW2aSALHqy7Svxo3M3r+gMMt3AP6TR/8D+PTM4ssc/+fb82YnUCkrBohC/CcQ/K0OaNz/EIV8+/6Aho4T79YpvqvHTc3LALvbB6GWkmFg2sPZC3QKrQb3/njxWvLqVEiP2g2MNHr7uFy64e475KV4W56KTkb5hX0WiuOyO5HjpjoN1M8B2+LSKH12lzMPbDiDqAg+8svV07U4+oiDilnjc0nxI7L1bsjnJeSjii8jDJqb6SOgdZOfPEix85b3snghT3keGvBKYygerQjyJg066A1RsuOWiNw3Jn0RPFyLA7fVz5KDdHb4vJFi9djD85r6Oegj0q+Jnqc48cif7ylFXT4fgIZ8tA6lmvwkOSP6EhpmNxFBY/f+wZYz5T3a4dQ2S5nI0qz1bmPhvlzEGOOWG4QaA5abVI5zuYW0/lgeQL9OdltJSTfYjOcctDyklkqDoc1q8Kk/vuhMdSrlBT1C2VfLlEilYKmbKpBFJIPHW3Dw0VclTQIy0HsMwyLX/4E4pFpOw/NaZZhHHpXVEgxaCxKoqTIZZIXsFQgCQ8SDXn1oUAX65XUMoJJ9pBhGGCwq4y6fNXfUwnMKW7IUMgjYDZ7O6AV3tNZ8EGsDNHgsCEmJB6HwykF/DkqpPA2fOcAiqGTjGLgKPCIn0QTTSYwwygAcyKTRfI6sjhscPlKjzALjb3UKHg1lZXwptkS3U+zgdIHxLzrFABNIVy3QY60weQWM3qwlDBG89gGAV+VbTxgxVNqGqSyIIzGRz7lSiOGiWQ4ev1hIJhaYmVt6mZ2Dk1tlbFdpHYDiC1+u2/LPLTRxygHu6jFyjc0t0+Tl9rEmzAMp0e6EHPWBNNxk/+HMK37WumOaDlP4lIBh/1sqxTMyeIoxrsiUhbGusp1Uaf6niXEFkO5rWRVIhvEF8TTPqpnnZCuYTFn+kl0hsgvFUxjP8wIv8g8vKVwR5OQgt0jyilK0YviEfAXFKk7xTCiBQi/zChO9pkQ52cE1rlPke4qV1FwutaA0t8/4V0m1VFZyKcq9rlRv4POm0kovo0wVKssqO085qnh9q1z3KU91+b5QgXYmVWiKqSZXVLHppjlOex00CmZUoqNvVJroZGZlZqur3KwqqtRZF3+rKq+uVevmLerNNa8ac6qtVa11r01t9aidnrWvQx19Si+961TnuphfV30ssMhiC+tWdydY4gZ9/UA//etRz3oZUG+f85/62MDA+tbPIEvrbzkrWKYBDWxQgw02pCENbVjDDTXMdxrhXo00vFG+1GhHOEokUUQTQyxxxJNAIk6NYWqsCMJojotLWDhFSyd5jHWEsOKgtnGNF85NbtFGMHZGGKVGK4/zBA3c5g53cYGLPMhDBGCTrJn1rGUTG9nMKkZaTaAmWMNeQvmRn7gbtyQtGK21IE3M16QmN6WpTWt6M5rZrGZXV31zmtu85reghS1qcUta2jItZyvv09YWPuJtPuY9PuAd3uVD/NZN+ARVPiWTviIvqkqJ9ClKKcl5k19SyrwoyqUywYq8qpQIVlQVvkwEME2mAE8DGejuCOyG1KZnhyOwLZ2aDcvCZK9uZZVcYXesCObswDZMIR46SKagatbK8p2JkignFCJcPXxBTn2glLZEMoW6NDq0YoEfipMRIXGC61OdSyaZ4jlr0xDzLmPkmrmIBKcECSOSdtnQkhw8nJTfkYwak6+dJ0ZsDLqheeO16d9/qiCfoTekrPyBU/g7KtIqf6raVozYao8R213HmLYtHeJ94eSdfDXRIYXkEFSTnXJN+VvRloaMRmdz39PKxRJlTZedTGY7Vs/6dUiDUkNO0KlQo3BCJUo1SuXSyzUVp+JQa6jfRqfjK32ncjBOKIRWU3NqTo1qjtPVT7tOO05XP+s46zjnOofiu0ZDsGpAx4fPV+4TFt+0EHPjLfCrRD0Jv2gfsuHVMLIxWinkakxXkfqP8EOmN6wh0cNl74SzOmUCo8uTClIvBztjAwSc2pAPBZhKUgtV1aqKeOAS6diHlJYaqFFrCDXVKq+OTvnlwNp3+IPb/IDQo6336P07TDLzA5ALHxsQ9NbO/uSgkAmV1RIJauHnfyuC5kzoMsAl7wE9APuhXXdim+/x+k0ckYTuVd8pQGnAbtV/6Fqt9ZO6Asgw2ij2I+J5T59cBLL23o3+v/ne8PCDbk3/ZJSswLIAAA==");
+}
=====================================
browser/components/abouttor/content/yec2025-image.svg
=====================================
@@ -0,0 +1,20 @@
+<svg width="495" height="381" viewBox="0 0 495 381" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <path d="M247.419 264.776C201.679 273.69 174.117 246.935 166.057 232.441L105.262 261.112L170.602 258.902L131.868 327.126L195.407 280.785L189.197 362.111L227.832 285.742L262.535 343.489L247.432 264.776H247.419Z" fill="#B6E368"/>
+ <path d="M223.938 98.8502C269.555 89.3133 297.484 115.702 305.741 130.086L366.144 100.584L300.841 103.686L338.631 34.949L275.741 82.1453L280.837 0.733295L243.255 77.6271L207.756 20.3445L223.938 98.8502Z" fill="#B6E368"/>
+ <g opacity="0.8">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M256.349 131.796H260.465V136.119H256.141V132.016H247.921V136.119H252.025V140.222H256.141V148.648H260.465V157.293H256.141V148.867H251.817V140.442H247.701V136.119H243.597V132.016H239.273V165.499H260.477V157.293H264.801V165.499H277.137V169.822H285.577V174.145H276.928V169.822H264.814V207.408H277.149V203.305H285.797V207.408H289.913V211.731H285.797V216.053H281.681V220.376H277.357V224.479H273.033V228.582H269.138V232.905H264.814V228.582H268.709V224.259H273.033V220.156H277.357V216.053H281.473V211.731H285.589V207.628H277.149V211.731H264.814V220.364H260.489V228.79H256.165V232.893H264.814V237.215H251.829V228.582H256.153V220.156H260.477V211.731H239.273V237.215H251.817V241.099H222.393V237.215H209.629V232.893H205.525V228.57H201.409V224.467H197.085V220.364H192.981V216.041H197.306V220.144H201.409V224.247H205.733V228.57H209.849V232.893H218.289V228.79H213.965V220.364H209.849V211.731H197.085V207.628H188.645V211.731H184.321V207.408H180.217V169.822H184.541V207.408H188.657V203.305H197.306V207.408H209.849V169.822H197.306V174.145H188.657V169.822H184.541V161.188H188.657V152.763H192.981V148.66H197.306V144.557H201.409V140.454H205.525V136.131H214.173V140.454H205.733V144.777H201.618V148.88H197.293V152.983H192.969V161.408H188.853V169.834H197.073V165.511H209.837V157.305H214.161V165.511H234.924V132.028H231.029V136.131H226.705V132.028H218.485V136.131H214.161V131.808H218.277V127.705H256.349V131.808V131.796ZM214.161 220.132H218.277V228.558H222.601V237.191H234.937V211.706H214.173V220.132H214.161ZM239.261 207.396H260.465V169.81H239.261V207.396ZM214.161 207.396H234.924V169.81H214.161V207.396Z" fill="#C272FF"/>
+ <path d="M192.968 216.029H188.644V211.706H192.968V216.029Z" fill="#C272FF"/>
+ <path d="M294.212 207.395H289.888V169.809H294.212V207.395Z" fill="#C272FF"/>
+ <path d="M269.113 140.429H273.008V144.532H277.332V148.635H281.448V152.738H285.772V161.164H289.888V169.797H285.564V161.371H281.448V152.946H277.124V148.843H273.008V144.74H268.684V140.417H260.465V136.094H269.113V140.417V140.429Z" fill="#C272FF"/>
+ <path d="M226.718 140.429H222.602V148.855H218.486V157.281H214.162V148.635H218.278V140.209H222.394V136.106H226.718V140.429Z" fill="#C272FF"/>
+ <path d="M260.464 136.119V131.796H256.348V127.693H218.276V131.796H214.16V136.119M260.464 136.119H256.14V132.016H247.92V136.119H252.024V140.222H256.14V148.648H260.464V157.293M260.464 136.119V140.442H268.683V144.764H273.008V148.867H277.123V152.97H281.448V161.396H285.564V169.822M260.464 136.119H269.112V140.442H273.008V144.545H277.332V148.648H281.448V152.75H285.772V161.176H289.888V169.81M214.16 136.119H205.512V140.442H201.396V144.545H197.292V148.648H192.968V152.75H188.644V161.176H184.528V169.81M214.16 136.119V140.442H205.72V144.764H201.604V148.867H197.28V152.97H192.956V161.396H188.84V169.822H197.06V165.499H209.824V157.293H214.148M214.16 136.119H218.484V132.016H226.704V136.119M289.888 169.81H294.212V207.396H289.888M289.888 169.81V207.396M260.464 157.281H256.14V148.855H251.816V140.429H247.7V136.107H243.596V132.004H239.272V165.487H260.476V157.281H260.464ZM260.464 157.281H264.788V165.487H277.123V169.81H285.564M289.888 207.396H285.772V203.293H277.123V207.396H264.788V169.81H276.903V174.132H285.551V169.81H289.875M289.888 207.396V211.718H285.772V216.041H281.656V220.364H277.332V224.467H273.008V228.57H269.112V232.892H264.788M264.788 232.88V228.558H268.683V224.235H273.008V220.132H277.332V216.029H281.448V211.706H285.564V207.603H277.123V211.706H264.788V220.339H260.464V228.765H256.14V232.868H264.788V232.88ZM264.788 232.88V237.203H251.803M251.803 237.191V228.558H256.128V220.132H260.452V211.706H239.248V237.191H251.791H251.803ZM251.803 237.191V241.074H222.38V237.191H209.616V232.868H205.512V228.545H201.396V224.442H197.072V220.339H192.968V216.017M192.968 216.029H197.292V220.132H201.396V224.235H205.72V228.558H209.836V232.88H218.276V228.777H213.952V220.352H209.836V211.718H197.072V207.615H188.632V211.718M192.968 216.029H188.644V211.706H192.968V216.029ZM188.632 211.706H184.308V207.383H180.204V169.797H184.528M184.528 169.81V207.396H188.644V203.293H197.292V207.396H209.836V169.81H197.292V174.132H188.644V169.81H184.528ZM214.16 157.281V165.487H234.923V132.004H231.028V136.107H226.704M214.16 157.281H218.484V148.855H222.6V140.429H226.716V136.107H222.392V140.21H218.276V148.635H214.16V157.281ZM214.16 220.132H218.276V228.558H222.6V237.191H234.936V211.706H214.172V220.132H214.16ZM239.26 207.396H260.464V169.81H239.26V207.396ZM214.16 207.396H234.923V169.81H214.16V207.396Z" stroke="#C272FF" stroke-width="0.618845"/>
+ </g>
+ <path d="M166.566 131.845H175.239L169.665 124.591L179.881 122.381L170.633 111.794L178.264 111.587L178.607 109.511L127.183 90.5711C125.738 90.0338 124.28 89.5942 122.81 89.2401L97.6982 24.4963C92.2226 10.3802 78.3437 0.904321 63.1542 0.904321C58.6095 0.904321 54.1139 1.73468 49.8265 3.3954L23.6612 13.4696C4.62526 20.8208 -4.86823 42.227 2.49382 61.2032L38.3608 153.715C43.8364 167.831 57.7153 177.319 72.8926 177.319C74.9261 177.319 76.935 177.148 78.9195 176.807C82.7169 180.238 87.1513 182.937 92.1001 184.756L143.855 203.818L137.804 193.072H149.686L145.643 183.242H158.493L153.238 173.546L119.454 161.103C130.674 153.727 136.958 140.771 135.954 127.534L175.349 142.041L166.566 131.845ZM151.731 175.28L154.904 181.105H142.446L146.501 190.935H134.141L139.139 199.812L92.8473 182.753C83.1946 179.2 75.5263 172.117 71.2389 162.825C66.9638 153.544 66.5718 143.165 70.1365 133.591L76.9963 115.164C80.2914 106.324 86.551 99.412 94.2316 95.1259L104.509 121.649C103.799 122.528 103.211 123.541 102.794 124.665L95.9343 143.091C94.9175 145.827 95.0278 148.782 96.2527 151.419C97.4655 154.069 99.6581 156.096 102.402 157.11L151.731 175.28ZM65.6653 144.337C65.4938 144.032 65.3468 143.702 65.2121 143.36L29.3328 50.8481C28.2549 48.0884 28.9653 45.7316 29.4798 44.5837C30.0066 43.4237 31.2805 41.3111 34.049 40.2488L60.202 30.1623C61.182 29.7838 62.1742 29.6006 63.1542 29.6006C65.9716 29.6006 69.4382 31.2247 70.8469 34.8636L93.4476 93.1232C85.2158 97.6169 78.503 104.98 74.9873 114.42L68.1275 132.858C66.7311 136.595 65.9103 140.466 65.6653 144.337ZM104.803 125.397C104.975 124.921 105.195 124.469 105.44 124.054L106.726 127.363C107.804 130.135 107.094 132.48 106.579 133.628H106.567C106.065 134.8 104.803 136.9 102.022 137.963L99.8174 138.817L104.803 125.397ZM116.918 160.163L103.149 155.095C100.932 154.289 99.1804 152.665 98.2004 150.528C97.2205 148.403 97.1225 146.034 97.9432 143.836L98.8129 141.492L102.794 139.965C106.297 138.622 107.89 135.96 108.539 134.495C109.188 133.042 110.083 130.086 108.723 126.594L106.983 122.113V122.064L106.273 120.281L106.163 119.988L96.1303 94.1245L96.1058 94.0757L95.4565 92.3906L95.3585 92.1219L72.8436 34.0821C71.0674 29.5029 66.6943 27.4637 63.1542 27.4637C61.9169 27.4637 60.6552 27.6957 59.4303 28.1597L33.2772 38.2461C29.7983 39.5894 28.1814 42.2514 27.5321 43.7045C26.8706 45.1699 25.9764 48.1372 27.3361 51.6296L63.2154 144.142C63.7666 145.595 64.5996 146.804 65.5918 147.744C65.7021 153.202 66.9393 158.624 69.2912 163.716C71.2389 167.929 73.8359 171.702 76.9718 174.938C75.6121 175.109 74.2646 175.182 72.8926 175.182C58.5973 175.182 45.5146 166.244 40.3575 152.934L4.49051 60.4217C-2.4428 42.5567 6.49946 22.396 24.433 15.4723L50.5982 5.39804C54.6406 3.8228 58.8668 3.04128 63.1542 3.04128C77.4618 3.04128 90.5322 11.9677 95.7015 25.2779L120.299 88.6906L120.385 88.9226L121.156 90.913L121.218 91.0595L131.581 117.79C132.414 119.939 133.014 122.113 133.381 124.311C133.406 124.384 133.418 124.457 133.43 124.53C133.553 125.19 133.639 125.861 133.7 126.533C133.7 126.594 133.712 126.643 133.712 126.704C135.133 140.039 128.629 153.214 116.918 160.163ZM135.697 125.165C135.317 122.43 134.619 119.683 133.577 117.008L123.765 91.7067C124.66 91.9632 125.554 92.244 126.436 92.5737L172.666 109.608L166.039 109.791L175.888 121.062L165.904 123.212L170.902 129.708H161.899L168.33 137.181L135.697 125.165Z" fill="white"/>
+ <path d="M488.077 306.123L422.933 212.255C415.84 202.035 404.252 195.831 391.819 195.55C388.193 192.314 383.893 189.701 379.018 187.906L332.347 170.713L332.151 170.64L320.771 170.957L329.198 180.592L318.639 182.875L325.034 191.191H316.802L323.417 198.872L356.38 211.01L348.847 216.212C339.145 222.903 333.449 233.222 332.31 244.078L302.004 232.917L307.259 242.576H293.846L297.888 252.406H286.643L291.126 260.355L344.694 280.088C345.221 280.284 345.735 280.467 346.262 280.626L404.13 364.016C411.406 374.481 423.374 380.733 436.15 380.733C444.076 380.733 451.707 378.352 458.249 373.846L478.228 360.072C486.766 354.174 492.499 345.321 494.361 335.137C496.223 324.94 493.993 314.646 488.077 306.123ZM324.678 197.052L321.469 193.328H329.37L322.388 184.255L333.192 181.923L325.377 172.972L331.795 172.789L378.271 189.909C382.092 191.313 385.535 193.255 388.548 195.611C381.48 196.039 374.706 198.371 368.826 202.425L358.536 209.52L324.678 197.052ZM345.429 278.086L344.168 277.622L292.609 258.621L290.306 254.543H301.085L297.043 244.713H310.861L306.598 236.885L332.138 246.288L334.245 247.069L354.237 254.433C356.932 255.422 359.749 255.397 362.273 254.53C362.971 254.311 363.632 254.018 364.269 253.651C366.695 252.32 368.667 250.147 369.696 247.375L374.179 235.359L386.012 227.19C387.495 226.176 389.148 225.651 390.924 225.651C392.296 225.651 395.751 226.017 398.091 229.388L401.447 234.223C401.226 235.078 400.969 235.921 400.675 236.775L393.497 256.106L393.142 257.022C390.14 264.507 385.02 270.49 378.748 274.52C378.148 274.911 377.536 275.289 376.911 275.631C368.287 280.504 357.777 281.896 347.61 278.806C346.887 278.599 346.152 278.354 345.429 278.086ZM362.432 246.544C362.665 245.226 363.461 242.747 366.033 240.976L371.092 237.484L367.687 246.63C366.829 248.95 365.176 250.745 363.142 251.844C362.101 249.683 362.224 247.656 362.432 246.544ZM402.366 238.424L402.709 237.471C402.819 237.142 402.929 236.824 403.027 236.495L463.234 323.255C465.023 325.819 464.888 328.42 464.643 329.739C464.398 331.058 463.614 333.525 461.042 335.307L441.062 349.082C439.58 350.107 437.926 350.62 436.15 350.62C434.778 350.62 431.312 350.266 428.972 346.884L379.973 276.279C386.588 272.005 391.966 265.704 395.138 257.803L402.366 238.424ZM492.254 334.746C490.49 344.38 485.075 352.745 477.003 358.313L457.024 372.088C450.85 376.349 443.635 378.596 436.15 378.596C424.072 378.596 412.766 372.698 405.894 362.807L349.496 281.529C352.534 282.25 355.584 282.592 358.598 282.592C365.519 282.592 372.256 280.76 378.136 277.39L427.208 348.105C430.136 352.305 434.435 352.757 436.15 352.757C438.367 352.757 440.425 352.11 442.275 350.84L462.254 337.066C465.464 334.843 466.456 331.766 466.75 330.118C467.044 328.481 467.228 325.245 464.998 322.046L403.774 233.808L402.084 231.378L399.854 228.166C396.939 223.966 392.639 223.514 390.924 223.514H390.912C388.695 223.514 386.637 224.161 384.787 225.431L375.478 231.854L372.403 233.979L364.808 239.218C361.599 241.428 360.619 244.517 360.313 246.154C360.068 247.533 359.908 250.012 361.158 252.65C359.198 253.224 357.042 253.187 354.984 252.43L334.38 244.847C335.323 234.394 340.738 224.405 350.06 217.97L358.83 211.913L360.986 210.424L370.039 204.184C376.213 199.934 383.44 197.675 390.912 197.675H390.961C392.039 197.675 393.117 197.724 394.171 197.822C405.012 198.774 414.934 204.477 421.169 213.476L486.313 307.344C491.898 315.391 494.005 325.123 492.254 334.746Z" fill="white"/>
+ <path d="M82.7096 239.196L95.6423 239.231L95.6325 242.957L82.7096 242.922V259.141H78.9108V242.912L65.5817 242.877L65.5925 239.151L78.9108 239.186V223.021H82.7096V239.196Z" fill="#C272FF"/>
+ <path d="M410.924 116.181L423.856 116.216L423.846 119.937L410.924 119.902V136.101H407.125V119.892L393.796 119.857L393.806 116.136L407.125 116.171V100.028H410.924V116.181Z" fill="#C272FF"/>
+ <path d="M62.4132 304.747C62.4132 303.479 61.387 302.452 60.1215 302.452C58.8559 302.452 57.8297 303.479 57.8297 304.747C57.8297 306.014 58.8559 307.041 60.1215 307.041V310.767C56.801 310.767 54.1093 308.072 54.1093 304.747C54.1093 301.422 56.801 298.727 60.1215 298.727C63.4419 298.727 66.1336 301.422 66.1336 304.747C66.1336 308.072 63.4419 310.767 60.1215 310.767V307.041C61.387 307.041 62.4132 306.014 62.4132 304.747Z" fill="#C272FF"/>
+ <path d="M359.727 133.175C363.047 133.175 365.739 135.87 365.739 139.195C365.739 142.52 363.047 145.215 359.727 145.215C356.406 145.215 353.715 142.52 353.715 139.195C353.715 135.87 356.406 133.175 359.727 133.175Z" fill="#C272FF"/>
+ <path d="M416.842 157.255C420.163 157.255 422.854 159.95 422.854 163.275C422.854 166.6 420.163 169.295 416.842 169.295C413.522 169.295 410.83 166.6 410.83 163.275C410.83 159.95 413.522 157.255 416.842 157.255Z" fill="#C272FF"/>
+ <path d="M101.492 281.67C101.492 280.403 100.466 279.375 99.2004 279.375C97.9348 279.375 96.9087 280.403 96.9087 281.67C96.9087 282.937 97.9348 283.965 99.2004 283.965V287.69C95.88 287.69 93.1883 284.995 93.1883 281.67C93.1883 278.345 95.88 275.65 99.2004 275.65C102.521 275.65 105.213 278.345 105.213 281.67C105.213 284.995 102.521 287.69 99.2004 287.69V283.965C100.466 283.965 101.492 282.937 101.492 281.67Z" fill="#C272FF"/>
+</svg>
=====================================
browser/components/abouttor/jar.mn
=====================================
@@ -8,3 +8,6 @@ browser.jar:
content/browser/abouttor/26a1-high-voltage.svg (content/26a1-high-voltage.svg)
content/browser/abouttor/2728-sparkles.svg (content/2728-sparkles.svg)
content/browser/abouttor/2764-red-heart.svg (content/2764-red-heart.svg)
+ content/browser/abouttor/yec-heart.svg (content/yec-heart.svg)
+ content/browser/abouttor/yec2025-image.svg (content/yec2025-image.svg)
+ content/browser/abouttor/yec2025-font.css (content/yec2025-font.css)
=====================================
toolkit/content/license.html
=====================================
@@ -99,6 +99,7 @@
<li><a href="about:license#harfbuzz">HarfBuzz License</a></li>
<li><a href="about:license#icu">ICU License</a></li>
<li><a href="about:license#immutable">Immutable.js License</a></li>
+ <li><a href="about:license#jacquard12">Jacquard 12 Font License</a></li>
<li><a href="about:license#jpnic">Japan Network Information Center License</a></li>
<li><a href="about:license#jemalloc">jemalloc License</a></li>
<li><a href="about:license#jquery">jQuery License</a></li>
@@ -3453,6 +3454,112 @@ product.
</tr>
<hr>
+ <tr>
+ <td>
+ <h1><a id="jacquard12"></a>Jacquard 12 Font License</h1>
+ </td>
+ <td>
+ <p>This license applies to embedded "Jacquard 12" font in <code>browser/components/abouttor/content/yec2025-font.css</code>.</p>
+ </td>
+ <td>
+ <pre>
+ Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jacquard)
+
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
+ This license is copied below, and is also available with a FAQ at:
+ https://openfontlicense.org
+
+
+ -----------------------------------------------------------
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+ -----------------------------------------------------------
+
+ PREAMBLE
+ The goals of the Open Font License (OFL) are to stimulate worldwide
+ development of collaborative font projects, to support the font creation
+ efforts of academic and linguistic communities, and to provide a free and
+ open framework in which fonts may be shared and improved in partnership
+ with others.
+
+ The OFL allows the licensed fonts to be used, studied, modified and
+ redistributed freely as long as they are not sold by themselves. The
+ fonts, including any derivative works, can be bundled, embedded,
+ redistributed and/or sold with any software provided that any reserved
+ names are not used by derivative works. The fonts and derivatives,
+ however, cannot be released under any other type of license. The
+ requirement for fonts to remain under this license does not apply
+ to any document created using the fonts or their derivatives.
+
+ DEFINITIONS
+ "Font Software" refers to the set of files released by the Copyright
+ Holder(s) under this license and clearly marked as such. This may
+ include source files, build scripts and documentation.
+
+ "Reserved Font Name" refers to any names specified as such after the
+ copyright statement(s).
+
+ "Original Version" refers to the collection of Font Software components as
+ distributed by the Copyright Holder(s).
+
+ "Modified Version" refers to any derivative made by adding to, deleting,
+ or substituting -- in part or in whole -- any of the components of the
+ Original Version, by changing formats or by porting the Font Software to a
+ new environment.
+
+ "Author" refers to any designer, engineer, programmer, technical
+ writer or other person who contributed to the Font Software.
+
+ PERMISSION & CONDITIONS
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
+ redistribute, and sell modified and unmodified copies of the Font
+ Software, subject to the following conditions:
+
+ 1) Neither the Font Software nor any of its individual components,
+ in Original or Modified Versions, may be sold by itself.
+
+ 2) Original or Modified Versions of the Font Software may be bundled,
+ redistributed and/or sold with any software, provided that each copy
+ contains the above copyright notice and this license. These can be
+ included either as stand-alone text files, human-readable headers or
+ in the appropriate machine-readable metadata fields within text or
+ binary files as long as those fields can be easily viewed by the user.
+
+ 3) No Modified Version of the Font Software may use the Reserved Font
+ Name(s) unless explicit written permission is granted by the corresponding
+ Copyright Holder. This restriction only applies to the primary font name as
+ presented to the users.
+
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+ Software shall not be used to promote, endorse or advertise any
+ Modified Version, except to acknowledge the contribution(s) of the
+ Copyright Holder(s) and the Author(s) or with their explicit written
+ permission.
+
+ 5) The Font Software, modified or unmodified, in part or in whole,
+ must be distributed entirely under this license, and must not be
+ distributed under any other license. The requirement for fonts to
+ remain under this license does not apply to any document created
+ using the Font Software.
+
+ TERMINATION
+ This license becomes null and void if any of the above conditions are
+ not met.
+
+ DISCLAIMER
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+ OTHER DEALINGS IN THE FONT SOFTWARE.
+ </pre>
+ </td>
+ </tr>
+
<tr>
<td>
<h1><a id="jpnic"></a>Japan Network Information Center License</h1>
=====================================
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
=====================================
@@ -721,3 +721,20 @@ 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
+
+## Year end campaign.
+
+yec-donate-button = Donate now
+# Here "Close" is a verb, referring to closing the banner.
+yec-close-button =
+ .title = Close
+
+## 2025 Year end campaign.
+
+# Here "Free" is a verb, as in "release" or "liberate".
+yec2025-title = Free the internet
+# The second sentence's translation should be wrapped in '<b data-l10n-name="highlight">' and '</b>', which will make the text green and bold.
+yec2025-body = Support tools that break the chains of censorship and surveillance. <b data-l10n-name="highlight">Donate to the Tor Project today.</b>
+# The end date should match the end of the year 2025.
+# The "$250,000" should be localised: it should be shown as USD (United States dollar) currency, but you may use numbers and formatting appropriate to your locale.
+yec2025-matching = Through December 31, your gift will be matched, up to $250,000!
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/301072…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/301072…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-update-responses][main] 6 commits: release: new version, 14.5.7 (linux-i686)
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
33f77983 by hackademix at 2025-09-16T14:36:59+02:00
release: new version, 14.5.7 (linux-i686)
- - - - -
0600ee57 by hackademix at 2025-09-16T14:37:00+02:00
release: new version, 14.5.7 (linux-x86_64)
- - - - -
e5bf5f36 by hackademix at 2025-09-16T14:37:00+02:00
release: new version, 14.5.7 (macos)
- - - - -
cca1bc55 by hackademix at 2025-09-16T14:37:00+02:00
release: new version, 14.5.7 (windows-i686)
- - - - -
97ba5bf3 by hackademix at 2025-09-16T14:37:01+02:00
release: new version, 14.5.7 (windows-x86_64)
- - - - -
fe09cf7b by hackademix at 2025-09-16T14:37:02+02:00
release: new version, 14.5.7
- - - - -
73 changed files:
- update_3/release/download-android-aarch64.json
- update_3/release/download-android-armv7.json
- update_3/release/download-android-x86.json
- update_3/release/download-android-x86_64.json
- update_3/release/download-linux-i686.json
- update_3/release/download-linux-x86_64.json
- update_3/release/download-macos.json
- update_3/release/download-windows-i686.json
- update_3/release/download-windows-x86_64.json
- update_3/release/downloads.json
- update_3/release/linux-i686/.htaccess
- − update_3/release/linux-i686/update-14.5.3-14.5.6+13.5.21-linux-i686.xml
- − update_3/release/linux-i686/update-14.5.4-14.5.6+13.5.21-linux-i686.xml
- + update_3/release/linux-i686/update-14.5.4-14.5.7+13.5.22-linux-i686.xml
- − update_3/release/linux-i686/update-14.5.5-14.5.6+13.5.21-linux-i686.xml
- + update_3/release/linux-i686/update-14.5.5-14.5.7+13.5.22-linux-i686.xml
- − update_3/release/linux-i686/update-14.5.6+13.5.21-linux-i686.xml
- + update_3/release/linux-i686/update-14.5.6-14.5.7+13.5.22-linux-i686.xml
- + update_3/release/linux-i686/update-14.5.7+13.5.22-linux-i686.xml
- update_3/release/linux-x86_64/.htaccess
- − update_3/release/linux-x86_64/update-14.5.3-14.5.6+13.5.21-linux-x86_64.xml
- − update_3/release/linux-x86_64/update-14.5.4-14.5.6+13.5.21-linux-x86_64.xml
- + update_3/release/linux-x86_64/update-14.5.4-14.5.7+13.5.22-linux-x86_64.xml
- − update_3/release/linux-x86_64/update-14.5.5-14.5.6+13.5.21-linux-x86_64.xml
- + update_3/release/linux-x86_64/update-14.5.5-14.5.7+13.5.22-linux-x86_64.xml
- − update_3/release/linux-x86_64/update-14.5.6+13.5.21-linux-x86_64.xml
- + update_3/release/linux-x86_64/update-14.5.6-14.5.7+13.5.22-linux-x86_64.xml
- + update_3/release/linux-x86_64/update-14.5.7+13.5.22-linux-x86_64.xml
- update_3/release/macos/.htaccess
- − update_3/release/macos/update-13.5.18-14.5.6+13.5.21-macos.xml
- − update_3/release/macos/update-13.5.19-14.5.6+13.5.21-macos.xml
- + update_3/release/macos/update-13.5.19-14.5.7+13.5.22-macos.xml
- − update_3/release/macos/update-13.5.20-14.5.6+13.5.21-macos.xml
- + update_3/release/macos/update-13.5.20-14.5.7+13.5.22-macos.xml
- + update_3/release/macos/update-13.5.21-14.5.7+13.5.22-macos.xml
- − update_3/release/macos/update-14.5.3-14.5.6+13.5.21-macos.xml
- − update_3/release/macos/update-14.5.4-14.5.6+13.5.21-macos.xml
- + update_3/release/macos/update-14.5.4-14.5.7+13.5.22-macos.xml
- − update_3/release/macos/update-14.5.5-14.5.6+13.5.21-macos.xml
- + update_3/release/macos/update-14.5.5-14.5.7+13.5.22-macos.xml
- − update_3/release/macos/update-14.5.6+13.5.21-macos.xml
- + update_3/release/macos/update-14.5.6-14.5.7+13.5.22-macos.xml
- + update_3/release/macos/update-14.5.7+13.5.22-macos.xml
- update_3/release/windows-i686/.htaccess
- − update_3/release/windows-i686/update-13.5.18-14.5.6+13.5.21-windows-i686.xml
- − update_3/release/windows-i686/update-13.5.19-14.5.6+13.5.21-windows-i686.xml
- + update_3/release/windows-i686/update-13.5.19-14.5.7+13.5.22-windows-i686.xml
- − update_3/release/windows-i686/update-13.5.20-14.5.6+13.5.21-windows-i686.xml
- + update_3/release/windows-i686/update-13.5.20-14.5.7+13.5.22-windows-i686.xml
- + update_3/release/windows-i686/update-13.5.21-14.5.7+13.5.22-windows-i686.xml
- − update_3/release/windows-i686/update-14.5.3-14.5.6+13.5.21-windows-i686.xml
- − update_3/release/windows-i686/update-14.5.4-14.5.6+13.5.21-windows-i686.xml
- + update_3/release/windows-i686/update-14.5.4-14.5.7+13.5.22-windows-i686.xml
- − update_3/release/windows-i686/update-14.5.5-14.5.6+13.5.21-windows-i686.xml
- + update_3/release/windows-i686/update-14.5.5-14.5.7+13.5.22-windows-i686.xml
- − update_3/release/windows-i686/update-14.5.6+13.5.21-windows-i686.xml
- + update_3/release/windows-i686/update-14.5.6-14.5.7+13.5.22-windows-i686.xml
- + update_3/release/windows-i686/update-14.5.7+13.5.22-windows-i686.xml
- update_3/release/windows-x86_64/.htaccess
- − update_3/release/windows-x86_64/update-13.5.18-14.5.6+13.5.21-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-13.5.19-14.5.6+13.5.21-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-13.5.19-14.5.7+13.5.22-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-13.5.20-14.5.6+13.5.21-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-13.5.20-14.5.7+13.5.22-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-13.5.21-14.5.7+13.5.22-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-14.5.3-14.5.6+13.5.21-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-14.5.4-14.5.6+13.5.21-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-14.5.4-14.5.7+13.5.22-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-14.5.5-14.5.6+13.5.21-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-14.5.5-14.5.7+13.5.22-windows-x86_64.xml
- − update_3/release/windows-x86_64/update-14.5.6+13.5.21-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-14.5.6-14.5.7+13.5.22-windows-x86_64.xml
- + update_3/release/windows-x86_64/update-14.5.7+13.5.22-windows-x86_64.xml
The diff was not included because it is too large.
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/mullvad-browser] Pushed new tag base-browser-143.0a1-16.0-2-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag base-browser-143.0a1-16.0-2-build1 at The Tor Project / Applications / Mullvad Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/base-…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser] Pushed new tag base-browser-143.0a1-16.0-2-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag base-browser-143.0a1-16.0-2-build1 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/base-brow…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-143.0a1-16.0-2-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag tor-browser-143.0a1-16.0-2-build1 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-143.0a1-16.0-2] 298 commits: BB 41454: Move focus after calling openPreferences for a sub-category.
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed to branch tor-browser-143.0a1-16.0-2 at The Tor Project / Applications / Tor Browser
Commits:
e1e2b747 by Henry Wilkes at 2025-08-28T15:29:32+02:00
BB 41454: Move focus after calling openPreferences for a sub-category.
Temporary fix until mozilla bug 1799153 gets a patch upstream.
- - - - -
e6e31c85 by Henry Wilkes at 2025-08-28T15:29:33+02:00
BB 43072: Add aria label and description to moz-message-bar.
Ensures that moz-message-bar, including notifications, are announced on
Orca.
This addresses upstream bugzilla bug 1895857 and should likely be
replaced when it is fixed.
- - - - -
5453b4f4 by Henry Wilkes at 2025-08-28T15:29:33+02:00
BB 42739: Use the brand name for profile error messages.
Some messages in profileSelection.properties use gAppData->name as
variable inputs. However, gAppData->name is still "Firefox" for our
base-browser builds, rather than the user-facing browser name. We swap
these instances with the displayed brand name instead.
- - - - -
a632aa50 by Henry Wilkes at 2025-08-28T15:29:34+02:00
BB 41483: Remove the firefox override for appstrings.properties
Remove this patch after upstream bugzilla bug 1790187
- - - - -
40a7c81a by Marco Simonelli at 2025-08-28T15:29:35+02:00
BB 41459: WebRTC fails to build under mingw (Part 1)
- properly define NOMINMAX for just MSVC builds
- - - - -
c97ea65d by Marco Simonelli at 2025-08-28T15:30:23+02:00
BB 41459: WebRTC fails to build under mingw (Part 2)
- fixes required to build third_party/libwebrtc
- - - - -
e26b89ea by Marco Simonelli at 2025-08-28T15:30:26+02:00
BB 41459: WebRTC fails to build under mingw (Part 3)
- fixes required to build third_party/sipcc
- - - - -
a4aa224e by Marco Simonelli at 2025-08-28T15:30:27+02:00
BB 41459: WebRTC fails to build under mingw (Part 4)
- fixes requried to build netwerk/sctp
- - - - -
0e44237d by Marco Simonelli at 2025-08-28T18:54:23+02:00
BB 41459: WebRTC fails to build under mingw (Part 5)
- fixes required to build dom/media/webrtc
- - - - -
7a5fcc49 by Marco Simonelli at 2025-08-28T18:54:24+02:00
BB 41459: WebRTC fails to build under mingw (Part 6)
- fixes required to build dom/media/systemservices
- - - - -
db9c9201 by june wilde at 2025-08-28T18:54:25+02:00
BB 42758: Fix WebRTC build errors.
- - - - -
64f0da68 by hackademix at 2025-08-28T18:54:25+02:00
BB 41854: Allow overriding download spam protection.
- - - - -
45fd3c62 by hackademix at 2025-08-28T18:54:26+02:00
BB 42832: Download spam prevention exemption for browser extensions.
- - - - -
0b808fb7 by Pier Angelo Vendrame at 2025-08-28T18:54:27+02:00
BB 42220: Allow for more file types to be forced-inline.
Firefox allows to open some files in the browser without any
confirmation, but this will result in a disk leak, because the file will
be downloaded to the temporary directory first (and not deleted, in some
cases).
A preference allows PDFs to be opened without being downloaded to disk.
So, we introduce a similar one to do the same for all the files that are
set to be opened automatically in the browser.
- - - - -
491be95b by hackademix at 2025-09-15T15:43:51+02:00
fixup! BB 42220: Allow for more file types to be forced-inline.
This reverts commit 90dbc9451a30f7d68384e26fe38517534bf7e302.
- - - - -
01ee2fb2 by Pier Angelo Vendrame at 2025-09-15T15:43:59+02:00
BB 42220: Allow for more file types to be forced-inline.
Firefox allows to open some files in the browser without any
confirmation, but this will result in a disk leak, because the file will
be downloaded to the temporary directory first (and not deleted, in some
cases).
A preference allows PDFs to be opened without being downloaded to disk.
So, we introduce a similar one to do the same for all the files that are
set to be opened automatically in the browser, except svg and html files
to prevent XSS hazards (see BB 43211).
- - - - -
0ff6310c by Beatriz Rizental at 2025-09-15T15:43:59+02:00
fixup! BB 42220: Allow for more file types to be forced-inline.
Fix lints.
- - - - -
5a77f529 by hackademix at 2025-09-15T15:44:00+02:00
BB 42835: Create an actor to filter file data transfers
- - - - -
a1d281f4 by Pier Angelo Vendrame at 2025-09-15T15:44:00+02:00
BB 44103: Remove ref-names from attr's .git_archival.txt.
The currently vendored copy of python-attrs's .git_archival.txt
includes a ref-names field which might make source tarballs not
reproducible.
Upstream fixed this in da2333cd37747d692d5c78b0c94bd400ff883a9a,
therefore we apply the same change until Mozilla vendors an updated
copy of python-attrs.
See also https://bugzilla.mozilla.org/show_bug.cgi?id=1980103.
- - - - -
a8c5f084 by Pier Angelo Vendrame at 2025-09-15T15:44:00+02:00
BB 43664: Automatically check the PBM checkbox when in always-on PBM.
- - - - -
e5950149 by hackademix at 2025-09-15T15:44:01+02:00
BB 44125: Do not offer to save signatures by default in Private Browsing Mode
- - - - -
a09cdb2b by Beatriz Rizental at 2025-09-15T15:44:01+02:00
BB 43564: Modify ./mach bootstrap for Base Browser
- - - - -
4c3a76bd by Beatriz Rizental at 2025-09-15T15:44:01+02:00
fixup! BB 43564: Modify ./mach bootstrap for Base Browser
EXTRA: Stop asking to configure git during bootstrap.
- - - - -
29f7c79e by Beatriz Rizental at 2025-09-15T15:44:02+02:00
fixup! BB 43564: Modify ./mach bootstrap for Base Browser
- - - - -
1d4dfdf3 by Beatriz Rizental at 2025-09-15T15:44:02+02:00
fixup! BB 43564: Modify ./mach bootstrap for Base Browser
- - - - -
6ede41ce by Beatriz Rizental at 2025-09-15T15:44:02+02:00
fixup! BB 43564: Modify ./mach bootstrap for Base Browser
- - - - -
807b3321 by Beatriz Rizental at 2025-09-15T15:44:03+02:00
BB 42728: Modify ./mach lint to skip unused linters
- - - - -
e5389748 by Morgan at 2025-09-15T15:44:03+02:00
BB 43615: Add Gitlab Issue and Merge Request templates
- - - - -
78336715 by Morgan at 2025-09-15T15:44:04+02:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
update branch creation section now that we have tags from the firefox repo
- - - - -
7b9472cb by Morgan at 2025-09-15T15:44:04+02:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
Update priority labels
- - - - -
f40df9dc by Morgan at 2025-09-15T15:44:04+02:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
add Apps::Impact::High label to release prep issues
- - - - -
bf5fbb96 by Morgan at 2025-09-15T15:44:05+02:00
fixup! BB 43615: Add Gitlab Issue and Merge Request templates
Bug 43534: Update rebase templates
- - - - -
4d6fa5d6 by Henry Wilkes at 2025-09-15T15:44:05+02:00
BB 41803: Add some developer tools for working on tor-browser.
- - - - -
48570fb5 by Beatriz Rizental at 2025-09-15T15:44:05+02:00
fixup! BB 41803: Add some developer tools for working on tor-browser.
- - - - -
68a83228 by Richard Pospesel at 2025-09-15T15:44:06+02:00
BB 42683: Create script to generate issue triage csv file from bugzilla query and git logs
- - - - -
a1475dec by Henry Wilkes at 2025-09-15T15:44:06+02:00
BB 42305: Add script to combine translation files across versions.
- - - - -
cad7e1d6 by Beatriz Rizental at 2025-09-15T15:44:07+02:00
fixup! BB 42305: Add script to combine translation files across versions.
- - - - -
cd6caa16 by Beatriz Rizental at 2025-09-15T15:44:07+02:00
BB 43535: Enable tests
- - - - -
1387854a by Beatriz Rizental at 2025-09-15T15:44:07+02:00
Add CI for Base Browser
- - - - -
64039601 by Beatriz Rizental at 2025-09-15T15:44:08+02:00
fixup! Add CI for Base Browser
- - - - -
474e9868 by Beatriz Rizental at 2025-09-15T15:44:08+02:00
fixup! Add CI for Base Browser
Run all of our python tests everytime.
This is a quick workaround for tests to pass, before I address it
properly in tor-browser#44149
- - - - -
efe621bc by Pier Angelo Vendrame at 2025-09-15T15:44:09+02:00
Base Browser's .mozconfigs.
Bug 17858: Cannot create incremental MARs for hardened builds.
Define HOST_CFLAGS, etc. to avoid compiling programs such as mbsdiff
(which is part of mar-tools and is not distributed to end-users) with
ASan.
Bug 21849: Don't allow SSL key logging.
Bug 25741 - TBA: Disable features at compile-time
Define MOZ_ANDROID_NETWORK_STATE and MOZ_ANDROID_LOCATION
Bug 27623 - Export MOZILLA_OFFICIAL during desktop builds
This fixes a problem where some preferences had the wrong default value.
Also see bug 27472 where we made a similar fix for Android.
Bug 29859: Disable HLS support for now
Bug 30463: Explicitly disable MOZ_TELEMETRY_REPORTING
Bug 32493: Disable MOZ_SERVICES_HEALTHREPORT
Bug 33734: Set MOZ_NORMANDY to False
Bug 33851: Omit Parental Controls.
Bug 40252: Add --enable-rust-simd to our tor-browser mozconfig files
Bug 41584: Move some configuration options to base-browser level
- - - - -
00975647 by Pier Angelo Vendrame at 2025-09-15T15:44:09+02:00
Tweaks to the build system
Bug 40857: Modified the fat .aar creation file
This is a workaround to build fat .aars with the compiling enviornment
disabled.
Mozilla does not use a similar configuration, but either runs a Firefox
build and discards its output, or uses artifacts build.
We might switch to artifact builds too, and drop this patch, or write a
better one to upstream. But until then we need this patch.
See also https://bugzilla.mozilla.org/show_bug.cgi?id=1763770.
Bug 41458: Prevent `mach package-multi-locale` from actually creating a package
macOS builds need some files to be moved around with
./mach package-multi-locale to create multi-locale packages.
The required command isn't exposed through any other mach command.
So, we patch package-multi-locale both to prevent it from failing when
doing official builds and to detect any future changes on it.
- - - - -
71867150 by Pier Angelo Vendrame at 2025-09-15T15:44:09+02:00
BB 29320: Replace the gnu target with gnullvm for Rust.
- - - - -
d5df5659 by Pier Angelo Vendrame at 2025-09-15T15:44:10+02:00
BB 42616: Remove VideoCaptureTest.kt.
This is a workaround to fix the GeckoView build with WebRTC disabled.
We should replace this workaround with a proper solution, that
excludes this test when MOZ_WEBRTC is undefined/False.
- - - - -
4e9382c5 by Pier Angelo Vendrame at 2025-09-15T15:44:10+02:00
BB 41108: Remove privileged macOS installation from 102
- - - - -
cf490e4e by Dan Ballard at 2025-09-15T15:44:10+02:00
BB 41149: Re-enable DLL injection protection in all builds not just nightlies
- - - - -
1f604c62 by Henry Wilkes at 2025-09-15T15:44:11+02:00
BB 43092: Disable wayland by default in Base Browser.
- - - - -
cfb3222e by Matthew Finkel at 2025-09-15T15:44:11+02:00
BB 24796: Comment out excess permissions from GeckoView
The GeckoView AndroidManifest.xml is not preprocessed unlike Fennec's
manifest, so we can't use the ifdef preprocessor guards around the
permissions we do not want. Commenting the permissions is the
next-best-thing.
- - - - -
03c99019 by Matthew Finkel at 2025-09-15T15:44:12+02:00
BB 28125: Prevent non-Necko network connections
- - - - -
9d577842 by Mike Perry at 2025-09-15T15:44:12+02:00
BB 12974: Disable NTLM and Negotiate HTTP Auth
The Mozilla bugs: https://bugzilla.mozilla.org/show_bug.cgi?id=1046421,
https://bugzilla.mozilla.org/show_bug.cgi?id=1261591, tor-browser#27602
- - - - -
c7f5a212 by cypherpunks1 at 2025-09-15T15:44:12+02:00
BB 40717: Hide Windows SSO in settings
- - - - -
11943575 by Georg Koppen at 2025-09-15T15:44:13+02:00
BB 16285: Exclude ClearKey system for now
In the past the ClearKey system had not been compiled when specifying
--disable-eme. But that changed and it is even bundled nowadays (see:
Mozilla's bug 1300654). We don't want to ship it right now as the use
case for it is not really visible while the code had security
vulnerabilities in the past.
- - - - -
52c42412 by Kathy Brade at 2025-09-15T15:44:13+02:00
BB 21431: Clean-up system extensions shipped in Firefox
Only ship the pdfjs extension.
- - - - -
4c2dcc80 by Kathy Brade at 2025-09-15T15:44:13+02:00
BB 33852: Clean up about:logins (LockWise) to avoid mentioning sync, etc.
Hide elements on about:logins that mention sync, "Firefox LockWise", and
Mozilla's LockWise mobile apps.
Disable the "Create New Login" button when security.nocertdb is true.
- - - - -
fe238ae7 by Henry Wilkes at 2025-09-15T15:44:14+02:00
fixup! BB 33852: Clean up about:logins (LockWise) to avoid mentioning sync, etc.
TB 44128: Fix about:logins to be able to hard disable the "new-login-button".
- - - - -
b7eb2601 by Alex Catarineu at 2025-09-15T15:44:14+02:00
BB 41457: Remove Mozilla permissions
Bug 40025: Remove Mozilla add-on install permissions
- - - - -
11c13def by Henry Wilkes at 2025-09-15T15:44:14+02:00
BB 44045: Disable ML features.
- - - - -
1fb0e708 by Henry Wilkes at 2025-09-15T15:44:15+02:00
fixup! BB 44045: Disable ML features.
TB 44045: Moved changes to the correct target.
- - - - -
8bada149 by Beatriz Rizental at 2025-09-15T15:44:15+02:00
fixup! BB 44045: Disable ML features.
Remove usage of deleted GenAI module.
- - - - -
c67c9515 by Kathy Brade at 2025-09-15T15:44:16+02:00
BB 41662: Disable about:sync-logs
Even though we disable sync by default with
`identity.fxaccounts.enabled`, this about: page is still avilable.
We could throw an exception on the constructor of the related
component, but it would result only in an error in the console, without
a visible "this address does not look right" error page.
If we fix the issues with MOZ_SERVICES_SYNC, we can restore the
component.
- - - - -
bdf602d3 by Morgan at 2025-09-15T15:44:16+02:00
BB 42716: Disable unwanted about: pages
- - - - -
01629407 by Pier Angelo Vendrame at 2025-09-15T15:44:16+02:00
fixup! BB 42716: Disable unwanted about: pages
BB 43795: Restore the URL classifier XPCOM components.
Move the commit where we disable about:urlclassifier.
- - - - -
d34fb7e0 by Arthur Edelstein at 2025-09-15T15:44:17+02:00
BB 26353: Prevent speculative connect that violated FPI.
Connections were observed in the catch-all circuit when
the user entered an https or http URL in the URL bar, or
typed a search term.
- - - - -
18764fd5 by Alex Catarineu at 2025-09-15T15:44:17+02:00
BB 31740: Remove some unnecessary RemoteSettings instances
More concretely, SearchService.jsm 'hijack-blocklists' and
url-classifier-skip-urls.
Avoid creating instance for 'anti-tracking-url-decoration'.
If prefs are disabling their usage, avoid creating instances for
'cert-revocations' and 'intermediates'.
Do not ship JSON dumps for collections we do not expect to need. For
the ones in the 'main' bucket, this prevents them from being synced
unnecessarily (the code in remote-settings does so for collections
in the main bucket for which a dump or local data exists). For the
collections in the other buckets, we just save some size by not
shipping their dumps.
We also clear the collections database on the v2 -> v3 migration.
- - - - -
bfd4edea by Pier Angelo Vendrame at 2025-09-15T15:44:17+02:00
fixup! BB 31740: Remove some unnecessary RemoteSettings instances
BB 43795: Restore the URL classifier XPCOM components.
We are not really interested in removing them.
We're interested in them not calling Mozilla.
However, we have a central patch for RemoteSettings, so we do not need
to patch the single user.
Or, if we did, at least we should patch
UrlClassifierExceptionListService where it creates its RemoteSettings
instance.
- - - - -
9c447e5e by cypherpunks1 at 2025-09-15T15:44:18+02:00
BB 41092: Add a RemoteSettings JSON dump for query-stripping
- - - - -
0d997a55 by cypherpunks1 at 2025-09-15T15:44:18+02:00
BB 42730: Patch RemoteSettings to use only local dumps as a data source
- - - - -
7bfb34f2 by Pier Angelo Vendrame at 2025-09-15T15:44:19+02:00
fixup! BB 42730: Patch RemoteSettings to use only local dumps as a data source
Make explicit that blanking REMOTE_SETTINGS_SERVER_URL is our change.
- - - - -
c46918dc by Pier Angelo Vendrame at 2025-09-15T15:44:19+02:00
BB 43525: Skip Remote Settings for search engine customization.
Also, add some bundled search engines.
- - - - -
a78adeff by Beatriz Rizental at 2025-09-15T15:44:19+02:00
fixup! BB 43525: Skip Remote Settings for search engine customization.
- - - - -
716aab2d by Pier Angelo Vendrame at 2025-09-15T15:44:20+02:00
BB 41635: Disable the Normandy component
Do not include Normandy at all whenever MOZ_NORMANDY is False.
- - - - -
d858df14 by Georg Koppen at 2025-09-15T15:44:20+02:00
BB 30541: Disable WebGL readPixel() for web content
Related Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1428034
- - - - -
e23d7505 by Alex Catarineu at 2025-09-15T15:44:20+02:00
BB 28369: Stop shipping pingsender executable
- - - - -
c34c3186 by Henry Wilkes at 2025-09-15T15:44:21+02:00
BB 42630: Disable LaterRun module.
- - - - -
81717a8c by Pier Angelo Vendrame at 2025-09-15T15:44:21+02:00
BB 41599: Always return an empty string as network ID
Firefox computes an internal network ID used to detect network changes
and act consequently (e.g., to improve WebSocket UX).
However, there are a few ways to get this internal network ID, so we
patch them out, to be sure any new code will not be able to use them and
possibly link users.
We also sent a patch to Mozilla to seed the internal network ID, to
prevent any accidental leak in the future.
Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=1817756
- - - - -
a38a2334 by Pier Angelo Vendrame at 2025-09-15T15:44:22+02:00
BB 43386: Use Firefox in the UA in RFP-exempt request.
XHR requests initiated by extensions are exempt from RFP.
Therefore, they report the actual app name, instead of Firefox, and the
actual Firefox minor version.
This happens whenever the app name has been customized and does not
match a hardcoded "Firefox".
- - - - -
c68e5633 by Richard Pospesel at 2025-09-15T15:44:22+02:00
BB 41327: Disable UrlbarProviderInterventions
- - - - -
e0d23fa8 by Richard Pospesel at 2025-09-15T15:44:22+02:00
BB 42037: Disable about:firefoxview page
- - - - -
a2d3fc3a by Henry Wilkes at 2025-09-15T15:44:23+02:00
fixup! BB 42037: Disable about:firefoxview page
TB 43726: Drop comments about resolved bugzilla issues.
- - - - -
15ea5a4a by Beatriz Rizental at 2025-09-15T15:44:23+02:00
fixup! BB 42037: Disable about:firefoxview page
Fix lints.
- - - - -
592cd753 by Mike Perry at 2025-09-15T15:44:24+02:00
Firefox preference overrides.
- - - - -
4526123d by Henry Wilkes at 2025-09-15T15:44:24+02:00
fixup! Firefox preference overrides.
TB 44045: Disable ML features.
- - - - -
b607c642 by Pier Angelo Vendrame at 2025-09-15T15:44:24+02:00
fixup! Firefox preference overrides.
BB 41131: Make sure background tasks are not used for shutdown cleanup.
privacy.sanitize.sanitizeOnShutdown (disabled by default) might try to
use background tasks, without checking whether they are actually
available (they are not for us, as we disable them at build time).
- - - - -
a327cda5 by Beatriz Rizental at 2025-09-15T15:44:25+02:00
fixup! Firefox preference overrides.
- - - - -
f27e417c by Beatriz Rizental at 2025-09-15T15:44:25+02:00
fixup! Firefox preference overrides.
- - - - -
e5845ded by Pier Angelo Vendrame at 2025-09-15T15:44:26+02:00
fixup! Firefox preference overrides.
BB 43950: Disable HEVC.
HEVC support can be used for fingerprinting, as it's hardware-dependent
on some systems, or depends on distribution support/installed packages
for Linux.
- - - - -
d1fb5cf9 by Pier Angelo Vendrame at 2025-09-15T15:44:26+02:00
fixup! Firefox preference overrides.
BB 43959: Switch to Noto Color Emoji on Linux and Windows.
It has better compatibility than Twemoji Mozilla and upstream also did
it in Bug 1939359 (for Linux).
We don't use Segoe UI Emoji on Windows, so we enable Noto Color Emoji
also on Windows.
- - - - -
2d289208 by Pier Angelo Vendrame at 2025-09-15T15:44:26+02:00
BB 43140: Tighten up fonts on Linux.
We ship a fontconfig configuration to esnure all Linux users have the
same defaults and reduce the chances of fingerprinting.
We used to add this file in tor-browser-build, but some users might
skip it by using the browser executable without the wrapper script.
Therefore, we decided to activate the file with the FontConfig API
instead of the environment variables.
Bug 41043: Hardcode the UI font on Linux
The mechanism to choose the UI font does not play well with our
fontconfig configuration. As a result, the final criterion to choose
the font for the UI was its version.
Since we hardcode Arimo as a default sans-serif on preferences, we use
it also for the UI. FontConfig will fall back to some other font for
scripts Arimo does not cover as expected (we tested with Japanese).
Bug 43141: Hardcode system-ui to Arimo.
- - - - -
3f55f2b6 by Pier Angelo Vendrame at 2025-09-15T15:44:27+02:00
BB 43322: Customize the font visibility lists.
Customize the lists of fonts to assign base visibility to in
base browser and derivatives.
Also, rename the files with the upstream lists, to make sure we do not
use them by mistake.
- - - - -
ae9a5e75 by Alex Catarineu at 2025-09-15T15:44:27+02:00
BB 30605: Honor privacy.spoof_english in Android
This checks `privacy.spoof_english` whenever `setLocales` is
called from Fenix side and sets `intl.accept_languages`
accordingly.
Bug 40198: Expose privacy.spoof_english pref in GeckoView
- - - - -
c37a4244 by Pier Angelo Vendrame at 2025-09-15T15:44:28+02:00
BB 42562: Normalized the Accepted Languages on Android.
The OS language might be outside the list of actually supported
languages and it might leak the user's region.
Therefore, we force the locale reported in Accept-Language to match one
we support with translations, even when it means using a not exact
region tag.
- - - - -
b7de4593 by Alex Catarineu at 2025-09-15T15:44:28+02:00
BB 40171: Make WebRequest and GeckoWebExecutor First-Party aware
- - - - -
31736391 by Alex Catarineu at 2025-09-15T15:44:28+02:00
BB 26345: Hide tracking protection UI
- - - - -
4e8a53c9 by Henry Wilkes at 2025-09-15T15:44:29+02:00
BB 43109: Hide Firefox Relay from settings.
This should remain disabled, see tor-browser#42814.
- - - - -
71648670 by Henry Wilkes at 2025-09-15T15:44:29+02:00
BB 42777: Hide Website Privacy Preferences.
We hide the Website Privacy Preferences section, which controls the
"global privacy control" (GPC) and "do not track" (DNT) settings.
- - - - -
5af20705 by Morgan at 2025-09-15T15:44:30+02:00
BB 42070: Hide "Use smooth scrolling" from settings
- - - - -
b0045fab by Arthur Edelstein at 2025-09-15T15:44:30+02:00
BB 18905: Hide unwanted items from help menu
Bug 25660: Remove the "New Private Window" option
- - - - -
73f9c2bc by Henry Wilkes at 2025-09-15T15:44:30+02:00
fixup! BB 18905: Hide unwanted items from help menu
TB 43903: Hide "Report broken site" items.
- - - - -
7c3c2cfb by Pier Angelo Vendrame at 2025-09-15T15:44:31+02:00
BB 41739: Remove "Website appearance" from about:preferences.
It is ignored because of RFP and it is confusing for users.
- - - - -
389fe783 by Henry Wilkes at 2025-09-15T15:44:31+02:00
BB 43117: Hide "Always underline links" from settings.
- - - - -
458bec11 by Pier Angelo Vendrame at 2025-09-15T15:44:32+02:00
BB 42774: Always hide the third-pary certs UI.
- - - - -
8af9291d by Henry Wilkes at 2025-09-15T15:44:32+02:00
BB 43118: Hide feature recommendation (CFR) settings.
- - - - -
7aff1498 by Pier Angelo Vendrame at 2025-09-15T15:44:32+02:00
BB 9173: Change the default Firefox profile directory to be relative.
This commit makes Firefox look for the default profile directory in a
directory relative to the binary path.
The directory can be specified through the --with-relative-data-dir.
This is relative to the same directory as the firefox main binary for
Linux and Windows.
On macOS, we remove Contents/MacOS from it.
Or, in other words, the directory is relative to the application
bundle.
This behavior can be overriden at runtime, by placing a file called
system-install adjacent to the firefox main binary (also on macOS).
- - - - -
6960a903 by Pier Angelo Vendrame at 2025-09-15T15:44:33+02:00
BB 42773: Replace ~ with the original home.
In Bug 93141, Mozilla started sending users to their home when they type
~ in the URL bar.
On Linux, we change $HOME for various reason, therefore you would be
redirected to the spoofed home directory when typing ~.
So, we check if the original home directory is known, and use that,
instead.
- - - - -
7e25452f by Alex Catarineu at 2025-09-15T15:44:33+02:00
BB 27604: Fix addon issues when moving the profile directory
Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1429838
- - - - -
979bc917 by Mike Perry at 2025-09-15T15:44:33+02:00
BB 13028: Prevent potential proxy bypass cases.
It looks like these cases should only be invoked in the NSS command line
tools, and not the browser, but I decided to patch them anyway because there
literally is a maze of network function pointers being passed around, and it's
very hard to tell if some random code might not pass in the proper proxied
versions of the networking code here by accident.
Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1433509
- - - - -
5a7f4237 by Pier Angelo Vendrame at 2025-09-15T15:44:34+02:00
BB 40309: Avoid using regional OS locales
Avoid regional OS locales if the pref
`intl.regional_prefs.use_os_locales` is false but RFP is enabled.
- - - - -
f64cacd1 by Matthew Finkel at 2025-09-15T15:44:34+02:00
BB 40432: Prevent probing installed applications
Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=1711084
- - - - -
6c519749 by Henry Wilkes at 2025-09-15T15:44:35+02:00
BB 29745: Limit remote access to content accessible resources
- - - - -
6f88d656 by cypherpunks1 at 2025-09-15T15:44:35+02:00
BB 33955: When copying an image only copy the image contents to the clipboard
- - - - -
4fb76718 by cypherpunks1 at 2025-09-15T15:44:35+02:00
BB 41791: Omit the source URL when copying page contents to the clipboard
- - - - -
d1317f5b by Pier Angelo Vendrame at 2025-09-15T15:44:36+02:00
BB 43196: Remove the vendor name from media notifications on Linux.
Firefox shows "vendor remoteName" as a title of the "... is playing
media" notification on Linux.
However, for our browser the remote name is enough, and prepending the
vendor to it creates a string users usually never see.
- - - - -
51077c3b by Pier Angelo Vendrame at 2025-09-15T15:44:36+02:00
Base Browser strings
This commit adds all the strings needed by following Base Browser
patches.
- - - - -
ed4658d5 by Henry Wilkes at 2025-09-15T15:44:37+02:00
fixup! Base Browser strings
TB 44030: Add strings for the new security level warning dialog.
- - - - -
f880384c by Henry Wilkes at 2025-09-15T15:44:37+02:00
fixup! Base Browser strings
TB 44034: Update new identity checkbox string.
- - - - -
b820897c by Henry Wilkes at 2025-09-15T15:44:37+02:00
BB 42583: Modify moz-support-link for Base Browser.
- - - - -
f1cd399b by Pier Angelo Vendrame at 2025-09-15T15:44:38+02:00
BB 41369: Improve Firefox language settings for multi-lingual packages
Change the language selector to be sorted by language code, rather than
name, and to display the language code to the user.
Bug 41372: Handle Japanese as a special case in preferences on macOS
Japanese is treated in a special way on macOS. However, seeing the
Japanese language tag could be confusing for users, and moreover the
language name is not localized correctly like other langs.
Bug 41378: Tell users that they can change their language at the first start
With multi-lingual builds, Tor Browser matches the user's system
language, but some users might want to change it.
So, we tell them that it is possible, but only once.
- - - - -
ece149cc by p13dz at 2025-09-15T15:44:38+02:00
BB 40283: Workaround for the file upload bug
- - - - -
23d93e08 by hackademix at 2025-09-15T15:44:38+02:00
BB 42019: Empty browser's clipboard on browser shutdown
- - - - -
45fc7353 by Pier Angelo Vendrame at 2025-09-15T15:44:39+02:00
fixup! BB 42019: Empty browser's clipboard on browser shutdown
BB 43770: Follow upstream's BrowserGlue simplifications.
ClipboardPrivacy to its own file and initialize it from the manifest,
rather than from BrowserGlue.
- - - - -
8fbabebe by hackademix at 2025-09-15T15:44:39+02:00
BB 42084: Ensure English spoofing works even if preferences are set out of order.
- - - - -
fdb2c527 by Pier Angelo Vendrame at 2025-09-15T15:44:40+02:00
BB 41930: Remove the UI to customize accept_languages.
- - - - -
f66bd7b3 by hackademix at 2025-09-15T15:44:40+02:00
BB 32308: Use direct browser sizing for letterboxing.
Bug 30556: align letterboxing with 200x100 new win width stepping
- - - - -
3000aba3 by hackademix at 2025-09-15T15:44:40+02:00
fixup! BB 32308: Use direct browser sizing for letterboxing.
BB 44041: Make dialog overlays cover the correct area without fixed positioning.
- - - - -
64c2615e by hackademix at 2025-09-15T15:44:41+02:00
BB 41631: Prevent weird initial window dimensions caused by subpixel computations
- - - - -
17e8a181 by hackademix at 2025-09-15T15:44:41+02:00
BB 41918: Option to reuse last window size when letterboxing is enabled.
- - - - -
a737babe by hackademix at 2025-09-15T15:44:42+02:00
BB 41916: Letterboxing preferences UI
- - - - -
c6f98fb9 by hackademix at 2025-09-15T15:44:42+02:00
BB 41695: Warn on window maximization without letterboxing in RFPHelper module
- - - - -
f8db6563 by hackademix at 2025-09-15T15:44:42+02:00
BB 42443: Shrink window to match letterboxing size when the emtpy area is clicked.
- - - - -
8fdf9651 by hackademix at 2025-09-15T15:44:43+02:00
BB 41919: Letterboxing, add temporarily visible web content-size indicator on window resizing.
- - - - -
71cb7b20 by Henry Wilkes at 2025-09-15T15:44:43+02:00
BB 42528: Don't leak system scrollbar size on windows.
- - - - -
8cc031ad by Henry Wilkes at 2025-09-15T15:44:44+02:00
BB 31575: Disable Firefox Home (Activity Stream)
Treat about:blank as the default home page and new tab page.
BB 43886: Disable the newtab component/addon.
Bug 41624: Disable about:pocket-* pages.
Bug 40144: Redirect about:privatebrowsing to the user's home
- - - - -
bf7190f4 by Kathy Brade at 2025-09-15T15:44:44+02:00
BB 4234: Use the Firefox Update Process for Base Browser.
Windows: disable "runas" code path in updater (15201).
Windows: avoid writing to the registry (16236).
Also includes fixes for tickets 13047, 13301, 13356, 13594, 15406,
16014, 16909, 24476, and 25909.
Also fix bug 27221: purge the startup cache if the Base Browser
version changed (even if the Firefox version and build ID did
not change), e.g., after a minor Base Browser update.
Also fix 32616: Disable GetSecureOutputDirectoryPath() functionality.
Bug 26048: potentially confusing "restart to update" message
Within the update doorhanger, remove the misleading message that mentions
that windows will be restored after an update is applied, and replace the
"Restart and Restore" button label with an existing
"Restart to update Tor Browser" string.
Bug 28885: notify users that update is downloading
Add a "Downloading Base Browser update" item which appears in the
hamburger (app) menu while the update service is downloading a MAR
file. Before this change, the browser did not indicate to the user
that an update was in progress, which is especially confusing in
Tor Browser because downloads often take some time. If the user
clicks on the new menu item, the about dialog is opened to allow
the user to see download progress.
As part of this fix, the update service was changed to always show
update-related messages in the hamburger menu, even if the update
was started in the foreground via the about dialog or via the
"Check for Tor Browser Update" toolbar menu item. This change is
consistent with the Tor Browser goal of making sure users are
informed about the update process.
Removed #28885 parts of this patch which have been uplifted to Firefox.
- - - - -
3cd66cb9 by Pier Angelo Vendrame at 2025-09-15T15:44:44+02:00
BB 42061: Create an alpha update channel.
- - - - -
4ee7b8c0 by Nicolas Vigier at 2025-09-15T15:44:45+02:00
BB 41682: Add base-browser nightly mar signing key
- - - - -
60af3006 by Pier Angelo Vendrame at 2025-09-15T15:44:45+02:00
BB 41603: Customize the creation of MOZ_SOURCE_URL
MOZ_SOURCE_URL is created by combining MOZ_SOURCE_REPO and
MOZ_SOURCE_CHANGESET.
But the code takes for granted that it refers to a Hg instance, so it
combines them as `$MOZ_SOURCE_REPO/rev/$MOZ_SOURCE_CHANGESET`.
With this commit, we change this logic to combine them to create a URL
that is valid for GitLab.
$MOZ_SOURCE_CHANGESET needs to be a commit hash, not a branch or a tag.
If that is needed, we could use /-/tree/, instead of /-/commit/.
- - - - -
d98d8677 by Pier Angelo Vendrame at 2025-09-15T15:44:45+02:00
BB 42438: Tweaks to the migration wizard.
Remove the items not compatible with our features (such as history) from
the migration wizard.
On Linux, allow to specify an alternative home directory, since we
usually change $HOME in our startup script.
- - - - -
eb187e2d by Alex Catarineu at 2025-09-15T15:44:46+02:00
BB 40069: Add helpers for message passing with extensions
- - - - -
eb933ccd by Matthew Finkel at 2025-09-15T15:44:46+02:00
BB 41598: Prevent NoScript from being removed/disabled.
Bug 40253: Explicitly allow NoScript in Private Browsing mode.
- - - - -
d4fe88ed by Henry Wilkes at 2025-09-15T15:44:47+02:00
BB 41581: Hide NoScript extension's toolbar button by default.
This hides it from both the toolbar and the unified extensions panel.
We also hide the unified-extension-button if the panel would be empty:
not including the NoScript button when it is hidden. As a result, this
will be hidden by default until a user installs another extension (or
shows the NoScript button and unpins it).
- - - - -
0d14d4a7 by hackademix at 2025-09-15T15:44:47+02:00
BB 41834: Hide "Can't Be Removed - learn more" menu line for uninstallable add-ons
- - - - -
9f18525e by Henry Wilkes at 2025-09-15T15:44:47+02:00
BB 41736: Customize toolbar for base-browser.
- - - - -
9a5933b1 by Henry Wilkes at 2025-09-15T15:44:48+02:00
BB 43864: Modify the urlbar for Base Browser.
- - - - -
b4b0021d by Henry Wilkes at 2025-09-15T15:44:48+02:00
BB 44040: Modify prompt service for Base Browser.
- - - - -
cfaa83a7 by Henry Wilkes at 2025-09-15T15:44:48+02:00
BB 43902: Modify the new sidebar for Base Browser.
- - - - -
b103867f by Pier Angelo Vendrame at 2025-09-15T15:44:49+02:00
BB 40925: Implemented the Security Level component
This component adds a new Security Level toolbar button which visually
indicates the current global security level via icon (as defined by the
extensions.torbutton.security_slider pref), a drop-down hanger with a
short description of the current security level, and a new section in
the about:preferences#privacy page where users can change their current
security level. In addition, the hanger and the preferences page will
show a visual warning when the user has modified prefs associated with
the security level and provide a one-click 'Restore Defaults' button to
get the user back on recommended settings.
Bug 40125: Expose Security Level pref in GeckoView
- - - - -
971755aa by Henry Wilkes at 2025-09-15T15:44:49+02:00
fixup! BB 40925: Implemented the Security Level component
TB 44030: Show a warning before restarting the browser when applying a
new security level.
Also adapt the existing warning to use a destructive button and the
button "Restart Tor Browser" rather than just "Restart".
- - - - -
a7e07f9f by Pier Angelo Vendrame at 2025-09-15T15:44:50+02:00
fixup! BB 40925: Implemented the Security Level component
BB 43770: Follow upstream's BrowserGlue simplifications.
Initialize the security level notification from the manifest.
Also, since it was the only occurrence of the file path, move it to the
moz-src:// scheme.
- - - - -
738fc75c by Henry Wilkes at 2025-09-15T15:44:50+02:00
fixup! BB 40925: Implemented the Security Level component
TB 43966: Add a warning notification for users when they enter the
custom security level state.
- - - - -
f52775c6 by Pier Angelo Vendrame at 2025-09-15T15:44:50+02:00
BB 40926: Implemented the New Identity feature
- - - - -
90b428f5 by Henry Wilkes at 2025-09-15T15:44:51+02:00
fixup! BB 40926: Implemented the New Identity feature
TB 44034: Update new identity checkbox string.
TB 44040: Use the prompt API for new identity.
- - - - -
b0778dd8 by Beatriz Rizental at 2025-09-15T15:44:51+02:00
fixup! BB 40926: Implemented the New Identity feature
- - - - -
fbb9010d by Pier Angelo Vendrame at 2025-09-15T15:44:52+02:00
BB 42027: Base Browser migration procedures.
This commit implmenents the the Base Browser's version of _migrateUI.
- - - - -
582d2b15 by Henry Wilkes at 2025-09-15T15:44:52+02:00
fixup! BB 42027: Base Browser migration procedures.
TB 44045: Clear the user values for the now locked ML preferences.
- - - - -
2f869b97 by Pier Angelo Vendrame at 2025-09-15T15:44:52+02:00
fixup! BB 42027: Base Browser migration procedures.
BB 43770: Follow upstream's BrowserGlue simplifications.
- - - - -
2f28dbc6 by Henry Wilkes at 2025-09-15T15:44:53+02:00
TB 42308: Create README for tor-browser.
We drop the README.txt that comes from Mozilla Firefox and add README.md
for tor-browser.
- - - - -
c527788d by Morgan at 2025-09-15T15:44:53+02:00
fixup! TB 42308: Create README for tor-browser.
Links in the README pointed to a 404 page with no indication of the new
location of these pages.
Update both links.
Fixes: tpo/applications/tor-browser#44061
- - - - -
51543898 by Morgan at 2025-09-15T15:44:53+02:00
TB 43616: Customize Gitlab Issue and Merge Request templates
- - - - -
98035501 by Morgan at 2025-09-15T15:44:54+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
update the triage issue to be a general review issue; include release notes in review
- - - - -
ff85918f by Morgan at 2025-09-15T15:44:54+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
Update priority labels
- - - - -
10811db6 by Morgan at 2025-09-15T15:44:55+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
add Tor Browser 16.0 milestone to the firefox review
- - - - -
a80668de by Morgan at 2025-09-15T15:44:55+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
- - - - -
0693c972 by Morgan at 2025-09-15T15:44:55+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
add Apps::Impact::High label to release prep issues
- - - - -
f3979656 by Morgan at 2025-09-15T15:44:56+02:00
fixup! TB 43616: Customize Gitlab Issue and Merge Request templates
Bug 43534: Update rebase template
- - - - -
2bd28c2e by Beatriz Rizental at 2025-09-15T15:44:56+02:00
Add CI for Tor Browser
- - - - -
fed80e6f by Richard Pospesel at 2025-09-15T15:44:56+02:00
TB 41089: Add tor-browser build scripts + Makefile to tor-browser
- - - - -
b6f5cbf2 by Beatriz Rizental at 2025-09-15T15:44:57+02:00
fixup! TB 41089: Add tor-browser build scripts + Makefile to tor-browser
- - - - -
908b784c by Alex Catarineu at 2025-09-15T15:44:57+02:00
Add TorStrings module for localization
- - - - -
690ce533 by Henry Wilkes at 2025-09-15T15:44:58+02:00
Tor Browser strings
This commit adds all the strings needed for Tor Browser patches.
- - - - -
3cc57d1b by Henry Wilkes at 2025-09-15T15:44:58+02:00
Tor Browser localization migration scripts.
- - - - -
9fe02b95 by Mike Perry at 2025-09-15T15:44:58+02:00
TB 2176: Rebrand Firefox to TorBrowser
See also Bugs #5194, #7187, #8115, #8219.
This patch does some basic renaming of Firefox to TorBrowser. The rest of the
branding is done by images and icons.
Also fix bug 27905.
Bug 25702: Update Tor Browser icon to follow design guidelines
- Updated all of the branding in /browser/branding/official with new 'stable'
icon series.
- Updated /extensions/onboarding/content/img/tor-watermark.png with new icon and
add the source svg in the same directory
- Copied /browser/branding/official over /browser/branding/nightly and the new
/browser/branding/alpha directories. Replaced content with 'nightly' and
'alpha' icon series.
Updated VisualElements_70.png and VisualElements_150.png with updated icons in
each branding directory (fixes #22654)
- Updated firefox.VisualElementsManfiest.xml with updated colors in each
branding directory
- Added firefox.svg to each branding directory from which all the other icons
are derived (apart from document.icns and document.ico)
- Added default256.png and default512.png icons
- Updated aboutTBUpdate.css to point to branding-aware icon128.png and removed
original icon
- Use the Tor Browser icon within devtools/client/themes/images/.
Bug 30631: Blurry Tor Browser icon on macOS app switcher
It would seem the png2icns tool does not generate correct icns files and
so on macOS the larger icons were missing resulting in blurry icons in
the OS chrome. Regenerated the padded icons in a macOS VM using
iconutil.
Bug 28196: preparations for using torbutton tor-browser-brand.ftl
A small change to Fluent FileSource class is required so that we
can register a new source without its supported locales being
counted as available locales for the browser.
Bug 31803: Replaced about:debugging logo with flat version
Bug 21724: Make Firefox and Tor Browser distinct macOS apps
When macOS opens a document or selects a default browser, it sometimes
uses the CFBundleSignature. Changing from the Firefox MOZB signature to
a different signature TORB allows macOS to distinguish between Firefox
and Tor Browser.
Bug 32092: Fix Tor Browser Support link in preferences
For bug 40562, we moved onionPattern* from bug 27476 to here, as
about:tor needs these files but it is included earlier.
Bug 41278: Create Tor Browser styled pdf logo similar to the vanilla Firefox one
Bug 42088: New application icons (used in-app and on linux).
Bug 42087: New application icons (windows).
- - - - -
a73f781e by Henry Wilkes at 2025-09-15T15:44:59+02:00
fixup! TB 2176: Rebrand Firefox to TorBrowser
TB 44142: Add missing document_pdf.svg file.
- - - - -
5f75bfc6 by Henry Wilkes at 2025-09-15T15:44:59+02:00
Customize moz-toggle for tor-browser.
- - - - -
e85e94b7 by Henry Wilkes at 2025-09-15T15:44:59+02:00
fixup! Customize moz-toggle for tor-browser.
TB 43727: Drop the moz-toggle label-align-after attribute.
Upstream now does this by default. Instead we add the label-align-before
attribute for the exception in about:tor.
- - - - -
60ee9169 by Henry Wilkes at 2025-09-15T15:45:00+02:00
TB 43087: Add onion-pattern to be used on Tor pages.
- - - - -
43e0f2e4 by Henry Wilkes at 2025-09-15T15:45:00+02:00
TB 41817: tor-browser semantic colors.
- - - - -
5ddccb4d by Henry Wilkes at 2025-09-15T15:45:00+02:00
fixup! TB 41817: tor-browser semantic colors.
TB 42025: Use new purple colours.
- - - - -
ac035ff9 by Henry Wilkes at 2025-09-15T15:45:01+02:00
TB 41917: Change letterboxing styling for Tor Browser.
- - - - -
0f185b18 by Henry Wilkes at 2025-09-15T15:45:01+02:00
TB 42110: Add TorUIUtils module for common tor component methods.
- - - - -
86809f29 by Henry Wilkes at 2025-09-15T15:45:02+02:00
TB 42583: Modify moz-support-link for Tor Browser.
- - - - -
fba2d06c by sanketh at 2025-09-15T15:45:02+02:00
TB 40209: Implement Basic Crypto Safety
Adds a CryptoSafety actor which detects when you've copied a crypto
address from a HTTP webpage and shows a warning.
Closes #40209.
Bug 40428: Fix string attribute names
- - - - -
28511ee0 by Mike Perry at 2025-09-15T15:45:02+02:00
TB3: Tor Browser's official .mozconfigs.
Also:
Add an --enable-tor-browser-data-outside-app-dir configure option
Add --with-tor-browser-version configure option
Bug 31457: disable per-installation profiles
The dedicated profiles (per-installation) feature does not interact
well with our bundled profiles on Linux and Windows, and it also causes
multiple profiles to be created on macOS under TorBrowser-Data.
Bug 31935: Disable profile downgrade protection.
Since Tor Browser does not support more than one profile, disable
the prompt and associated code that offers to create one when a
version downgrade situation is detected.
Add --enable-tor-browser-update build option
Bug 40793: moved Tor configuration options from old-configure.in to moz.configure
Bug 41584: Move some configuration options to base-browser level
- - - - -
98ce1422 by Henry Wilkes at 2025-09-15T15:45:03+02:00
TB 41340: Enable TOR_BROWSER_NIGHTLY_BUILD features for dev and nightly builds
tor-browser#41285: Enable fluent warnings.
- - - - -
c82064c0 by Pier Angelo Vendrame at 2025-09-15T15:45:03+02:00
TB 40562: Added Tor Browser preferences to 000-tor-browser.js
Before reordering patches, we used to keep the Tor-related patches
(torbutton and tor-launcher) at the beginning.
After that issue, we decided to move them towards the end.
In addition to that, we have decided to move Tor Browser-only
preferences there, too, to make Base Browser-only fixups easier to
apply.
- - - - -
131b6698 by Pier Angelo Vendrame at 2025-09-15T15:45:04+02:00
TB 13252: Customize profile management on macOS
On macOS we allow both portable mode and system installation.
However, in the latter case, we customize Firefox's directories to
match the hierarchy we use for the portable mode.
Also, display an informative error message if the TorBrowser-Data
directory cannot be created due to an "access denied" or a
"read only volume" error.
- - - - -
a413c182 by Pier Angelo Vendrame at 2025-09-15T15:45:04+02:00
TB 40933: Add tor-launcher functionality
Bug 41926: Reimplement the control port
- - - - -
476ebb18 by Pier Angelo Vendrame at 2025-09-15T15:45:04+02:00
fixup! TB 40933: Add tor-launcher functionality
BB 43770: Follow upstream's BrowserGlue simplifications.
Moved the call to firstWindowLoaded to the manifest.
- - - - -
622159be by Cecylia Bocovich at 2025-09-15T15:45:05+02:00
Lox integration
- - - - -
2581e848 by Richard Pospesel at 2025-09-15T15:45:05+02:00
TB 40597: Implement TorSettings module
- migrated in-page settings read/write implementation from about:preferences#tor
to the TorSettings module
- TorSettings initially loads settings from the tor daemon, and saves them to
firefox prefs
- TorSettings notifies observers when a setting has changed; currently only
QuickStart notification is implemented for parity with previous preference
notify logic in about:torconnect and about:preferences#tor
- about:preferences#tor, and about:torconnect now read and write settings
thorugh the TorSettings module
- all tor settings live in the torbrowser.settings.* preference branch
- removed unused pref modify permission for about:torconnect content page from
AsyncPrefs.jsm
Bug 40645: Migrate Moat APIs to Moat.jsm module
- - - - -
a8ed57b3 by Arthur Edelstein at 2025-09-15T15:45:05+02:00
TB 3455: Add DomainIsolator, for isolating circuit by domain.
Add an XPCOM component that registers a ProtocolProxyChannelFilter
which sets the username/password for each web request according to
url bar domain.
Bug 9442: Add New Circuit button
Bug 13766: Set a 10 minute circuit dirty timeout for the catch-all circ.
Bug 19206: Include a 128 bit random tag as part of the domain isolator nonce.
Bug 19206: Clear out the domain isolator state on `New Identity`.
Bug 21201.2: Isolate by firstPartyDomain from OriginAttributes
Bug 21745: Fix handling of catch-all circuit
Bug 41741: Refactor the domain isolator and new circuit
- - - - -
9e257f40 by Henry Wilkes at 2025-09-15T15:45:06+02:00
TB 41600: Add a tor circuit display panel.
- - - - -
b04f1719 by Pier Angelo Vendrame at 2025-09-15T15:45:06+02:00
TB 42247: Android helpers for the TorProvider
GeckoView is missing some API we use on desktop for the integration
with the tor daemon, such as subprocess.
Therefore, we need to implement them in Java and plumb the data
back and forth between JS and Java.
- - - - -
8e10fd98 by hackademix at 2025-09-15T15:45:06+02:00
TB 8324: Prevent DNS proxy bypasses caused by Drag&Drop
Bug 41613: Skip Drang & Drop filtering for DNS-safe URLs
- - - - -
0f5513e5 by Beatriz Rizental at 2025-09-15T15:45:07+02:00
fixup! TB 8324: Prevent DNS proxy bypasses caused by Drag&Drop
- - - - -
493e5c33 by Pier Angelo Vendrame at 2025-09-15T15:45:07+02:00
fixup! TB 8324: Prevent DNS proxy bypasses caused by Drag&Drop
BB 43770: Follow upstream's BrowserGlue simplifications.
- - - - -
82c0ef62 by Matthew Finkel at 2025-09-15T15:45:08+02:00
TB 25741: TBA: Disable GeckoNetworkManager
The browser should not need information related to the network
interface or network state, tor should take care of that.
- - - - -
3d7a67aa by Pier Angelo Vendrame at 2025-09-15T15:45:08+02:00
TB 40807: Added QRCode.js to toolkit/modules
- - - - -
9c41fb89 by Richard Pospesel at 2025-09-15T15:45:08+02:00
TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
This patch adds a new about:preferences#connection page which allows
modifying bridge, proxy, and firewall settings from within Tor Browser.
All of the functionality present in tor-launcher's Network
Configuration panel is present:
- Setting built-in bridges
- Requesting bridges from BridgeDB via moat
- Using user-provided bridges
- Configuring SOCKS4, SOCKS5, and HTTP/HTTPS proxies
- Setting firewall ports
- Viewing and Copying Tor's logs
- The Networking Settings in General preferences has been removed
Bug 40774: Update about:preferences page to match new UI designs
- - - - -
68f5abf0 by Pier Angelo Vendrame at 2025-09-15T15:45:09+02:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 44095: Rename connectionPane.xhtml to .inc.xhtml.
Let's improve consistency.
Also, we need to explicitly enable formatting on this, since .inc.xhtml
files are excluded by default.
- - - - -
af5cbe70 by Henry Wilkes at 2025-09-15T15:45:09+02:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 43727: Drop the moz-toggle label-align-after attribute.
- - - - -
c3e77baf by Henry Wilkes at 2025-09-15T15:45:09+02:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 44115: Make the remove all bridges dialog button destructive.
- - - - -
262cce0b by Henry Wilkes at 2025-09-15T15:45:10+02:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 42025: Use new purple colours.
- - - - -
c1d7298d by Henry Wilkes at 2025-09-15T15:45:10+02:00
fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
TB 44145: Use --icon-color and --icon-color-critical for the connection
status icons.
- - - - -
fd4f806b by Richard Pospesel at 2025-09-15T15:45:11+02:00
TB 27476: Implement about:torconnect captive portal within Tor Browser
- implements new about:torconnect page as tor-launcher replacement
- adds new torconnect component to browser
- tor process management functionality remains implemented in tor-launcher through the TorProtocolService module
- adds warning/error box to about:preferences#tor when not connected to tor
Bug 40773: Update the about:torconnect frontend page to match additional UI flows.
Bug 41608: Add a toolbar status button and a urlbar "Connect" button.
- - - - -
d794dd6b by Henry Wilkes at 2025-09-15T15:45:11+02:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser
TB 43727: Drop the moz-toggle label-align-after attribute.
- - - - -
68b6dcdc by Beatriz Rizental at 2025-09-15T15:45:11+02:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser
- - - - -
b20d8cc2 by Henry Wilkes at 2025-09-15T15:45:12+02:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser
TB 42025: Use new purple colours.
- - - - -
269500b5 by Henry Wilkes at 2025-09-15T15:45:12+02:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor Browser
TB 44145: Use --icon-color and --icon-color-critical for the connection
status icons.
- - - - -
14398805 by Beatriz Rizental at 2025-09-15T15:45:12+02:00
fixup! TB 27476: Implement about:torconnect captive portal within Tor
Browser
Fix lints.
- - - - -
b42c49f5 by Beatriz Rizental at 2025-09-15T15:45:13+02:00
Temporary changes to about:torconnect for Android.
- - - - -
b26e1b8d by Henry Wilkes at 2025-09-15T15:45:13+02:00
TB 43405: Show a prompt whenever we fail to apply Tor settings.
- - - - -
f2741b56 by Pier Angelo Vendrame at 2025-09-15T15:45:14+02:00
fixup! TB 43405: Show a prompt whenever we fail to apply Tor settings.
BB 43770: Follow upstream's BrowserGlue simplifications.
- - - - -
8cfa90b9 by Henry Wilkes at 2025-09-15T15:45:14+02:00
TB 7494: Create local home page for TBB.
Bug 41333: Update about:tor to new design. Including:
+ make the favicon match the branding icon.
+ make the location bar show a search icon.
- - - - -
051fa559 by Henry Wilkes at 2025-09-15T15:45:14+02:00
fixup! TB 7494: Create local home page for TBB.
TB 43727: Align "Onionize" label before the toggle.
- - - - -
aaf5d7eb by Beatriz Rizental at 2025-09-15T15:45:15+02:00
fixup! TB 7494: Create local home page for TBB.
- - - - -
1ad6f02e by Pier Angelo Vendrame at 2025-09-15T15:45:15+02:00
TB 41668: Tweaks to the Base Browser updater for Tor Browser
This commit was once part of "Bug 4234: Use the Firefox Update Process
for Tor Browser.".
However, some parts of it were not needed for Base Browser and some
derivative browsers.
Therefore, we extracted from that commit the parts for Tor Browser
legacy, and we add them back to the patch set with this commit.
- - - - -
8c9fca25 by Kathy Brade at 2025-09-15T15:45:15+02:00
TB 12647: Support symlinks in the updater.
- - - - -
e79e3a7b by Georg Koppen at 2025-09-15T15:45:16+02:00
TB 32658: Create a new MAR signing key
It's time for our rotation again: Move the backup key in the front
position and add a new backup key.
Bug 33803: Move our primary nightly MAR signing key to tor-browser
Bug 33803: Add a secondary nightly MAR signing key
- - - - -
a1b9fc55 by Pier Angelo Vendrame at 2025-09-15T15:45:16+02:00
TB 42891: Set the bundled search engine for Tor Browser.
After upstream changes between Firefox 115 and 128, we had to
completely rework the way in which we define our search engines.
This commit replaces the old "Omnibox: Add DDG, Startpage, Disconnect,
Youtube, Twitter; remove Amazon, eBay, bing".
With that commit, we customized a list of addons IDs to ship as
built-in search engines, but then upsteam moved to using only
RemoteSettings.
The configuration has many more fields, and it would be quite long to
include it in the source code. Therefore, we use some local JSON files
and load the settings from them.
- - - - -
bf46fcc3 by Pier Angelo Vendrame at 2025-09-15T15:45:17+02:00
fixup! TB 42891: Set the bundled search engine for Tor Browser.
TB 43728: Update search engine icon sizes.
The .ico we're using for DDG and Wikipedia already contains the 32px
variant, so update the size. Firefox should already do the best choice
between the two available sizes.
For Startpage, update the favicon, and ship both the 16px and the 32px
icons.
- - - - -
caadb27b by Pier Angelo Vendrame at 2025-09-15T15:45:17+02:00
fixup! TB 42891: Set the bundled search engine for Tor Browser.
TB 43525: Move search engine customization to SearchEngineSelector.
- - - - -
564ec020 by Pier Angelo Vendrame at 2025-09-15T15:45:17+02:00
amend! TB 42891: Set the bundled search engine for Tor Browser.
TB 42891: Set the bundled search engine for Tor Browser.
- - - - -
68fabf51 by Pier Angelo Vendrame at 2025-09-15T15:45:18+02:00
fixup! TB 42891: Set the bundled search engine for Tor Browser.
Remove the torBrowser JSON files that aren't used anymore.
- - - - -
790e581f by Henry Wilkes at 2025-09-15T15:45:18+02:00
TB 41906: Hide DNS over HTTPS preferences.
- - - - -
f2a6f958 by Richard Pospesel at 2025-09-15T15:45:18+02:00
TB 23247: Communicating security expectations for .onion
Encrypting pages hosted on Onion Services with SSL/TLS is redundant
(in terms of hiding content) as all traffic within the Tor network is
already fully encrypted. Therefore, serving HTTP pages from an Onion
Service is more or less fine.
Prior to this patch, Tor Browser would mostly treat pages delivered
via Onion Services as well as pages delivered in the ordinary fashion
over the internet in the same way. This created some inconsistencies
in behaviour and misinformation presented to the user relating to the
security of pages delivered via Onion Services:
- HTTP Onion Service pages did not have any 'lock' icon indicating
the site was secure
- HTTP Onion Service pages would be marked as unencrypted in the Page
Info screen
- Mixed-mode content restrictions did not apply to HTTP Onion Service
pages embedding Non-Onion HTTP content
This patch fixes the above issues, and also adds several new 'Onion'
icons to the mix to indicate all of the various permutations of Onion
Services hosted HTTP or HTTPS pages with HTTP or HTTPS content.
Strings for Onion Service Page Info page are pulled from Torbutton's
localization strings.
- - - - -
1d79b6f3 by Beatriz Rizental at 2025-09-15T15:45:19+02:00
fixup! TB 23247: Communicating security expectations for .onion
- - - - -
75f6a409 by Kathy Brade at 2025-09-15T15:45:19+02:00
TB 30237: Add v3 onion services client authentication prompt
When Tor informs the browser that client authentication is needed,
temporarily load about:blank instead of about:neterror and prompt
for the user's key.
If a correctly formatted key is entered, use Tor's ONION_CLIENT_AUTH_ADD
control port command to add the key (via Torbutton's control port
module) and reload the page.
If the user cancels the prompt, display the standard about:neterror
"Unable to connect" page. This requires a small change to
browser/actors/NetErrorChild.jsm to account for the fact that the
docShell no longer has the failedChannel information. The failedChannel
is used to extract TLS-related error info, which is not applicable
in the case of a canceled .onion authentication prompt.
Add a leaveOpen option to PopupNotifications.show so we can display
error messages within the popup notification doorhanger without
closing the prompt.
Add support for onion services strings to the TorStrings module.
Add support for Tor extended SOCKS errors (Tor proposal 304) to the
socket transport and SOCKS layers. Improved display of all of these
errors will be implemented as part of bug 30025.
Also fixes bug 19757:
Add a "Remember this key" checkbox to the client auth prompt.
Add an "Onion Services Authentication" section within the
about:preferences "Privacy & Security section" to allow
viewing and removal of v3 onion client auth keys that have
been stored on disk.
Also fixes bug 19251: use enhanced error pages for onion service errors.
- - - - -
addd2dd6 by Alex Catarineu at 2025-09-15T15:45:20+02:00
TB 21952: Implement Onion-Location
Whenever a valid Onion-Location HTTP header (or corresponding HTML
<meta> http-equiv attribute) is found in a document load, we either
redirect to it (if the user opted-in via preference) or notify the
presence of an onionsite alternative with a badge in the urlbar.
- - - - -
fcb24257 by Beatriz Rizental at 2025-09-15T15:45:20+02:00
fixup! TB 21952: Implement Onion-Location
- - - - -
5d1c77a5 by Pier Angelo Vendrame at 2025-09-15T15:45:20+02:00
TB 40458: Implement .tor.onion aliases
We have enabled HTTPS-Only mode, therefore we do not need
HTTPS-Everywhere anymore.
However, we want to keep supporting .tor.onion aliases (especially for
securedrop).
Therefore, in this patch we implemented the parsing of HTTPS-Everywhere
rulesets, and the redirect of .tor.onion domains.
Actually, Tor Browser believes they are actual domains. We change them
on the fly on the SOCKS proxy requests to resolve the domain, and on
the code that verifies HTTPS certificates.
- - - - -
53a09d19 by Beatriz Rizental at 2025-09-15T15:45:21+02:00
fixup! TB 40458: Implement .tor.onion aliases
- - - - -
645a01a9 by Pier Angelo Vendrame at 2025-09-15T15:45:21+02:00
fixup! TB 40458: Implement .tor.onion aliases
Use proper private method and members.
- - - - -
17ec572f by Pier Angelo Vendrame at 2025-09-15T15:45:22+02:00
fixup! TB 40458: Implement .tor.onion aliases
BB 43770: Follow upstream's BrowserGlue simplifications.
- - - - -
e2708a06 by Pier Angelo Vendrame at 2025-09-15T15:45:22+02:00
TB 11698: Incorporate Tor Browser Manual pages into Tor Browser
This patch associates the about:manual page to a translated page that
must be injected to browser/omni.ja after the build.
The content must be placed in chrome/browser/content/browser/manual/, so
that is then available at chrome://browser/content/manual/.
We preferred giving absolute freedom to the web team, rather than having
to change the patch in case of changes on the documentation.
- - - - -
7e1c3213 by Pier Angelo Vendrame at 2025-09-15T15:45:22+02:00
TB 41435: Add a Tor Browser migration function
For now this function only deletes old language packs for which we are
already packaging the strings with the application.
- - - - -
4321592c by Pier Angelo Vendrame at 2025-09-15T15:45:23+02:00
fixup! TB 41435: Add a Tor Browser migration function
BB 43770: Follow upstream's BrowserGlue simplifications.
- - - - -
06da7cff by Henry Wilkes at 2025-09-15T15:45:23+02:00
fixup! TB 41435: Add a Tor Browser migration function
TB 44180: Clear YEC 2024 preference.
- - - - -
138112af by Dan Ballard at 2025-09-15T15:45:23+02:00
TB 40701: Add security warning when downloading a file
Shown in the downloads panel, about:downloads and places.xhtml.
- - - - -
a583b411 by Henry Wilkes at 2025-09-15T15:45:24+02:00
TB 41736: Customize toolbar for tor-browser.
- - - - -
ee47bb2a by hackademix at 2025-09-15T15:45:24+02:00
TB 41728: Pin bridges.torproject.org domains to Let's Encrypt's root cert public key
- - - - -
5030d225 by Richard Pospesel at 2025-09-15T15:45:24+02:00
TB 41822: Unconditionally disable default browser UX in about:preferences
- - - - -
4d32829c by Beatriz Rizental at 2025-09-15T15:45:25+02:00
TB 43817: Add tests for Tor Browser
This is a catch all commits for adding any tests or
testing infrastructure that doesn't obviously fit
any other commit.
- - - - -
ddf2bf0f by Cecylia Bocovich at 2025-09-15T15:45:25+02:00
Temporary commit: manually place generated wasm files
These files are built reproducibly using tor-browser-build: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_re…
We're manually adding them here while working on the interface, but
eventually these should be placed in the right location using
tor-browser-build.
- - - - -
4957dd6c by Pier Angelo Vendrame at 2025-09-15T15:45:25+02:00
[android] TBA strings
- - - - -
5ff186c9 by clairehurst at 2025-09-15T15:45:26+02:00
fixup! [android] TBA strings
tor-browser#43179 Make persistent 'private tabs' notification distinct from Firefox's
- - - - -
ef27f153 by Henry Wilkes at 2025-09-15T15:45:26+02:00
fixup! [android] TBA strings
TB 43179: Fixup the string comments for translators.
- - - - -
44438a66 by Dan Ballard at 2025-09-15T15:45:27+02:00
TB 42660: Disable ProxySelector.openConnectionWithProxy and NOPify CrashReporter.sendCrashReport
- - - - -
7e5d5665 by Dan Ballard at 2025-09-15T15:45:27+02:00
TB 43006: Disable RFP for Font Visibility on Android
- - - - -
bf382987 by Pier Angelo Vendrame at 2025-09-15T15:45:27+02:00
fixup! TB 43006: Disable RFP for Font Visibility on Android
TB 43943: Refactor fontvis exclusion on Android.
Rather than updating Document, we can use
nsRFPService::HandleExeptionalRFPTargets.
- - - - -
570aef1d by Matthew Finkel at 2025-09-15T15:45:28+02:00
TB 40005: [android] Modify Default toolbar menu
Originally android-components#40005.
- - - - -
a704b3c1 by Alex Catarineu at 2025-09-15T15:45:28+02:00
TB 34378: [android] Port external helper app prompting
Together with the corresponding fenix patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.
Originally, android-components#40007 and fenix#34378.
- - - - -
d657a34f by Alex Catarineu at 2025-09-15T15:45:28+02:00
TB 40002: [android] Ensure system download manager is not used
Originally, android-components#40002.
android-components#40075: Support scoped storage to enable downloads on API < 29
- in android-components!7, we blocked all usage of Scoped
Storage in an attempt to block usage of Android's
DownloadManager, which is known to cause proxy bypasses
- as of Android API 29, downloads will not work without Scoped Storage,
causing all downlaods to fail (see: fenix##40192)
- here, we enable usage of scoped storage for API >= 29, but block
calls to DownloadManager on API < 29
- - - - -
3eaaff31 by Beatriz Rizental at 2025-09-15T15:45:29+02:00
TB 40009: [android] Change the default search engines
Originally, android-components#40009.
This matches the search engines from desktop, that is:
DDG as the default, then YouTube, Google, DDGOnion,
Startpage, Twitter, Wikipedia and Yahoo.
android-components#40062: Update DuckDuckGo onion search plugin
- - - - -
f3dd5efc by Pier Angelo Vendrame at 2025-09-15T15:45:29+02:00
fixup! TB 40009: [android] Change the default search engines
TB 44139: Restore inactive search plugins (Android).
We remove some plugins, but they do not have any effect.
So, restore them and stop deleting in future branches.
- - - - -
5fff63e5 by Beatriz Rizental at 2025-09-15T15:45:29+02:00
TB 42191: [android] Temporary StrictMode relaxation to clear the thumbnail cache.
- - - - -
9f77adc7 by hackademix at 2025-09-15T15:45:30+02:00
[android] Modify add-on support
Bug 41160: One-time ultimate switch Tor Browser Android to HTTPS-Only.
Bug 41159: Remove HTTPS-Everywhere extension from Tor Browser Android.
Bug 41094: Enable HTTPS-Only Mode by default in Tor Browser Android.
Turn shouldUseHttpsOnly's default to true.
Bug 40225: Bundled extensions don't get updated with Android Tor
Browser updates.
Bug 40030: Install NoScript addon on startup.
Also 40070: Consider storing the list of recommended addons
This implements our own AddonsProvider, which loads the list of
available addons from assets instead of fetching it from an
endpoint.
Also, we hide the uninstall button for builtin addons.
Bug 40058: Hide option for disallowing addon in private mode
- - - - -
08d67c54 by Alex Catarineu at 2025-09-15T15:45:30+02:00
[android] Modify Addon support
android-components#40011: Hide option for disallowing addons in private mode
android-components#40016: Allow inheriting from AddonCollectionProvider
This will allow implementing our own AddonsProvider in fenix.
- - - - -
465ef393 by Alex Catarineu at 2025-09-15T15:45:31+02:00
TB 40015: [android] Port padlock states for .onion services
Originally, android-components#40015.
- - - - -
70ab2a7e by Matthew Finkel at 2025-09-15T15:45:31+02:00
[android] Modify Tracking Protection configuration
android-components#40020: Disable third-party cookies
android-components#40024: Disable tracking protection by default
- - - - -
b3b621b3 by Alex Catarineu at 2025-09-15T15:45:31+02:00
TB 34439 [android]: Isolate Icon loader on Android.
Originally, android-components#34439.
- - - - -
ba5b1e05 by Matthew Finkel at 2025-09-15T15:45:32+02:00
[android] Disable features and functionality
Bug 33594: Disable data collection by default (Glean)
Bug 40019: Adjust is disabled on Release when data collection is disabled
Bug 34338: Disable the crash reporter
Bug 40014: Neuter Google Advertising ID
Bug 40018: Disable Push service
Bug 40034: Disable PWA onboading
Bug 40072: Disable Tracking Protection
Bug 40061: Do not show "Send to device" in sharing menu
Bug 40109: Reduce requested permissions
Exclude LOCATION and NETWORK_STATE
- - - - -
1861d764 by Beatriz Rizental at 2025-09-15T15:45:32+02:00
fixup! [android] Disable features and functionality
- - - - -
76d7d3ad by Matthew Finkel at 2025-09-15T15:45:32+02:00
TB 40032 [android]: Set usesCleartextTraffic as false
Originally, fenix#40032.
- - - - -
00d7cba1 by Matthew Finkel at 2025-09-15T15:45:33+02:00
[android] Rename as Tor Browser
Bug 40020: Change applicationId
Bug 40020: Change app name
Bug 40020: Change deeplink scheme
Bug 40020: Change App icons
Bug 40073: Use correct branding on About page
Bug 40088: Use Tor Browser logo in migration screen
- - - - -
3dd36218 by clairehurst at 2025-09-15T15:45:33+02:00
fixup! [android] Rename as Tor Browser
tor-browser#43179 Make persistent 'private tabs' notification distinct from Firefox's
- - - - -
a366dbea by Georg Koppen at 2025-09-15T15:45:34+02:00
[android] Modify build system
Bug 40083: Make locale ordering in BuildConfig deterministic
Bug 40042: Add option do overwrite timestamp in extension version
Bug 40059: Use MOZ_BUILD_DATE for versionCode
At the same time we adapt MOZ_BUILD_DATE to our needs where it is
actually used and not in tor-browser-build. This gives us more
flexibility. See: tor-browser-build#40084.
Bug 40067: Fix reproducibility issue in classes2.dex
We make sure our MOZ_BUILD_DATE gets used as a source for showing date
related information on the Fenix about page.
Bug 40071: Show only supported locales
Bug 40064: Use Gecko Beta for Nightly and Debug variants
Bug 40123: Allow building the instrumented tests apks for variants other than debug
This allows to specify the variant of the instrumented tests via
a `testBuildType` gradle argument. It also applies a workaround for
a R8 issue from https://issuetracker.google.com/issues/140851070.
Bug 40143: Use deterministic date in Test apk
The build config was using Date() when generating the Test apk's
versionName.
- - - - -
353d388e by Pier Angelo Vendrame at 2025-09-15T15:45:34+02:00
fixup! [android] Modify build system
TB 43826: Drop an unneeded version customization.
When the patch was originally created
(android-components@abf37979a74f34730dd8e8323d8a9aad184884c3), it
replaced a Date additions that prevented reproducible builds.
However, Mozilla themselves removed that Date in Bug 1824818, so we do
not need this part of the patch anymore.
- - - - -
bbbc078d by Pier Angelo Vendrame at 2025-09-15T15:45:34+02:00
fixup! [android] Modify build system
TB 43799: Check we passed the objdir to tba-sign-devbuilds.sh.
When we initially created tba-sign-devbuilds.sh, it was easy to find
the APKs. However, after Bug 1951190, they are inside the obj-*
directory, which can be customized in mozconfig.
So, the easiest way to deal with this, was to ask the caller to provide
that obj directory. Not passing it will very likely make the script
fail, so with this commit we added a check to output a more meaningful
error message.
- - - - -
3afd2771 by Nicolas Vigier at 2025-09-15T15:45:35+02:00
TB 43987 [Android]: disable optimization for org.mozilla.experiments.nimbus.Nimbus
Fixing a reproducibility issue.
- - - - -
880aff23 by Beatriz Rizental at 2025-09-15T15:45:35+02:00
[android] Override settings
- - - - -
fb6efea1 by Alex Catarineu at 2025-09-15T15:45:35+02:00
TB 40087 [android]: Implement a switch for spoof English.
Originally, fenix#40087 and android-components#40019.
- - - - -
a491d323 by Matthew Finkel at 2025-09-15T15:45:36+02:00
TB 34403 [android]: Disable Normal mode by default.
Originally, fenix#34403.
- - - - -
4021e9e5 by Matthew Finkel at 2025-09-15T15:45:36+02:00
TB 40016 [android]: Don't install WebCompat webext.
Originally, fenix#40016.
- - - - -
83defadd by Matthew Finkel at 2025-09-15T15:45:37+02:00
[android] Modify UI/UX
Bug 40015: Modify Home menu
Bug 40016: Hide unwanted Settings
Bug 40016: Modify Default toolbar menu
Bug 40016: Add Donate settings button
Bug 40016: Move Allow Screenshots under Advanced
Bug 40016: Don't install WebCompat webext
Bug 40016: Don't onboard Search Suggestions
Bug 40094: Do not use MasterPasswordTipProvider in HomeFragment
Bug 40095: Hide "Sign in to sync" in bookmarks
Bug 40031: Hide Mozilla-specific items on About page
Bug 40063: Do not sort search engines alphabetically
Bug 40141: Hide EME site permission
Bug 40166: Hide "Normal" tab (again) and Sync tab in TabTray
Bug 40167: Hide "Save to Collection" in menu
Bug 40172: Find the Quit button
Bug 40186: Hide Credit Cards in Settings
Bug 40198: Spoof English toggle now overlaps with locale list
- - - - -
5b55e575 by Matthew Finkel at 2025-09-15T15:45:37+02:00
TB 40026 [android]: Implement Security Level settings on Android.
Originally, fenix#40026.
- - - - -
052ff95a by Dan Ballard at 2025-09-15T15:45:37+02:00
TB 41972: [android] Disable Mozilla onboarding
- - - - -
0b776c37 by Dan Ballard at 2025-09-15T15:45:38+02:00
TB 41878: [android] Add standalone Tor Bootstrap
- - - - -
9e846e3f by Matthew Finkel at 2025-09-15T15:45:38+02:00
TB 40041 [android]: Implement Tor Network Settings
Originally, fenix#40041.
- - - - -
f8c21970 by clairehurst at 2025-09-15T15:45:38+02:00
fixup! TB 40041 [android]: Implement Tor Network Settings
Better fix for #44036 Crash on opening "Search Settings" on android
- - - - -
edbe03b1 by clairehurst at 2025-09-15T15:45:39+02:00
[android] Implement Android-native Connection Assist UI
- - - - -
c9610e9c by clairehurst at 2025-09-15T15:45:39+02:00
fixup! [android] Implement Android-native Connection Assist UI
Bug_43699: Properly clear dummy about pages
- - - - -
8ae1c5a8 by clairehurst at 2025-09-15T15:45:39+02:00
fixup! [android] Implement Android-native Connection Assist UI
Bug_44081: Swiping away the "private tabs" notification requires rebootstrapping.
- - - - -
ecd31d76 by clairehurst at 2025-09-15T15:45:40+02:00
TB 42655 [android]: Implement "New circuit for this site" on Android
- - - - -
b0a3b454 by clairehurst at 2025-09-15T15:45:40+02:00
TB 42089: [android] Remove ability to submit site support requests
- - - - -
9e32926c by clairehurst at 2025-09-15T15:45:41+02:00
[android] Delete unused media
- - - - -
b0875ef1 by Beatriz Rizental at 2025-09-15T15:45:41+02:00
TB 43243: [android] Implement Android launch test
Also remove exit call from terminate function.
It causes all espresso tests to crash on exit and otherwise doesn't do anything.
- - - - -
40149fda by Beatriz Rizental at 2025-09-15T15:45:41+02:00
TB 42669: [android] Use custom no-op app-services
Fetch the custom built no-op application services library
from tor-browser-build when building for Android.
- - - - -
c1703601 by Beatriz Rizental at 2025-09-15T15:45:42+02:00
fixup! TB 42669: [android] Use custom no-op app-services
- - - - -
5f3b5b0c by Beatriz Rizental at 2025-09-15T15:45:42+02:00
Various Android workarounds
- - - - -
9e4f78a8 by Beatriz Rizental at 2025-09-15T15:45:42+02:00
TB 43564: Modify ./mach bootstrap for Tor Browser
- - - - -
7cd3a533 by Beatriz Rizental at 2025-09-15T15:45:43+02:00
fixup! TB 43564: Modify ./mach bootstrap for Tor Browser
- - - - -
40ec6966 by Beatriz Rizental at 2025-09-15T15:45:43+02:00
Bug 41197 - [android] Disable autofill
Firefox is an Autofill service. From the Android docs:
> An autofill service is an app that makes it easier for users to fil
> out forms by injecting data into the views of other apps. Autofill
> services can also retrieve user data from the views in an app and
> store it for use at a later time. Autofill services are usually
> provided by apps that manage user data, such as password managers.
Tor Browser is not an autofill service. All of the autofill backend
is disabled at build time, since it lives in application-services.
This commit disabled the client side of autofill.
- - - - -
bd99a747 by hackademix at 2025-09-15T15:45:44+02:00
TB 44127: Do not show macOS Privacy hint on network error pages
- - - - -
0e019b2e by Henry Wilkes at 2025-09-15T15:45:44+02:00
TB 43901: Modify about:license for Tor Browser.
We also drop about:rights.
- - - - -
de9f8f5f by Beatriz Rizental at 2025-09-15T15:45:44+02:00
fixup! TB 43901: Modify about:license for Tor Browser.
- - - - -
b948d157 by clairehurst at 2025-09-15T15:45:45+02:00
TB 44098: [android] Disable sync
tor-browser#44098 Bookmarks offer a way to go to sync in 15.0a1
- - - - -
31d5732e by Beatriz Rizental at 2025-09-15T15:45:45+02:00
fixup! BB 43564: Modify ./mach bootstrap for Tor Browser
- - - - -
1891 changed files:
- .gitignore
- + .gitlab-ci.yml
- + .gitlab/ci/containers/base/Containerfile
- + .gitlab/ci/jobs/helpers.py
- + .gitlab/ci/jobs/lint/lint.yml
- + .gitlab/ci/jobs/startup-test/startup-test-android.py
- + .gitlab/ci/jobs/startup-test/startup-test.py
- + .gitlab/ci/jobs/startup-test/startup-test.yml
- + .gitlab/ci/jobs/test/python-test.yml
- + .gitlab/ci/jobs/update-containers.yml
- + .gitlab/ci/jobs/update-translations.yml
- + .gitlab/ci/mixins.yml
- + .gitlab/issue_templates/000 Bug Report.md
- + .gitlab/issue_templates/010 Proposal.md
- + .gitlab/issue_templates/020 Web Compatibility.md
- + .gitlab/issue_templates/030 Test.md
- + .gitlab/issue_templates/031 Fingerprinting.md
- + .gitlab/issue_templates/040 Feature.md
- + .gitlab/issue_templates/050 Backport.md
- + .gitlab/issue_templates/060 Rebase - Alpha.md
- + .gitlab/issue_templates/061 Rebase - Stable.md
- + .gitlab/issue_templates/062 Rebase - Legacy.md
- + .gitlab/issue_templates/063 Rebase - Rapid.md
- + .gitlab/issue_templates/070 Uplift.md
- + .gitlab/issue_templates/080 Security Backports.md
- + .gitlab/issue_templates/090 Emergency Security Issue.md
- + .gitlab/issue_templates/100 Release QA - Desktop.md
- + .gitlab/issue_templates/101 Release QA - Android.md
- + .gitlab/issue_templates/110 Firefox Release Review.md
- + .gitlab/issue_templates/120 Bugzilla Audit.md
- + .gitlab/issue_templates/Default.md
- + .gitlab/merge_request_templates/Default.md
- .prettierignore
- README.md
- browser/.eslintrc.mjs
- + browser/actors/CryptoSafetyChild.sys.mjs
- + browser/actors/CryptoSafetyParent.sys.mjs
- browser/actors/moz.build
- browser/app/Makefile.in
- browser/app/macbuild/Contents/Info.plist.in
- browser/app/macbuild/Contents/MacOS-files.in
- browser/app/moz.build
- browser/app/permissions
- + browser/app/profile/000-tor-browser.js
- + browser/app/profile/001-base-profile.js
- browser/app/profile/firefox.js
- browser/base/content/aboutDialog-appUpdater.js
- browser/base/content/aboutDialog.js
- browser/base/content/aboutDialog.xhtml
- + browser/base/content/aboutDialogTor.css
- browser/base/content/appmenu-viewcache.inc.xhtml
- browser/base/content/browser-addons.js
- browser/base/content/browser-context.js
- browser/base/content/browser-init.js
- browser/base/content/browser-main.js
- browser/base/content/browser-menubar.inc
- browser/base/content/browser-menubar.js
- browser/base/content/browser-places.js
- browser/base/content/browser-safebrowsing.js
- browser/base/content/browser-sets.inc
- browser/base/content/browser-sets.js
- browser/base/content/browser-siteIdentity.js
- browser/base/content/browser.js
- browser/base/content/browser.js.globals
- browser/base/content/browser.xhtml
- browser/base/content/default-bookmarks.html
- + browser/base/content/languageNotification.js
- browser/base/content/main-popupset.inc.xhtml
- browser/base/content/navigator-toolbox.inc.xhtml
- browser/base/content/nsContextMenu.sys.mjs
- browser/base/content/pageinfo/pageInfo.xhtml
- browser/base/content/pageinfo/security.js
- browser/base/content/popup-notifications.inc.xhtml
- browser/base/content/utilityOverlay.js
- browser/base/jar.mn
- browser/base/moz.build
- browser/branding/branding-common.mozbuild
- + browser/branding/tb-alpha/VisualElements_150.png
- + browser/branding/tb-alpha/VisualElements_70.png
- + browser/branding/tb-alpha/configure.sh
- + browser/branding/tb-alpha/content/about-logo.png
- + browser/branding/tb-alpha/content/about-logo.svg
- + browser/branding/tb-alpha/content/about-logo(a)2x.png
- + browser/branding/tb-alpha/content/about-wordmark.svg
- + browser/branding/tb-alpha/content/about.png
- + browser/branding/tb-alpha/content/aboutDialog.css
- + browser/branding/tb-alpha/content/document_pdf.svg
- + browser/branding/tb-alpha/content/firefox-wordmark.svg
- + browser/branding/tb-alpha/content/jar.mn
- + browser/branding/tb-alpha/content/moz.build
- + browser/branding/tb-alpha/default128.png
- + browser/branding/tb-alpha/default16.png
- + browser/branding/tb-alpha/default22.png
- + browser/branding/tb-alpha/default24.png
- + browser/branding/tb-alpha/default256.png
- + browser/branding/tb-alpha/default32.png
- + browser/branding/tb-alpha/default48.png
- + browser/branding/tb-alpha/default64.png
- + browser/branding/tb-alpha/document.icns
- + browser/branding/tb-alpha/document.ico
- + browser/branding/tb-alpha/document_pdf.ico
- + browser/branding/tb-alpha/firefox.VisualElementsManifest.xml
- + browser/branding/tb-alpha/firefox.icns
- + browser/branding/tb-alpha/firefox.ico
- + browser/branding/tb-alpha/locales/en-US/brand.ftl
- + browser/branding/tb-alpha/locales/en-US/brand.properties
- + browser/branding/tb-alpha/locales/jar.mn
- + browser/branding/tb-alpha/locales/moz.build
- + browser/branding/tb-alpha/moz.build
- + browser/branding/tb-alpha/newtab.ico
- + browser/branding/tb-alpha/newwindow.ico
- + browser/branding/tb-alpha/pbmode.ico
- + browser/branding/tb-alpha/pref/firefox-branding.js
- + browser/branding/tb-nightly/VisualElements_150.png
- + browser/branding/tb-nightly/VisualElements_70.png
- + browser/branding/tb-nightly/configure.sh
- + browser/branding/tb-nightly/content/about-logo.png
- + browser/branding/tb-nightly/content/about-logo.svg
- + browser/branding/tb-nightly/content/about-logo(a)2x.png
- + browser/branding/tb-nightly/content/about-wordmark.svg
- + browser/branding/tb-nightly/content/about.png
- + browser/branding/tb-nightly/content/aboutDialog.css
- + browser/branding/tb-nightly/content/document_pdf.svg
- + browser/branding/tb-nightly/content/firefox-wordmark.svg
- + browser/branding/tb-nightly/content/jar.mn
- + browser/branding/tb-nightly/content/moz.build
- + browser/branding/tb-nightly/default128.png
- + browser/branding/tb-nightly/default16.png
- + browser/branding/tb-nightly/default22.png
- + browser/branding/tb-nightly/default24.png
- + browser/branding/tb-nightly/default256.png
- + browser/branding/tb-nightly/default32.png
- + browser/branding/tb-nightly/default48.png
- + browser/branding/tb-nightly/default64.png
- + browser/branding/tb-nightly/document.icns
- + browser/branding/tb-nightly/document.ico
- + browser/branding/tb-nightly/document_pdf.ico
- + browser/branding/tb-nightly/firefox.VisualElementsManifest.xml
- + browser/branding/tb-nightly/firefox.icns
- + browser/branding/tb-nightly/firefox.ico
- + browser/branding/tb-nightly/locales/en-US/brand.ftl
- + browser/branding/tb-nightly/locales/en-US/brand.properties
- + browser/branding/tb-nightly/locales/jar.mn
- + browser/branding/tb-nightly/locales/moz.build
- + browser/branding/tb-nightly/moz.build
- + browser/branding/tb-nightly/newtab.ico
- + browser/branding/tb-nightly/newwindow.ico
- + browser/branding/tb-nightly/pbmode.ico
- + browser/branding/tb-nightly/pref/firefox-branding.js
- + browser/branding/tb-release/VisualElements_150.png
- + browser/branding/tb-release/VisualElements_70.png
- + browser/branding/tb-release/configure.sh
- + browser/branding/tb-release/content/about-logo.png
- + browser/branding/tb-release/content/about-logo.svg
- + browser/branding/tb-release/content/about-logo(a)2x.png
- + browser/branding/tb-release/content/about-wordmark.svg
- + browser/branding/tb-release/content/about.png
- + browser/branding/tb-release/content/aboutDialog.css
- + browser/branding/tb-release/content/document_pdf.svg
- + browser/branding/tb-release/content/firefox-wordmark.svg
- + browser/branding/tb-release/content/jar.mn
- + browser/branding/tb-release/content/moz.build
- + browser/branding/tb-release/default128.png
- + browser/branding/tb-release/default16.png
- + browser/branding/tb-release/default22.png
- + browser/branding/tb-release/default24.png
- + browser/branding/tb-release/default256.png
- + browser/branding/tb-release/default32.png
- + browser/branding/tb-release/default48.png
- + browser/branding/tb-release/default64.png
- + browser/branding/tb-release/document.icns
- + browser/branding/tb-release/document.ico
- + browser/branding/tb-release/document_pdf.ico
- + browser/branding/tb-release/firefox.VisualElementsManifest.xml
- + browser/branding/tb-release/firefox.icns
- + browser/branding/tb-release/firefox.ico
- + browser/branding/tb-release/locales/en-US/brand.ftl
- + browser/branding/tb-release/locales/en-US/brand.properties
- + browser/branding/tb-release/locales/jar.mn
- + browser/branding/tb-release/locales/moz.build
- + browser/branding/tb-release/moz.build
- + browser/branding/tb-release/newtab.ico
- + browser/branding/tb-release/newwindow.ico
- + browser/branding/tb-release/pbmode.ico
- + browser/branding/tb-release/pref/firefox-branding.js
- browser/components/BrowserComponents.manifest
- browser/components/BrowserContentHandler.sys.mjs
- browser/components/BrowserGlue.sys.mjs
- browser/components/DesktopActorRegistry.sys.mjs
- browser/components/ProfileDataUpgrader.sys.mjs
- browser/components/about/AboutRedirector.cpp
- browser/components/about/components.conf
- browser/components/aboutlogins/AboutLoginsParent.sys.mjs
- browser/components/aboutlogins/content/aboutLogins.css
- browser/components/aboutlogins/content/aboutLogins.mjs
- browser/components/aboutlogins/content/components/fxaccounts-button.css
- browser/components/aboutlogins/content/components/login-command-button.mjs
- browser/components/aboutlogins/content/components/login-list.mjs
- + browser/components/abouttor/AboutTorChild.sys.mjs
- + browser/components/abouttor/AboutTorMessage.sys.mjs
- + browser/components/abouttor/AboutTorParent.sys.mjs
- + browser/components/abouttor/HomepageOverride.sys.mjs
- + browser/components/abouttor/content/1f44b-waving-hand.svg
- + browser/components/abouttor/content/1f4e3-megaphone.svg
- + browser/components/abouttor/content/26a1-high-voltage.svg
- + browser/components/abouttor/content/2728-sparkles.svg
- + browser/components/abouttor/content/2764-red-heart.svg
- + browser/components/abouttor/content/aboutTor.css
- + browser/components/abouttor/content/aboutTor.html
- + browser/components/abouttor/content/aboutTor.js
- + browser/components/abouttor/content/dax-logo.svg
- + browser/components/abouttor/jar.mn
- + browser/components/abouttor/moz.build
- browser/components/customizableui/CustomizableUI.sys.mjs
- browser/components/customizableui/CustomizeMode.sys.mjs
- browser/components/customizableui/content/panelUI.inc.xhtml
- browser/components/customizableui/content/panelUI.js
- browser/components/downloads/DownloadSpamProtection.sys.mjs
- + browser/components/downloads/DownloadsTorWarning.sys.mjs
- browser/components/downloads/content/contentAreaDownloadsView.js
- browser/components/downloads/content/contentAreaDownloadsView.xhtml
- browser/components/downloads/content/downloads.css
- browser/components/downloads/content/downloads.js
- browser/components/downloads/content/downloadsPanel.inc.xhtml
- browser/components/downloads/moz.build
- browser/components/extensions/parent/ext-browserAction.js
- browser/components/extensions/schemas/chrome_settings_overrides.json
- browser/components/migration/ChromeMigrationUtils.sys.mjs
- browser/components/migration/content/migration-wizard.mjs
- browser/components/moz.build
- + browser/components/newidentity/content/newidentity.js
- + browser/components/newidentity/jar.mn
- + browser/components/newidentity/moz.build
- browser/components/newtab/AboutHomeStartupCache.sys.mjs
- + browser/components/onionservices/OnionAliasStore.sys.mjs
- + browser/components/onionservices/OnionLocationChild.sys.mjs
- + browser/components/onionservices/OnionLocationParent.sys.mjs
- + browser/components/onionservices/TorRequestWatch.sys.mjs
- + browser/components/onionservices/content/authNotificationIcon.inc.xhtml
- + browser/components/onionservices/content/authPopup.inc.xhtml
- + browser/components/onionservices/content/authPreferences.css
- + browser/components/onionservices/content/authPreferences.inc.xhtml
- + browser/components/onionservices/content/authPreferences.js
- + browser/components/onionservices/content/authPrompt.js
- + browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
- + browser/components/onionservices/content/onionlocation.css
- + browser/components/onionservices/content/onionservices.css
- + browser/components/onionservices/content/savedKeysDialog.js
- + browser/components/onionservices/content/savedKeysDialog.xhtml
- + browser/components/onionservices/jar.mn
- + browser/components/onionservices/moz.build
- browser/components/places/PlacesUIUtils.sys.mjs
- browser/components/places/content/controller.js
- browser/components/places/content/places.css
- browser/components/places/content/places.js
- browser/components/places/content/places.xhtml
- browser/components/preferences/home.inc.xhtml
- browser/components/preferences/home.js
- browser/components/preferences/jar.mn
- + browser/components/preferences/letterboxing-middle-dark.svg
- + browser/components/preferences/letterboxing-middle-light.svg
- + browser/components/preferences/letterboxing-top-dark.svg
- + browser/components/preferences/letterboxing-top-light.svg
- + browser/components/preferences/letterboxing.css
- + browser/components/preferences/letterboxing.inc.xhtml
- + browser/components/preferences/letterboxing.js
- browser/components/preferences/main.inc.xhtml
- browser/components/preferences/main.js
- browser/components/preferences/preferences.js
- browser/components/preferences/preferences.xhtml
- browser/components/preferences/privacy.inc.xhtml
- browser/components/preferences/privacy.js
- browser/components/reportbrokensite/ReportBrokenSite.sys.mjs
- + browser/components/rulesets/RulesetsChild.sys.mjs
- + browser/components/rulesets/RulesetsParent.sys.mjs
- + browser/components/rulesets/content/aboutRulesets.css
- + browser/components/rulesets/content/aboutRulesets.html
- + browser/components/rulesets/content/aboutRulesets.js
- + browser/components/rulesets/content/securedrop.svg
- + browser/components/rulesets/jar.mn
- + browser/components/rulesets/moz.build
- browser/components/search/SERPCategorization.sys.mjs
- browser/components/search/SearchSERPTelemetry.sys.mjs
- + browser/components/securitylevel/SecurityLevelUIUtils.sys.mjs
- + browser/components/securitylevel/content/securityLevel.js
- + browser/components/securitylevel/content/securityLevelButton.css
- + browser/components/securitylevel/content/securityLevelButton.inc.xhtml
- + browser/components/securitylevel/content/securityLevelDialog.js
- + browser/components/securitylevel/content/securityLevelDialog.xhtml
- + browser/components/securitylevel/content/securityLevelIcon.svg
- + browser/components/securitylevel/content/securityLevelPanel.css
- + browser/components/securitylevel/content/securityLevelPanel.inc.xhtml
- + browser/components/securitylevel/content/securityLevelPreferences.css
- + browser/components/securitylevel/content/securityLevelPreferences.inc.xhtml
- + browser/components/securitylevel/jar.mn
- + browser/components/securitylevel/moz.build
- browser/components/sidebar/browser-sidebar.js
- browser/components/sidebar/sidebar-main.mjs
- browser/components/tabbrowser/content/tabbrowser.js
- browser/components/tabbrowser/content/tabgroup-menu.js
- browser/components/tabbrowser/moz.build
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1fd.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e6-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1e7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ef.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e7-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1fd.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e8-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1ef.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1e9-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ea-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1ef.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1eb-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1e7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ec-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ed-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ee-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ef-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ef-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ef-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ef-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f0-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1e7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f1-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1fd.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f2-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1f5.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f3-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f4-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f5-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f6-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f7-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f7-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f7-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f7-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f7-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1e7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ef.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1fd.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f8-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1e9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1ed.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1ef.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f1.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f4.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f7.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1fb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1f9-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1fe.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fa-1f1ff.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1e8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1ec.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1ee.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1f3.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fb-1f1fa.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fc-1f1eb.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fc-1f1f8.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fd-1f1f0.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fe-1f1ea.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1fe-1f1f9.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ff-1f1e6.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ff-1f1f2.svg
- + browser/components/torcircuit/content/tor-circuit-flags/1f1ff-1f1fc.svg
- + browser/components/torcircuit/content/tor-circuit-flags/README.txt
- + browser/components/torcircuit/content/tor-circuit-icon-mask.svg
- + browser/components/torcircuit/content/tor-circuit-node-end.svg
- + browser/components/torcircuit/content/tor-circuit-node-middle.svg
- + browser/components/torcircuit/content/tor-circuit-node-relays.svg
- + browser/components/torcircuit/content/tor-circuit-node-start.svg
- + browser/components/torcircuit/content/tor-circuit-redirect.svg
- + browser/components/torcircuit/content/torCircuitPanel.css
- + browser/components/torcircuit/content/torCircuitPanel.inc.xhtml
- + browser/components/torcircuit/content/torCircuitPanel.js
- + browser/components/torcircuit/jar.mn
- + browser/components/torcircuit/moz.build
- + browser/components/torpreferences/content/bridge-bot.svg
- + browser/components/torpreferences/content/bridge-qr.svg
- + browser/components/torpreferences/content/bridge.svg
- + browser/components/torpreferences/content/bridgeQrDialog.js
- + browser/components/torpreferences/content/bridgeQrDialog.xhtml
- + browser/components/torpreferences/content/bridgemoji/BridgeEmoji.js
- + browser/components/torpreferences/content/bridgemoji/annotations.json
- + browser/components/torpreferences/content/bridgemoji/bridge-emojis.json
- + browser/components/torpreferences/content/bridgemoji/svgs/1f300.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f308.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f30a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f30b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f319.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f31f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f321.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f32d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f32e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f332.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f333.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f334.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f335.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f336.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f337.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f339.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f33a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f33b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f33d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f33f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f341.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f344.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f345.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f346.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f347.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f348.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f349.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f34a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f34b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f34c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f34d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f34f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f350.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f351.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f352.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f353.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f354.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f355.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f368.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f369.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f36a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f36b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f36c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f36d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f37f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f380.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f381.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f382.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f383.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f388.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f389.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f38f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f392.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f399.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f39f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3a0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3a1.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3a2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3a8.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3ac.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3af.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3b2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3b6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3b7.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3b8.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3ba.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3bb.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3be.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3c0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3c6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3c8.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3d3.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3d4.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3d5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3dd.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3e1.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3ee.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3f7.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3f8.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f3f9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f40a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f40c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f40d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f417.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f418.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f419.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f41a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f41b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f41d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f41e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f41f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f420.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f422.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f425.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f426.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f428.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f42a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f42c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f42d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f42e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f42f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f430.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f431.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f432.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f433.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f434.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f435.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f436.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f437.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f43a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f43b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f43f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f441.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f451.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f455.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f457.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f45f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f47d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f484.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f488.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f48d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f48e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f490.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4a1.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4a7.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4b3.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4bf.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4cc.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4ce.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4d5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4e1.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4e2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f4fb.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f50b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f511.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f525.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f526.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f52c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f52d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f52e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f54a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f58c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f58d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f5ff.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f680.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f681.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f686.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f68b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f68d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f695.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f697.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f69a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f69c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6a0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6a2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6a4.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f4.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f8.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6f9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6fa.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f6fc.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f916.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f93f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f941.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f94c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f94f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f950.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f951.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f955.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f956.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f95c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f95d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f95e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f965.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f966.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f968.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f96c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f96d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f96f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f980.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f981.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f984.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f986.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f987.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f988.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f989.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f98a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f98b.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f98c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f98e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f98f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f992.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f993.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f994.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f995.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f998.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f999.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f99a.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f99c.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f99d.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f99e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a3.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a4.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a7.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9a9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9ad.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9c1.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9c3.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9c5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9c7.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9c9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9d9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9da.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9dc.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9e0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9e2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9e6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9e9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9ea.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9ec.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9ed.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9ee.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9f2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9f5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1f9f9.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa73.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa80.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa81.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa83.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa90.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa91.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa95.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fa97.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fab6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fad0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fad2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/1fad6.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/23f0.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2600.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2602.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2604.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/260e.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2693.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2696.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/26bd.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/26f2.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/26f5.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2708.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/270f.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2728.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/2744.svg
- + browser/components/torpreferences/content/bridgemoji/svgs/README.txt
- + browser/components/torpreferences/content/builtinBridgeDialog.js
- + browser/components/torpreferences/content/builtinBridgeDialog.xhtml
- + browser/components/torpreferences/content/connectionCategory.inc.xhtml
- + browser/components/torpreferences/content/connectionPane.inc.xhtml
- + browser/components/torpreferences/content/connectionPane.js
- + browser/components/torpreferences/content/connectionSettingsDialog.js
- + browser/components/torpreferences/content/connectionSettingsDialog.xhtml
- + browser/components/torpreferences/content/lox-bridge-icon.svg
- + browser/components/torpreferences/content/lox-bridge-pass.svg
- + browser/components/torpreferences/content/lox-complete-ring.svg
- + browser/components/torpreferences/content/lox-invite-icon.svg
- + browser/components/torpreferences/content/lox-progress-ring.svg
- + browser/components/torpreferences/content/lox-success.svg
- + browser/components/torpreferences/content/loxInviteDialog.js
- + browser/components/torpreferences/content/loxInviteDialog.xhtml
- + browser/components/torpreferences/content/mail.svg
- + browser/components/torpreferences/content/network-broken.svg
- + browser/components/torpreferences/content/network.svg
- + browser/components/torpreferences/content/provideBridgeDialog.js
- + browser/components/torpreferences/content/provideBridgeDialog.xhtml
- + browser/components/torpreferences/content/requestBridgeDialog.js
- + browser/components/torpreferences/content/requestBridgeDialog.xhtml
- + browser/components/torpreferences/content/telegram-logo.svg
- + browser/components/torpreferences/content/torLogDialog.js
- + browser/components/torpreferences/content/torLogDialog.xhtml
- + browser/components/torpreferences/content/torPreferences.css
- + browser/components/torpreferences/jar.mn
- + browser/components/torpreferences/moz.build
- browser/components/translations/content/selectTranslationsPanel.js
- browser/components/urlbar/QuickActionsLoaderDefault.sys.mjs
- browser/components/urlbar/QuickSuggest.sys.mjs
- browser/components/urlbar/SearchModeSwitcher.sys.mjs
- browser/components/urlbar/UrlbarProvidersManager.sys.mjs
- browser/components/urlbar/UrlbarUtils.sys.mjs
- browser/components/urlbar/moz.build
- + browser/config/mozconfigs/base-browser
- + browser/config/mozconfigs/base-browser-android
- + browser/config/mozconfigs/tor-browser
- + browser/config/mozconfigs/tor-browser-android
- browser/extensions/moz.build
- + browser/fonts/fonts.conf
- browser/fonts/moz.build
- browser/installer/Makefile.in
- browser/installer/package-manifest.in
- browser/installer/windows/nsis/shared.nsh
- − browser/locales/en-US/chrome/overrides/appstrings.properties
- browser/locales/jar.mn
- browser/locales/l10n.toml
- browser/modules/AboutNewTab.sys.mjs
- browser/modules/BrowserWindowTracker.sys.mjs
- + browser/modules/ClipboardPrivacy.sys.mjs
- browser/modules/HomePage.sys.mjs
- browser/modules/LaterRun.sys.mjs
- + browser/modules/SecurityLevelNotification.sys.mjs
- + browser/modules/TorSettingsNotification.sys.mjs
- + browser/modules/TorUIUtils.sys.mjs
- browser/modules/URILoadingHelper.sys.mjs
- browser/modules/moz.build
- browser/moz.build
- browser/moz.configure
- browser/themes/shared/browser-shared.css
- browser/themes/shared/controlcenter/panel.css
- browser/themes/shared/downloads/contentAreaDownloadsView.css
- + browser/themes/shared/icons/new_circuit.svg
- + browser/themes/shared/icons/new_identity.svg
- browser/themes/shared/identity-block/identity-block.css
- browser/themes/shared/jar.inc.mn
- browser/themes/shared/notification-icons.css
- browser/themes/shared/preferences/preferences.css
- browser/themes/shared/tabbrowser/content-area.css
- browser/themes/shared/tabbrowser/tabs.css
- browser/themes/shared/toolbarbutton-icons.css
- + browser/themes/shared/tor-urlbar-button.css
- build.gradle
- build/application.ini.in
- build/moz.build
- + build/moz.configure/basebrowser-resources.configure
- build/moz.configure/bootstrap.configure
- build/moz.configure/init.configure
- build/moz.configure/rust.configure
- + build/moz.configure/torbrowser-resources.configure
- build/moz.configure/update-programs.configure
- build/moz.configure/windows.configure
- build/variables.py
- caps/nsScriptSecurityManager.cpp
- config/createprecomplete.py
- devtools/client/aboutdebugging/src/actions/runtimes.js
- devtools/client/netmonitor/src/components/SecurityState.js
- devtools/client/themes/images/aboutdebugging-firefox-logo.svg
- docshell/base/URIFixup.sys.mjs
- docshell/base/nsAboutRedirector.cpp
- docshell/base/nsDocShell.cpp
- docshell/build/components.conf
- dom/base/ContentAreaDropListener.sys.mjs
- dom/base/Document.cpp
- dom/base/Document.h
- dom/base/nsContentUtils.cpp
- dom/base/nsContentUtils.h
- dom/base/nsCopySupport.cpp
- dom/base/nsGlobalWindowOuter.cpp
- dom/canvas/ClientWebGLContext.cpp
- dom/ipc/BrowserParent.cpp
- dom/ipc/BrowserParent.h
- dom/ipc/PBrowser.ipdl
- dom/ipc/WindowGlobalActor.cpp
- dom/ipc/WindowGlobalChild.cpp
- dom/media/systemservices/video_engine/desktop_device_info.cc
- dom/media/webrtc/libwebrtcglue/VideoConduit.cpp
- dom/media/webrtc/sdp/RsdparsaSdpAttributeList.cpp
- dom/media/webrtc/transport/nrinterfaceprioritizer.cpp
- dom/media/webrtc/transport/sigslot.h
- dom/media/webrtc/transport/test/ice_unittest.cpp
- dom/media/webrtc/transport/third_party/nICEr/src/net/local_addr.c
- dom/media/webrtc/transport/third_party/nICEr/src/net/local_addr.h
- dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c
- dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-win32.c
- dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs.c
- dom/media/webrtc/transport/third_party/nrappkit/src/log/r_log.c
- dom/media/webrtc/transport/third_party/nrappkit/src/registry/registry.c
- dom/security/nsContentSecurityUtils.cpp
- dom/security/nsMixedContentBlocker.cpp
- dom/webidl/Document.webidl
- dom/websocket/WebSocket.cpp
- eslint-file-globals.config.mjs
- eslint-ignores.config.mjs
- extensions/auth/nsHttpNegotiateAuth.cpp
- gfx/thebes/StandardFonts-linux.inc → gfx/thebes/StandardFonts-linux-upstream.inc
- + gfx/thebes/StandardFonts-macos-bb.inc
- gfx/thebes/StandardFonts-macos.inc → gfx/thebes/StandardFonts-macos-upstream.inc
- + gfx/thebes/StandardFonts-win10-bb.inc
- gfx/thebes/StandardFonts-win10.inc
- gfx/thebes/gfxDWriteFontList.cpp
- gfx/thebes/gfxFcPlatformFontList.cpp
- gfx/thebes/gfxMacPlatformFontList.mm
- gfx/thebes/gfxPlatformFontList.cpp
- intl/l10n/Localization.h
- intl/locale/LocaleService.cpp
- js/xpconnect/src/xpc.msg
- layout/base/nsLayoutUtils.cpp
- mobile/android/android-components/components/browser/engine-gecko/build.gradle
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngine.kt
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/GeckoEngineSession.kt
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/cookiebanners/GeckoCookieBannersStorage.kt
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/cookiebanners/ReportSiteDomainsRepository.kt
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/fetch/GeckoViewFetchClient.kt
- mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/webextension/GeckoWebExtension.kt
- mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/cookiebanners/GeckoCookieBannersStorageTest.kt
- mobile/android/android-components/components/browser/engine-gecko/src/test/java/mozilla/components/browser/engine/gecko/cookiebanners/ReportSiteDomainsRepositoryTest.kt
- mobile/android/android-components/components/browser/icons/src/main/java/mozilla/components/browser/icons/loader/HttpIconLoader.kt
- mobile/android/android-components/components/browser/menu/src/main/java/mozilla/components/browser/menu/WebExtensionBrowserMenuBuilder.kt
- mobile/android/android-components/components/browser/storage-sync/src/main/java/mozilla/components/browser/storage/sync/RemoteTabsStorage.kt
- mobile/android/android-components/components/browser/thumbnails/src/main/java/mozilla/components/browser/thumbnails/utils/ThumbnailDiskCache.kt
- mobile/android/android-components/components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/DisplayToolbar.kt
- mobile/android/android-components/components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/display/SiteInfoIconView.kt
- mobile/android/android-components/components/browser/toolbar/src/main/res/drawable/mozac_ic_site_info.xml
- mobile/android/android-components/components/browser/toolbar/src/main/res/values/attrs_browser_toolbar.xml
- mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/EngineSession.kt
- mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/Settings.kt
- mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/cookiehandling/CookieBannersStorage.kt
- mobile/android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/webextension/WebExtension.kt
- mobile/android/android-components/components/concept/engine/src/test/java/mozilla/components/concept/engine/SettingsTest.kt
- mobile/android/android-components/components/concept/fetch/src/main/java/mozilla/components/concept/fetch/Request.kt
- mobile/android/android-components/components/concept/sync/src/main/java/mozilla/components/concept/sync/AccountEvent.kt
- mobile/android/android-components/components/concept/toolbar/src/main/java/mozilla/components/concept/toolbar/Toolbar.kt
- mobile/android/android-components/components/feature/accounts/build.gradle
- mobile/android/android-components/components/feature/addons/src/main/java/mozilla/components/feature/addons/AddonManager.kt
- mobile/android/android-components/components/feature/addons/src/main/java/mozilla/components/feature/addons/amo/AMOAddonsProvider.kt
- mobile/android/android-components/components/feature/app-links/build.gradle
- mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksFeature.kt
- mobile/android/android-components/components/feature/app-links/src/main/java/mozilla/components/feature/app/links/AppLinksUseCases.kt
- mobile/android/android-components/components/feature/autofill/src/main/java/mozilla/components/feature/autofill/AutofillUseCases.kt
- mobile/android/android-components/components/feature/awesomebar/src/main/java/mozilla/components/feature/awesomebar/provider/SessionAutocompleteProvider.kt
- mobile/android/android-components/components/feature/awesomebar/src/main/java/mozilla/components/feature/awesomebar/provider/SessionSuggestionProvider.kt
- mobile/android/android-components/components/feature/contextmenu/src/main/java/mozilla/components/feature/contextmenu/ContextMenuCandidate.kt
- mobile/android/android-components/components/feature/downloads/src/main/java/mozilla/components/feature/downloads/AbstractFetchDownloadService.kt
- mobile/android/android-components/components/feature/downloads/src/main/java/mozilla/components/feature/downloads/DownloadsFeature.kt
- mobile/android/android-components/components/feature/downloads/src/test/java/mozilla/components/feature/downloads/DownloadsFeatureTest.kt
- mobile/android/android-components/components/feature/fxsuggest/build.gradle
- mobile/android/android-components/components/feature/search/build.gradle
- mobile/android/android-components/components/feature/search/src/main/assets/search/list.json
- + mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg-onion.xml
- mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg.xml
- + mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/startpage-onion.xml
- + mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/startpage.xml
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/SearchUseCases.kt
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/ext/SearchEngine.kt
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/internal/SearchUrlBuilder.kt
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/middleware/SearchMiddleware.kt
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/storage/SearchEngineReader.kt
- mobile/android/android-components/components/feature/search/src/main/java/mozilla/components/feature/search/telemetry/SerpTelemetryRepository.kt
- mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/BaseSearchTelemetryTest.kt
- mobile/android/android-components/components/feature/search/src/test/java/mozilla/components/feature/search/telemetry/SerpTelemetryRepositoryTest.kt
- mobile/android/android-components/components/feature/toolbar/src/main/java/mozilla/components/feature/toolbar/ToolbarPresenter.kt
- mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/FxaDeviceConstellation.kt
- mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/Types.kt
- mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/sync/WorkManagerSyncManager.kt
- mobile/android/android-components/components/service/nimbus/build.gradle
- mobile/android/android-components/components/support/appservices/src/main/java/mozilla/components/support/rustlog/RustLog.kt
- mobile/android/android-components/components/support/base/src/main/java/mozilla/components/support/base/android/NotificationsDelegate.kt
- mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/android/content/Context.kt
- mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt
- mobile/android/android-components/components/support/remotesettings/src/main/java/mozilla/components/support/remotesettings/RemoteSettingsClient.kt
- mobile/android/android-components/components/support/remotesettings/src/main/java/mozilla/components/support/remotesettings/RemoteSettingsService.kt
- + mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/TorUtils.kt
- mobile/android/android-components/components/support/webextensions/src/main/java/mozilla/components/support/webextensions/WebExtensionSupport.kt
- + mobile/android/android-components/components/ui/icons/src/main/res/drawable/mozac_ic_onion.xml
- mobile/android/android-components/plugins/config/src/main/java/ConfigPlugin.kt
- mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
- mobile/android/android-components/samples/browser/src/main/res/layout/activity_installed_add_on_details.xml
- + mobile/android/app/000-tor-browser-android.js
- mobile/android/app/geckoview-prefs.js
- mobile/android/app/moz.build
- mobile/android/autopublish-settings.gradle
- + mobile/android/basebrowser.configure
- + mobile/android/branding/tb-alpha/configure.sh
- + mobile/android/branding/tb-alpha/content/favicon32.png
- + mobile/android/branding/tb-alpha/content/favicon64.png
- + mobile/android/branding/tb-alpha/content/jar.mn
- + mobile/android/branding/tb-alpha/content/moz.build
- + mobile/android/branding/tb-alpha/locales/en-US/brand.ftl
- + mobile/android/branding/tb-alpha/locales/en-US/brand.properties
- + mobile/android/branding/tb-alpha/locales/jar.mn
- + mobile/android/branding/tb-alpha/locales/moz.build
- + mobile/android/branding/tb-alpha/moz.build
- + mobile/android/branding/tb-nightly/configure.sh
- + mobile/android/branding/tb-nightly/content/favicon32.png
- + mobile/android/branding/tb-nightly/content/favicon64.png
- + mobile/android/branding/tb-nightly/content/jar.mn
- + mobile/android/branding/tb-nightly/content/moz.build
- + mobile/android/branding/tb-nightly/locales/en-US/brand.ftl
- + mobile/android/branding/tb-nightly/locales/en-US/brand.properties
- + mobile/android/branding/tb-nightly/locales/jar.mn
- + mobile/android/branding/tb-nightly/locales/moz.build
- + mobile/android/branding/tb-nightly/moz.build
- + mobile/android/branding/tb-release/configure.sh
- + mobile/android/branding/tb-release/content/favicon32.png
- + mobile/android/branding/tb-release/content/favicon64.png
- + mobile/android/branding/tb-release/content/jar.mn
- + mobile/android/branding/tb-release/content/moz.build
- + mobile/android/branding/tb-release/locales/en-US/brand.ftl
- + mobile/android/branding/tb-release/locales/en-US/brand.properties
- + mobile/android/branding/tb-release/locales/jar.mn
- + mobile/android/branding/tb-release/locales/moz.build
- + mobile/android/branding/tb-release/moz.build
- mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
- mobile/android/fenix/.buildconfig.yml
- mobile/android/fenix/app/build.gradle
- mobile/android/fenix/app/lint-baseline.xml
- mobile/android/fenix/app/nimbus.fml.yaml
- mobile/android/fenix/app/onboarding.fml.yaml
- mobile/android/fenix/app/proguard-rules.pro
- + mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/AppStartupTest.kt
- mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/onboarding/view/OnboardingMapperTest.kt
- mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt
- mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt
- + mobile/android/fenix/app/src/beta/ic_launcher-playstore.png
- + mobile/android/fenix/app/src/beta/res/drawable-anydpi-v24/ic_tor_browser_close_tabs_notification.xml
- + mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.png
- − mobile/android/fenix/app/src/beta/res/drawable-hdpi/fenix_search_widget.webp
- + mobile/android/fenix/app/src/beta/res/drawable-hdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/beta/res/drawable-mdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/beta/res/drawable-xhdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/beta/res/drawable-xxhdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/beta/res/drawable/animated_splash_screen.xml
- + mobile/android/fenix/app/src/beta/res/drawable/ic_launcher_background.xml
- + mobile/android/fenix/app/src/beta/res/drawable/ic_launcher_monochrome_foreground.xml
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml → mobile/android/fenix/app/src/beta/res/mipmap-anydpi-v26/ic_launcher.xml
- + mobile/android/fenix/app/src/beta/res/mipmap-anydpi-v26/ic_launcher_monochrome.xml
- + mobile/android/fenix/app/src/beta/res/mipmap-anydpi-v26/ic_launcher_monochrome_round.xml
- + mobile/android/fenix/app/src/beta/res/mipmap-anydpi-v26/ic_launcher_round.xml
- mobile/android/fenix/app/src/beta/res/mipmap-hdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-hdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-hdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-hdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-hdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-mdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-mdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-mdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-mdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-mdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/beta/res/mipmap-xxxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/beta/res/values/colors.xml
- + mobile/android/fenix/app/src/beta/res/values/ic_launcher_monochrome_background.xml
- mobile/android/fenix/app/src/beta/res/values/static_strings.xml
- mobile/android/fenix/app/src/beta/res/xml/shortcuts.xml
- − mobile/android/fenix/app/src/debug/ic_launcher-web.webp
- + mobile/android/fenix/app/src/debug/res/drawable-anydpi-v24/ic_tor_browser_close_tabs_notification.xml
- + mobile/android/fenix/app/src/debug/res/drawable-hdpi/fenix_search_widget.png
- + mobile/android/fenix/app/src/debug/res/drawable-hdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/debug/res/drawable-mdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/debug/res/drawable-xhdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/debug/res/drawable-xxhdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/debug/res/drawable/animated_splash_screen.xml
- + mobile/android/fenix/app/src/debug/res/drawable/ic_launcher_background.xml
- + mobile/android/fenix/app/src/debug/res/drawable/ic_launcher_monochrome_foreground.xml
- mobile/android/fenix/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml
- + mobile/android/fenix/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_monochrome.xml
- + mobile/android/fenix/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_monochrome_round.xml
- mobile/android/fenix/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml
- mobile/android/fenix/app/src/debug/res/mipmap-hdpi/ic_launcher.webp
- mobile/android/fenix/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-hdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-hdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-hdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-mdpi/ic_launcher.webp
- mobile/android/fenix/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-mdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-mdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-mdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xhdpi/ic_launcher.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxhdpi/ic_launcher.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/debug/res/values/colors.xml
- + mobile/android/fenix/app/src/debug/res/values/ic_launcher_monochrome_background.xml
- mobile/android/fenix/app/src/debug/res/xml/shortcuts.xml
- mobile/android/fenix/app/src/main/AndroidManifest.xml
- + mobile/android/fenix/app/src/main/assets/common/torrc-defaults
- − mobile/android/fenix/app/src/main/ic_launcher-web.webp
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksAction.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksMiddleware.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksReducer.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksScreen.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/bookmarks/BookmarksTelemetryMiddleware.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/OpenInAppOnboardingObserver.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Analytics.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Core.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/NotificationManager.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/TorBrowserFeatures.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/UseCases.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/appstate/setup/checklist/ChecklistItem.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/CustomTabMenu.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/middleware/MenuNavigationMiddleware.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/ActivationPing.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MetricsUtils.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserMenuSignIn.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMenuController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/compose/snackbar/Snackbar.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabToolbarMenu.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/customtabs/PoweredByNotification.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/view/ResearchSurfaceSurvey.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/ext/Activity.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeMenuView.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/intent/HomeDeepLinkIntentProcessor.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/ui/HomepageHeader.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/iconpicker/AppIcon.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/microsurvey/ui/MicrosurveyCompleted.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/microsurvey/ui/MicrosurveyHeader.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/microsurvey/ui/MicrosurveyRequestPrompt.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/view/MarketingDataOnboardingPage.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPage.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingScreen.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/view/TermsOfServiceOnboardingPage.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/search/awesomebar/SearchSuggestionsProvidersBuilder.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/session/PrivateNotificationService.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/HttpsOnlyFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/PhoneFeature.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/TorBridgeConfigFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/account/AccountUiView.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/DefaultLocaleSettingsController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleSettingsFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/view/SavedLoginsListView.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerDetailsController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerDetailsInteractor.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerHandlingDetailsView.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannersStorageExt.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SitePermissionsManagePhoneFeatureFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/sitepermissions/SiteSettingsFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/share/ShareController.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/shortcut/PwaOnboardingObserver.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabsList.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/ui/syncedtabs/SyncedTabsList.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/termsofuse/ui/TermsOfUseBottomSheet.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/ConnectAssistUiState.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/QuickstartViewModel.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapProgressViewModel.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorBridgeTransports.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorLog.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorLogsComposeFragment.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorLogsViewModel.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorSecurityLevel.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorSecurityLevelFragment.kt
- + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/UrlQuickLoadViewModel.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/trackingprotection/ProtectionsStore.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/NotificationBase.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/gecko/search/SearchWidgetProvider.kt
- + mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.png
- − mobile/android/fenix/app/src/main/res/drawable-hdpi/fenix_search_widget.webp
- − mobile/android/fenix/app/src/main/res/drawable-hdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable-hdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/main/res/drawable-mdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable-mdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/main/res/drawable-night/onboarding_ctd_default_browser.xml
- mobile/android/fenix/app/src/main/res/drawable-v23/splash_screen.xml
- − mobile/android/fenix/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable-xhdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable-xxhdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable-xxxhdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/main/res/drawable/animated_splash_screen.xml
- + mobile/android/fenix/app/src/main/res/drawable/browser_location.xml
- + mobile/android/fenix/app/src/main/res/drawable/connect.xml
- + mobile/android/fenix/app/src/main/res/drawable/connect_broken.xml
- + mobile/android/fenix/app/src/main/res/drawable/globe_broken.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_account.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_account_warning.xml
- + mobile/android/fenix/app/src/main/res/drawable/ic_favorite.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_firefox.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_fx_accounts_avatar.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_notification_permission.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_onboarding_key_features.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_onboarding_key_features_icons_only.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_onboarding_search_widget.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_onboarding_sync.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_onboarding_welcome.xml
- + mobile/android/fenix/app/src/main/res/drawable/ic_onion_pattern.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_scan.xml
- + mobile/android/fenix/app/src/main/res/drawable/ic_screenshot.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_sign_in.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_signed_out.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_status_logo.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_sync_disconnected.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_synced_tabs.xml
- + mobile/android/fenix/app/src/main/res/drawable/ic_tor_config_bridge.xml
- + mobile/android/fenix/app/src/main/res/drawable/ic_tor_network_settings.xml
- − mobile/android/fenix/app/src/main/res/drawable/ic_wordmark_logo.webp
- − mobile/android/fenix/app/src/main/res/drawable/ic_wordmark_text_normal.webp
- − mobile/android/fenix/app/src/main/res/drawable/ic_wordmark_text_private.webp
- − mobile/android/fenix/app/src/main/res/drawable/microsurvey_success.xml
- + mobile/android/fenix/app/src/main/res/drawable/new_circuit.xml
- − mobile/android/fenix/app/src/main/res/drawable/onboarding_ctd_default_browser.xml
- − mobile/android/fenix/app/src/main/res/drawable/onboarding_ctd_notification.xml
- − mobile/android/fenix/app/src/main/res/drawable/onboarding_ctd_sync.xml
- mobile/android/fenix/app/src/main/res/drawable/progress_gradient.xml
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_private_round.xml → mobile/android/fenix/app/src/main/res/drawable/rounded_corners.xml
- + mobile/android/fenix/app/src/main/res/drawable/tor_bootstrap_background_gradient.xml
- mobile/android/fenix/app/src/main/res/drawable-night/ic_logo_wordmark_normal.xml → mobile/android/fenix/app/src/main/res/drawable/tor_onboarding_donate_gradient.xml
- + mobile/android/fenix/app/src/main/res/drawable/tor_onboarding_donate_rounded_corners.xml
- mobile/android/fenix/app/src/main/res/layout/component_cookie_banner_details_panel.xml
- mobile/android/fenix/app/src/main/res/layout/fragment_about.xml
- mobile/android/fenix/app/src/main/res/layout/fragment_create_shortcut.xml
- mobile/android/fenix/app/src/main/res/layout/fragment_home.xml
- mobile/android/fenix/app/src/main/res/layout/fragment_locale_settings.xml
- + mobile/android/fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml
- + mobile/android/fenix/app/src/main/res/layout/fragment_tor_security_level_preferences.xml
- mobile/android/fenix/app/src/main/res/layout/fragment_turn_on_sync.xml
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_private.xml → mobile/android/fenix/app/src/main/res/layout/preference_quick_start.xml
- mobile/android/fenix/app/src/main/res/layout/quicksettings_permissions.xml
- mobile/android/fenix/app/src/main/res/layout/quicksettings_protections_panel.xml
- mobile/android/fenix/app/src/main/res/layout/search_widget_extra_small_v1.xml
- mobile/android/fenix/app/src/main/res/layout/search_widget_extra_small_v2.xml
- mobile/android/fenix/app/src/main/res/layout/search_widget_large.xml
- mobile/android/fenix/app/src/main/res/layout/search_widget_medium.xml
- mobile/android/fenix/app/src/main/res/layout/search_widget_small.xml
- mobile/android/fenix/app/src/main/res/layout/sign_in_preference.xml
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_alternative.xml
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round_alternative.xml
- − mobile/android/fenix/app/src/main/res/mipmap-hdpi/ic_launcher.webp
- − mobile/android/fenix/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
- − mobile/android/fenix/app/src/main/res/mipmap-mdpi/ic_launcher.webp
- − mobile/android/fenix/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
- − mobile/android/fenix/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/main/res/navigation/nav_graph.xml
- mobile/android/fenix/app/src/main/res/values-night-v27/styles.xml
- mobile/android/fenix/app/src/main/res/values-night/styles.xml
- mobile/android/fenix/app/src/main/res/values-v24/styles.xml
- mobile/android/fenix/app/src/main/res/values-v27/styles.xml
- mobile/android/fenix/app/src/main/res/values/attrs.xml
- mobile/android/fenix/app/src/main/res/values/colors.xml
- + mobile/android/fenix/app/src/main/res/values/ic_launcher_monochrome_background.xml
- mobile/android/fenix/app/src/main/res/values/preference_keys.xml
- mobile/android/fenix/app/src/main/res/values/static_strings.xml
- mobile/android/fenix/app/src/main/res/values/styles.xml
- + mobile/android/fenix/app/src/main/res/values/torbrowser_strings.xml
- mobile/android/fenix/app/src/main/res/xml/logins_preferences.xml
- mobile/android/fenix/app/src/main/res/xml/preferences.xml
- mobile/android/fenix/app/src/main/res/xml/private_browsing_preferences.xml
- mobile/android/fenix/app/src/main/res/xml/search_settings_preferences.xml
- mobile/android/fenix/app/src/main/res/xml/shortcuts.xml
- mobile/android/fenix/app/src/main/res/xml/site_permissions_details_exceptions_preferences.xml
- mobile/android/fenix/app/src/main/res/xml/site_permissions_preferences.xml
- mobile/android/fenix/app/src/main/res/xml/sync_problem.xml
- + mobile/android/fenix/app/src/main/res/xml/tor_bridge_config_preferences.xml
- + mobile/android/fenix/app/src/nightly/ic_launcher-playstore.png
- + mobile/android/fenix/app/src/nightly/res/drawable-anydpi-v24/ic_tor_browser_close_tabs_notification.xml
- + mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.png
- − mobile/android/fenix/app/src/nightly/res/drawable-hdpi/fenix_search_widget.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-hdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-hdpi/ic_logo_wordmark_private.webp
- + mobile/android/fenix/app/src/nightly/res/drawable-hdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/nightly/res/drawable-mdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-mdpi/ic_logo_wordmark_private.webp
- + mobile/android/fenix/app/src/nightly/res/drawable-mdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_private.webp
- + mobile/android/fenix/app/src/nightly/res/drawable-xhdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/nightly/res/drawable-xxhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-xxhdpi/ic_logo_wordmark_private.webp
- + mobile/android/fenix/app/src/nightly/res/drawable-xxhdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_private.webp
- − mobile/android/fenix/app/src/nightly/res/drawable/animated_splash_screen.xml
- + mobile/android/fenix/app/src/nightly/res/drawable/ic_launcher_background.xml
- − mobile/android/fenix/app/src/nightly/res/drawable/ic_launcher_foreground.xml
- + mobile/android/fenix/app/src/nightly/res/drawable/ic_launcher_monochrome_foreground.xml
- − mobile/android/fenix/app/src/nightly/res/drawable/ic_wordmark_logo.webp
- − mobile/android/fenix/app/src/nightly/res/drawable/ic_wordmark_text_normal.webp
- − mobile/android/fenix/app/src/nightly/res/drawable/ic_wordmark_text_private.webp
- − mobile/android/fenix/app/src/nightly/res/ic_launcher-web.webp
- mobile/android/fenix/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml → mobile/android/fenix/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml
- + mobile/android/fenix/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher_monochrome.xml
- + mobile/android/fenix/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher_monochrome_round.xml
- + mobile/android/fenix/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher_round.xml
- mobile/android/fenix/app/src/nightly/res/mipmap-hdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-hdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-hdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-hdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-hdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-mdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-mdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-mdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-mdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-mdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/nightly/res/values/colors.xml
- + mobile/android/fenix/app/src/nightly/res/values/ic_launcher_monochrome_background.xml
- mobile/android/fenix/app/src/nightly/res/values/static_strings.xml
- mobile/android/fenix/app/src/nightly/res/xml/shortcuts.xml
- + mobile/android/fenix/app/src/release/ic_launcher-playstore.png
- + mobile/android/fenix/app/src/release/res/drawable-anydpi-v24/ic_tor_browser_close_tabs_notification.xml
- + mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.png
- − mobile/android/fenix/app/src/release/res/drawable-hdpi/fenix_search_widget.webp
- − mobile/android/fenix/app/src/release/res/drawable-hdpi/ic_logo_wordmark_normal.webp
- − mobile/android/fenix/app/src/release/res/drawable-hdpi/ic_logo_wordmark_private.webp
- + mobile/android/fenix/app/src/release/res/drawable-hdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/release/res/drawable-mdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/release/res/drawable-xhdpi/ic_tor_browser_close_tabs_notification.png
- + mobile/android/fenix/app/src/release/res/drawable-xxhdpi/ic_tor_browser_close_tabs_notification.png
- − mobile/android/fenix/app/src/release/res/drawable/animated_splash_screen.xml
- + mobile/android/fenix/app/src/release/res/drawable/ic_launcher_background.xml
- + mobile/android/fenix/app/src/release/res/drawable/ic_launcher_monochrome_foreground.xml
- + mobile/android/fenix/app/src/release/res/mipmap-anydpi-v26/ic_launcher.xml
- + mobile/android/fenix/app/src/release/res/mipmap-anydpi-v26/ic_launcher_monochrome.xml
- + mobile/android/fenix/app/src/release/res/mipmap-anydpi-v26/ic_launcher_monochrome_round.xml
- + mobile/android/fenix/app/src/release/res/mipmap-anydpi-v26/ic_launcher_round.xml
- mobile/android/fenix/app/src/release/res/mipmap-hdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/release/res/mipmap-hdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/release/res/mipmap-hdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/release/res/mipmap-hdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-hdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-mdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/release/res/mipmap-mdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/release/res/mipmap-mdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/release/res/mipmap-mdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-mdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xxxhdpi/ic_launcher.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp
- + mobile/android/fenix/app/src/release/res/mipmap-xxxhdpi/ic_launcher_monochrome_round.webp
- mobile/android/fenix/app/src/release/res/mipmap-xxxhdpi/ic_launcher_round.webp
- mobile/android/fenix/app/src/release/res/values/colors.xml
- + mobile/android/fenix/app/src/release/res/values/ic_launcher_monochrome_background.xml
- mobile/android/fenix/app/src/release/res/values/static_strings.xml
- mobile/android/fenix/app/src/release/res/xml/shortcuts.xml
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/menu/MenuNavigationMiddlewareTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/ext/ContextTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/onboarding/view/OnboardingMapperTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/onboarding/view/OnboardingPageUiDataTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/SupportUtilsTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ProtectionsViewTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragmentTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/CookieBannerHandlingDetailsViewTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/DefaultCookieBannerDetailsControllerTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/trackingprotection/ProtectionsStoreTest.kt
- mobile/android/fenix/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt
- mobile/android/fenix/build.gradle
- + mobile/android/fenix/tools/tba-fetch-deps.sh
- + mobile/android/fenix/tools/tba-sign-devbuilds.sh
- mobile/android/geckoview/api.txt
- mobile/android/geckoview/build.gradle
- − mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/VideoCaptureTest.kt
- mobile/android/geckoview/src/main/AndroidManifest.xml
- mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoMediaDrmBridgeV21.java
- mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/CrashReporter.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorAndroidIntegration.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorBootstrappingStatus.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorConnectError.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorConnectStage.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorConnectStageName.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorSettings.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebExtensionController.java
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/WebRequest.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/androidlegacysettings/Prefs.java
- + mobile/android/geckoview/src/main/java/org/mozilla/geckoview/androidlegacysettings/TorLegacyAndroidSettings.java
- mobile/android/gradle/with_gecko_binaries.gradle
- mobile/android/installer/package-manifest.in
- mobile/android/locales/filter.py
- mobile/android/locales/jar.mn
- mobile/android/locales/l10n.toml
- mobile/android/moz.configure
- mobile/locales/filter.py
- mobile/shared/.eslintrc.mjs
- mobile/shared/chrome/geckoview/geckoview.js
- mobile/shared/components/geckoview/GeckoViewStartup.sys.mjs
- mobile/shared/modules/geckoview/GeckoViewContent.sys.mjs
- mobile/shared/modules/geckoview/GeckoViewProgress.sys.mjs
- mobile/shared/modules/geckoview/GeckoViewWebExtension.sys.mjs
- modules/libpref/Preferences.cpp
- modules/libpref/init/StaticPrefList.yaml
- modules/libpref/init/all.js
- moz.configure
- + mozconfig-android-aarch64
- + mozconfig-android-all
- + mozconfig-android-armv7
- + mozconfig-android-x86
- + mozconfig-android-x86_64
- + mozconfig-linux-aarch64
- + mozconfig-linux-aarch64-dev
- + mozconfig-linux-arm
- + mozconfig-linux-i686
- + mozconfig-linux-x86_64
- + mozconfig-linux-x86_64-asan
- + mozconfig-linux-x86_64-dev
- + mozconfig-macos
- + mozconfig-macos-dev
- + mozconfig-windows-i686
- + mozconfig-windows-x86_64
- netwerk/base/nsIPrompt.idl
- netwerk/base/nsNetUtil.cpp
- netwerk/base/nsSocketTransport2.cpp
- netwerk/build/components.conf
- netwerk/build/nsNetCID.h
- + netwerk/dns/IOnionAliasService.idl
- + netwerk/dns/OnionAliasService.cpp
- + netwerk/dns/OnionAliasService.h
- netwerk/dns/effective_tld_names.dat
- netwerk/dns/moz.build
- netwerk/protocol/http/HttpBaseChannel.cpp
- netwerk/protocol/http/nsHttpHandler.cpp
- netwerk/protocol/http/nsHttpNTLMAuth.cpp
- netwerk/sctp/src/moz.build
- netwerk/sctp/src/netinet/sctp_cc_functions.c
- netwerk/sctp/src/netinet/sctp_indata.c
- netwerk/sctp/src/netinet/sctp_input.c
- netwerk/sctp/src/netinet/sctp_output.c
- netwerk/sctp/src/netinet/sctp_usrreq.c
- netwerk/sctp/src/netinet/sctputil.c
- netwerk/sctp/src/user_mbuf.c
- netwerk/sctp/src/user_socket.c
- netwerk/socket/nsSOCKSIOLayer.cpp
- netwerk/system/android/nsAndroidNetworkLinkService.cpp
- netwerk/system/linux/nsNetworkLinkService.cpp
- netwerk/system/mac/nsNetworkLinkService.mm
- netwerk/system/netlink/NetlinkService.cpp
- netwerk/system/win32/nsNotifyAddrListener.cpp
- netwerk/url-classifier/components.conf
- python/mach/mach/telemetry.py
- python/mozboot/mozboot/bootstrap.py
- python/mozbuild/mozbuild/action/tooltool.py
- python/mozbuild/mozbuild/artifact_commands.py
- python/mozbuild/mozbuild/artifacts.py
- python/mozbuild/mozbuild/backend/base.py
- python/mozbuild/mozbuild/mach_commands.py
- + python/mozbuild/mozbuild/tbbutils.py
- python/mozbuild/mozbuild/test/python.toml
- + python/mozbuild/mozbuild/test/test_tbbutils.py
- python/mozlint/mozlint/cli.py
- python/sites/mach.txt
- security/certverifier/CertVerifier.cpp
- security/manager/ssl/NSSSocketControl.cpp
- security/manager/ssl/RemoteSecuritySettings.sys.mjs
- security/manager/ssl/SSLServerCertVerification.cpp
- security/manager/ssl/SSLServerCertVerification.h
- security/manager/ssl/StaticHPKPins.h
- security/manager/ssl/nsSecureBrowserUI.cpp
- security/moz.build
- security/nss/lib/certhigh/ocsp.c
- security/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
- security/nss/lib/mozpkix/include/pkix/Result.h
- security/nss/lib/mozpkix/include/pkix/pkixnss.h
- security/nss/lib/ssl/Makefile
- services/settings/Attachments.sys.mjs
- services/settings/IDBHelpers.sys.mjs
- services/settings/RemoteSettingsClient.sys.mjs
- services/settings/dumps/gen_last_modified.py
- services/settings/dumps/main/moz.build
- services/settings/remote-settings.sys.mjs
- services/settings/servicesSettings.manifest
- services/settings/static-dumps/main/moz.build
- + services/settings/static-dumps/main/query-stripping.json
- services/sync/components.conf
- testing/moz.build
- testing/mozbase/mozinstall/mozinstall/mozinstall.py
- testing/mozbase/setup_development.py
- testing/mozharness/scripts/does_it_crash.py
- testing/specialpowers/api.js
- + testing/tor/marionette.toml
- + testing/tor/test_network_check.py
- testing/web-platform/tests/tools/third_party/attrs/.git_archival.txt
- third_party/abseil-cpp/absl/base/internal/thread_identity.cc
- third_party/abseil-cpp/absl/base/internal/thread_identity.h
- third_party/libwebrtc/modules/audio_coding/codecs/isac/main/source/os_specific_inline.h
- third_party/libwebrtc/modules/desktop_capture/desktop_capture_types.h
- third_party/libwebrtc/modules/desktop_capture/win/desktop_capture_utils.cc
- third_party/libwebrtc/modules/desktop_capture/win/wgc_capture_session.cc
- third_party/libwebrtc/modules/desktop_capture/win/wgc_capturer_win.cc
- third_party/libwebrtc/modules/desktop_capture/win/wgc_capturer_win.h
- third_party/libwebrtc/modules/video_capture/windows/device_info_ds.h
- third_party/libwebrtc/rtc_base/platform_thread_types.cc
- third_party/libwebrtc/rtc_base/socket.h
- third_party/libwebrtc/rtc_base/system/file_wrapper.cc
- third_party/libwebrtc/rtc_base/win/create_direct3d_device.h
- third_party/sipcc/cpr_win_types.h
- third_party/sipcc/sdp_token.c
- toolkit/.eslintrc.mjs
- toolkit/actors/AboutHttpsOnlyErrorParent.sys.mjs
- + toolkit/actors/FilesFilterChild.sys.mjs
- + toolkit/actors/FilesFilterParent.sys.mjs
- toolkit/actors/NetErrorChild.sys.mjs
- toolkit/actors/NetErrorParent.sys.mjs
- toolkit/actors/moz.build
- toolkit/components/antitracking/antitracking.manifest
- toolkit/components/antitracking/components.conf
- toolkit/components/downloads/DownloadCore.sys.mjs
- toolkit/components/downloads/DownloadIntegration.sys.mjs
- toolkit/components/extensions/Extension.sys.mjs
- toolkit/components/extensions/ExtensionParent.sys.mjs
- toolkit/components/extensions/ext-toolkit.json
- toolkit/components/extensions/parent/ext-trial-ml.js
- toolkit/components/httpsonlyerror/content/errorpage.js
- + toolkit/components/lox/Lox.sys.mjs
- + toolkit/components/lox/content/lox_wasm_bg.wasm
- + toolkit/components/lox/jar.mn
- + toolkit/components/lox/lox_wasm.jsm
- + toolkit/components/lox/moz.build
- toolkit/components/moz.build
- toolkit/components/pdfjs/content/PdfjsParent.sys.mjs
- toolkit/components/pdfjs/content/web/viewer.mjs
- toolkit/components/places/PlacesUtils.sys.mjs
- toolkit/components/places/moz.build
- toolkit/components/prompts/content/commonDialog.js
- toolkit/components/prompts/src/Prompter.sys.mjs
- toolkit/components/remotebrowserutils/RemoteWebNavigation.sys.mjs
- toolkit/components/resistfingerprinting/RFPHelper.sys.mjs
- toolkit/components/resistfingerprinting/content/letterboxing.css
- toolkit/components/resistfingerprinting/nsRFPService.cpp
- toolkit/components/search/ConfigSearchEngine.sys.mjs
- toolkit/components/search/SearchEngine.sys.mjs
- toolkit/components/search/SearchEngineSelector.sys.mjs
- toolkit/components/search/SearchService.sys.mjs
- + toolkit/components/search/content/base-browser-search-engine-icons.json
- + toolkit/components/search/content/base-browser-search-engines.json
- + toolkit/components/search/content/duckduckgo.ico
- + toolkit/components/search/content/startpage-16.png
- + toolkit/components/search/content/startpage-32.png
- + toolkit/components/search/content/wikipedia.ico
- + toolkit/components/search/jar.mn
- toolkit/components/search/moz.build
- + toolkit/components/securitylevel/SecurityLevel.manifest
- + toolkit/components/securitylevel/SecurityLevel.sys.mjs
- + toolkit/components/securitylevel/components.conf
- + toolkit/components/securitylevel/moz.build
- toolkit/components/telemetry/app/TelemetrySend.sys.mjs
- toolkit/components/telemetry/moz.build
- + toolkit/components/tor-launcher/TorBootstrapRequest.sys.mjs
- + toolkit/components/tor-launcher/TorControlPort.sys.mjs
- + toolkit/components/tor-launcher/TorDomainIsolator.sys.mjs
- + toolkit/components/tor-launcher/TorLauncherUtil.sys.mjs
- + toolkit/components/tor-launcher/TorParsers.sys.mjs
- + toolkit/components/tor-launcher/TorProcess.sys.mjs
- + toolkit/components/tor-launcher/TorProcessAndroid.sys.mjs
- + toolkit/components/tor-launcher/TorProvider.sys.mjs
- + toolkit/components/tor-launcher/TorProviderBuilder.sys.mjs
- + toolkit/components/tor-launcher/TorStartupService.sys.mjs
- + toolkit/components/tor-launcher/components.conf
- + toolkit/components/tor-launcher/moz.build
- + toolkit/components/tor-launcher/tor-launcher.manifest
- + toolkit/components/torconnect/TorConnectChild.sys.mjs
- + toolkit/components/torconnect/TorConnectParent.sys.mjs
- + toolkit/components/torconnect/content/aboutTorConnect.css
- + toolkit/components/torconnect/content/aboutTorConnect.html
- + toolkit/components/torconnect/content/aboutTorConnect.js
- + toolkit/components/torconnect/content/arrow-right.svg
- + toolkit/components/torconnect/content/bridge.svg
- + toolkit/components/torconnect/content/connection-failure.svg
- + toolkit/components/torconnect/content/connection-location.svg
- + toolkit/components/torconnect/content/tor-connect-broken.svg
- + toolkit/components/torconnect/content/tor-connect.svg
- + toolkit/components/torconnect/content/tor-not-connected-to-connected-animated.svg
- + toolkit/components/torconnect/content/torConnectTitlebarStatus.css
- + toolkit/components/torconnect/content/torConnectTitlebarStatus.js
- + toolkit/components/torconnect/content/torConnectUrlbarButton.js
- + toolkit/components/torconnect/jar.mn
- + toolkit/components/torconnect/moz.build
- toolkit/components/translations/actors/TranslationsChild.sys.mjs
- toolkit/components/translations/actors/TranslationsParent.sys.mjs
- toolkit/components/translations/actors/moz.build
- toolkit/components/translations/jar.mn
- toolkit/components/urlformatter/URLFormatter.sys.mjs
- toolkit/components/windowwatcher/nsIPromptService.idl
- toolkit/components/windowwatcher/nsWindowWatcher.cpp
- toolkit/content/.eslintrc.mjs
- toolkit/content/aboutNetError.html
- toolkit/content/aboutNetError.mjs
- toolkit/content/aboutSupport.js
- toolkit/content/jar.mn
- toolkit/content/license.html
- + toolkit/content/moat_countries_dev_build.json
- + toolkit/content/pt_config.json
- toolkit/content/widgets/dialog.js
- toolkit/content/widgets/infobar.css
- toolkit/content/widgets/lit-utils.mjs
- toolkit/content/widgets/moz-input-common.css
- toolkit/content/widgets/moz-message-bar/moz-message-bar.mjs
- toolkit/content/widgets/moz-support-link/moz-support-link.mjs
- toolkit/content/widgets/moz-toggle/moz-toggle.mjs
- toolkit/content/widgets/notificationbox.js
- + toolkit/locales-preview/base-browser-no-translate.ftl
- + toolkit/locales-preview/tor-browser-no-translate.ftl
- + toolkit/locales/en-US/toolkit/global/base-browser.ftl
- + toolkit/locales/en-US/toolkit/global/tor-browser.ftl
- toolkit/locales/jar.mn
- toolkit/modules/ActorManagerParent.sys.mjs
- toolkit/modules/AppConstants.sys.mjs
- + toolkit/modules/Bech32Decode.sys.mjs
- + toolkit/modules/BridgeDB.sys.mjs
- + toolkit/modules/DomainFrontedRequests.sys.mjs
- + toolkit/modules/DragDropFilter.sys.mjs
- + toolkit/modules/Moat.sys.mjs
- toolkit/modules/PopupNotifications.sys.mjs
- + toolkit/modules/QRCode.sys.mjs
- toolkit/modules/RemotePageAccessManager.sys.mjs
- + toolkit/modules/TorAndroidIntegration.sys.mjs
- + toolkit/modules/TorConnect.sys.mjs
- + toolkit/modules/TorSettings.sys.mjs
- + toolkit/modules/TorStrings.sys.mjs
- toolkit/modules/UpdateUtils.sys.mjs
- toolkit/modules/moz.build
- toolkit/moz.build
- toolkit/mozapps/extensions/AddonManager.sys.mjs
- toolkit/mozapps/extensions/components.conf
- toolkit/mozapps/extensions/content/aboutaddons.html
- toolkit/mozapps/extensions/content/aboutaddons.js
- toolkit/mozapps/extensions/content/components/addon-mlmodel-details.mjs
- toolkit/mozapps/extensions/content/components/mlmodel-card-list-additions.mjs
- toolkit/mozapps/extensions/extensions.manifest
- toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
- toolkit/mozapps/extensions/internal/XPIInstall.sys.mjs
- toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
- toolkit/mozapps/extensions/internal/moz.build
- toolkit/mozapps/extensions/test/browser/head.js
- toolkit/mozapps/extensions/test/xpcshell/head_addons.js
- toolkit/mozapps/installer/packager.mk
- toolkit/mozapps/installer/upload-files.mk
- toolkit/mozapps/update/UpdateService.sys.mjs
- toolkit/mozapps/update/UpdateServiceStub.sys.mjs
- toolkit/mozapps/update/common/updatehelper.cpp
- toolkit/mozapps/update/updater/launchchild_osx.mm
- toolkit/mozapps/update/updater/moz.build
- toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der
- toolkit/mozapps/update/updater/nightly_aurora_level3_secondary.der
- toolkit/mozapps/update/updater/release_primary.der
- toolkit/mozapps/update/updater/release_secondary.der
- toolkit/mozapps/update/updater/updater.cpp
- toolkit/themes/shared/aboutLicense.css
- toolkit/themes/shared/aboutNetError.css
- toolkit/themes/shared/desktop-jar.inc.mn
- + toolkit/themes/shared/icons/onion-site.svg
- + toolkit/themes/shared/icons/onion-slash.svg
- + toolkit/themes/shared/icons/onion-warning.svg
- + toolkit/themes/shared/icons/torbrowser.png
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
- + toolkit/themes/shared/onion-pattern.css
- + toolkit/themes/shared/onion-pattern.svg
- + toolkit/themes/shared/tor-colors.css
- + toolkit/torbutton/chrome/locale/en-US/onionLocation.properties
- + toolkit/torbutton/chrome/locale/en-US/settings.properties
- + toolkit/torbutton/chrome/locale/en-US/torConnect.properties
- + toolkit/torbutton/chrome/locale/en-US/torlauncher.properties
- + toolkit/torbutton/jar.mn
- + toolkit/torbutton/moz.build
- toolkit/xre/LauncherRegistryInfo.cpp
- toolkit/xre/MacLaunchHelper.h
- toolkit/xre/MacLaunchHelper.mm
- toolkit/xre/MacRunFromDmgUtils.mm
- toolkit/xre/ProfileReset.cpp
- toolkit/xre/dllservices/mozglue/WindowsDllBlocklist.cpp
- toolkit/xre/nsAppRunner.cpp
- toolkit/xre/nsIXREDirProvider.idl
- toolkit/xre/nsUpdateDriver.cpp
- toolkit/xre/nsXREDirProvider.cpp
- toolkit/xre/nsXREDirProvider.h
- + tools/base_browser/git-rebase-fixup-preprocessor
- + tools/base_browser/l10n/combine-translation-versions.py
- + tools/base_browser/l10n/combine/__init__.py
- + tools/base_browser/l10n/combine/combine.py
- + tools/base_browser/l10n/combine/tests/__init__.py
- + tools/base_browser/l10n/combine/tests/python.toml
- + tools/base_browser/l10n/combine/tests/test_android.py
- + tools/base_browser/l10n/combine/tests/test_dtd.py
- + tools/base_browser/l10n/combine/tests/test_fluent.py
- + tools/base_browser/l10n/combine/tests/test_properties.py
- + tools/base_browser/missing-css-variables.py
- + tools/base_browser/tb-dev
- + tools/geckoview/.gitignore
- + tools/geckoview/Makefile
- + tools/geckoview/android-env-linux-template.sh
- + tools/geckoview/android-env-macos-template.sh
- + tools/geckoview/build-fenix.sh
- + tools/geckoview/build-geckoview.sh
- + tools/geckoview/clobber.sh
- + tools/geckoview/config.sh
- + tools/geckoview/install-fenix.sh
- + tools/geckoview/jslint.sh
- tools/lint/fluent-lint/exclusions.yml
- tools/lint/l10n.yml
- tools/moz.build
- + tools/torbrowser/Makefile
- + tools/torbrowser/browser-self-sign-macos.sh
- + tools/torbrowser/build.sh
- + tools/torbrowser/clobber.sh
- + tools/torbrowser/config.sh
- + tools/torbrowser/deploy.sh
- + tools/torbrowser/fetch.sh
- + tools/torbrowser/generate-bugzilla-triage-csv.sh
- + tools/torbrowser/ide.sh
- + tools/torbrowser/jslint.sh
- + tools/torbrowser/l10n/migrate.py
- + tools/torbrowser/l10n/migrations/__init__.py
- + tools/torbrowser/l10n/migrations/bug-41333-new-about-tor.py
- + tools/torbrowser/l10n/migrations/bug-41622-neterror.py
- + tools/torbrowser/l10n/migrations/bug-41820-moz-message-bar-download-warning.py
- + tools/torbrowser/l10n/migrations/bug-42202-crypto-safety.py
- + tools/torbrowser/l10n/migrations/bug-42203-about-dialog.py
- + tools/torbrowser/l10n/migrations/bug-42206-rulesets.py
- + tools/torbrowser/l10n/migrations/bug-42207-settings.py
- + tools/torbrowser/l10n/migrations/bug-42209-tor-circuit.py
- + tools/torbrowser/l10n/migrations/bug-42210-download-warning.py
- + tools/torbrowser/l10n/migrations/bug-42211-new-identity.py
- + tools/torbrowser/l10n/migrations/bug-42212-onion-services.py
- + tools/torbrowser/l10n/migrations/bug-42214-security-level.py
- + tools/torbrowser/l10n/migrations/bug-43531-bridge-dialog-buttons.py
- + tools/torbrowser/prepare-tests.sh
- + tools/torbrowser/update_emojis.py
- tools/update-packaging/common.sh
- tools/update-packaging/make_full_update.sh
- tools/update-packaging/make_incremental_update.sh
- uriloader/base/nsURILoader.cpp
- uriloader/exthandler/nsExternalHelperAppService.cpp
- widget/ScrollbarDrawingWin.cpp
- widget/ScrollbarDrawingWin11.cpp
- widget/android/WebExecutorSupport.cpp
- widget/gtk/MPRISServiceHandler.cpp
- widget/gtk/WidgetUtilsGtk.cpp
- widget/windows/WinTaskbar.cpp
- widget/windows/nsDataObj.cpp
- xpcom/base/ErrorList.py
- xpcom/ds/StaticAtoms.py
- xpcom/io/CocoaFileUtils.mm
- xpcom/io/nsAppFileLocationProvider.cpp
- xpfe/appshell/AppWindow.cpp
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/fb215b…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/fb215b…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser-update-responses][main] 4 commits: release: new version, 14.5.7 (linux-x86_64)
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed to branch main at The Tor Project / Applications / mullvad-browser-update-responses
Commits:
9b24b8ac by hackademix at 2025-09-16T11:06:56+02:00
release: new version, 14.5.7 (linux-x86_64)
- - - - -
f551649a by hackademix at 2025-09-16T11:06:57+02:00
release: new version, 14.5.7 (macos)
- - - - -
dc8ce0c5 by hackademix at 2025-09-16T11:06:57+02:00
release: new version, 14.5.7 (windows-x86_64)
- - - - -
7be87377 by hackademix at 2025-09-16T11:06:58+02:00
release: new version, 14.5.7
- - - - -
31 changed files:
- update_1/release/download-linux-x86_64.json
- update_1/release/download-macos.json
- update_1/release/download-windows-x86_64.json
- update_1/release/downloads.json
- update_1/release/linux-x86_64/.htaccess
- − update_1/release/linux-x86_64/update-14.5.3-14.5.6-linux-x86_64.xml
- − update_1/release/linux-x86_64/update-14.5.4-14.5.6-linux-x86_64.xml
- + update_1/release/linux-x86_64/update-14.5.4-14.5.7-linux-x86_64.xml
- − update_1/release/linux-x86_64/update-14.5.5-14.5.6-linux-x86_64.xml
- + update_1/release/linux-x86_64/update-14.5.5-14.5.7-linux-x86_64.xml
- + update_1/release/linux-x86_64/update-14.5.6-14.5.7-linux-x86_64.xml
- − update_1/release/linux-x86_64/update-14.5.6-linux-x86_64.xml
- + update_1/release/linux-x86_64/update-14.5.7-linux-x86_64.xml
- update_1/release/macos/.htaccess
- − update_1/release/macos/update-14.5.3-14.5.6-macos.xml
- − update_1/release/macos/update-14.5.4-14.5.6-macos.xml
- + update_1/release/macos/update-14.5.4-14.5.7-macos.xml
- − update_1/release/macos/update-14.5.5-14.5.6-macos.xml
- + update_1/release/macos/update-14.5.5-14.5.7-macos.xml
- + update_1/release/macos/update-14.5.6-14.5.7-macos.xml
- − update_1/release/macos/update-14.5.6-macos.xml
- + update_1/release/macos/update-14.5.7-macos.xml
- update_1/release/windows-x86_64/.htaccess
- − update_1/release/windows-x86_64/update-14.5.3-14.5.6-windows-x86_64.xml
- − update_1/release/windows-x86_64/update-14.5.4-14.5.6-windows-x86_64.xml
- + update_1/release/windows-x86_64/update-14.5.4-14.5.7-windows-x86_64.xml
- − update_1/release/windows-x86_64/update-14.5.5-14.5.6-windows-x86_64.xml
- + update_1/release/windows-x86_64/update-14.5.5-14.5.7-windows-x86_64.xml
- + update_1/release/windows-x86_64/update-14.5.6-14.5.7-windows-x86_64.xml
- − update_1/release/windows-x86_64/update-14.5.6-windows-x86_64.xml
- + update_1/release/windows-x86_64/update-14.5.7-windows-x86_64.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser-update-respo…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build] Pushed new tag mb-14.5.7-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag mb-14.5.7-build1 at The Tor Project / Applications / tor-browser-build
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/mb-…
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.5.7-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag tbb-14.5.7-build1 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
[Git][tpo/applications/tor-browser-build][maint-14.5] Bug 41545,41546: Prepare Tor,Mullvad Browser 14.5.7
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed to branch maint-14.5 at The Tor Project / Applications / tor-browser-build
Commits:
d692ed59 by Pier Angelo Vendrame at 2025-09-16T08:25:33+02:00
Bug 41545,41546: Prepare Tor,Mullvad Browser 14.5.7
- - - - -
9 changed files:
- projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt
- projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt
- projects/browser/config
- projects/firefox/config
- projects/geckoview/config
- projects/manual/config
- projects/openssl/config
- projects/translation/config
- rbm.conf
Changes:
=====================================
projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt
=====================================
@@ -1,3 +1,13 @@
+Mullvad Browser 14.5.7 - September 16 2025
+ * All Platforms
+ * Updated uBlock Origin to 1.66.0
+ * Bug 44199: Backport Security Fixes from Firefox 143 [tor-browser]
+ * Bug 41462: Backport #40994 and #41280: Add support in signing scripts to sign release for some archs only & Update download-android-*.json files for android-only releases [tor-browser-build]
+ * Bug 41543: mmdebstrap-image fails to build bookworm images on maint-14.5 [tor-browser-build]
+ * Build System
+ * Linux
+ * Bug 41560: Backport mullvad-browser#463: Fix typo in MimeType entry in .desktop file included in deb/rpm package [tor-browser-build]
+
Mullvad Browser 14.5.6 - August 19 2025
* All Platforms
* Updated Firefox to 128.14.0esr
=====================================
projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt
=====================================
@@ -1,3 +1,15 @@
+Tor Browser 14.5.7 - September 16 2025
+ * All Platforms
+ * Updated OpenSSL to 3.5.2
+ * Bug 44136: Backport tor-browser#44081: Swiping away the "private tabs" notification requires rebootstrapping [tor-browser]
+ * Bug 44199: Backport Security Fixes from Firefox 143 [tor-browser]
+ * Bug 41441: Backport tor-browser-build#41432: Bump OpenSSL to 3.5.0 [tor-browser-build]
+ * Bug 41462: Backport #40994 and #41280: Add support in signing scripts to sign release for some archs only & Update download-android-*.json files for android-only releases [tor-browser-build]
+ * Bug 41543: mmdebstrap-image fails to build bookworm images on maint-14.5 [tor-browser-build]
+ * Build System
+ * All Platforms
+ * Bug 41554: Export SIGNING_PROJECTNAME and tbb_version in linux-signer-sign-android-apks, in maint-14.5 [tor-browser-build]
+
Tor Browser 14.5.6 - August 19 2025
* All Platforms
* Updated NoScript to 13.0.9
=====================================
projects/browser/config
=====================================
@@ -114,9 +114,9 @@ input_files:
- URL: https://addons.mozilla.org/firefox/downloads/file/4551629/noscript-13.0.9.x…
name: noscript
sha256sum: 525ab61aff21f67d10c3e20965a86ed479631549908a658f54692adc47d771f5
- - URL: https://addons.mozilla.org/firefox/downloads/file/4531307/ublock_origin-1.6…
+ - URL: https://addons.mozilla.org/firefox/downloads/file/4573289/ublock_origin-1.6…
name: ublock-origin
- sha256sum: 3e73c96a29a933866065f0756fe032984bf5b254af8dd1afd7a7f7e0668a33cf
+ sha256sum: 155820bace5bf7c8ba547e27678a4a25251131c54904f02f5bf340996f6fdbdc
enable: '[% c("var/mullvad-browser") %]'
- URL: https://cdn.mullvad.net/browser-extension/0.9.4/mullvad-browser-extension-0…
name: mullvad-extension
=====================================
projects/firefox/config
=====================================
@@ -21,7 +21,7 @@ var:
browser_series: '14.5'
browser_rebase: 1
browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]'
- browser_build: 2
+ browser_build: 5
copyright_year: '[% exec("git show -s --format=%ci " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }).remove("-.*") %]'
nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]'
gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser
=====================================
projects/geckoview/config
=====================================
@@ -23,7 +23,7 @@ var:
browser_series: '14.5'
browser_rebase: 1
browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]'
- browser_build: 2
+ browser_build: 5
gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser
git_commit: '[% exec("git rev-parse " _ c("git_hash") _ "^{commit}", { exec_noco => 1 }) %]'
deps:
=====================================
projects/manual/config
=====================================
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
# To update, see doc/how-to-update-the-manual.txt
# Remember to update also the package's hash, with the version!
-version: 302669
+version: 311002
filename: 'manual-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
container:
use_container: 1
@@ -23,6 +23,6 @@ input_files:
- project: container-image
- URL: 'https://build-sources.tbb.torproject.org/manual_[% c("version") %].zip'
name: manual
- sha256sum: 44ce38d4a30af0d6f296d0c0eb477375dbaf9d883401cd78b2117d5c85b34f69
+ sha256sum: 9adb7d8ca2c9cb7dbd8d13d46135ea9f42636eafd053192fc5e233f2426cd8a3
- filename: packagemanual.py
name: package_script
=====================================
projects/openssl/config
=====================================
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 3.5.0
+version: 3.5.2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
container:
use_container: 1
@@ -33,5 +33,5 @@ input_files:
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
- URL: 'https://github.com/openssl/openssl/releases/download/openssl-[% c("version") %]/openssl-[% c("version") %].tar.gz'
- sha256sum: 57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86
+ sha256sum: c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec
name: openssl
=====================================
projects/translation/config
=====================================
@@ -12,13 +12,13 @@ compress_tar: 'gz'
steps:
base-browser:
base-browser: '[% INCLUDE build %]'
- git_hash: 9896e5765c90c763b97135fdda00a08cf08dbddd
+ git_hash: 0605fd89b582f841ff494213ace40558043593d7
targets:
nightly:
git_hash: 'base-browser'
tor-browser:
tor-browser: '[% INCLUDE build %]'
- git_hash: a58fb6a60d4d1328b7cffcc1e6ded5673f5e4360
+ git_hash: 0513af059216580b1e8159af3a808ab4a1b32f84
targets:
nightly:
git_hash: 'tor-browser'
@@ -32,7 +32,7 @@ steps:
fenix: '[% INCLUDE build %]'
# We need to bump the commit before releasing but just pointing to a branch
# might cause too much rebuidling of the Firefox part.
- git_hash: 4e0bd31d22c24577bb5bdf275e0b6070e6412a2a
+ git_hash: 87d728e886d1bbb98adcd3abe92b0a00cc582ece
compress_tar: 'zst'
targets:
nightly:
=====================================
rbm.conf
=====================================
@@ -73,11 +73,11 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '14.5.6'
+ torbrowser_version: '14.5.7'
torbrowser_build: 'build1'
# This should be the date of when the build is started. For the build
# to be reproducible, browser_release_date should always be in the past.
- browser_release_date: '2025/08/18 11:00:00'
+ browser_release_date: '2025/09/15 18:55:38'
browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]'
browser_default_channel: release
browser_platforms:
@@ -127,13 +127,13 @@ var:
updater_enabled: 1
build_mar: 1
torbrowser_incremental_from:
+ - 14.5.6
- 14.5.5
- 14.5.4
- - 14.5.3
mar_channel_id: '[% c("var/projectname") %]-torproject-[% c("var/channel") %]'
- torbrowser_legacy_version: 13.5.21
- torbrowser_legacy_platform_version: 115.27.0
+ torbrowser_legacy_version: 13.5.22
+ torbrowser_legacy_platform_version: 115.28.0
# By default, we sort the list of installed packages. This allows sharing
# containers with identical list of packages, even if they are not listed
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/d…
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-13.5.22-build1
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed new tag tbb-13.5.22-build1 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
[Git][tpo/applications/tor-browser-build][maint-13.5] Bug 41547: Prepare Tor Browser 13.5.22
by Pier Angelo Vendrame (@pierov) 16 Sep '25
by Pier Angelo Vendrame (@pierov) 16 Sep '25
16 Sep '25
Pier Angelo Vendrame pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build
Commits:
ede2a796 by Pier Angelo Vendrame at 2025-09-16T00:24:08+02:00
Bug 41547: Prepare Tor Browser 13.5.22
- - - - -
5 changed files:
- projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt
- projects/firefox/config
- projects/openssl/config
- projects/translation/config
- rbm.conf
Changes:
=====================================
projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt
=====================================
@@ -1,3 +1,13 @@
+Tor Browser 13.5.22 - September 16 2025
+ * All Platforms
+ * Updated Firefox to 115.28.0esr
+ * Updated OpenSSL to 3.5.2
+ * Bug 44198: Rebase Tor Browser Legacy onto 115.28 [tor-browser]
+ * Bug 44199: Backport Security Fixes from Firefox 143 [tor-browser]
+ * Bug 41441: Backport tor-browser-build#41432: Bump OpenSSL to 3.5.0 [tor-browser-build]
+ * Bug 41462: Backport #40994 and #41280: Add support in signing scripts to sign release for some archs only & Update download-android-*.json files for android-only releases [tor-browser-build]
+ * Bug 41543: mmdebstrap-image fails to build bookworm images on maint-14.5 [tor-browser-build]
+
Tor Browser 13.5.21 - August 19 2025
* All Platforms
* Updated Firefox to 115.27.0esr
=====================================
projects/firefox/config
=====================================
@@ -16,12 +16,12 @@ container:
use_container: 1
var:
- firefox_platform_version: 115.27.0
+ firefox_platform_version: 115.28.0
firefox_version: '[% c("var/firefox_platform_version") %]esr'
browser_series: '13.5'
browser_rebase: 1
browser_branch: '[% c("var/browser_series") %]-[% c("var/browser_rebase") %]'
- browser_build: 3
+ browser_build: 2
branding_directory_prefix: 'tb'
copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]'
nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]'
=====================================
projects/openssl/config
=====================================
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 3.5.0
+version: 3.5.2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
container:
use_container: 1
@@ -33,5 +33,5 @@ input_files:
- name: '[% c("var/compiler") %]'
project: '[% c("var/compiler") %]'
- URL: 'https://github.com/openssl/openssl/releases/download/openssl-[% c("version") %]/openssl-[% c("version") %].tar.gz'
- sha256sum: 57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86
+ sha256sum: c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec
name: openssl
=====================================
projects/translation/config
=====================================
@@ -12,13 +12,13 @@ compress_tar: 'gz'
steps:
base-browser:
base-browser: '[% INCLUDE build %]'
- git_hash: e3eb649b9b964e3e874969aae0bf51cfa35488f9
+ git_hash: 0605fd89b582f841ff494213ace40558043593d7
targets:
nightly:
git_hash: 'base-browser'
tor-browser:
tor-browser: '[% INCLUDE build %]'
- git_hash: e8471a5feca51868b261ecf3238f387269177427
+ git_hash: 0513af059216580b1e8159af3a808ab4a1b32f84
targets:
nightly:
git_hash: 'tor-browser'
=====================================
rbm.conf
=====================================
@@ -73,11 +73,11 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '13.5.21'
+ torbrowser_version: '13.5.22'
torbrowser_build: 'build1'
# This should be the date of when the build is started. For the build
# to be reproducible, browser_release_date should always be in the past.
- browser_release_date: '2025/08/18 19:35:49'
+ browser_release_date: '2025/09/15 22:16:06'
browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]'
browser_platforms:
# is_android_release and is_desktop_release are used to quickly
@@ -115,9 +115,9 @@ var:
updater_enabled: 1
build_mar: 1
torbrowser_incremental_from:
+ - 13.5.21
- 13.5.20
- 13.5.19
- - 13.5.18
mar_channel_id: '[% c("var/projectname") %]-torproject-[% c("var/channel") %]'
# By default, we sort the list of installed packages. This allows sharing
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/mullvad-browser] Pushed new tag mullvad-browser-128.14.0esr-14.5-1-build5
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed new tag mullvad-browser-128.14.0esr-14.5-1-build5 at The Tor Project / Applications / Mullvad Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/mullv…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.14.0esr-14.5-1] fixup! Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed to branch mullvad-browser-128.14.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
fe5d9712 by hackademix at 2025-09-16T07:00:40+02:00
fixup! Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
Correct capitalization of "memory" for SharedMemoryBasic.
- - - - -
1 changed file:
- gfx/layers/ipc/CanvasTranslator.h
Changes:
=====================================
gfx/layers/ipc/CanvasTranslator.h
=====================================
@@ -364,7 +364,7 @@ class CanvasTranslator final : public gfx::InlineTranslator,
if (!shmem) {
return {nullptr, 0};
}
- return {static_cast<char*>(shmem->Memory()), Size()};
+ return {static_cast<char*>(shmem->memory()), Size()};
}
};
std::queue<CanvasShmem> mCanvasShmems;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fe5…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/fe5…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-128.14.0esr-14.5-1-build5
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed new tag tor-browser-128.14.0esr-14.5-1-build5 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.14.0esr-14.5-1] fixup! Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
by ma1 (@ma1) 16 Sep '25
by ma1 (@ma1) 16 Sep '25
16 Sep '25
ma1 pushed to branch tor-browser-128.14.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
fdb40486 by hackademix at 2025-09-16T01:30:20+02:00
fixup! Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
Correct capitalization of "memory" for SharedMemoryBasic.
- - - - -
1 changed file:
- gfx/layers/ipc/CanvasTranslator.h
Changes:
=====================================
gfx/layers/ipc/CanvasTranslator.h
=====================================
@@ -364,7 +364,7 @@ class CanvasTranslator final : public gfx::InlineTranslator,
if (!shmem) {
return {nullptr, 0};
}
- return {static_cast<char*>(shmem->Memory()), Size()};
+ return {static_cast<char*>(shmem->memory()), Size()};
}
};
std::queue<CanvasShmem> mCanvasShmems;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fdb4048…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/fdb4048…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser] Pushed new tag mullvad-browser-128.14.0esr-14.5-1-build4
by ma1 (@ma1) 15 Sep '25
by ma1 (@ma1) 15 Sep '25
15 Sep '25
ma1 pushed new tag mullvad-browser-128.14.0esr-14.5-1-build4 at The Tor Project / Applications / Mullvad Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/mullv…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.14.0esr-14.5-1] 3 commits: Revert "Bug 1986185. r=aosmond a=RyanVM"
by ma1 (@ma1) 15 Sep '25
by ma1 (@ma1) 15 Sep '25
15 Sep '25
ma1 pushed to branch mullvad-browser-128.14.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
fa6f4582 by hackademix at 2025-09-16T00:50:48+02:00
Revert "Bug 1986185. r=aosmond a=RyanVM"
This reverts commit df081c6cbd02a1c25bf1582bff5295a17bcff49a.
- - - - -
b96034cc by Lee Salzman at 2025-09-16T00:50:49+02:00
Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
Adapted from esr140 to esr128 (tor-browser#44199)
Differential Revision: https://phabricator.services.mozilla.com/D219832
- - - - -
51680c11 by Lee Salzman at 2025-09-16T00:50:51+02:00
Bug 1986185. r=aosmond a=RyanVM
Backported manually to 128esr, see BB 44199
Differential Revision: https://phabricator.services.mozilla.com/D263287
- - - - -
2 changed files:
- gfx/layers/ipc/CanvasTranslator.cpp
- gfx/layers/ipc/CanvasTranslator.h
Changes:
=====================================
gfx/layers/ipc/CanvasTranslator.cpp
=====================================
@@ -270,7 +270,7 @@ void CanvasTranslator::AddBuffer(ipc::SharedMemoryBasic::Handle&& aBufferHandle,
CheckAndSignalWriter();
// Default sized buffers will have been queued for recycling.
- if (mCurrentShmem.Size() == mDefaultBufferSize) {
+ if (mCurrentShmem.IsValid() && mCurrentShmem.Size() == mDefaultBufferSize) {
mCanvasShmems.emplace(std::move(mCurrentShmem));
}
=====================================
gfx/layers/ipc/CanvasTranslator.h
=====================================
@@ -358,9 +358,13 @@ class CanvasTranslator final : public gfx::InlineTranslator,
struct CanvasShmem {
RefPtr<ipc::SharedMemoryBasic> shmem;
- auto Size() { return shmem->Size(); }
+ bool IsValid() const { return !!shmem; }
+ auto Size() { return shmem ? shmem->Size() : 0; }
gfx::MemReader CreateMemReader() {
- return {static_cast<char*>(shmem->memory()), Size()};
+ if (!shmem) {
+ return {nullptr, 0};
+ }
+ return {static_cast<char*>(shmem->Memory()), Size()};
}
};
std::queue<CanvasShmem> mCanvasShmems;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/65…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/65…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-128.14.0esr-14.5-1-build4
by ma1 (@ma1) 15 Sep '25
by ma1 (@ma1) 15 Sep '25
15 Sep '25
ma1 pushed new tag tor-browser-128.14.0esr-14.5-1-build4 at The Tor Project / Applications / Tor Browser
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.14.0esr-14.5-1] 3 commits: Revert "Bug 1986185. r=aosmond a=RyanVM"
by ma1 (@ma1) 15 Sep '25
by ma1 (@ma1) 15 Sep '25
15 Sep '25
ma1 pushed to branch tor-browser-128.14.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
a9aed021 by hackademix at 2025-09-16T00:19:57+02:00
Revert "Bug 1986185. r=aosmond a=RyanVM"
This reverts commit df081c6cbd02a1c25bf1582bff5295a17bcff49a.
- - - - -
33f78ee9 by Lee Salzman at 2025-09-16T00:37:31+02:00
Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond
Adapted from esr140 to esr128 (tor-browser#44199)
Differential Revision: https://phabricator.services.mozilla.com/D219832
- - - - -
a9dbcd0a by Lee Salzman at 2025-09-16T00:43:30+02:00
Bug 1986185. r=aosmond a=RyanVM
Backported manually to 128esr, see BB 44199
Differential Revision: https://phabricator.services.mozilla.com/D263287
- - - - -
2 changed files:
- gfx/layers/ipc/CanvasTranslator.cpp
- gfx/layers/ipc/CanvasTranslator.h
Changes:
=====================================
gfx/layers/ipc/CanvasTranslator.cpp
=====================================
@@ -270,7 +270,7 @@ void CanvasTranslator::AddBuffer(ipc::SharedMemoryBasic::Handle&& aBufferHandle,
CheckAndSignalWriter();
// Default sized buffers will have been queued for recycling.
- if (mCurrentShmem.Size() == mDefaultBufferSize) {
+ if (mCurrentShmem.IsValid() && mCurrentShmem.Size() == mDefaultBufferSize) {
mCanvasShmems.emplace(std::move(mCurrentShmem));
}
=====================================
gfx/layers/ipc/CanvasTranslator.h
=====================================
@@ -358,9 +358,13 @@ class CanvasTranslator final : public gfx::InlineTranslator,
struct CanvasShmem {
RefPtr<ipc::SharedMemoryBasic> shmem;
- auto Size() { return shmem->Size(); }
+ bool IsValid() const { return !!shmem; }
+ auto Size() { return shmem ? shmem->Size() : 0; }
gfx::MemReader CreateMemReader() {
- return {static_cast<char*>(shmem->memory()), Size()};
+ if (!shmem) {
+ return {nullptr, 0};
+ }
+ return {static_cast<char*>(shmem->Memory()), Size()};
}
};
std::queue<CanvasShmem> mCanvasShmems;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/df081c…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/df081c…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][maint-13.5] Fix rbm.conf.
by Pier Angelo Vendrame (@pierov) 15 Sep '25
by Pier Angelo Vendrame (@pierov) 15 Sep '25
15 Sep '25
Pier Angelo Vendrame pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build
Commits:
0d927a93 by Pier Angelo Vendrame at 2025-09-16T00:16:58+02:00
Fix rbm.conf.
- - - - -
1 changed file:
- rbm.conf
Changes:
=====================================
rbm.conf
=====================================
@@ -79,6 +79,7 @@ var:
# to be reproducible, browser_release_date should always be in the past.
browser_release_date: '2025/08/18 19:35:49'
browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]'
+ browser_platforms:
# is_android_release and is_desktop_release are used to quickly
# enable/disable all android or desktop platforms. If you want to
# check whether a release includes some android or desktop platforms
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/0…
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 40994: Add support in signing scripts to sign release for some archs only
by Pier Angelo Vendrame (@pierov) 15 Sep '25
by Pier Angelo Vendrame (@pierov) 15 Sep '25
15 Sep '25
Pier Angelo Vendrame pushed to branch maint-13.5 at The Tor Project / Applications / tor-browser-build
Commits:
b8e3ec96 by Nicolas Vigier at 2025-09-16T00:09:22+02:00
Bug 40994: Add support in signing scripts to sign release for some archs only
- - - - -
3 changed files:
- rbm.conf
- tools/signing/do-all-signing
- tools/signing/functions
Changes:
=====================================
rbm.conf
=====================================
@@ -79,6 +79,38 @@ var:
# to be reproducible, browser_release_date should always be in the past.
browser_release_date: '2025/08/18 19:35:49'
browser_release_date_timestamp: '[% USE date; date.format(c("var/browser_release_date"), "%s") %]'
+ # is_android_release and is_desktop_release are used to quickly
+ # enable/disable all android or desktop platforms. If you want to
+ # check whether a release includes some android or desktop platforms
+ # see signing_android and signing_desktop below.
+ is_android_release: '[% c("var/tor-browser") %]'
+ is_desktop_release: '1'
+
+ # signing_android is used in signing scripts to check if at least
+ # one android platform is being signed/published
+ signing_android: |
+ [%-
+ c("var/browser_platforms/android-armv7") ||
+ c("var/browser_platforms/android-x86") ||
+ c("var/browser_platforms/android-x86_64") ||
+ c("var/browser_platforms/android-aarch64")
+ -%]
+ # signing_desktop is used in signing scripts to check if at least
+ # one desktop platform is being signed/published
+ signing_desktop: |
+ [%-
+ c("var/browser_platforms/linux-x86_64") ||
+ c("var/browser_platforms/linux-i686") ||
+ c("var/browser_platforms/linux-aarch64") ||
+ c("var/browser_platforms/windows-i686") ||
+ c("var/browser_platforms/windows-x86_64") ||
+ c("var/browser_platforms/macos")
+ -%]
+ signing_windows: |
+ [%-
+ c("var/browser_platforms/windows-i686") ||
+ c("var/browser_platforms/windows-x86_64")
+ -%]
updater_enabled: 1
build_mar: 1
torbrowser_incremental_from:
=====================================
tools/signing/do-all-signing
=====================================
@@ -19,38 +19,66 @@ if [[ $1 = "-p" ]]; then
shift
fi
+function is_legacy {
+ [[ "$tbb_version" = 13.* ]]
+}
+
+if is_legacy; then
+ platform_android=
+ platform_desktop=1
+ platform_macos=1
+ platform_windows=1
+else
+ platform_android=$(rbm_showconf_boolean var/browser_platforms/signing_android)
+ platform_desktop=$(rbm_showconf_boolean var/browser_platforms/signing_desktop)
+ platform_macos=$(rbm_showconf_boolean var/browser_platforms/macos)
+ platform_windows=$(rbm_showconf_boolean var/browser_platforms/signing_windows)
+fi
+
is_project torbrowser && nssdb=torbrowser-nssdb7
is_project mullvadbrowser && nssdb=mullvadbrowser-nssdb1
if [ -f "$passwords_gpg_file" ]; then
echo "Reading passwords from $passwords_gpg_file"
SEKRITS=$(gpg --decrypt "$passwords_gpg_file")
- RCODESIGN_PW=$(get_sekrit 'rcodesign')
- NSSPASS=$(get_sekrit "$nssdb (mar signing)")
- KSPASS=$(get_sekrit "android apk ($tbb_version_type)")
- YUBIPASS=$(get_sekrit "windows authenticode")
+ [ -n "$platform_macos" ] && \
+ RCODESIGN_PW=$(get_sekrit 'rcodesign')
+ [ -n "$platform_desktop" ] && \
+ NSSPASS=$(get_sekrit "$nssdb (mar signing)")
+ [ -n "$platform_android" ] && \
+ KSPASS=$(get_sekrit "android apk ($tbb_version_type)")
+ [ -n "$platform_windows" ] && \
+ YUBIPASS=$(get_sekrit "windows authenticode")
GPG_PASS=$(get_sekrit "gpg")
else
echo "Rather than entering all the password manually, you may want to provide a gpg-encrypted file either on the command line (-p <filepath>) or in set-config.passwords."
fi
-test -f "$steps_dir/linux-signer-rcodesign-sign.done" || [ -n "$RCODESIGN_PW" ] ||
+[ -z "$platform_macos" ] || \
+ [ -f "$steps_dir/linux-signer-rcodesign-sign.done" ] || \
+ [ -n "$RCODESIGN_PW" ] || \
read -sp "Enter rcodesign passphrase for key-1: " RCODESIGN_PW
echo
-test -f "$steps_dir/linux-signer-signmars.done" || [ -n "$NSSPASS" ] ||
+[ -z "$platform_desktop" ] || \
+ [ -f "$steps_dir/linux-signer-signmars.done" ] || \
+ [ -n "$NSSPASS" ] || \
read -sp "Enter $nssdb (mar signing) passphrase: " NSSPASS
echo
-if is_project torbrowser; then
- test -f "$steps_dir/linux-signer-sign-android-apks.done" || [ -n "$KSPASS" ] ||
- read -sp "Enter android apk signing password ($tbb_version_type): " KSPASS
- echo
-fi
-test -f "$steps_dir/linux-signer-authenticode-signing.done" || [ -n "$YUBIPASS" ] ||
+[ -z "$platform_android" ] || \
+ [ -f "$steps_dir/linux-signer-sign-android-apks.done" ] || \
+ [ -n "$KSPASS" ] || \
+ read -sp "Enter android apk signing password ($tbb_version_type): " KSPASS
+echo
+
+[ -z "$platform_windows" ] || \
+ [ -f "$steps_dir/linux-signer-authenticode-signing.done" ] || \
+ [ -n "$YUBIPASS" ] || \
read -sp "Enter windows authenticode passphrase: " YUBIPASS
echo
-test -f "$steps_dir/linux-signer-gpg-sign.done" || [ -n "$GPG_PASS" ] ||
+
+[ -f "$steps_dir/linux-signer-gpg-sign.done" ] || [ -n "$GPG_PASS" ] || \
read -sp "Enter gpg passphrase: " GPG_PASS
echo
@@ -199,10 +227,6 @@ function do_step {
echo "$(date -Iseconds) - Finished step: $1"
}
-function is_legacy {
- [[ "$tbb_version" = 13.* ]]
-}
-
export SIGNING_PROJECTNAME
do_step set-time-on-signing-machine
@@ -210,23 +234,34 @@ do_step wait-for-finished-build
do_step sync-builder-unsigned-to-local-signed
do_step sync-scripts-to-linux-signer
do_step sync-before-linux-signer-rcodesign-sign
-do_step linux-signer-rcodesign-sign
-do_step sync-linux-signer-macos-signed-tar-to-local
-do_step rcodesign-notary-submit
-do_step gatekeeper-bundling
-do_step dmg2mar
+[ -n "$platform_macos" ] && \
+ do_step linux-signer-rcodesign-sign
+[ -n "$platform_macos" ] && \
+ do_step sync-linux-signer-macos-signed-tar-to-local
+[ -n "$platform_macos" ] && \
+ do_step rcodesign-notary-submit
+[ -n "$platform_macos" ] && \
+ do_step gatekeeper-bundling
+[ -n "$platform_macos" ] && \
+ do_step dmg2mar
do_step sync-scripts-to-linux-signer
do_step sync-before-linux-signer-signmars
-do_step linux-signer-signmars
-do_step sync-after-signmars
-is_project torbrowser && ! is_legacy && \
+[ -n "$platform_desktop" ] && \
+ do_step linux-signer-signmars
+[ -n "$platform_desktop" ] && \
+ do_step sync-after-signmars
+[ -n "$platform_android" ] && \
do_step linux-signer-sign-android-apks
-is_project torbrowser && ! is_legacy && \
+[ -n "$platform_android" ] && \
do_step sync-after-sign-android-apks
-do_step linux-signer-authenticode-signing
-do_step sync-after-authenticode-signing
-do_step authenticode-timestamping
-do_step sync-after-authenticode-timestamping
+[ -n "$platform_windows" ] && \
+ do_step linux-signer-authenticode-signing
+[ -n "$platform_windows" ] && \
+ do_step sync-after-authenticode-signing
+[ -n "$platform_windows" ] && \
+ do_step authenticode-timestamping
+[ -n "$platform_windows" ] && \
+ do_step sync-after-authenticode-timestamping
do_step hash_signed_bundles
do_step sync-after-hash
do_step linux-signer-gpg-sign
@@ -235,6 +270,6 @@ do_step download-unsigned-sha256sums-gpg-signatures-from-people-tpo
do_step sync-local-to-staticiforme
do_step sync-scripts-to-staticiforme
do_step staticiforme-prepare-cdn-dist-upload
-! is_legacy &&
+! is_legacy && [ -n "$platform_desktop" ] && \
do_step upload-update_responses-to-staticiforme
do_step finished-signing-clean-linux-signer
=====================================
tools/signing/functions
=====================================
@@ -76,5 +76,17 @@ function display_name {
fi
}
+function rbm_showconf {
+ "$rbm" showconf release "$1" --target "$SIGNING_PROJECTNAME" \
+ --target "$tbb_version_type"
+}
+
+function rbm_showconf_boolean {
+ local res=$(rbm_showconf "$1")
+ if [ -z "$res" ] || [ "a$res" = "a0" ]; then
+ return
+ fi
+ echo '1'
+}
. "$script_dir/set-config"
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/b…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/b…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-140.3.0esr-15.0-1] TB 43976: [android] Remove default browser prompt
by Dan Ballard (@dan) 15 Sep '25
by Dan Ballard (@dan) 15 Sep '25
15 Sep '25
Dan Ballard pushed to branch tor-browser-140.3.0esr-15.0-1 at The Tor Project / Applications / Tor Browser
Commits:
3010729e by clairehurst at 2025-09-15T13:25:21-07:00
TB 43976: [android] Remove default browser prompt
tor-browser#43976 Remove default browser prompt
- - - - -
1 changed file:
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
Changes:
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
=====================================
@@ -2351,11 +2351,7 @@ class Settings(private val appContext: Context) : PreferencesHolder {
* Indicates if the Set as default Browser prompt should be displayed to the user.
*/
val shouldShowSetAsDefaultPrompt: Boolean
- get() =
- (System.currentTimeMillis() - lastSetAsDefaultPromptShownTimeInMillis) >
- DAYS_BETWEEN_DEFAULT_BROWSER_PROMPTS * ONE_DAY_MS &&
- numberOfSetAsDefaultPromptShownTimes < MAX_NUMBER_OF_DEFAULT_BROWSER_PROMPTS &&
- coldStartsBetweenSetAsDefaultPrompts >= APP_COLD_STARTS_TO_SHOW_DEFAULT_PROMPT
+ get() = false // bug_43976 Remove default browser prompt
/**
* Updates the relevant settings when the "Set as Default Browser" prompt is shown.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3010729…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3010729…
You're receiving this email because of your account on gitlab.torproject.org.
1
0