tor-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
November 2024
- 1 participants
- 134 discussions
[Git][tpo/applications/tor-browser][tor-browser-128.4.0esr-14.5-1] 2 commits: fixup! Lox integration
by Pier Angelo Vendrame (@pierov) 12 Nov '24
by Pier Angelo Vendrame (@pierov) 12 Nov '24
12 Nov '24
Pier Angelo Vendrame pushed to branch tor-browser-128.4.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
eb5aaf7e by Henry Wilkes at 2024-11-12T15:43:54+00:00
fixup! Lox integration
Bug 42492: Ensure operations that change lox credentials do not overlap.
Not linted to improve readability.
- - - - -
d4097f9c by Henry Wilkes at 2024-11-12T15:45:39+00:00
fixup! Lox integration
Bug 42492: Lint Lox.sys.mjs
- - - - -
1 changed file:
- toolkit/components/lox/Lox.sys.mjs
Changes:
=====================================
toolkit/components/lox/Lox.sys.mjs
=====================================
@@ -144,9 +144,9 @@ class LoxImpl {
/**
* The latest credentials for a given lox id.
*
- * @type {Object<string, string>}
+ * @type {Map<string, string>}
*/
- #credentials = {};
+ #credentials = new Map();
/**
* The list of accumulated blockage or upgrade events.
*
@@ -257,25 +257,73 @@ class LoxImpl {
}
/**
- * Change some existing credentials for an ID to a new value.
+ * Stores a promise for the last task that was performed to change
+ * credentials for a given lox ID. This promise completes when the task
+ * completes and it is safe to perform a new action on the credentials.
+ *
+ * This essentially acts as a lock on the credential, so that only one task
+ * acts on the credentials at any given time. See tor-browser#42492.
+ *
+ * @type {Map<string, Promise>}
+ */
+ #credentialsTasks = new Map();
+
+ /**
+ * Attempt to change some existing credentials for an ID to a new value.
+ *
+ * Each call for the same lox ID must await the previous call. As such, this
+ * should *never* be called recursively.
*
* @param {string} loxId - The ID to change the credentials for.
- * @param {string} newCredentials - The new credentials to set.
+ * @param {Function} task - The task that performs the change in credentials.
+ * The method is given the current credentials. It should either return the
+ * new credentials as a string, or null if the credentials should not
+ * change, or throw an error which will fall through to the caller.
+ *
+ * @returns {?string} - The credentials returned by the task, if any.
*/
- #changeCredentials(loxId, newCredentials) {
- // FIXME: Several async methods want to update the credentials, but they
- // might race and conflict with each. tor-browser#42492
- if (!newCredentials) {
- // Avoid overwriting and losing our current credentials.
- throw new LoxError(`Empty credentials being set for ${loxId}`);
+ async #changeCredentials(loxId, task) {
+ // Read and replace #credentialsTasks before we do any async operations.
+ // I.e. this is effectively atomic read and replace.
+ const prevTask = this.#credentialsTasks.get(loxId);
+ let taskComplete;
+ this.#credentialsTasks.set(
+ loxId,
+ new Promise(res => {
+ taskComplete = res;
+ })
+ );
+
+ // Wait for any previous task to complete first, to avoid making conflicting
+ // changes to the credentials. See tor-browser#42492.
+ // prevTask is either undefined or a promise that should not throw.
+ await prevTask;
+
+ // Future calls now await us.
+
+ const cred = this.#getCredentials(loxId);
+ let newCred = null;
+ try {
+ // This task may throw, in which case we do not set new credentials.
+ newCred = await task(cred);
+ if (newCred) {
+ this.#credentials.set(loxId, newCred);
+ // Store the new credentials.
+ this.#store();
+ lazy.logger.debug("Changed credentials");
+ }
+ } finally {
+ // Stop awaiting us.
+ taskComplete();
}
- if (!this.#credentials[loxId]) {
- // Unexpected, but we still want to save the value to storage.
- lazy.logger.warn(`Lox ID ${loxId} is missing existing credentials`);
+
+ if (!newCred) {
+ return null;
}
- this.#credentials[loxId] = newCredentials;
- this.#store();
+ // Let listeners know we have new credentials. We do this *after* calling
+ // taskComplete to avoid a recursive call to await this.#changeCredentials,
+ // which would cause us to hang.
// NOTE: In principle we could determine within this module whether the
// bridges, remaining invites, or next unlock changes in value when
@@ -289,6 +337,8 @@ class LoxImpl {
// Let UI know about changes.
Services.obs.notifyObservers(null, LoxTopics.UpdateRemainingInvites);
Services.obs.notifyObservers(null, LoxTopics.UpdateNextUnlock);
+
+ return newCred;
}
/**
@@ -299,7 +349,7 @@ class LoxImpl {
* @returns {string} - The credentials.
*/
#getCredentials(loxId) {
- const cred = loxId ? this.#credentials[loxId] : undefined;
+ const cred = loxId ? this.#credentials.get(loxId) : undefined;
if (!cred) {
throw new LoxError(`No credentials for ${loxId}`);
}
@@ -376,7 +426,7 @@ class LoxImpl {
Services.prefs.setStringPref(LoxSettingsPrefs.constants, this.#constants);
Services.prefs.setStringPref(
LoxSettingsPrefs.credentials,
- JSON.stringify(this.#credentials)
+ JSON.stringify(Object.fromEntries(this.#credentials))
);
Services.prefs.setStringPref(
LoxSettingsPrefs.invites,
@@ -390,7 +440,7 @@ class LoxImpl {
#load() {
const cred = Services.prefs.getStringPref(LoxSettingsPrefs.credentials, "");
- this.#credentials = cred ? JSON.parse(cred) : {};
+ this.#credentials = new Map(cred ? Object.entries(JSON.parse(cred)) : []);
const invites = Services.prefs.getStringPref(LoxSettingsPrefs.invites, "");
this.#invites = invites ? JSON.parse(invites) : [];
const events = Services.prefs.getStringPref(LoxSettingsPrefs.events, "");
@@ -421,17 +471,15 @@ class LoxImpl {
if (prevKeys !== null) {
// check if the lox pubkeys have changed and update the lox
// credentials if so.
- //
- // The UpdateCredOption rust struct serializes to "req" rather than
- // "request".
- const { updated, req: request } = JSON.parse(
- lazy.check_lox_pubkeys_update(
- pubKeys,
- prevKeys,
- this.#getCredentials(this.#activeLoxId)
- )
- );
- if (updated) {
+ await this.#changeCredentials(this.#activeLoxId, async cred => {
+ // The UpdateCredOption rust struct serializes to "req" rather than
+ // "request".
+ const { updated, req: request } = JSON.parse(
+ lazy.check_lox_pubkeys_update(pubKeys, prevKeys, cred)
+ );
+ if (!updated) {
+ return null;
+ }
// Try update credentials.
// NOTE: This should be re-callable if any step fails.
// TODO: Verify this.
@@ -444,9 +492,8 @@ class LoxImpl {
// is refactored to send repeat responses:
// https://gitlab.torproject.org/tpo/anti-censorship/lox/-/issues/74)
let response = await this.#makeRequest("updatecred", request);
- let cred = lazy.handle_update_cred(request, response, pubKeys);
- this.#changeCredentials(this.#activeLoxId, cred);
- }
+ return lazy.handle_update_cred(request, response, pubKeys);
+ });
}
// If we arrive here we haven't had other errors before, we can actually
// store the new public key.
@@ -648,7 +695,7 @@ class LoxImpl {
this.#pubKeyPromise = null;
this.#encTablePromise = null;
this.#constantsPromise = null;
- this.#credentials = {};
+ this.#credentials = new Map();
this.#events = [];
if (this.#backgroundInterval) {
clearInterval(this.#backgroundInterval);
@@ -712,9 +759,9 @@ class LoxImpl {
let loxId;
do {
loxId = this.#genLoxId();
- } while (Object.hasOwn(this.#credentials, loxId));
+ } while (this.#credentials.has(loxId));
// Set new credentials.
- this.#credentials[loxId] = cred;
+ this.#credentials.set(loxId, cred);
this.#store();
return loxId;
}
@@ -760,21 +807,17 @@ class LoxImpl {
if (level < 1) {
throw new LoxError(`Cannot generate invites at level ${level}`);
}
- let request = lazy.issue_invite(
- this.#getCredentials(loxId),
- this.#encTable,
- this.#pubKeys
- );
- let response = await this.#makeRequest("issueinvite", request);
- // TODO: Do we ever expect handle_issue_invite to fail (beyond
- // implementation bugs)?
- // TODO: What happens if #pubkeys for `issue_invite` differs from the value
- // when calling `handle_issue_invite`? Should we cache the value at the
- // start of this method?
- let cred = lazy.handle_issue_invite(request, response, this.#pubKeys);
- // Store the new credentials as a priority.
- this.#changeCredentials(loxId, cred);
+ const cred = await this.#changeCredentials(loxId, async cred => {
+ let request = lazy.issue_invite(cred, this.#encTable, this.#pubKeys);
+ let response = await this.#makeRequest("issueinvite", request);
+ // TODO: Do we ever expect handle_issue_invite to fail (beyond
+ // implementation bugs)?
+ // TODO: What happens if #pubkeys for `issue_invite` differs from the value
+ // when calling `handle_issue_invite`? Should we cache the value at the
+ // start of this method?
+ return lazy.handle_issue_invite(request, response, this.#pubKeys);
+ });
const invite = lazy.prepare_invite(cred);
this.#invites.push(invite);
@@ -804,35 +847,26 @@ class LoxImpl {
}
async #blockageMigration(loxId) {
- let request;
- try {
- request = lazy.check_blockage(this.#getCredentials(loxId), this.#pubKeys);
- } catch {
- lazy.logger.log("Not ready for blockage migration");
- return false;
- }
- let response = await this.#makeRequest("checkblockage", request);
- // NOTE: If a later method fails, we should be ok to re-call "checkblockage"
- // from the Lox authority. So there shouldn't be any adverse side effects to
- // loosing migrationCred.
- // TODO: Confirm this is safe to lose.
- const migrationCred = lazy.handle_check_blockage(
- this.#getCredentials(loxId),
- response
- );
- request = lazy.blockage_migration(
- this.#getCredentials(loxId),
- migrationCred,
- this.#pubKeys
- );
- response = await this.#makeRequest("blockagemigration", request);
- const cred = lazy.handle_blockage_migration(
- this.#getCredentials(loxId),
- response,
- this.#pubKeys
+ return Boolean(
+ await this.#changeCredentials(loxId, async cred => {
+ let request;
+ try {
+ request = lazy.check_blockage(cred, this.#pubKeys);
+ } catch {
+ lazy.logger.log("Not ready for blockage migration");
+ return null;
+ }
+ let response = await this.#makeRequest("checkblockage", request);
+ // NOTE: If a later method fails, we should be ok to re-call "checkblockage"
+ // from the Lox authority. So there shouldn't be any adverse side effects to
+ // loosing migrationCred.
+ // TODO: Confirm this is safe to lose.
+ const migrationCred = lazy.handle_check_blockage(cred, response);
+ request = lazy.blockage_migration(cred, migrationCred, this.#pubKeys);
+ response = await this.#makeRequest("blockagemigration", request);
+ return lazy.handle_blockage_migration(cred, response, this.#pubKeys);
+ })
);
- this.#changeCredentials(loxId, cred);
- return true;
}
/**
@@ -850,25 +884,26 @@ class LoxImpl {
// attempt trust promotion instead
return this.#trustMigration(loxId);
}
- let request = lazy.level_up(
- this.#getCredentials(loxId),
- this.#encTable,
- this.#pubKeys
+ return Boolean(
+ await this.#changeCredentials(loxId, async cred => {
+ let request = lazy.level_up(cred, this.#encTable, this.#pubKeys);
+ let response;
+ try {
+ response = await this.#makeRequest("levelup", request);
+ } catch (error) {
+ if (
+ error instanceof LoxError &&
+ error.code === LoxError.ErrorResponse
+ ) {
+ // Not an error.
+ lazy.logger.debug("Not ready for level up", error);
+ return null;
+ }
+ throw error;
+ }
+ return lazy.handle_level_up(request, response, this.#pubKeys);
+ })
);
- let response;
- try {
- response = await this.#makeRequest("levelup", request);
- } catch (error) {
- if (error instanceof LoxError && error.code === LoxError.ErrorResponse) {
- // Not an error.
- lazy.logger.debug("Not ready for level up", error);
- return false;
- }
- throw error;
- }
- const cred = lazy.handle_level_up(request, response, this.#pubKeys);
- this.#changeCredentials(loxId, cred);
- return true;
}
/**
@@ -884,42 +919,37 @@ class LoxImpl {
this.#getPubKeys();
return false;
}
- let request;
- try {
- request = lazy.trust_promotion(
- this.#getCredentials(loxId),
- this.#pubKeys
- );
- } catch (err) {
- // This function is called routinely during the background tasks without
- // previous checks on whether an upgrade is possible, so it is expected to
- // fail with a certain frequency. Therefore, do not relay the error to the
- // caller and just log the message for debugging.
- lazy.logger.debug("Not ready to upgrade", err);
- return false;
- }
+ return Boolean(
+ await this.#changeCredentials(loxId, async cred => {
+ let request;
+ try {
+ request = lazy.trust_promotion(cred, this.#pubKeys);
+ } catch (err) {
+ // This function is called routinely during the background tasks without
+ // previous checks on whether an upgrade is possible, so it is expected to
+ // fail with a certain frequency. Therefore, do not relay the error to the
+ // caller and just log the message for debugging.
+ lazy.logger.debug("Not ready to upgrade", err);
+ return null;
+ }
- let response = await this.#makeRequest("trustpromo", request);
- // FIXME: Store response to "trustpromo" in case handle_trust_promotion
- // or "trustmig" fails. The Lox authority will not accept a re-request
- // to "trustpromo" with the same credentials.
- let promoCred = lazy.handle_trust_promotion(request, response);
- lazy.logger.debug("Formatted promotion cred: ", promoCred);
-
- request = lazy.trust_migration(
- this.#getCredentials(loxId),
- promoCred,
- this.#pubKeys
+ let response = await this.#makeRequest("trustpromo", request);
+ // FIXME: Store response to "trustpromo" in case handle_trust_promotion
+ // or "trustmig" fails. The Lox authority will not accept a re-request
+ // to "trustpromo" with the same credentials.
+ let promoCred = lazy.handle_trust_promotion(request, response);
+ lazy.logger.debug("Formatted promotion cred: ", promoCred);
+
+ request = lazy.trust_migration(cred, promoCred, this.#pubKeys);
+ response = await this.#makeRequest("trustmig", request);
+ lazy.logger.debug("Got new credential: ", response);
+
+ // FIXME: Store response to "trustmig" in case handle_trust_migration
+ // fails. The Lox authority will not accept a re-request to "trustmig" with
+ // the same credentials.
+ return lazy.handle_trust_migration(request, response);
+ })
);
- response = await this.#makeRequest("trustmig", request);
- lazy.logger.debug("Got new credential: ", response);
-
- // FIXME: Store response to "trustmig" in case handle_trust_migration
- // fails. The Lox authority will not accept a re-request to "trustmig" with
- // the same credentials.
- let cred = lazy.handle_trust_migration(request, response);
- this.#changeCredentials(loxId, cred);
- return true;
}
/**
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8a4eb9…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8a4eb9…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/torbrowser-launcher][main] Allow the Wayland Proxy to run
by boklm (@boklm) 07 Nov '24
by boklm (@boklm) 07 Nov '24
07 Nov '24
boklm pushed to branch main at The Tor Project / Applications / torbrowser-launcher
Commits:
63962618 by anonym at 2024-11-07T10:07:22+01:00
Allow the Wayland Proxy to run
Details: https://mastransky.wordpress.com/2023/12/22/wayland-proxy-load-balancer/
- - - - -
1 changed file:
- apparmor/torbrowser.Browser.firefox
Changes:
=====================================
apparmor/torbrowser.Browser.firefox
=====================================
@@ -137,6 +137,11 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
# Required for Wayland display protocol support
owner /dev/shm/wayland.mozilla.ipc.[0-9]* rw,
+ # The Wayland Proxy prevents certain types of Wayland issues from
+ # crashing the client application. Details:
+ # https://mastransky.wordpress.com/2023/12/22/wayland-proxy-load-balancer/
+ owner @{run}/user/[0-9]*/wayland-proxy-@{pid} rw,
+
# Silence denial logs about permissions we don't need
deny @{HOME}/.cache/fontconfig/ rw,
deny @{HOME}/.cache/fontconfig/** rw,
View it on GitLab: https://gitlab.torproject.org/tpo/applications/torbrowser-launcher/-/commit…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/torbrowser-launcher/-/commit…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser-update-responses][main] alpha: new version, 14.0a10
by morgan (@morgan) 01 Nov '24
by morgan (@morgan) 01 Nov '24
01 Nov '24
morgan pushed to branch main at The Tor Project / Applications / mullvad-browser-update-responses
Commits:
00b72352 by Morgan at 2024-11-01T16:55:50+00:00
alpha: new version, 14.0a10
- - - - -
29 changed files:
- update_1/alpha/.htaccess
- + update_1/alpha/14.0a10-linux-x86_64-ALL.xml
- + update_1/alpha/14.0a10-macos-ALL.xml
- + update_1/alpha/14.0a10-windows-x86_64-ALL.xml
- − update_1/alpha/14.0a6-14.0a9-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a6-14.0a9-macos-ALL.xml
- − update_1/alpha/14.0a6-14.0a9-windows-x86_64-ALL.xml
- + update_1/alpha/14.0a7-14.0a10-linux-x86_64-ALL.xml
- + update_1/alpha/14.0a7-14.0a10-macos-ALL.xml
- + update_1/alpha/14.0a7-14.0a10-windows-x86_64-ALL.xml
- − update_1/alpha/14.0a7-14.0a9-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a7-14.0a9-macos-ALL.xml
- − update_1/alpha/14.0a7-14.0a9-windows-x86_64-ALL.xml
- + update_1/alpha/14.0a8-14.0a10-linux-x86_64-ALL.xml
- + update_1/alpha/14.0a8-14.0a10-macos-ALL.xml
- + update_1/alpha/14.0a8-14.0a10-windows-x86_64-ALL.xml
- − update_1/alpha/14.0a8-14.0a9-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a8-14.0a9-macos-ALL.xml
- − update_1/alpha/14.0a8-14.0a9-windows-x86_64-ALL.xml
- + update_1/alpha/14.0a9-14.0a10-linux-x86_64-ALL.xml
- + update_1/alpha/14.0a9-14.0a10-macos-ALL.xml
- + update_1/alpha/14.0a9-14.0a10-windows-x86_64-ALL.xml
- − update_1/alpha/14.0a9-linux-x86_64-ALL.xml
- − update_1/alpha/14.0a9-macos-ALL.xml
- − update_1/alpha/14.0a9-windows-x86_64-ALL.xml
- update_1/alpha/download-linux-x86_64.json
- update_1/alpha/download-macos.json
- update_1/alpha/download-windows-x86_64.json
- update_1/alpha/downloads.json
Changes:
=====================================
update_1/alpha/.htaccess
=====================================
@@ -1,22 +1,22 @@
RewriteEngine On
-RewriteRule ^[^/]+/14.0a9/ no-update.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.0a6/ALL 14.0a6-14.0a9-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.0a7/ALL 14.0a7-14.0a9-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/14.0a8/ALL 14.0a8-14.0a9-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 14.0a9-linux-x86_64-ALL.xml [last]
-RewriteRule ^Linux_x86_64-gcc3/ 14.0a9-linux-x86_64-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.0a6/ALL 14.0a6-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.0a7/ALL 14.0a7-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/14.0a8/ALL 14.0a8-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_x86_64-gcc3/ 14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.0a6/ALL 14.0a6-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.0a7/ALL 14.0a7-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/14.0a8/ALL 14.0a8-14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 14.0a9-macos-ALL.xml [last]
-RewriteRule ^Darwin_aarch64-gcc3/ 14.0a9-macos-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a6/ALL 14.0a6-14.0a9-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a7/ALL 14.0a7-14.0a9-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a8/ALL 14.0a8-14.0a9-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 14.0a9-windows-x86_64-ALL.xml [last]
-RewriteRule ^WINNT_x86_64-gcc3-x64/ 14.0a9-windows-x86_64-ALL.xml [last]
+RewriteRule ^[^/]+/14.0a10/ no-update.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.0a7/ALL 14.0a7-14.0a10-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.0a8/ALL 14.0a8-14.0a10-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/14.0a9/ALL 14.0a9-14.0a10-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/[^/]+/ALL 14.0a10-linux-x86_64-ALL.xml [last]
+RewriteRule ^Linux_x86_64-gcc3/ 14.0a10-linux-x86_64-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.0a7/ALL 14.0a7-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.0a8/ALL 14.0a8-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/14.0a9/ALL 14.0a9-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/[^/]+/ALL 14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_x86_64-gcc3/ 14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.0a7/ALL 14.0a7-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.0a8/ALL 14.0a8-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/14.0a9/ALL 14.0a9-14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/[^/]+/ALL 14.0a10-macos-ALL.xml [last]
+RewriteRule ^Darwin_aarch64-gcc3/ 14.0a10-macos-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a7/ALL 14.0a7-14.0a10-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a8/ALL 14.0a8-14.0a10-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/14.0a9/ALL 14.0a9-14.0a10-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/[^/]+/ALL 14.0a10-windows-x86_64-ALL.xml [last]
+RewriteRule ^WINNT_x86_64-gcc3-x64/ 14.0a10-windows-x86_64-ALL.xml [last]
=====================================
update_1/alpha/14.0a10-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…" size="114129405" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10_ALL.m…" size="129200778" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.0a10-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…" size="97553244" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.0a6-14.0a9-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9_…" size="114019445" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64--14.0a6…" size="9429081" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a6-14.0a9-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9_ALL.mar" size="129063226" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos--14.0a6-14.0a9…" size="14397074" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a6-14.0a9-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…" size="95007704" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64--14.0…" size="9768332" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a10-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…" size="114129405" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64--14.0a…" size="10956214" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a10-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10_ALL.m…" size="129200778" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos--14.0a7-14.0a…" size="16734321" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a10-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…" size="97553244" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64--14.…" size="15099219" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a9-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9_…" size="114019445" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64--14.0a7…" size="6282441" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a9-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9_ALL.mar" size="129063226" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos--14.0a7-14.0a9…" size="9540109" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a7-14.0a9-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…" size="95007704" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64--14.0…" size="5978110" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a10-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…" size="114129405" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64--14.0a…" size="8395504" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a10-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10_ALL.m…" size="129200778" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos--14.0a8-14.0a…" size="14072348" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a10-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…" size="97553244" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64--14.…" size="12468369" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a9-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9_…" size="114019445" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64--14.0a8…" size="3392543" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a9-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9_ALL.mar" size="129063226" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos--14.0a8-14.0a9…" size="6508272" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a8-14.0a9-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…" size="95007704" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64--14.0…" size="3304804" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.0a10-linux-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…" size="114129405" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64--14.0a…" size="8388128" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.0a10-macos-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10_ALL.m…" size="129200778" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos--14.0a9-14.0a…" size="14067444" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-14.0a10-windows-x86_64-ALL.xml
=====================================
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<updates><update type="minor" displayVersion="14.0a10" appVersion="14.0a10" platformVersion="128.4.0" buildID="20241031194338" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a10" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…" size="97553244" type="complete"></patch><patch URL="https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64--14.…" size="12458073" type="partial"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-linux-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9_…" size="114019445" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-macos-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9_ALL.mar" size="129063226" type="complete"></patch></update></updates>
=====================================
update_1/alpha/14.0a9-windows-x86_64-ALL.xml deleted
=====================================
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a9" appVersion="14.0a9" platformVersion="128.3.0" buildID="20241008203309" detailsURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" actions="showURL" openURL="https://github.com/mullvad/mullvad-browser/releases/14.0a9" minSupportedOSVersion="10.0"><patch URL="https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…" size="95007704" type="complete"></patch></update></updates>
=====================================
update_1/alpha/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9.…","git_tag":"mb-14.0a9-build1","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9.…","version":"14.0a9"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…","git_tag":"mb-14.0a10-build1","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…","version":"14.0a10"}
\ No newline at end of file
=====================================
update_1/alpha/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9.dmg","git_tag":"mb-14.0a9-build1","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9.dmg.asc","version":"14.0a9"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10.dmg","git_tag":"mb-14.0a10-build1","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10.dmg.a…","version":"14.0a10"}
\ No newline at end of file
=====================================
update_1/alpha/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…","git_tag":"mb-14.0a9-build1","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…","version":"14.0a9"}
\ No newline at end of file
+{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…","git_tag":"mb-14.0a10-build1","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…","version":"14.0a10"}
\ No newline at end of file
=====================================
update_1/alpha/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9.…","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-linux-x86_64-14.0a9.…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9.dmg","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-macos-14.0a9.dmg.asc"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…","sig":"https://cdn.mullvad.net/browser/14.0a9/mullvad-browser-windows-x86_64-14.0a…"}}},"tag":"mb-14.0a9-build1","version":"14.0a9"}
\ No newline at end of file
+{"downloads":{"linux-x86_64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-linux-x86_64-14.0a1…"}},"macos":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10.dmg","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-macos-14.0a10.dmg.a…"}},"win64":{"ALL":{"binary":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…","sig":"https://cdn.mullvad.net/browser/14.0a10/mullvad-browser-windows-x86_64-14.0…"}}},"tag":"mb-14.0a10-build1","version":"14.0a10"}
\ 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][tor-browser-128.4.0esr-14.5-1] 4 commits: dropme! Bug 32308: Use direct browser sizing for letterboxing.
by Pier Angelo Vendrame (@pierov) 01 Nov '24
by Pier Angelo Vendrame (@pierov) 01 Nov '24
01 Nov '24
Pier Angelo Vendrame pushed to branch tor-browser-128.4.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
385447ad by Pier Angelo Vendrame at 2024-10-31T19:10:50+01:00
dropme! Bug 32308: Use direct browser sizing for letterboxing.
Revert a couple of lines to make the backport easier.
- - - - -
4a33efb7 by hackademix at 2024-10-31T19:10:51+01:00
Bug 1556002 - Update initial window size and letterboxing stepping. r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D226598
- - - - -
036aaa05 by Pier Angelo Vendrame at 2024-10-31T19:13:04+01:00
fixup! Bug 32308: Use direct browser sizing for letterboxing.
Restore our changes after backporting MozBug 1556002.
- - - - -
8a4eb9d3 by Pier Angelo Vendrame at 2024-10-31T19:13:50+01:00
fixup! Firefox preference overrides.
Remove our custom letterboxing size, since they are going to be also
Firefox's default one after MozBug 1556002.
- - - - -
6 changed files:
- browser/app/profile/001-base-profile.js
- browser/components/resistfingerprinting/test/browser/browser_dynamical_window_rounding.js
- browser/components/resistfingerprinting/test/browser/browser_roundedWindow_open_max_inner.js
- browser/components/resistfingerprinting/test/browser/head.js
- modules/libpref/init/StaticPrefList.yaml
- toolkit/components/resistfingerprinting/RFPHelper.sys.mjs
Changes:
=====================================
browser/app/profile/001-base-profile.js
=====================================
@@ -445,9 +445,6 @@ pref("privacy.resistFingerprinting.letterboxing.gradient", true);
pref("privacy.resistFingerprinting.letterboxing.rememberSize", false);
// tor-browser#41695: how many warnings we show if user closes them without restoring the window size
pref("privacy.resistFingerprinting.resizeWarnings", 3);
-// tor-browser#33282: new windows start at 1400x900 when there's enough screen space, otherwise down by 200x100 blocks
-pref("privacy.window.maxInnerWidth", 1400);
-pref("privacy.window.maxInnerHeight", 900);
// Enforce Network Information API as disabled
pref("dom.netinfo.enabled", false);
pref("network.http.referer.defaultPolicy", 2); // Bug 32948: Make referer behavior consistent regardless of private browing mode status
=====================================
browser/components/resistfingerprinting/test/browser/browser_dynamical_window_rounding.js
=====================================
@@ -53,8 +53,8 @@ function checkForDefaultSetting(
aRealHeight
) {
// We can get the rounded size by subtracting twice the margin.
- let targetWidth = aRealWidth - 2 * RFPHelper.steppedRange(aRealWidth);
- let targetHeight = aRealHeight - 2 * RFPHelper.steppedRange(aRealHeight);
+ let targetWidth = aRealWidth - 2 * RFPHelper.steppedSize(aRealWidth, true);
+ let targetHeight = aRealHeight - 2 * RFPHelper.steppedSize(aRealHeight);
// This platform-specific code is explained in the large comment below.
if (getPlatform() != "linux") {
=====================================
browser/components/resistfingerprinting/test/browser/browser_roundedWindow_open_max_inner.js
=====================================
@@ -4,23 +4,26 @@
* maximum values.
*/
+let targetWidth = Services.prefs.getIntPref("privacy.window.maxInnerWidth");
+let targetHeight = Services.prefs.getIntPref("privacy.window.maxInnerHeight");
+
OpenTest.run([
{
- settingWidth: 1025,
- settingHeight: 1050,
- targetWidth: 1000,
- targetHeight: 1000,
+ settingWidth: targetWidth + 25,
+ settingHeight: targetHeight + 50,
+ targetWidth,
+ targetHeight,
},
{
settingWidth: 9999,
settingHeight: 9999,
- targetWidth: 1000,
- targetHeight: 1000,
+ targetWidth,
+ targetHeight,
},
{
- settingWidth: 999,
- settingHeight: 999,
- targetWidth: 1000,
- targetHeight: 1000,
+ settingWidth: targetWidth - 1,
+ settingHeight: targetHeight - 1,
+ targetWidth,
+ targetHeight,
},
]);
=====================================
browser/components/resistfingerprinting/test/browser/head.js
=====================================
@@ -306,19 +306,28 @@ async function calcMaximumAvailSize(aChromeWidth, aChromeHeight) {
let availWidth = window.screen.availWidth;
let availHeight = window.screen.availHeight;
- // Ideally, we would round the window size as 1000x1000. But the available
- // screen space might not suffice. So, we decide the size according to the
- // available screen size.
- let availContentWidth = Math.min(1000, availWidth - chromeUIWidth);
+ // Ideally, we would round the window size as
+ // privacy.window.maxInnerWidth x privacy.window.maxInnerHeight. But the
+ // available screen space might not suffice. So, we decide the size according
+ // to the available screen size.
+ let maxInnerWidth = Services.prefs.getIntPref("privacy.window.maxInnerWidth");
+ let maxInnerHeight = Services.prefs.getIntPref(
+ "privacy.window.maxInnerHeight"
+ );
+
+ let availContentWidth = Math.min(maxInnerWidth, availWidth - chromeUIWidth);
let availContentHeight;
// If it is GTK window, we would consider the system decorations when we
// calculating avail content height since the system decorations won't be
// reported when we get available screen dimensions.
if (AppConstants.MOZ_WIDGET_GTK) {
- availContentHeight = Math.min(1000, -40 + availHeight - chromeUIHeight);
+ availContentHeight = Math.min(
+ maxInnerHeight,
+ -40 + availHeight - chromeUIHeight
+ );
} else {
- availContentHeight = Math.min(1000, availHeight - chromeUIHeight);
+ availContentHeight = Math.min(maxInnerHeight, availHeight - chromeUIHeight);
}
// Rounded the desire size to the nearest 200x100.
=====================================
modules/libpref/init/StaticPrefList.yaml
=====================================
@@ -14352,12 +14352,12 @@
- name: privacy.window.maxInnerWidth
type: int32_t
- value: 1000
+ value: 1400
mirror: always
- name: privacy.window.maxInnerHeight
type: int32_t
- value: 1000
+ value: 900
mirror: always
- name: privacy.sanitize.useOldClearHistoryDialog
=====================================
toolkit/components/resistfingerprinting/RFPHelper.sys.mjs
=====================================
@@ -522,14 +522,14 @@ class _RFPHelper {
/**
* Given a width or height, rounds it with the proper stepping.
*/
- steppedSize(aDimension, isWidth = false) {
+ steppedSize(aDimension, aIsWidth = false) {
let stepping;
if (aDimension <= 50) {
return 0;
} else if (aDimension <= 500) {
stepping = 50;
} else if (aDimension <= 1600) {
- stepping = isWidth ? 200 : 100;
+ stepping = aIsWidth ? 200 : 100;
} else {
stepping = 200;
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/3f690c…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/3f690c…
You're receiving this email because of your account on gitlab.torproject.org.
1
0