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

[Git][tpo/applications/mullvad-browser] Pushed new tag mullvad-browser-115.16.0esr-13.5-1-build2
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed new tag mullvad-browser-115.16.0esr-13.5-1-build2 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/tor-browser][base-browser-128.3.0esr-14.0-1] Bug 42716: Disable unwanted about: pages
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed to branch base-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
520cda9e by Morgan at 2024-10-01T20:36:57+00:00
Bug 42716: Disable unwanted about: pages
- - - - -
5 changed files:
- browser/components/about/AboutRedirector.cpp
- browser/components/about/components.conf
- docshell/base/nsAboutRedirector.cpp
- docshell/build/components.conf
- toolkit/content/jar.mn
Changes:
=====================================
browser/components/about/AboutRedirector.cpp
=====================================
@@ -86,9 +86,11 @@ static const RedirEntry kRedirMap[] = {
{"rights", "chrome://global/content/aboutRights.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
+#ifndef BASE_BROWSER_VERSION
{"robots", "chrome://browser/content/aboutRobots.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT},
+#endif
{"sessionrestore", "chrome://browser/content/aboutSessionRestore.xhtml",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::HIDE_FROM_ABOUTABOUT |
nsIAboutModule::IS_SECURE_CHROME_UI},
=====================================
browser/components/about/components.conf
=====================================
@@ -23,7 +23,7 @@ pages = [
'reader',
'restartrequired',
'rights',
- 'robots',
+ # Removed 'robots'. tor-browser#42831.
'sessionrestore',
'settings',
# Removed 'shoppingsidebar'. tor-browser#42831.
=====================================
docshell/base/nsAboutRedirector.cpp
=====================================
@@ -135,8 +135,10 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS |
nsIAboutModule::IS_SECURE_CHROME_UI},
+#ifndef BASE_BROWSER_VERSION
{"mozilla", "chrome://global/content/mozilla.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+#endif
#if !defined(ANDROID) && !defined(XP_WIN)
{"webauthn", "chrome://global/content/aboutWebauthn.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
@@ -181,15 +183,17 @@ static const RedirEntry kRedirMap[] = {
{"windows-messages", "chrome://global/content/aboutWindowsMessages.html",
nsIAboutModule::ALLOW_SCRIPT},
#endif
-#ifndef MOZ_GLEAN_ANDROID
+#ifdef MOZ_TELEMETRY_REPORTING
+# ifndef MOZ_GLEAN_ANDROID
{"glean", "chrome://global/content/aboutGlean.html",
-# if !defined(NIGHTLY_BUILD) && defined(MOZILLA_OFFICIAL)
+# if !defined(NIGHTLY_BUILD) && defined(MOZILLA_OFFICIAL)
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
-# endif
+# endif
nsIAboutModule::ALLOW_SCRIPT},
-#endif
+# endif
{"telemetry", "chrome://global/content/aboutTelemetry.xhtml",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
+#endif
{"translations", "chrome://global/content/translations/translations.html",
nsIAboutModule::ALLOW_SCRIPT |
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
@@ -200,8 +204,10 @@ static const RedirEntry kRedirMap[] = {
{"url-classifier", "chrome://global/content/aboutUrlClassifier.xhtml",
nsIAboutModule::ALLOW_SCRIPT},
#endif
+#ifdef MOZ_WEBRTC
{"webrtc", "chrome://global/content/aboutwebrtc/aboutWebrtc.html",
nsIAboutModule::ALLOW_SCRIPT},
+#endif
{"crashparent", "about:blank", nsIAboutModule::HIDE_FROM_ABOUTABOUT},
{"crashcontent", "about:blank",
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
=====================================
docshell/build/components.conf
=====================================
@@ -22,7 +22,7 @@ about_pages = [
'logging',
'logo',
'memory',
- 'mozilla',
+ # Removed 'mozilla'. tor-browser#42831.
'neterror',
'networking',
'performance',
@@ -30,20 +30,22 @@ about_pages = [
'serviceworkers',
'srcdoc',
'support',
- 'telemetry',
'translations',
- 'url-classifier',
- 'webrtc',
+ # Removed 'url-classifier'. tor-browser#42831.
]
if defined('MOZ_CRASHREPORTER'):
about_pages.append('crashes')
+if defined('MOZ_TELEMETRY_REPORTING'):
+ about_pages.append('telemetry')
+if defined('MOZ_WEBRTC'):
+ about_pages.append('webrtc')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'android':
about_pages.append('profiles')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] == 'windows':
about_pages.append('third-party')
about_pages.append('windows-messages')
-if not defined('MOZ_GLEAN_ANDROID'):
+if defined('MOZ_TELEMETRY_REPORTING') and not defined('MOZ_GLEAN_ANDROID'):
about_pages.append('glean')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'android' and buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'windows':
about_pages.append('webauthn')
=====================================
toolkit/content/jar.mn
=====================================
@@ -23,6 +23,7 @@ toolkit.jar:
#endif
content/global/aboutServiceWorkers.js
content/global/aboutServiceWorkers.xhtml
+#ifdef MOZ_WEBRTC
content/global/aboutwebrtc/aboutWebrtc.css (aboutwebrtc/aboutWebrtc.css)
content/global/aboutwebrtc/aboutWebrtc.mjs (aboutwebrtc/aboutWebrtc.mjs)
content/global/aboutwebrtc/graph.mjs (aboutwebrtc/graph.mjs)
@@ -31,16 +32,19 @@ toolkit.jar:
content/global/aboutwebrtc/disclosure.mjs (aboutwebrtc/disclosure.mjs)
content/global/aboutwebrtc/copyButton.mjs (aboutwebrtc/copyButton.mjs)
content/global/aboutwebrtc/aboutWebrtc.html (aboutwebrtc/aboutWebrtc.html)
+#endif
content/global/aboutSupport.js
* content/global/aboutSupport.xhtml
-#ifndef MOZ_GLEAN_ANDROID
+#ifdef MOZ_TELEMETRY_REPORTING
+# ifndef MOZ_GLEAN_ANDROID
content/global/aboutGlean.js
content/global/aboutGlean.html
content/global/aboutGlean.css
-#endif
+# endif
content/global/aboutTelemetry.js
content/global/aboutTelemetry.xhtml
content/global/aboutTelemetry.css
+#endif
content/global/aboutUrlClassifier.js
content/global/aboutUrlClassifier.xhtml
content/global/aboutUrlClassifier.css
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/520cda9…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/520cda9…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.3.0esr-14.0-1] Bug 42716: Disable unwanted about: pages
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed to branch tor-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
9921cbc8 by Morgan at 2024-10-01T20:31:28+00:00
Bug 42716: Disable unwanted about: pages
- - - - -
5 changed files:
- browser/components/about/AboutRedirector.cpp
- browser/components/about/components.conf
- docshell/base/nsAboutRedirector.cpp
- docshell/build/components.conf
- toolkit/content/jar.mn
Changes:
=====================================
browser/components/about/AboutRedirector.cpp
=====================================
@@ -91,9 +91,11 @@ static const RedirEntry kRedirMap[] = {
{"rights", "chrome://global/content/aboutRights.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
+#ifndef BASE_BROWSER_VERSION
{"robots", "chrome://browser/content/aboutRobots.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT},
+#endif
{"rulesets", "chrome://browser/content/rulesets/aboutRulesets.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS |
=====================================
browser/components/about/components.conf
=====================================
@@ -24,7 +24,7 @@ pages = [
'reader',
'restartrequired',
'rights',
- 'robots',
+ # Removed 'robots'. tor-browser#42831.
'rulesets',
'sessionrestore',
'settings',
=====================================
docshell/base/nsAboutRedirector.cpp
=====================================
@@ -135,8 +135,10 @@ static const RedirEntry kRedirMap[] = {
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS |
nsIAboutModule::IS_SECURE_CHROME_UI},
+#ifndef BASE_BROWSER_VERSION
{"mozilla", "chrome://global/content/mozilla.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+#endif
#if !defined(ANDROID) && !defined(XP_WIN)
{"webauthn", "chrome://global/content/aboutWebauthn.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
@@ -181,15 +183,17 @@ static const RedirEntry kRedirMap[] = {
{"windows-messages", "chrome://global/content/aboutWindowsMessages.html",
nsIAboutModule::ALLOW_SCRIPT},
#endif
-#ifndef MOZ_GLEAN_ANDROID
+#ifdef MOZ_TELEMETRY_REPORTING
+# ifndef MOZ_GLEAN_ANDROID
{"glean", "chrome://global/content/aboutGlean.html",
-# if !defined(NIGHTLY_BUILD) && defined(MOZILLA_OFFICIAL)
+# if !defined(NIGHTLY_BUILD) && defined(MOZILLA_OFFICIAL)
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
-# endif
+# endif
nsIAboutModule::ALLOW_SCRIPT},
-#endif
+# endif
{"telemetry", "chrome://global/content/aboutTelemetry.xhtml",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
+#endif
{"torconnect", "chrome://global/content/torconnect/aboutTorConnect.html",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::URI_CAN_LOAD_IN_CHILD | nsIAboutModule::ALLOW_SCRIPT |
@@ -205,8 +209,10 @@ static const RedirEntry kRedirMap[] = {
{"url-classifier", "chrome://global/content/aboutUrlClassifier.xhtml",
nsIAboutModule::ALLOW_SCRIPT},
#endif
+#ifdef MOZ_WEBRTC
{"webrtc", "chrome://global/content/aboutwebrtc/aboutWebrtc.html",
nsIAboutModule::ALLOW_SCRIPT},
+#endif
{"crashparent", "about:blank", nsIAboutModule::HIDE_FROM_ABOUTABOUT},
{"crashcontent", "about:blank",
nsIAboutModule::HIDE_FROM_ABOUTABOUT |
=====================================
docshell/build/components.conf
=====================================
@@ -22,7 +22,7 @@ about_pages = [
'logging',
'logo',
'memory',
- 'mozilla',
+ # Removed 'mozilla'. tor-browser#42831.
'neterror',
'networking',
'performance',
@@ -30,22 +30,24 @@ about_pages = [
'serviceworkers',
'srcdoc',
'support',
- 'telemetry',
'torconnect',
'translations',
'tor',
- 'url-classifier',
- 'webrtc',
+ # Removed 'url-classifier'. tor-browser#42831.
]
if defined('MOZ_CRASHREPORTER'):
about_pages.append('crashes')
+if defined('MOZ_TELEMETRY_REPORTING'):
+ about_pages.append('telemetry')
+if defined('MOZ_WEBRTC'):
+ about_pages.append('webrtc')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'android':
about_pages.append('profiles')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] == 'windows':
about_pages.append('third-party')
about_pages.append('windows-messages')
-if not defined('MOZ_GLEAN_ANDROID'):
+if defined('MOZ_TELEMETRY_REPORTING') and not defined('MOZ_GLEAN_ANDROID'):
about_pages.append('glean')
if buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'android' and buildconfig.substs['MOZ_WIDGET_TOOLKIT'] != 'windows':
about_pages.append('webauthn')
=====================================
toolkit/content/jar.mn
=====================================
@@ -23,6 +23,7 @@ toolkit.jar:
#endif
content/global/aboutServiceWorkers.js
content/global/aboutServiceWorkers.xhtml
+#ifdef MOZ_WEBRTC
content/global/aboutwebrtc/aboutWebrtc.css (aboutwebrtc/aboutWebrtc.css)
content/global/aboutwebrtc/aboutWebrtc.mjs (aboutwebrtc/aboutWebrtc.mjs)
content/global/aboutwebrtc/graph.mjs (aboutwebrtc/graph.mjs)
@@ -31,16 +32,19 @@ toolkit.jar:
content/global/aboutwebrtc/disclosure.mjs (aboutwebrtc/disclosure.mjs)
content/global/aboutwebrtc/copyButton.mjs (aboutwebrtc/copyButton.mjs)
content/global/aboutwebrtc/aboutWebrtc.html (aboutwebrtc/aboutWebrtc.html)
+#endif
content/global/aboutSupport.js
* content/global/aboutSupport.xhtml
-#ifndef MOZ_GLEAN_ANDROID
+#ifdef MOZ_TELEMETRY_REPORTING
+# ifndef MOZ_GLEAN_ANDROID
content/global/aboutGlean.js
content/global/aboutGlean.html
content/global/aboutGlean.css
-#endif
+# endif
content/global/aboutTelemetry.js
content/global/aboutTelemetry.xhtml
content/global/aboutTelemetry.css
+#endif
content/global/aboutUrlClassifier.js
content/global/aboutUrlClassifier.xhtml
content/global/aboutUrlClassifier.css
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9921cbc…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9921cbc…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/mullvad-browser][mullvad-browser-128.3.0esr-14.0-1] Bug 1911745 - Unify BrowsingContext flag coherency checks, r=mccr8
by ma1 (@ma1) 01 Oct '24
by ma1 (@ma1) 01 Oct '24
01 Oct '24
ma1 pushed to branch mullvad-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
6e72b4ae by Nika Layzell at 2024-10-01T22:29:48+02:00
Bug 1911745 - Unify BrowsingContext flag coherency checks, r=mccr8
Previously these checks were largely diagnostic tools for finding bugs
in other code as it evolves. This unifies the checks a bit more and
makes them stronger for BrowsingContexts created over IPC, providing a
place for more coherency checks to be added in the future.
Differential Revision: https://phabricator.services.mozilla.com/D218860
- - - - -
2 changed files:
- docshell/base/BrowsingContext.cpp
- docshell/base/BrowsingContext.h
Changes:
=====================================
docshell/base/BrowsingContext.cpp
=====================================
@@ -578,9 +578,20 @@ mozilla::ipc::IPCResult BrowsingContext::CreateFromIPC(
context->mRequestContextId = aInit.mRequestContextId;
// NOTE: Private browsing ID is set by `SetOriginAttributes`.
+ if (const char* failure =
+ context->BrowsingContextCoherencyChecks(aOriginProcess)) {
+ mozilla::ipc::IProtocol* actor = aOriginProcess;
+ if (!actor) {
+ actor = ContentChild::GetSingleton();
+ }
+ return IPC_FAIL_UNSAFE_PRINTF(actor, "Incoherent BrowsingContext: %s",
+ failure);
+ }
+
Register(context);
- return context->Attach(/* aFromIPC */ true, aOriginProcess);
+ context->Attach(/* aFromIPC */ true, aOriginProcess);
+ return IPC_OK();
}
BrowsingContext::BrowsingContext(WindowContext* aParentWindow,
@@ -795,8 +806,64 @@ void BrowsingContext::Embed() {
}
}
-mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
- ContentParent* aOriginProcess) {
+const char* BrowsingContext::BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess) {
+#define COHERENCY_ASSERT(condition) \
+ if (!(condition)) return "Assertion " #condition " failed";
+
+ if (mGroup->IsPotentiallyCrossOriginIsolated() !=
+ (Top()->GetOpenerPolicy() ==
+ nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
+ return "Invalid CrossOriginIsolated state";
+ }
+
+ if (aOriginProcess && !IsContent()) {
+ return "Content cannot create chrome BCs";
+ }
+
+ // LoadContext should generally match our opener or parent.
+ if (IsContent()) {
+ if (RefPtr<BrowsingContext> opener = GetOpener()) {
+ COHERENCY_ASSERT(opener->mType == mType);
+ COHERENCY_ASSERT(opener->mGroup == mGroup);
+ COHERENCY_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+ }
+ if (RefPtr<BrowsingContext> parent = GetParent()) {
+ COHERENCY_ASSERT(parent->mType == mType);
+ COHERENCY_ASSERT(parent->mGroup == mGroup);
+ COHERENCY_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+
+ // UseRemoteSubframes and UseRemoteTabs must match.
+ if (mUseRemoteSubframes && !mUseRemoteTabs) {
+ return "Cannot set useRemoteSubframes without also setting useRemoteTabs";
+ }
+
+ // Double-check OriginAttributes/Private Browsing
+ // Chrome browsing contexts must not have a private browsing OriginAttribute
+ // Content browsing contexts must maintain the equality:
+ // mOriginAttributes.mPrivateBrowsingId == mPrivateBrowsingId
+ if (IsChrome()) {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId == 0);
+ } else {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId ==
+ mPrivateBrowsingId);
+ }
+#undef COHERENCY_ASSERT
+
+ return nullptr;
+}
+
+void BrowsingContext::Attach(bool aFromIPC, ContentParent* aOriginProcess) {
MOZ_DIAGNOSTIC_ASSERT(!mEverAttached);
MOZ_DIAGNOSTIC_ASSERT_IF(aFromIPC, aOriginProcess || XRE_IsContentProcess());
mEverAttached = true;
@@ -815,25 +882,15 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
MOZ_DIAGNOSTIC_ASSERT(mGroup);
MOZ_DIAGNOSTIC_ASSERT(!mIsDiscarded);
- if (mGroup->IsPotentiallyCrossOriginIsolated() !=
- (Top()->GetOpenerPolicy() ==
- nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
- MOZ_DIAGNOSTIC_ASSERT(aFromIPC);
- if (aFromIPC) {
- auto* actor = aOriginProcess
- ? static_cast<mozilla::ipc::IProtocol*>(aOriginProcess)
- : static_cast<mozilla::ipc::IProtocol*>(
- ContentChild::GetSingleton());
- return IPC_FAIL(
- actor,
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
- } else {
- MOZ_CRASH(
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
+#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
+ // We'll already have checked this if `aFromIPC` is set before calling this
+ // function.
+ if (!aFromIPC) {
+ if (const char* failure = BrowsingContextCoherencyChecks(aOriginProcess)) {
+ MOZ_CRASH_UNSAFE_PRINTF("Incoherent BrowsingContext: %s", failure);
}
}
-
- AssertCoherentLoadContext();
+#endif
// Add ourselves either to our parent or BrowsingContextGroup's child list.
// Important: We shouldn't return IPC_FAIL after this point, since the
@@ -915,7 +972,6 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
if (XRE_IsParentProcess()) {
Canonical()->CanonicalAttach();
}
- return IPC_OK();
}
void BrowsingContext::Detach(bool aFromIPC) {
@@ -1768,40 +1824,6 @@ nsresult BrowsingContext::SetOriginAttributes(const OriginAttributes& aAttrs) {
return NS_OK;
}
-void BrowsingContext::AssertCoherentLoadContext() {
-#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
- // LoadContext should generally match our opener or parent.
- if (IsContent()) {
- if (RefPtr<BrowsingContext> opener = GetOpener()) {
- MOZ_DIAGNOSTIC_ASSERT(opener->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(opener->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
- }
- if (RefPtr<BrowsingContext> parent = GetParent()) {
- MOZ_DIAGNOSTIC_ASSERT(parent->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(parent->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
-
- // UseRemoteSubframes and UseRemoteTabs must match.
- MOZ_DIAGNOSTIC_ASSERT(
- !mUseRemoteSubframes || mUseRemoteTabs,
- "Cannot set useRemoteSubframes without also setting useRemoteTabs");
-
- // Double-check OriginAttributes/Private Browsing
- AssertOriginAttributesMatchPrivateBrowsing();
-#endif
-}
-
void BrowsingContext::AssertOriginAttributesMatchPrivateBrowsing() {
// Chrome browsing contexts must not have a private browsing OriginAttribute
// Content browsing contexts must maintain the equality:
=====================================
docshell/base/BrowsingContext.h
=====================================
@@ -984,7 +984,18 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
bool aHasPostData);
private:
- mozilla::ipc::IPCResult Attach(bool aFromIPC, ContentParent* aOriginProcess);
+ // Assert that this BrowsingContext is coherent relative to related
+ // BrowsingContexts. This will be run before the BrowsingContext is attached.
+ //
+ // A non-null string return value indicates that there was a coherency check
+ // failure, which will be handled with either a crash or IPC failure.
+ //
+ // If provided, `aOriginProcess` is the process which is responsible for the
+ // creation of this BrowsingContext.
+ [[nodiscard]] const char* BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess);
+
+ void Attach(bool aFromIPC, ContentParent* aOriginProcess);
// Recomputes whether we can execute scripts in this BrowsingContext based on
// the value of AllowJavascript() and whether scripts are allowed in the
@@ -998,10 +1009,6 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
void AssertOriginAttributesMatchPrivateBrowsing();
- // Assert that the BrowsingContext's LoadContext flags appear coherent
- // relative to related BrowsingContexts.
- void AssertCoherentLoadContext();
-
friend class ::nsOuterWindowProxy;
friend class ::nsGlobalWindowOuter;
friend class WindowContext;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e7…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/6e7…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][base-browser-128.3.0esr-14.0-1] Bug 1911745 - Unify BrowsingContext flag coherency checks, r=mccr8
by ma1 (@ma1) 01 Oct '24
by ma1 (@ma1) 01 Oct '24
01 Oct '24
ma1 pushed to branch base-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
eda9f7de by Nika Layzell at 2024-10-01T22:29:35+02:00
Bug 1911745 - Unify BrowsingContext flag coherency checks, r=mccr8
Previously these checks were largely diagnostic tools for finding bugs
in other code as it evolves. This unifies the checks a bit more and
makes them stronger for BrowsingContexts created over IPC, providing a
place for more coherency checks to be added in the future.
Differential Revision: https://phabricator.services.mozilla.com/D218860
- - - - -
2 changed files:
- docshell/base/BrowsingContext.cpp
- docshell/base/BrowsingContext.h
Changes:
=====================================
docshell/base/BrowsingContext.cpp
=====================================
@@ -578,9 +578,20 @@ mozilla::ipc::IPCResult BrowsingContext::CreateFromIPC(
context->mRequestContextId = aInit.mRequestContextId;
// NOTE: Private browsing ID is set by `SetOriginAttributes`.
+ if (const char* failure =
+ context->BrowsingContextCoherencyChecks(aOriginProcess)) {
+ mozilla::ipc::IProtocol* actor = aOriginProcess;
+ if (!actor) {
+ actor = ContentChild::GetSingleton();
+ }
+ return IPC_FAIL_UNSAFE_PRINTF(actor, "Incoherent BrowsingContext: %s",
+ failure);
+ }
+
Register(context);
- return context->Attach(/* aFromIPC */ true, aOriginProcess);
+ context->Attach(/* aFromIPC */ true, aOriginProcess);
+ return IPC_OK();
}
BrowsingContext::BrowsingContext(WindowContext* aParentWindow,
@@ -795,8 +806,64 @@ void BrowsingContext::Embed() {
}
}
-mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
- ContentParent* aOriginProcess) {
+const char* BrowsingContext::BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess) {
+#define COHERENCY_ASSERT(condition) \
+ if (!(condition)) return "Assertion " #condition " failed";
+
+ if (mGroup->IsPotentiallyCrossOriginIsolated() !=
+ (Top()->GetOpenerPolicy() ==
+ nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
+ return "Invalid CrossOriginIsolated state";
+ }
+
+ if (aOriginProcess && !IsContent()) {
+ return "Content cannot create chrome BCs";
+ }
+
+ // LoadContext should generally match our opener or parent.
+ if (IsContent()) {
+ if (RefPtr<BrowsingContext> opener = GetOpener()) {
+ COHERENCY_ASSERT(opener->mType == mType);
+ COHERENCY_ASSERT(opener->mGroup == mGroup);
+ COHERENCY_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+ }
+ if (RefPtr<BrowsingContext> parent = GetParent()) {
+ COHERENCY_ASSERT(parent->mType == mType);
+ COHERENCY_ASSERT(parent->mGroup == mGroup);
+ COHERENCY_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+
+ // UseRemoteSubframes and UseRemoteTabs must match.
+ if (mUseRemoteSubframes && !mUseRemoteTabs) {
+ return "Cannot set useRemoteSubframes without also setting useRemoteTabs";
+ }
+
+ // Double-check OriginAttributes/Private Browsing
+ // Chrome browsing contexts must not have a private browsing OriginAttribute
+ // Content browsing contexts must maintain the equality:
+ // mOriginAttributes.mPrivateBrowsingId == mPrivateBrowsingId
+ if (IsChrome()) {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId == 0);
+ } else {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId ==
+ mPrivateBrowsingId);
+ }
+#undef COHERENCY_ASSERT
+
+ return nullptr;
+}
+
+void BrowsingContext::Attach(bool aFromIPC, ContentParent* aOriginProcess) {
MOZ_DIAGNOSTIC_ASSERT(!mEverAttached);
MOZ_DIAGNOSTIC_ASSERT_IF(aFromIPC, aOriginProcess || XRE_IsContentProcess());
mEverAttached = true;
@@ -815,25 +882,15 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
MOZ_DIAGNOSTIC_ASSERT(mGroup);
MOZ_DIAGNOSTIC_ASSERT(!mIsDiscarded);
- if (mGroup->IsPotentiallyCrossOriginIsolated() !=
- (Top()->GetOpenerPolicy() ==
- nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
- MOZ_DIAGNOSTIC_ASSERT(aFromIPC);
- if (aFromIPC) {
- auto* actor = aOriginProcess
- ? static_cast<mozilla::ipc::IProtocol*>(aOriginProcess)
- : static_cast<mozilla::ipc::IProtocol*>(
- ContentChild::GetSingleton());
- return IPC_FAIL(
- actor,
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
- } else {
- MOZ_CRASH(
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
+#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
+ // We'll already have checked this if `aFromIPC` is set before calling this
+ // function.
+ if (!aFromIPC) {
+ if (const char* failure = BrowsingContextCoherencyChecks(aOriginProcess)) {
+ MOZ_CRASH_UNSAFE_PRINTF("Incoherent BrowsingContext: %s", failure);
}
}
-
- AssertCoherentLoadContext();
+#endif
// Add ourselves either to our parent or BrowsingContextGroup's child list.
// Important: We shouldn't return IPC_FAIL after this point, since the
@@ -915,7 +972,6 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
if (XRE_IsParentProcess()) {
Canonical()->CanonicalAttach();
}
- return IPC_OK();
}
void BrowsingContext::Detach(bool aFromIPC) {
@@ -1768,40 +1824,6 @@ nsresult BrowsingContext::SetOriginAttributes(const OriginAttributes& aAttrs) {
return NS_OK;
}
-void BrowsingContext::AssertCoherentLoadContext() {
-#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
- // LoadContext should generally match our opener or parent.
- if (IsContent()) {
- if (RefPtr<BrowsingContext> opener = GetOpener()) {
- MOZ_DIAGNOSTIC_ASSERT(opener->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(opener->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
- }
- if (RefPtr<BrowsingContext> parent = GetParent()) {
- MOZ_DIAGNOSTIC_ASSERT(parent->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(parent->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
-
- // UseRemoteSubframes and UseRemoteTabs must match.
- MOZ_DIAGNOSTIC_ASSERT(
- !mUseRemoteSubframes || mUseRemoteTabs,
- "Cannot set useRemoteSubframes without also setting useRemoteTabs");
-
- // Double-check OriginAttributes/Private Browsing
- AssertOriginAttributesMatchPrivateBrowsing();
-#endif
-}
-
void BrowsingContext::AssertOriginAttributesMatchPrivateBrowsing() {
// Chrome browsing contexts must not have a private browsing OriginAttribute
// Content browsing contexts must maintain the equality:
=====================================
docshell/base/BrowsingContext.h
=====================================
@@ -984,7 +984,18 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
bool aHasPostData);
private:
- mozilla::ipc::IPCResult Attach(bool aFromIPC, ContentParent* aOriginProcess);
+ // Assert that this BrowsingContext is coherent relative to related
+ // BrowsingContexts. This will be run before the BrowsingContext is attached.
+ //
+ // A non-null string return value indicates that there was a coherency check
+ // failure, which will be handled with either a crash or IPC failure.
+ //
+ // If provided, `aOriginProcess` is the process which is responsible for the
+ // creation of this BrowsingContext.
+ [[nodiscard]] const char* BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess);
+
+ void Attach(bool aFromIPC, ContentParent* aOriginProcess);
// Recomputes whether we can execute scripts in this BrowsingContext based on
// the value of AllowJavascript() and whether scripts are allowed in the
@@ -998,10 +1009,6 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
void AssertOriginAttributesMatchPrivateBrowsing();
- // Assert that the BrowsingContext's LoadContext flags appear coherent
- // relative to related BrowsingContexts.
- void AssertCoherentLoadContext();
-
friend class ::nsOuterWindowProxy;
friend class ::nsGlobalWindowOuter;
friend class WindowContext;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/eda9f7d…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/eda9f7d…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser][tor-browser-128.3.0esr-14.0-1] 3 commits: Bug 1906024 - Format download file names better a=diannaS
by ma1 (@ma1) 01 Oct '24
by ma1 (@ma1) 01 Oct '24
01 Oct '24
ma1 pushed to branch tor-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
42b4d421 by rahulsainani at 2024-10-01T17:58:48+02:00
Bug 1906024 - Format download file names better a=diannaS
Original Revision: https://phabricator.services.mozilla.com/D220559
Differential Revision: https://phabricator.services.mozilla.com/D222254
- - - - -
5928c112 by rahulsainani at 2024-10-01T17:58:55+02:00
Bug 1906024 - Format download file names a=diannaS
Original Revision: https://phabricator.services.mozilla.com/D221771
Differential Revision: https://phabricator.services.mozilla.com/D222259
- - - - -
e139ad27 by Nika Layzell at 2024-10-01T18:01:23+02:00
Bug 1911745 - Unify BrowsingContext flag coherency checks, r=mccr8
Previously these checks were largely diagnostic tools for finding bugs
in other code as it evolves. This unifies the checks a bit more and
makes them stronger for BrowsingContexts created over IPC, providing a
place for more coherency checks to be added in the future.
Differential Revision: https://phabricator.services.mozilla.com/D218860
- - - - -
4 changed files:
- docshell/base/BrowsingContext.cpp
- docshell/base/BrowsingContext.h
- mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt
- mobile/android/android-components/components/support/ktx/src/test/java/mozilla/components/support/ktx/kotlin/StringTest.kt
Changes:
=====================================
docshell/base/BrowsingContext.cpp
=====================================
@@ -578,9 +578,20 @@ mozilla::ipc::IPCResult BrowsingContext::CreateFromIPC(
context->mRequestContextId = aInit.mRequestContextId;
// NOTE: Private browsing ID is set by `SetOriginAttributes`.
+ if (const char* failure =
+ context->BrowsingContextCoherencyChecks(aOriginProcess)) {
+ mozilla::ipc::IProtocol* actor = aOriginProcess;
+ if (!actor) {
+ actor = ContentChild::GetSingleton();
+ }
+ return IPC_FAIL_UNSAFE_PRINTF(actor, "Incoherent BrowsingContext: %s",
+ failure);
+ }
+
Register(context);
- return context->Attach(/* aFromIPC */ true, aOriginProcess);
+ context->Attach(/* aFromIPC */ true, aOriginProcess);
+ return IPC_OK();
}
BrowsingContext::BrowsingContext(WindowContext* aParentWindow,
@@ -795,8 +806,64 @@ void BrowsingContext::Embed() {
}
}
-mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
- ContentParent* aOriginProcess) {
+const char* BrowsingContext::BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess) {
+#define COHERENCY_ASSERT(condition) \
+ if (!(condition)) return "Assertion " #condition " failed";
+
+ if (mGroup->IsPotentiallyCrossOriginIsolated() !=
+ (Top()->GetOpenerPolicy() ==
+ nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
+ return "Invalid CrossOriginIsolated state";
+ }
+
+ if (aOriginProcess && !IsContent()) {
+ return "Content cannot create chrome BCs";
+ }
+
+ // LoadContext should generally match our opener or parent.
+ if (IsContent()) {
+ if (RefPtr<BrowsingContext> opener = GetOpener()) {
+ COHERENCY_ASSERT(opener->mType == mType);
+ COHERENCY_ASSERT(opener->mGroup == mGroup);
+ COHERENCY_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+ }
+ if (RefPtr<BrowsingContext> parent = GetParent()) {
+ COHERENCY_ASSERT(parent->mType == mType);
+ COHERENCY_ASSERT(parent->mGroup == mGroup);
+ COHERENCY_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
+ COHERENCY_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
+ COHERENCY_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
+ COHERENCY_ASSERT(
+ parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
+ }
+
+ // UseRemoteSubframes and UseRemoteTabs must match.
+ if (mUseRemoteSubframes && !mUseRemoteTabs) {
+ return "Cannot set useRemoteSubframes without also setting useRemoteTabs";
+ }
+
+ // Double-check OriginAttributes/Private Browsing
+ // Chrome browsing contexts must not have a private browsing OriginAttribute
+ // Content browsing contexts must maintain the equality:
+ // mOriginAttributes.mPrivateBrowsingId == mPrivateBrowsingId
+ if (IsChrome()) {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId == 0);
+ } else {
+ COHERENCY_ASSERT(mOriginAttributes.mPrivateBrowsingId ==
+ mPrivateBrowsingId);
+ }
+#undef COHERENCY_ASSERT
+
+ return nullptr;
+}
+
+void BrowsingContext::Attach(bool aFromIPC, ContentParent* aOriginProcess) {
MOZ_DIAGNOSTIC_ASSERT(!mEverAttached);
MOZ_DIAGNOSTIC_ASSERT_IF(aFromIPC, aOriginProcess || XRE_IsContentProcess());
mEverAttached = true;
@@ -815,25 +882,15 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
MOZ_DIAGNOSTIC_ASSERT(mGroup);
MOZ_DIAGNOSTIC_ASSERT(!mIsDiscarded);
- if (mGroup->IsPotentiallyCrossOriginIsolated() !=
- (Top()->GetOpenerPolicy() ==
- nsILoadInfo::OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP)) {
- MOZ_DIAGNOSTIC_ASSERT(aFromIPC);
- if (aFromIPC) {
- auto* actor = aOriginProcess
- ? static_cast<mozilla::ipc::IProtocol*>(aOriginProcess)
- : static_cast<mozilla::ipc::IProtocol*>(
- ContentChild::GetSingleton());
- return IPC_FAIL(
- actor,
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
- } else {
- MOZ_CRASH(
- "Invalid CrossOriginIsolated state in BrowsingContext::Attach call");
+#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
+ // We'll already have checked this if `aFromIPC` is set before calling this
+ // function.
+ if (!aFromIPC) {
+ if (const char* failure = BrowsingContextCoherencyChecks(aOriginProcess)) {
+ MOZ_CRASH_UNSAFE_PRINTF("Incoherent BrowsingContext: %s", failure);
}
}
-
- AssertCoherentLoadContext();
+#endif
// Add ourselves either to our parent or BrowsingContextGroup's child list.
// Important: We shouldn't return IPC_FAIL after this point, since the
@@ -915,7 +972,6 @@ mozilla::ipc::IPCResult BrowsingContext::Attach(bool aFromIPC,
if (XRE_IsParentProcess()) {
Canonical()->CanonicalAttach();
}
- return IPC_OK();
}
void BrowsingContext::Detach(bool aFromIPC) {
@@ -1768,40 +1824,6 @@ nsresult BrowsingContext::SetOriginAttributes(const OriginAttributes& aAttrs) {
return NS_OK;
}
-void BrowsingContext::AssertCoherentLoadContext() {
-#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
- // LoadContext should generally match our opener or parent.
- if (IsContent()) {
- if (RefPtr<BrowsingContext> opener = GetOpener()) {
- MOZ_DIAGNOSTIC_ASSERT(opener->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(opener->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(opener->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(opener->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- opener->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
- }
- if (RefPtr<BrowsingContext> parent = GetParent()) {
- MOZ_DIAGNOSTIC_ASSERT(parent->mType == mType);
- MOZ_DIAGNOSTIC_ASSERT(parent->mGroup == mGroup);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteTabs == mUseRemoteTabs);
- MOZ_DIAGNOSTIC_ASSERT(parent->mUseRemoteSubframes == mUseRemoteSubframes);
- MOZ_DIAGNOSTIC_ASSERT(parent->mPrivateBrowsingId == mPrivateBrowsingId);
- MOZ_DIAGNOSTIC_ASSERT(
- parent->mOriginAttributes.EqualsIgnoringFPD(mOriginAttributes));
- }
-
- // UseRemoteSubframes and UseRemoteTabs must match.
- MOZ_DIAGNOSTIC_ASSERT(
- !mUseRemoteSubframes || mUseRemoteTabs,
- "Cannot set useRemoteSubframes without also setting useRemoteTabs");
-
- // Double-check OriginAttributes/Private Browsing
- AssertOriginAttributesMatchPrivateBrowsing();
-#endif
-}
-
void BrowsingContext::AssertOriginAttributesMatchPrivateBrowsing() {
// Chrome browsing contexts must not have a private browsing OriginAttribute
// Content browsing contexts must maintain the equality:
=====================================
docshell/base/BrowsingContext.h
=====================================
@@ -984,7 +984,18 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
bool aHasPostData);
private:
- mozilla::ipc::IPCResult Attach(bool aFromIPC, ContentParent* aOriginProcess);
+ // Assert that this BrowsingContext is coherent relative to related
+ // BrowsingContexts. This will be run before the BrowsingContext is attached.
+ //
+ // A non-null string return value indicates that there was a coherency check
+ // failure, which will be handled with either a crash or IPC failure.
+ //
+ // If provided, `aOriginProcess` is the process which is responsible for the
+ // creation of this BrowsingContext.
+ [[nodiscard]] const char* BrowsingContextCoherencyChecks(
+ ContentParent* aOriginProcess);
+
+ void Attach(bool aFromIPC, ContentParent* aOriginProcess);
// Recomputes whether we can execute scripts in this BrowsingContext based on
// the value of AllowJavascript() and whether scripts are allowed in the
@@ -998,10 +1009,6 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
void AssertOriginAttributesMatchPrivateBrowsing();
- // Assert that the BrowsingContext's LoadContext flags appear coherent
- // relative to related BrowsingContexts.
- void AssertCoherentLoadContext();
-
friend class ::nsOuterWindowProxy;
friend class ::nsGlobalWindowOuter;
friend class WindowContext;
=====================================
mobile/android/android-components/components/support/ktx/src/main/java/mozilla/components/support/ktx/kotlin/String.kt
=====================================
@@ -53,6 +53,8 @@ const val MAX_URI_LENGTH = 25000
private const val FILE_PREFIX = "file://"
private const val MAX_VALID_PORT = 65_535
+private const val SPACE = " "
+private const val UNDERSCORE = "_"
/**
* Shortens URLs to be more user friendly.
@@ -316,7 +318,9 @@ fun String.sanitizeFileName(): String {
file.name.replace("\\.\\.+".toRegex(), ".")
} else {
file.name.replace(".", "")
- }.replaceEscapedCharacters()
+ }.replaceContinuousSpaces()
+ .replaceEscapedCharacters()
+ .trim()
}
/**
@@ -324,8 +328,16 @@ fun String.sanitizeFileName(): String {
* and is correctly displayed.
*/
private fun String.replaceEscapedCharacters(): String {
- val controlCharactersRegex = "[\\x00-\\x13/*\"?<>:|\\\\]".toRegex()
- return replace(controlCharactersRegex, "_")
+ val escapedCharactersRegex = "[\\x00-\\x13*\"?<>:|\\\\]".toRegex()
+ return replace(escapedCharactersRegex, UNDERSCORE)
+}
+
+/**
+ * Replaces continuous spaces with a single space.
+ */
+private fun String.replaceContinuousSpaces(): String {
+ val escapedCharactersRegex = "[\\p{Z}\\s]+".toRegex()
+ return replace(escapedCharactersRegex, SPACE)
}
/**
=====================================
mobile/android/android-components/components/support/ktx/src/test/java/mozilla/components/support/ktx/kotlin/StringTest.kt
=====================================
@@ -199,11 +199,11 @@ class StringTest {
"acknowledge\u0006signal" to "acknowledge_signal",
"bell\u0007sound" to "bell_sound",
"back\u0008space" to "back_space",
- "horizontal\u0009tab" to "horizontal_tab",
- "new\u000Aline" to "new_line",
- "vertical\u000Btab" to "vertical_tab",
- "form\u000Cfeed" to "form_feed",
- "return\u000Dcarriage" to "return_carriage",
+ "horizontal\u0009tab" to "horizontal tab",
+ "new\u000Aline" to "new line",
+ "vertical\u000Btab" to "vertical tab",
+ "form\u000Cfeed" to "form feed",
+ "return\u000Dcarriage" to "return carriage",
"shift\u000Eout" to "shift_out",
"shift\u000Fin" to "shift_in",
"escape\u0010data" to "escape_data",
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/689b06…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/689b06…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/tor-browser-build] Pushed new branch maint-13.5a11
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed new branch maint-13.5a11 at The Tor Project / Applications / tor-browser-build
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/mai…
You're receiving this email because of your account on gitlab.torproject.org.
1
0

[Git][tpo/applications/mullvad-browser-update-responses][main] release: new version, 13.5.6
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed to branch main at The Tor Project / Applications / mullvad-browser-update-responses
Commits:
a7b0d4ca by Morgan at 2024-10-01T18:21:08+00:00
release: new version, 13.5.6
- - - - -
29 changed files:
- update_1/release/.htaccess
- − update_1/release/13.5-13.5.3-linux-x86_64-ALL.xml
- − update_1/release/13.5-13.5.3-macos-ALL.xml
- − update_1/release/13.5-13.5.3-windows-x86_64-ALL.xml
- − update_1/release/13.5.1-13.5.3-linux-x86_64-ALL.xml
- − update_1/release/13.5.1-13.5.3-macos-ALL.xml
- − update_1/release/13.5.1-13.5.3-windows-x86_64-ALL.xml
- + update_1/release/13.5.1-13.5.6-linux-x86_64-ALL.xml
- + update_1/release/13.5.1-13.5.6-macos-ALL.xml
- + update_1/release/13.5.1-13.5.6-windows-x86_64-ALL.xml
- − update_1/release/13.5.2-13.5.3-linux-x86_64-ALL.xml
- − update_1/release/13.5.2-13.5.3-macos-ALL.xml
- − update_1/release/13.5.2-13.5.3-windows-x86_64-ALL.xml
- + update_1/release/13.5.2-13.5.6-linux-x86_64-ALL.xml
- + update_1/release/13.5.2-13.5.6-macos-ALL.xml
- + update_1/release/13.5.2-13.5.6-windows-x86_64-ALL.xml
- + update_1/release/13.5.3-13.5.6-linux-x86_64-ALL.xml
- + update_1/release/13.5.3-13.5.6-macos-ALL.xml
- + update_1/release/13.5.3-13.5.6-windows-x86_64-ALL.xml
- − update_1/release/13.5.3-linux-x86_64-ALL.xml
- − update_1/release/13.5.3-macos-ALL.xml
- − update_1/release/13.5.3-windows-x86_64-ALL.xml
- + update_1/release/13.5.6-linux-x86_64-ALL.xml
- + update_1/release/13.5.6-macos-ALL.xml
- + update_1/release/13.5.6-windows-x86_64-ALL.xml
- 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
Changes:
=====================================
update_1/release/.htaccess
=====================================
@@ -1,22 +1,22 @@
RewriteEngine On
-RewriteRule ^[^/]+/13.5.3/ no-update.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5/ALL 13.5-13.5.3-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5.1/ALL 13.5.1-13.5.3-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/13.5.2/ALL 13.5.2-13.5.3-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 13.5.3-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/ 13.5.3-linux-x86_64-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5/ALL 13.5-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5.1/ALL 13.5.1-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/13.5.2/ALL 13.5.2-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/ 13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5/ALL 13.5-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5.1/ALL 13.5.1-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/13.5.2/ALL 13.5.2-13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 13.5.3-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/ 13.5.3-macos-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5/ALL 13.5-13.5.3-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5.1/ALL 13.5.1-13.5.3-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/13.5.2/ALL 13.5.2-13.5.3-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 13.5.3-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/ 13.5.3-windows-x86_64-ALL.xml [last]
+RewriteRule ^[^/]+/13.5.6/ no-update.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5.1/ALL 13.5.1-13.5.6-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5.2/ALL 13.5.2-13.5.6-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/13.5.3/ALL 13.5.3-13.5.6-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 13.5.6-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/ 13.5.6-linux-x86_64-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5.1/ALL 13.5.1-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5.2/ALL 13.5.2-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/13.5.3/ALL 13.5.3-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/ 13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5.1/ALL 13.5.1-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5.2/ALL 13.5.2-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/13.5.3/ALL 13.5.3-13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 13.5.6-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/ 13.5.6-macos-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5.1/ALL 13.5.1-13.5.6-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5.2/ALL 13.5.2-13.5.6-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/13.5.3/ALL 13.5.3-13.5.6-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 13.5.6-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/ 13.5.6-windows-x86_64-ALL.xml [last]
=====================================
update_1/release/13.5-13.5.3-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3_…" hashFunction="SHA512" hashValue="dc9228d0edf637fe171b3a5f81374cfaa78112877eb9bd8f1617aedb02d58258612eea64dfb6d7a89dff8536089627db40d5be03460529a322d0d391f85f80ca" size="108537331" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64--13.5-1…" hashFunction="SHA512" hashValue="42a0143d23a3bb94515262449cd6481fc5ef7fb7f20b4d901dc5e6beaf8a46aa2f54e1af2e1227602c57e773cb3ba4707b1e45b4f2973cc319366a70db3d60a1" size="11672332" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5-13.5.3-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3_ALL.mar" hashFunction="SHA512" hashValue="251a1b6961102a454f1e35645a7fb85a259018801437fd1a0069fd701dee461934a3184378e0648330c931a71e4c6817f049434406b279f6673af06a2140c462" size="115932183" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos--13.5-13.5.3_A…" hashFunction="SHA512" hashValue="736be650e6bffc5fa19ccc0424de07672901746004c22553c25e45808952af796f9322aee9c39d77879979df4f4440bb8c01f3d5681e22f971ddf164d6606c9f" size="15466803" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5-13.5.3-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="0006e44ff67522342954b0475cffe92d4d7065a47e7c7e2964ce4e88110216923373c163125067b7a8c238dc8ee4650c950b9add295d4c3deac352663e1e5edf" size="90162344" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="9793e3aaba128f4a3391b2cd7b0a97f876b8a39211fbeb19c73b37c1002182e93bcd044bf68e0694a508e22cd89227ad12270a4c0985bac2c80ce6cca2d96c14" size="10945176" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.3-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3_…" hashFunction="SHA512" hashValue="dc9228d0edf637fe171b3a5f81374cfaa78112877eb9bd8f1617aedb02d58258612eea64dfb6d7a89dff8536089627db40d5be03460529a322d0d391f85f80ca" size="108537331" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64--13.5.1…" hashFunction="SHA512" hashValue="8fb8e294c0db3548f078fce2f693c743923337210797c7a10b627e94cd3b6820b2898188fc3e6131054c90fefe8046744c2db515a0cf7931d9620840f788869f" size="10214120" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.3-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3_ALL.mar" hashFunction="SHA512" hashValue="251a1b6961102a454f1e35645a7fb85a259018801437fd1a0069fd701dee461934a3184378e0648330c931a71e4c6817f049434406b279f6673af06a2140c462" size="115932183" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos--13.5.1-13.5.3…" hashFunction="SHA512" hashValue="265355cff22dd08d1a3ba2f7a28a91a8bd630836d5a241ab049b8866ce67aaf6e5eb9704baea0709ba4aa792915dc06eb9c02c3b4450466cc2934a3c6ea8494e" size="13834075" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.3-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="0006e44ff67522342954b0475cffe92d4d7065a47e7c7e2964ce4e88110216923373c163125067b7a8c238dc8ee4650c950b9add295d4c3deac352663e1e5edf" size="90162344" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="10cdc7ce117160c44b6a1688d28fffb44718575efe57723b8627dd6add73930e8a993fb44a63215f112dfab0a2c4b1895a6210436f00b4a513eaa115043a0914" size="9669788" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.6-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6_…" hashFunction="SHA512" hashValue="9620c90cabb8bf83af95ba28abceac3632b0f0e9fc04a935ad67d661e58509e8ff45d50295f7fad23cad8b4463097e15a59b821a83ed58280cf697d896a50e4d" size="108542679" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64--13.5.1…" hashFunction="SHA512" hashValue="f0c40051f0b8110fd39e7f21b6a4cf44fe83b1ba089959235fcfa713359d89bafb384e6e747e945bcc3c6144cb312704f3df7eb2ab62e53c26f18a90def91320" size="10612484" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.6-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6_ALL.mar" hashFunction="SHA512" hashValue="b41b05e42b0c74f4a1815dfe6ffbb20ccfee0d22cda6de17c0afb1f3579e30c34f4e0ea1cf6a86d648beb200f54d4a962e2e1cf63329cb025a42594785cc50ff" size="115945715" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos--13.5.1-13.5.6…" hashFunction="SHA512" hashValue="72e41c2c46b1ad7356c3b1100f19364b12e02a91dca9569ab5cd7138b9a5c524e52a174c8781117e143796033744c20a9d42efa1ffede6652ddd43638971d001" size="14247375" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.1-13.5.6-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="066692a2f7bd660a8899abb72a1f7e555c66a5927cdc073a7d69480c08e88f19828df09e0da310b9c69c65b026b03ec7f89a3a6bc415c18030d4aa237d006f2a" size="90184748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="0eefada51ca927a67d51544b94a74e7c644893847f3b32f4ae50c17d7ac3c139ead4d1978d25c5ca4bc9997da54633c7af24e7f4f4c19a04e28a38361376f7a8" size="10220268" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.3-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3_…" hashFunction="SHA512" hashValue="dc9228d0edf637fe171b3a5f81374cfaa78112877eb9bd8f1617aedb02d58258612eea64dfb6d7a89dff8536089627db40d5be03460529a322d0d391f85f80ca" size="108537331" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64--13.5.2…" hashFunction="SHA512" hashValue="c83637183b14c2c8f7db94489995fa383722d6072e013b31e472919a289bc70973c1369dae75e36b68e4a782fe2a754c0830d5891d19cce0d42ea6cb432d8ba8" size="6252302" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.3-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3_ALL.mar" hashFunction="SHA512" hashValue="251a1b6961102a454f1e35645a7fb85a259018801437fd1a0069fd701dee461934a3184378e0648330c931a71e4c6817f049434406b279f6673af06a2140c462" size="115932183" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos--13.5.2-13.5.3…" hashFunction="SHA512" hashValue="5af87ba2d3286c871041a0000fef1e29e61eaeca3439fb0610e9257fd1114a93d2cc6797dbdaa4556da1a9fb6dd2815ebfa1d8963340f8250ee1c290d163d27a" size="10054890" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.3-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="0006e44ff67522342954b0475cffe92d4d7065a47e7c7e2964ce4e88110216923373c163125067b7a8c238dc8ee4650c950b9add295d4c3deac352663e1e5edf" size="90162344" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="d565447daf652f520cb87e1044669edf291fbf08ee28fe413157a2f730f1db43ff8972306fe6703ec69905c3dce8a79ee54be8777febcdcd8f213ab6c2598610" size="6047450" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.6-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6_…" hashFunction="SHA512" hashValue="9620c90cabb8bf83af95ba28abceac3632b0f0e9fc04a935ad67d661e58509e8ff45d50295f7fad23cad8b4463097e15a59b821a83ed58280cf697d896a50e4d" size="108542679" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64--13.5.2…" hashFunction="SHA512" hashValue="4f5bd89ee28b1f4a75647295f97ccaf7a7bda51b63cea098abc74a04edd7f7f96cd4f177e82bf2899f272d89db49b37a125bafa2ba969ea8099630bdf75d4d70" size="7013226" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.6-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6_ALL.mar" hashFunction="SHA512" hashValue="b41b05e42b0c74f4a1815dfe6ffbb20ccfee0d22cda6de17c0afb1f3579e30c34f4e0ea1cf6a86d648beb200f54d4a962e2e1cf63329cb025a42594785cc50ff" size="115945715" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos--13.5.2-13.5.6…" hashFunction="SHA512" hashValue="d3e2501611221ba8d9eb76eb2ecb523582c2b0e3fb0f3f810a65f6f03350e50affca712a63977c89e87c778ffb6e82b9f523faf6cd47f20cb91397b9f7229a04" size="10602802" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.2-13.5.6-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="066692a2f7bd660a8899abb72a1f7e555c66a5927cdc073a7d69480c08e88f19828df09e0da310b9c69c65b026b03ec7f89a3a6bc415c18030d4aa237d006f2a" size="90184748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="3d423ac467ae74bf8a055fa9db2f252244c82fa4e334f043cfd0822ccbb05d2042c3420dfe684aa1c33a384c12a0b925798b8ecab9f153f813b71019398bb3f4" size="6750018" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.3-13.5.6-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6_…" hashFunction="SHA512" hashValue="9620c90cabb8bf83af95ba28abceac3632b0f0e9fc04a935ad67d661e58509e8ff45d50295f7fad23cad8b4463097e15a59b821a83ed58280cf697d896a50e4d" size="108542679" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64--13.5.3…" hashFunction="SHA512" hashValue="b1d2dff541513220b3573eecfdb0afd9c71f4c9521b3601fa61fd0aa507156c5a851434edcc008925a5855b7897c792cc4c65d85283654caef17048a02e4efc4" size="5605850" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.3-13.5.6-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6_ALL.mar" hashFunction="SHA512" hashValue="b41b05e42b0c74f4a1815dfe6ffbb20ccfee0d22cda6de17c0afb1f3579e30c34f4e0ea1cf6a86d648beb200f54d4a962e2e1cf63329cb025a42594785cc50ff" size="115945715" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos--13.5.3-13.5.6…" hashFunction="SHA512" hashValue="6cddfa8a01e5e0803e786dd5c36614365677dae76886310776374c6fa9ead40e8b99c1d2f3dd88e68929110ae047729be165c42e61031420df9afeba0dc56f0f" size="8307266" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.3-13.5.6-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="066692a2f7bd660a8899abb72a1f7e555c66a5927cdc073a7d69480c08e88f19828df09e0da310b9c69c65b026b03ec7f89a3a6bc415c18030d4aa237d006f2a" size="90184748" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64--13.5…" hashFunction="SHA512" hashValue="a7de28e4a5b9b9e7a10795be1cd52d38761aa21ae6aace849a74e68787622ebcd4440f5fa27be0e3555571f422347f9dd230f7c4e8633fceaa4cf4c317390ce5" size="5083386" type="partial"></patch></update></updates>
=====================================
update_1/release/13.5.3-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3_…" hashFunction="SHA512" hashValue="dc9228d0edf637fe171b3a5f81374cfaa78112877eb9bd8f1617aedb02d58258612eea64dfb6d7a89dff8536089627db40d5be03460529a322d0d391f85f80ca" size="108537331" type="complete"></patch></update></updates>
=====================================
update_1/release/13.5.3-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3_ALL.mar" hashFunction="SHA512" hashValue="251a1b6961102a454f1e35645a7fb85a259018801437fd1a0069fd701dee461934a3184378e0648330c931a71e4c6817f049434406b279f6673af06a2140c462" size="115932183" type="complete"></patch></update></updates>
=====================================
update_1/release/13.5.3-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="13.5.3" appVersion="13.5.3" platformVersion="115.15.0" buildID="20240903073000" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.3" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="0006e44ff67522342954b0475cffe92d4d7065a47e7c7e2964ce4e88110216923373c163125067b7a8c238dc8ee4650c950b9add295d4c3deac352663e1e5edf" size="90162344" type="complete"></patch></update></updates>
=====================================
update_1/release/13.5.6-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6_…" hashFunction="SHA512" hashValue="9620c90cabb8bf83af95ba28abceac3632b0f0e9fc04a935ad67d661e58509e8ff45d50295f7fad23cad8b4463097e15a59b821a83ed58280cf697d896a50e4d" size="108542679" type="complete"></patch></update></updates>
=====================================
update_1/release/13.5.6-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="16.0.0"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6_ALL.mar" hashFunction="SHA512" hashValue="b41b05e42b0c74f4a1815dfe6ffbb20ccfee0d22cda6de17c0afb1f3579e30c34f4e0ea1cf6a86d648beb200f54d4a962e2e1cf63329cb025a42594785cc50ff" size="115945715" type="complete"></patch></update></updates>
=====================================
update_1/release/13.5.6-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="13.5.6" appVersion="13.5.6" platformVersion="115.16.0" buildID="20240930230510" detailsURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/13.5.6" minSupportedOSVersion="6.1" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…" hashFunction="SHA512" hashValue="066692a2f7bd660a8899abb72a1f7e555c66a5927cdc073a7d69480c08e88f19828df09e0da310b9c69c65b026b03ec7f89a3a6bc415c18030d4aa237d006f2a" size="90184748" type="complete"></patch></update></updates>
=====================================
update_1/release/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3.…","git_tag":"mb-13.5.3-build1","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3.…","version":"13.5.3"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6.…","git_tag":"mb-13.5.6-build1","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6.…","version":"13.5.6"}
\ No newline at end of file
=====================================
update_1/release/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3.dmg","git_tag":"mb-13.5.3-build1","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3.dmg.asc","version":"13.5.3"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6.dmg","git_tag":"mb-13.5.6-build1","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6.dmg.asc","version":"13.5.6"}
\ No newline at end of file
=====================================
update_1/release/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…","git_tag":"mb-13.5.3-build1","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…","version":"13.5.3"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…","git_tag":"mb-13.5.6-build1","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…","version":"13.5.6"}
\ No newline at end of file
=====================================
update_1/release/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3.…","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-linux-x86_64-13.5.3.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3.dmg","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-macos-13.5.3.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…","sig":"https://cdn.mullvad.net/browser/13.5.3/mullvad-browser-windows-x86_64-13.5.…"}}},"tag":"mb-13.5.3-build1","version":"13.5.3"}
\ No newline at end of file
+{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6.…","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-linux-x86_64-13.5.6.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6.dmg","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-macos-13.5.6.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…","sig":"https://cdn.mullvad.net/browser/13.5.6/mullvad-browser-windows-x86_64-13.5.…"}}},"tag":"mb-13.5.6-build1","version":"13.5.6"}
\ No newline at end of file
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-update-responses][main] release: new version, 13.5.6
by morgan (@morgan) 01 Oct '24
by morgan (@morgan) 01 Oct '24
01 Oct '24
morgan pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
90a96463 by Morgan at 2024-10-01T17:49:26+00:00
release: new version, 13.5.6
- - - - -
30 changed files:
- update_3/release/.htaccess
- − update_3/release/13.5.2-13.5.5-linux-i686-ALL.xml
- − update_3/release/13.5.2-13.5.5-linux-x86_64-ALL.xml
- − update_3/release/13.5.2-13.5.5-macos-ALL.xml
- − update_3/release/13.5.2-13.5.5-windows-i686-ALL.xml
- − update_3/release/13.5.2-13.5.5-windows-x86_64-ALL.xml
- − update_3/release/13.5.3-13.5.5-linux-i686-ALL.xml
- − update_3/release/13.5.3-13.5.5-linux-x86_64-ALL.xml
- − update_3/release/13.5.3-13.5.5-macos-ALL.xml
- − update_3/release/13.5.3-13.5.5-windows-i686-ALL.xml
- − update_3/release/13.5.3-13.5.5-windows-x86_64-ALL.xml
- + update_3/release/13.5.3-13.5.6-linux-i686-ALL.xml
- + update_3/release/13.5.3-13.5.6-linux-x86_64-ALL.xml
- + update_3/release/13.5.3-13.5.6-macos-ALL.xml
- + update_3/release/13.5.3-13.5.6-windows-i686-ALL.xml
- + update_3/release/13.5.3-13.5.6-windows-x86_64-ALL.xml
- − update_3/release/13.5.4-13.5.5-linux-i686-ALL.xml
- − update_3/release/13.5.4-13.5.5-linux-x86_64-ALL.xml
- − update_3/release/13.5.4-13.5.5-macos-ALL.xml
- − update_3/release/13.5.4-13.5.5-windows-i686-ALL.xml
- − update_3/release/13.5.4-13.5.5-windows-x86_64-ALL.xml
- + update_3/release/13.5.4-13.5.6-linux-i686-ALL.xml
- + update_3/release/13.5.4-13.5.6-linux-x86_64-ALL.xml
- + update_3/release/13.5.4-13.5.6-macos-ALL.xml
- + update_3/release/13.5.4-13.5.6-windows-i686-ALL.xml
- + update_3/release/13.5.4-13.5.6-windows-x86_64-ALL.xml
- + update_3/release/13.5.5-13.5.6-linux-i686-ALL.xml
- + update_3/release/13.5.5-13.5.6-linux-x86_64-ALL.xml
- + update_3/release/13.5.5-13.5.6-macos-ALL.xml
- + update_3/release/13.5.5-13.5.6-windows-i686-ALL.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/tor-browser][tor-browser-128.3.0esr-14.0-1] 2 commits: fixup! Bug 42305: Add script to combine translation files across versions.
by Pier Angelo Vendrame (@pierov) 01 Oct '24
by Pier Angelo Vendrame (@pierov) 01 Oct '24
01 Oct '24
Pier Angelo Vendrame pushed to branch tor-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
459f1275 by Henry Wilkes at 2024-10-01T16:05:28+01:00
fixup! Bug 42305: Add script to combine translation files across versions.
Bug 43156: Add an option to also include strings from a legacy branch.
Also, instead of using the tagger date to find the highest version
branch, we use version ordering.
- - - - -
689b068f by Henry Wilkes at 2024-10-01T16:05:29+01:00
fixup! Add CI for Tor Browser
Bug 43156: Also include strings from the legacy branch.
- - - - -
2 changed files:
- .gitlab/ci/update-translations.yml
- tools/torbrowser/l10n/combine-translation-versions.py
Changes:
=====================================
.gitlab/ci/update-translations.yml
=====================================
@@ -28,6 +28,7 @@ combine-en-US-translations:
base-browser:base-browser.ftl
fenix-torbrowserstringsxml:torbrowser_strings.xml
'
+ TRANSLATION_INCLUDE_LEGACY: "true"
cache:
paths:
- .cache/pip
=====================================
tools/torbrowser/l10n/combine-translation-versions.py
=====================================
@@ -67,136 +67,227 @@ def git_lines(git_args: list[str]) -> list[str]:
return [line for line in git_text(git_args).split("\n") if line]
-def git_file_paths(git_ref: str) -> list[str]:
- """Get the full list of file paths found under the given tree.
-
- :param git_ref: The git reference for the tree to search.
- :returns: The found file paths.
- """
- return git_lines(["ls-tree", "-r", "--format=%(path)", git_ref])
-
-
-def matching_path(search_paths: list[str], filename: str) -> str | None:
- """Get the matching file path with the given filename, if it exists.
-
- :param search_paths: The file paths to search through.
- :param filename: The file name to match.
- :returns: The unique file path with the matching name, or None if no such
- match was found.
- :throws Exception: If multiple paths shared the same file name.
- """
- matching = [path for path in search_paths if os.path.basename(path) == filename]
- if not matching:
- return None
- if len(matching) > 1:
- raise Exception("Multiple occurrences of {filename}")
- return matching[0]
-
-
-def git_file_content(git_ref: str, path: str | None) -> str | None:
- """Get the file content of the specified git blob object.
-
- :param git_ref: The reference for the tree to find the file under.
- :param path: The file path for the object, or None if there is no path.
- :returns: The file content, or None if no path was given.
- """
- if path is None:
- return None
- return git_text(["cat-file", "blob", f"{git_ref}:{path}"])
-
-
-def get_stable_branch(branch_prefix: str) -> str:
+class BrowserBranch:
+ """Represents a browser git branch."""
+
+ def __init__(self, branch_name: str, is_head: bool = False) -> None:
+ """Create a new instance.
+
+ :param branch_name: The branch's git name.
+ :param is_head: Whether the branch matches "HEAD".
+ """
+ version_match = re.match(
+ r"(?P<prefix>[a-z]+\-browser)\-"
+ r"(?P<firefox>[0-9]+(?:\.[0-9]+){1,2})esr\-"
+ r"(?P<browser>[0-9]+\.[05])\-"
+ r"(?P<number>[0-9]+)$",
+ branch_name,
+ )
+
+ if not version_match:
+ raise ValueError(f"Unable to parse the version from the ref {branch_name}")
+
+ self.name = branch_name
+ self.prefix = version_match.group("prefix")
+ self.browser_version = version_match.group("browser")
+ self._is_head = is_head
+ self._ref = "HEAD" if is_head else f"origin/{branch_name}"
+
+ firefox_nums = [int(n) for n in version_match.group("firefox").split(".")]
+ if len(firefox_nums) == 2:
+ firefox_nums.append(0)
+ browser_nums = [int(n) for n in self.browser_version.split(".")]
+ branch_number = int(version_match.group("number"))
+ # Prioritise the firefox ESR version, then the browser version then the
+ # branch number.
+ self._ordered = (
+ firefox_nums[0],
+ firefox_nums[1],
+ firefox_nums[2],
+ browser_nums[0],
+ browser_nums[1],
+ branch_number,
+ )
+
+ # Minor version for browser is only ever "0" or "5", so we can convert
+ # the version to an integer.
+ self._browser_int_version = int(2 * float(self.browser_version))
+
+ self._file_paths: list[str] | None = None
+
+ def release_below(self, other: "BrowserBranch", num: int) -> bool:
+ """Determine whether another branch is within range of a previous
+ browser release.
+
+ The browser versions are expected to increment by "0.5", and a previous
+ release branch's version is expected to be `num * 0.5` behind the
+ current one.
+
+ :param other: The branch to compare.
+ :param num: The number of "0.5" releases behind to test with.
+ """
+ return other._browser_int_version == self._browser_int_version - num
+
+ def __lt__(self, other: "BrowserBranch") -> bool:
+ return self._ordered < other._ordered
+
+ def __gt__(self, other: "BrowserBranch") -> bool:
+ return self._ordered > other._ordered
+
+ def get_file_content(self, filename: str) -> str | None:
+ """Fetch the file content for the named file in this branch.
+
+ :param filename: The name of the file to fetch the content for.
+ :returns: The file content, or `None` if no file could be found.
+ """
+ if self._file_paths is None:
+ if not self._is_head:
+ # Minimal fetch of non-HEAD branch to get the file paths.
+ # Individual file blobs will be downloaded as needed.
+ git_run(
+ ["fetch", "--depth=1", "--filter=blob:none", "origin", self._ref]
+ )
+ self._file_paths = git_lines(
+ ["ls-tree", "-r", "--format=%(path)", self._ref]
+ )
+
+ matching = [
+ path for path in self._file_paths if os.path.basename(path) == filename
+ ]
+ if not matching:
+ return None
+ if len(matching) > 1:
+ raise Exception(f"Multiple occurrences of {filename}")
+
+ path = matching[0]
+
+ return git_text(["cat-file", "blob", f"{self._ref}:{path}"])
+
+
+def get_stable_branch(
+ compare_version: BrowserBranch,
+) -> tuple[BrowserBranch, BrowserBranch | None]:
"""Find the most recent stable branch in the origin repository.
- :param branch_prefix: The prefix that the stable branch should have.
- :returns: The branch name.
+ :param compare_version: The development branch to compare against.
+ :returns: The stable and legacy branches. If no legacy branch is found,
+ `None` will be returned instead.
"""
- tag_glob = f"{branch_prefix}-*-build1"
+ # We search for build1 tags. These are added *after* the rebase of browser
+ # commits, so the corresponding branch should contain our strings.
+ # Moreover, we *assume* that the branch with the most recent ESR version
+ # with such a tag will be used in the *next* stable build in
+ # tor-browser-build.
+ tag_glob = f"{compare_version.prefix}-*esr-*-*-build1"
+
# To speed up, only fetch the tags without blobs.
git_run(
["fetch", "--depth=1", "--filter=object:type=tag", "origin", "tag", tag_glob]
)
- # Get most recent stable tag.
+ stable_branches = []
+ legacy_branches = []
+ stable_annotation_regex = re.compile(r"\bstable\b")
+ legacy_annotation_regex = re.compile(r"\blegacy\b")
+
for build_tag, annotation in (
- line.split(" ", 1)
- for line in git_lines(["tag", "-n1", "--list", tag_glob, "--sort=-taggerdate"])
+ line.split(" ", 1) for line in git_lines(["tag", "-n1", "--list", tag_glob])
):
- if "stable" in annotation:
+ is_stable = bool(stable_annotation_regex.search(annotation))
+ is_legacy = bool(legacy_annotation_regex.search(annotation))
+ if not is_stable and not is_legacy:
+ continue
+ try:
# Branch name is the same as the tag, minus "-build1".
- return re.sub(r"-build1$", "", build_tag)
- raise Exception("No stable build1 tag found")
-
-
-def get_version_from_branch_name(branch_name: str) -> tuple[str, float]:
- """Get the branch prefix and version from its name.
-
- :param branch_name: The branch to extract from.
- :returns: The branch prefix and its version number.
- """
- version_match = re.match(
- r"([a-z-]+)-[^-]*-([0-9]+\.[05])-",
- branch_name,
+ branch = BrowserBranch(re.sub(r"-build1$", "", build_tag))
+ except ValueError:
+ logger.warning(f"Could not read the version for {build_tag}")
+ continue
+ if branch.prefix != compare_version.prefix:
+ continue
+ if is_stable:
+ # Stable can be one release version behind.
+ # NOTE: In principle, when switching between versions there may be a
+ # window of time where the development branch has not yet progressed
+ # to the next "0.5" release, so has the same browser version as the
+ # stable branch. So we also allow for matching browser versions.
+ # NOTE:
+ # 1. The "Will be unused in" message will not make sense, but we do
+ # not expect string differences in this scenario.
+ # 2. We do not expect this scenario to last for long.
+ if not (
+ compare_version.release_below(branch, 1)
+ or compare_version.release_below(branch, 0)
+ ):
+ continue
+ stable_branches.append(branch)
+ elif is_legacy:
+ # Legacy can be two release versions behind.
+ # We also allow for being just one version behind.
+ if not (
+ compare_version.release_below(branch, 2)
+ or compare_version.release_below(branch, 1)
+ ):
+ continue
+ legacy_branches.append(branch)
+
+ if not stable_branches:
+ raise Exception("No stable build1 branch found")
+
+ return (
+ # Return the stable branch with the highest version.
+ max(stable_branches),
+ max(legacy_branches) if legacy_branches else None,
)
- if not version_match:
- raise ValueError(f"Unable to parse the version from the branch {branch_name}")
- return (version_match.group(1), float(version_match.group(2)))
+current_branch = BrowserBranch(args.current_branch, is_head=True)
+stable_branch, legacy_branch = get_stable_branch(current_branch)
-branch_prefix, current_version = get_version_from_branch_name(args.current_branch)
+if os.environ.get("TRANSLATION_INCLUDE_LEGACY", "") != "true":
+ legacy_branch = None
-stable_branch = get_stable_branch(branch_prefix)
-_, stable_version = get_version_from_branch_name(stable_branch)
-
-if stable_version > current_version or stable_version < current_version - 0.5:
- raise Exception(
- f"Version of stable branch {stable_branch} is not within 0.5 of the "
- f"current branch {args.current_branch}"
- )
-
-# Minimal fetch of stable_branch.
-# Individual file blobs will be downloaded as needed.
-git_run(["fetch", "--depth=1", "--filter=blob:none", "origin", stable_branch])
-
-current_file_paths = git_file_paths("HEAD")
-old_file_paths = git_file_paths(f"origin/{stable_branch}")
-
-ci_commit = os.environ.get("CI_COMMIT_SHA", "")
-ci_url_base = os.environ.get("CI_PROJECT_URL", "")
-
-json_data = {
- "commit": ci_commit,
- "commit-url": f"{ci_url_base}/-/commit/{ci_commit}"
- if (ci_commit and ci_url_base)
- else "",
- "project-path": os.environ.get("CI_PROJECT_PATH", ""),
- "current-branch": args.current_branch,
- "stable-branch": stable_branch,
- "files": [],
-}
+files_list = []
for translation_branch, name in (
part.strip().split(":", 1) for part in args.filenames.split(" ") if part.strip()
):
- current_path = matching_path(current_file_paths, name)
- old_path = matching_path(old_file_paths, name)
+ current_content = current_branch.get_file_content(name)
+ stable_content = stable_branch.get_file_content(name)
- if current_path is None and old_path is None:
+ if current_content is None and stable_content is None:
# No file in either branch.
logger.warning(f"{name} does not exist in either the current or stable branch")
- elif current_path is None:
+ elif current_content is None:
logger.warning(f"{name} deleted in the current branch")
- elif old_path is None:
+ elif stable_content is None:
logger.warning(f"{name} does not exist in the stable branch")
content = combine_files(
name,
- git_file_content("HEAD", current_path),
- git_file_content(f"origin/{stable_branch}", old_path),
- f"Will be unused in Tor Browser {current_version}!",
+ current_content,
+ stable_content,
+ f"Will be unused in Tor Browser {current_branch.browser_version}!",
)
- json_data["files"].append(
+
+ if legacy_branch:
+ legacy_content = legacy_branch.get_file_content(name)
+ if (
+ legacy_content is not None
+ and current_content is None
+ and stable_content is None
+ ):
+ logger.warning(f"{name} still exists in the legacy branch")
+ elif legacy_content is None:
+ logger.warning(f"{name} does not exist in the legacy branch")
+ content = combine_files(
+ name,
+ content,
+ legacy_content,
+ f"Unused in Tor Browser {stable_branch.browser_version}!",
+ )
+
+ files_list.append(
{
"name": name,
"branch": translation_branch,
@@ -204,5 +295,23 @@ for translation_branch, name in (
}
)
+
+ci_commit = os.environ.get("CI_COMMIT_SHA", "")
+ci_url_base = os.environ.get("CI_PROJECT_URL", "")
+
+json_data = {
+ "commit": ci_commit,
+ "commit-url": f"{ci_url_base}/-/commit/{ci_commit}"
+ if (ci_commit and ci_url_base)
+ else "",
+ "project-path": os.environ.get("CI_PROJECT_PATH", ""),
+ "current-branch": current_branch.name,
+ "stable-branch": stable_branch.name,
+ "files": files_list,
+}
+
+if legacy_branch:
+ json_data["legacy-branch"] = legacy_branch.name
+
with open(args.outname, "w") as file:
json.dump(json_data, file)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/217346…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/217346…
You're receiving this email because of your account on gitlab.torproject.org.
1
0