morgan pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
6c29db65 by Caspar Schutijser at 2025-04-08T19:52:46+00:00
fixup! TB 40597: Implement TorSettings module
TB 43628: TorConnect: handle unavailability of NetworkLinkService API
Fixes TorConnect on e.g. OpenBSD.
- - - - -
1 changed file:
- toolkit/modules/TorConnect.sys.mjs
Changes:
=====================================
toolkit/modules/TorConnect.sys.mjs
=====================================
@@ -16,7 +16,9 @@ ChromeUtils.defineESModuleGetters(lazy, {
});
ChromeUtils.defineLazyGetter(lazy, "NetworkLinkService", () => {
- return Cc["@mozilla.org/network/network-link-service;1"].getService(
+ // NetworkLinkService is unavailable on some platforms like openBSD.
+ // See tor-browser#43628.
+ return Cc["@mozilla.org/network/network-link-service;1"]?.getService(
Ci.nsINetworkLinkService
);
});
@@ -888,7 +890,7 @@ export const TorConnect = {
*/
_updateInternetStatus() {
let newStatus;
- if (lazy.NetworkLinkService.linkStatusKnown) {
+ if (lazy.NetworkLinkService?.linkStatusKnown) {
newStatus = lazy.NetworkLinkService.isLinkUp
? InternetStatus.Online
: InternetStatus.Offline;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6c29db6…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6c29db6…
You're receiving this email because of your account on gitlab.torproject.org.
morgan pushed to branch mullvad-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
9762aa0d by Henry Wilkes at 2025-04-08T20:09:01+01:00
fixup! MB 112: Updater customization for Mullvad Browser
MB 411: Drop mullvadbrowser.post_update.url.
Also, no longer require an override page to be set to open
about:mullvad-browser after an update.
- - - - -
ca49f66b by Henry Wilkes at 2025-04-08T20:09:01+01:00
fixup! MB 39: Add home page about:mullvad-browser
MB 411: Use the same update URL in about:mullvad-browser as the about
dialog.
- - - - -
02beae18 by Henry Wilkes at 2025-04-08T20:09:02+01:00
MB 419: Mullvad Browser migration procedures.
This commit implements the the Mullvad Browser's version of _migrateUI.
- - - - -
e0823401 by Henry Wilkes at 2025-04-08T20:38:19+01:00
fixup! MB 1: Mullvad Browser branding
MB 411: Set startup.homepage_override_url on mb-nightly to be used
instead of app.releaseNotesURL.aboutDialog.
- - - - -
4 changed files:
- browser/branding/mb-nightly/pref/firefox-branding.js
- browser/components/BrowserContentHandler.sys.mjs
- browser/components/BrowserGlue.sys.mjs
- browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs
Changes:
=====================================
browser/branding/mb-nightly/pref/firefox-branding.js
=====================================
@@ -4,7 +4,11 @@
// This file contains branding-specific prefs.
-pref("startup.homepage_override_url", "");
+// startup.homepage_override_url is used in about:mullvad-browser after an
+// update because app.releaseNotesURL.aboutDialog is about:blank for mb-nightly.
+// I.e. we want the update to show in about:mullvad-browser, whilst it is not
+// shown in the about dialog. See mullvad-browser#411.
+pref("startup.homepage_override_url", "https://nightlies.tbb.torproject.org/");
// app.update.url.manual: URL user can browse to manually if for some reason
// all update installation attempts fail.
// app.update.url.details: a default value for the "More information about this
=====================================
browser/components/BrowserContentHandler.sys.mjs
=====================================
@@ -876,18 +876,19 @@ nsBrowserContentHandler.prototype = {
"%OLD_BASE_BROWSER_VERSION%",
old_forkVersion
);
- if (overridePage && AppConstants.BASE_BROWSER_UPDATE) {
+ if (AppConstants.BASE_BROWSER_UPDATE) {
+ // NOTE: We ignore any overridePage value, which can come from the
+ // openURL attribute within the updates.xml file.
// Mullvad Browser, copied from tor-browser: Instead of opening
// the post-update "override page" directly, we include a link in
// about:mullvad-browser.
- prefb.setCharPref("mullvadbrowser.post_update.url", overridePage);
prefb.setBoolPref(
"mullvadbrowser.post_update.shouldNotify",
true
);
- // If the user's homepage is about:tor, we will inform them
- // about the update on that page; otherwise, we arrange to
- // open about:tor in a secondary tab.
+ // If the user's homepage is about:mullvad-browser, we will inform
+ // them about the update on that page; otherwise, we arrange to
+ // open about:mullvad-browser in a secondary tab.
overridePage =
startPage === "about:mullvad-browser"
? ""
=====================================
browser/components/BrowserGlue.sys.mjs
=====================================
@@ -1515,6 +1515,9 @@ BrowserGlue.prototype = {
// Base Browser-specific version of _migrateUI.
this._migrateUIBB();
+ // Mullvad Browser-specific version of _migrateUI.
+ this._migrateUIMB();
+
if (!Services.prefs.prefHasUserValue(PREF_PDFJS_ISDEFAULT_CACHE_STATE)) {
lazy.PdfJs.checkIsDefault(this._isNewProfile);
}
@@ -4694,6 +4697,37 @@ BrowserGlue.prototype = {
Services.prefs.setIntPref(MIGRATION_PREF, MIGRATION_VERSION);
},
+ // Use this method for any MB migration that can be run just before showing
+ // the UI.
+ // Anything that critically needs to be migrated earlier should not use this.
+ _migrateUIMB() {
+ // Version 1: Mullvad Browser 14.5a6: Clear home page update url preference
+ // (mullvad-browser#411).
+ const MB_MIGRATION_VERSION = 1;
+ const MIGRATION_PREF = "mullvadbrowser.migration.version";
+
+ // If we decide to force updating users to pass through any version
+ // following 14.5, we can remove this check, and check only whether
+ // MIGRATION_PREF has a user value, like Mozilla does.
+ if (this._isNewProfile) {
+ // Do not migrate fresh profiles
+ Services.prefs.setIntPref(MIGRATION_PREF, MB_MIGRATION_VERSION);
+ return;
+ } else if (this._isNewProfile === undefined) {
+ // If this happens, check if upstream updated their function and do not
+ // set this member anymore!
+ console.error("_migrateUIMB: this._isNewProfile is undefined.");
+ }
+
+ const currentVersion = Services.prefs.getIntPref(MIGRATION_PREF, 0);
+
+ if (currentVersion < 1) {
+ Services.prefs.clearUserPref("mullvadbrowser.post_update.url");
+ }
+
+ Services.prefs.setIntPref(MIGRATION_PREF, MB_MIGRATION_VERSION);
+ },
+
async _showUpgradeDialog() {
const data = await lazy.OnboardingMessageProvider.getUpgradeMessage();
const { gBrowser } = lazy.BrowserWindowTracker.getTopWindow();
=====================================
browser/components/mullvad-browser/AboutMullvadBrowserParent.sys.mjs
=====================================
@@ -5,21 +5,28 @@ export class AboutMullvadBrowserParent extends JSWindowActorParent {
receiveMessage(message) {
const shouldNotifyPref = "mullvadbrowser.post_update.shouldNotify";
switch (message.name) {
- case "AboutMullvadBrowser:GetUpdateData":
+ case "AboutMullvadBrowser:GetUpdateData": {
if (!Services.prefs.getBoolPref(shouldNotifyPref, false)) {
return Promise.resolve(null);
}
Services.prefs.clearUserPref(shouldNotifyPref);
+ // Try use the same URL as the about dialog. See mullvad-browser#411.
+ let updateURL = Services.urlFormatter.formatURLPref(
+ "app.releaseNotesURL.aboutDialog"
+ );
+ if (updateURL === "about:blank") {
+ updateURL = Services.urlFormatter.formatURLPref(
+ "startup.homepage_override_url"
+ );
+ }
+
return Promise.resolve({
version: Services.prefs.getCharPref(
"browser.startup.homepage_override.mullvadbrowser.version"
),
- url:
- Services.prefs.getCharPref("mullvadbrowser.post_update.url", "") ||
- Services.urlFormatter.formatURLPref(
- "startup.homepage_override_url"
- ),
+ url: updateURL,
});
+ }
}
return undefined;
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/26…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/26…
You're receiving this email because of your account on gitlab.torproject.org.
Dan Ballard pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
6b951761 by Dan Ballard at 2025-04-08T10:48:15-07:00
BB 43544: DoH pane undefined error in Privacy and Security
From: Sarah Jamie Lewis <sarah(a)openprivacy.ca>
Date: Fri, 28 Feb 2025 09:30:45 -0800
Subject: [PATCH 1/1] DoH Settings: Check for nulll gParentalControlsService
When the parental controls service is disabled in a build, the DoH
settings now display the correct stauts when Increased or Max Protection
is enabled.
Previously, selecting either of these options would cause DoH to be
enabled, but the "Status" and "Provider" fields would not be properly
populated, due to a check on the gParentalControlsService causing an
error.
This check is now identical to the same check in DownloadIntegration.sys.mjs
Apply 1 suggestion(s) to 1 file(s)
Co-authored-by: ma1 <giorgio(a)maone.net>
- - - - -
1 changed file:
- browser/components/preferences/privacy.js
Changes:
=====================================
browser/components/preferences/privacy.js
=====================================
@@ -54,11 +54,12 @@ ChromeUtils.defineLazyGetter(lazy, "AboutLoginsL10n", () => {
return new Localization(["branding/brand.ftl", "browser/aboutLogins.ftl"]);
});
-XPCOMUtils.defineLazyServiceGetter(
- lazy,
- "gParentalControlsService",
- "@mozilla.org/parental-controls-service;1",
- "nsIParentalControlsService"
+ChromeUtils.defineLazyGetter(lazy, "gParentalControlsService", () =>
+ "@mozilla.org/parental-controls-service;1" in Cc
+ ? Cc["@mozilla.org/parental-controls-service;1"].createInstance(
+ Ci.nsIParentalControlsService
+ )
+ : null
);
XPCOMUtils.defineLazyScriptGetter(
@@ -741,7 +742,7 @@ var gPrivacyPane = {
mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY
) {
- if (lazy.gParentalControlsService.parentalControlsEnabled) {
+ if (lazy.gParentalControlsService?.parentalControlsEnabled) {
return "preferences-doh-status-not-active";
}
let confirmationState = Services.dns.currentTrrConfirmationState;
@@ -764,7 +765,7 @@ var gPrivacyPane = {
if (
(mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY) &&
- lazy.gParentalControlsService.parentalControlsEnabled
+ lazy.gParentalControlsService?.parentalControlsEnabled
) {
errReason = Services.dns.getTRRSkipReasonName(
Ci.nsITRRSkipReason.TRR_PARENTAL_CONTROL
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6b95176…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/6b95176…
You're receiving this email because of your account on gitlab.torproject.org.
Dan Ballard pushed to branch mullvad-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
26691804 by Dan Ballard at 2025-04-08T10:40:04-07:00
BB 43544: DoH pane undefined error in Privacy and Security
From: Sarah Jamie Lewis <sarah(a)openprivacy.ca>
Date: Fri, 28 Feb 2025 09:30:45 -0800
Subject: [PATCH 1/1] DoH Settings: Check for nulll gParentalControlsService
When the parental controls service is disabled in a build, the DoH
settings now display the correct stauts when Increased or Max Protection
is enabled.
Previously, selecting either of these options would cause DoH to be
enabled, but the "Status" and "Provider" fields would not be properly
populated, due to a check on the gParentalControlsService causing an
error.
This check is now identical to the same check in DownloadIntegration.sys.mjs
Apply 1 suggestion(s) to 1 file(s)
Co-authored-by: ma1 <giorgio(a)maone.net>
- - - - -
1 changed file:
- browser/components/preferences/privacy.js
Changes:
=====================================
browser/components/preferences/privacy.js
=====================================
@@ -54,11 +54,12 @@ ChromeUtils.defineLazyGetter(lazy, "AboutLoginsL10n", () => {
return new Localization(["branding/brand.ftl", "browser/aboutLogins.ftl"]);
});
-XPCOMUtils.defineLazyServiceGetter(
- lazy,
- "gParentalControlsService",
- "@mozilla.org/parental-controls-service;1",
- "nsIParentalControlsService"
+ChromeUtils.defineLazyGetter(lazy, "gParentalControlsService", () =>
+ "@mozilla.org/parental-controls-service;1" in Cc
+ ? Cc["@mozilla.org/parental-controls-service;1"].createInstance(
+ Ci.nsIParentalControlsService
+ )
+ : null
);
// TODO: module import via ChromeUtils.defineModuleGetter
@@ -735,7 +736,7 @@ var gPrivacyPane = {
mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY
) {
- if (lazy.gParentalControlsService.parentalControlsEnabled) {
+ if (lazy.gParentalControlsService?.parentalControlsEnabled) {
return "preferences-doh-status-not-active";
}
let confirmationState = Services.dns.currentTrrConfirmationState;
@@ -758,7 +759,7 @@ var gPrivacyPane = {
if (
(mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY) &&
- lazy.gParentalControlsService.parentalControlsEnabled
+ lazy.gParentalControlsService?.parentalControlsEnabled
) {
errReason = Services.dns.getTRRSkipReasonName(
Ci.nsITRRSkipReason.TRR_PARENTAL_CONTROL
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/266…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/266…
You're receiving this email because of your account on gitlab.torproject.org.
Pier Angelo Vendrame pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
a6eda23a by Henry Wilkes at 2025-04-08T17:23:52+00:00
fixup! TB 41668: Tweaks to the Base Browser updater for Tor Browser
TB 43567: Drop torbrowser.post_update.url.
Also, no longer require an override page to be set to open about:tor
after an update.
- - - - -
4ef1a8dd by Henry Wilkes at 2025-04-08T17:23:52+00:00
fixup! TB 7494: Create local home page for TBB.
TB 43567: Use the same update URL in about:tor as the about dialog.
- - - - -
bb06f3c6 by Henry Wilkes at 2025-04-08T17:23:52+00:00
fixup! TB 41435: Add a Tor Browser migration function
TB 43567: Clear torbrowser.post_update.url.
- - - - -
3 changed files:
- browser/components/BrowserContentHandler.sys.mjs
- browser/components/BrowserGlue.sys.mjs
- browser/components/abouttor/AboutTorMessage.sys.mjs
Changes:
=====================================
browser/components/BrowserContentHandler.sys.mjs
=====================================
@@ -876,18 +876,12 @@ nsBrowserContentHandler.prototype = {
"%OLD_BASE_BROWSER_VERSION%",
old_forkVersion
);
- if (overridePage && AppConstants.BASE_BROWSER_UPDATE) {
+ if (AppConstants.BASE_BROWSER_UPDATE) {
// Tor Browser: Instead of opening the post-update "override page"
// directly, we ensure that about:tor will be opened, which should
// notify the user that their browser was updated.
- //
- // The overridePage comes from the openURL attribute within the
- // updates.xml file or, if no showURL action is present, from the
- // startup.homepage_override_url pref.
- Services.prefs.setCharPref(
- "torbrowser.post_update.url",
- overridePage
- );
+ // NOTE: We ignore any overridePage value, which can come from the
+ // openURL attribute within the updates.xml file.
Services.prefs.setBoolPref(
"torbrowser.post_update.shouldNotify",
true
=====================================
browser/components/BrowserGlue.sys.mjs
=====================================
@@ -4830,7 +4830,9 @@ BrowserGlue.prototype = {
// Version 6: Tor Browser 14.5a3: Clear preference for TorSettings that is
// no longer used (tor-browser#41921).
// Drop unused TorConnect setting (tor-browser#43462).
- const TBB_MIGRATION_VERSION = 6;
+ // Version 6: Tor Browser 14.5a6: Clear home page update url preference
+ // (tor-browser#43567).
+ const TBB_MIGRATION_VERSION = 7;
const MIGRATION_PREF = "torbrowser.migration.version";
// If we decide to force updating users to pass through any version
@@ -4917,6 +4919,10 @@ BrowserGlue.prototype = {
Services.prefs.clearUserPref("torbrowser.bootstrap.allow_internet_test");
}
+ if (currentVersion < 7) {
+ Services.prefs.clearUserPref("torbrowser.post_update.url");
+ }
+
Services.prefs.setIntPref(MIGRATION_PREF, TBB_MIGRATION_VERSION);
},
=====================================
browser/components/abouttor/AboutTorMessage.sys.mjs
=====================================
@@ -26,13 +26,20 @@ export const AboutTorMessage = {
const shouldNotifyPref = "torbrowser.post_update.shouldNotify";
if (Services.prefs.getBoolPref(shouldNotifyPref, false)) {
Services.prefs.clearUserPref(shouldNotifyPref);
+ // Try use the same URL as the about dialog. See tor-browser#43567.
+ let updateURL = Services.urlFormatter.formatURLPref(
+ "app.releaseNotesURL.aboutDialog"
+ );
+ if (updateURL === "about:blank") {
+ updateURL = Services.urlFormatter.formatURLPref(
+ "startup.homepage_override_url"
+ );
+ }
return {
updateVersion: Services.prefs.getCharPref(
"browser.startup.homepage_override.torbrowser.version"
),
- updateURL:
- Services.prefs.getCharPref("torbrowser.post_update.url", "") ||
- Services.urlFormatter.formatURLPref("startup.homepage_override_url"),
+ updateURL,
};
}
const number = this._count;
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f8f40d…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/f8f40d…
You're receiving this email because of your account on gitlab.torproject.org.
ma1 pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
f8f40d46 by Henry Wilkes at 2025-04-08T09:54:30+01:00
fixup! Base Browser strings
TB 43624: Tweak the string letterboxing-size-status.
NOTE: The string has not yet reached translators, so we do not need to
change the ID.
- - - - -
1 changed file:
- toolkit/locales/en-US/toolkit/global/base-browser.ftl
Changes:
=====================================
toolkit/locales/en-US/toolkit/global/base-browser.ftl
=====================================
@@ -17,14 +17,15 @@ basebrowser-rfp-maximize-warning-message = Maximizing the browser window can all
basebrowser-rfp-restore-window-size-button-label = Restore
basebrowser-rfp-restore-window-size-button-ak = R
-## Letterbox size indicator (appearing on the bottom of the viewport)
+## Letterboxing size indicator.
-# Shows the current tab's letterboxed vieport size when resizing.
-# "Letterbox(ing)" should be treated as a feature/product name, and likely not changed in other languages.
+# Shows the current tab's Letterboxing dimensions in the bottom corner when resizing the window.
+# The word "Letterboxing" is the proper noun for the Tor Browser feature, and is therefore capitalised.
+# "Letterboxing" should be treated as a feature/product name, and likely not changed in other languages.
# The "×" symbol is a unicode (U+00D7) symbol for multiply.
# $width (Number) - The window width. The "NUMBER" function will format this number to the same locale, and the "useGrouping" option will remove grouping symbols, like thousand separators.
# $height (Number) - The window height.
-letterboxing-size-status = Letterbox size: { NUMBER($width, useGrouping: "false") } × { NUMBER($height, useGrouping: "false") }
+letterboxing-size-status = Letterboxing size: { NUMBER($width, useGrouping: "false") } × { NUMBER($height, useGrouping: "false") }
## Tooltip for the about:addons recommended badge
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f8f40d4…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/f8f40d4…
You're receiving this email because of your account on gitlab.torproject.org.
ma1 pushed to branch mullvad-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Mullvad Browser
Commits:
f2805060 by Ray Kraesig at 2025-04-07T23:54:40+02:00
Bug 1950056 - extend use of FOS_NODEREFERENCELINKS r=Gijs,win-reviewers,gstoll
In the modern era of user-customizable Quick Access sidebars on every
file dialog, navigating via `.lnk` files is rather less useful than it
was twenty years ago.
Disable link-following in file-open dialogs by default, to prevent any
of the usual security issues involving symlink smuggling. Allow
overriding this behavior via a pref, for users who don't care.
(File-save dialogs have a more nuanced guard against that sort of thing;
this patch doesn't affect that.)
Differential Revision: https://phabricator.services.mozilla.com/D239833
- - - - -
2 changed files:
- modules/libpref/init/StaticPrefList.yaml
- widget/windows/nsFilePicker.cpp
Changes:
=====================================
modules/libpref/init/StaticPrefList.yaml
=====================================
@@ -16899,6 +16899,17 @@
value: 0
mirror: always
+# Whether to follow `.lnk` (etc.) shortcuts in the Windows file-open dialog.
+#
+# Valid values:
+# * 0: never
+# * 1: always
+# * 2: auto
+- name: widget.windows.follow_shortcuts_on_file_open
+ type: RelaxedAtomicInt32
+ value: 2
+ mirror: always
+
# The number of messages of each type to keep for display in
# about:windows-messages
- name: widget.windows.messages_to_log
=====================================
widget/windows/nsFilePicker.cpp
=====================================
@@ -614,19 +614,29 @@ nsFilePicker::ShowFilePicker(const nsString& aInitialDir) {
// mode specific
switch (mMode) {
+ case modeOpenMultiple:
+ fos |= FOS_ALLOWMULTISELECT;
+ [[fallthrough]];
+
case modeOpen:
fos |= FOS_FILEMUSTEXIST;
- break;
-
- case modeOpenMultiple:
- fos |= FOS_FILEMUSTEXIST | FOS_ALLOWMULTISELECT;
+ switch (mozilla::StaticPrefs::
+ widget_windows_follow_shortcuts_on_file_open()) {
+ case 1:
+ break;
+ default:
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeSave:
fos |= FOS_NOREADONLYRETURN;
- // Don't follow shortcuts when saving a shortcut, this can be used
- // to trick users (bug 271732)
- if (IsDefaultPathLink()) fos |= FOS_NODEREFERENCELINKS;
+ // Don't follow shortcuts when saving a shortcut; this can be used to
+ // trick users (bug 271732). _Do_ follow shortcuts when not saving a
+ // shortcut (bug 283730).
+ if (IsDefaultPathLink()) {
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeGetFolder:
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f28…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f28…
You're receiving this email because of your account on gitlab.torproject.org.
ma1 pushed to branch base-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
0d535706 by Ray Kraesig at 2025-04-07T23:54:35+02:00
Bug 1950056 - extend use of FOS_NODEREFERENCELINKS r=Gijs,win-reviewers,gstoll
In the modern era of user-customizable Quick Access sidebars on every
file dialog, navigating via `.lnk` files is rather less useful than it
was twenty years ago.
Disable link-following in file-open dialogs by default, to prevent any
of the usual security issues involving symlink smuggling. Allow
overriding this behavior via a pref, for users who don't care.
(File-save dialogs have a more nuanced guard against that sort of thing;
this patch doesn't affect that.)
Differential Revision: https://phabricator.services.mozilla.com/D239833
- - - - -
2 changed files:
- modules/libpref/init/StaticPrefList.yaml
- widget/windows/nsFilePicker.cpp
Changes:
=====================================
modules/libpref/init/StaticPrefList.yaml
=====================================
@@ -16899,6 +16899,17 @@
value: 0
mirror: always
+# Whether to follow `.lnk` (etc.) shortcuts in the Windows file-open dialog.
+#
+# Valid values:
+# * 0: never
+# * 1: always
+# * 2: auto
+- name: widget.windows.follow_shortcuts_on_file_open
+ type: RelaxedAtomicInt32
+ value: 2
+ mirror: always
+
# The number of messages of each type to keep for display in
# about:windows-messages
- name: widget.windows.messages_to_log
=====================================
widget/windows/nsFilePicker.cpp
=====================================
@@ -614,19 +614,29 @@ nsFilePicker::ShowFilePicker(const nsString& aInitialDir) {
// mode specific
switch (mMode) {
+ case modeOpenMultiple:
+ fos |= FOS_ALLOWMULTISELECT;
+ [[fallthrough]];
+
case modeOpen:
fos |= FOS_FILEMUSTEXIST;
- break;
-
- case modeOpenMultiple:
- fos |= FOS_FILEMUSTEXIST | FOS_ALLOWMULTISELECT;
+ switch (mozilla::StaticPrefs::
+ widget_windows_follow_shortcuts_on_file_open()) {
+ case 1:
+ break;
+ default:
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeSave:
fos |= FOS_NOREADONLYRETURN;
- // Don't follow shortcuts when saving a shortcut, this can be used
- // to trick users (bug 271732)
- if (IsDefaultPathLink()) fos |= FOS_NODEREFERENCELINKS;
+ // Don't follow shortcuts when saving a shortcut; this can be used to
+ // trick users (bug 271732). _Do_ follow shortcuts when not saving a
+ // shortcut (bug 283730).
+ if (IsDefaultPathLink()) {
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeGetFolder:
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0d53570…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/0d53570…
You're receiving this email because of your account on gitlab.torproject.org.
ma1 pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
3ab7b290 by Ray Kraesig at 2025-04-07T23:53:51+02:00
Bug 1950056 - extend use of FOS_NODEREFERENCELINKS r=Gijs,win-reviewers,gstoll
In the modern era of user-customizable Quick Access sidebars on every
file dialog, navigating via `.lnk` files is rather less useful than it
was twenty years ago.
Disable link-following in file-open dialogs by default, to prevent any
of the usual security issues involving symlink smuggling. Allow
overriding this behavior via a pref, for users who don't care.
(File-save dialogs have a more nuanced guard against that sort of thing;
this patch doesn't affect that.)
Differential Revision: https://phabricator.services.mozilla.com/D239833
- - - - -
2 changed files:
- modules/libpref/init/StaticPrefList.yaml
- widget/windows/nsFilePicker.cpp
Changes:
=====================================
modules/libpref/init/StaticPrefList.yaml
=====================================
@@ -16907,6 +16907,17 @@
value: 0
mirror: always
+# Whether to follow `.lnk` (etc.) shortcuts in the Windows file-open dialog.
+#
+# Valid values:
+# * 0: never
+# * 1: always
+# * 2: auto
+- name: widget.windows.follow_shortcuts_on_file_open
+ type: RelaxedAtomicInt32
+ value: 2
+ mirror: always
+
# The number of messages of each type to keep for display in
# about:windows-messages
- name: widget.windows.messages_to_log
=====================================
widget/windows/nsFilePicker.cpp
=====================================
@@ -614,19 +614,29 @@ nsFilePicker::ShowFilePicker(const nsString& aInitialDir) {
// mode specific
switch (mMode) {
+ case modeOpenMultiple:
+ fos |= FOS_ALLOWMULTISELECT;
+ [[fallthrough]];
+
case modeOpen:
fos |= FOS_FILEMUSTEXIST;
- break;
-
- case modeOpenMultiple:
- fos |= FOS_FILEMUSTEXIST | FOS_ALLOWMULTISELECT;
+ switch (mozilla::StaticPrefs::
+ widget_windows_follow_shortcuts_on_file_open()) {
+ case 1:
+ break;
+ default:
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeSave:
fos |= FOS_NOREADONLYRETURN;
- // Don't follow shortcuts when saving a shortcut, this can be used
- // to trick users (bug 271732)
- if (IsDefaultPathLink()) fos |= FOS_NODEREFERENCELINKS;
+ // Don't follow shortcuts when saving a shortcut; this can be used to
+ // trick users (bug 271732). _Do_ follow shortcuts when not saving a
+ // shortcut (bug 283730).
+ if (IsDefaultPathLink()) {
+ fos |= FOS_NODEREFERENCELINKS;
+ }
break;
case modeGetFolder:
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3ab7b29…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3ab7b29…
You're receiving this email because of your account on gitlab.torproject.org.
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
73f4d593 by Pier Angelo Vendrame at 2025-04-07T16:00:21+02:00
Bug 41426: Set the Lyrebird version.
- - - - -
1 changed file:
- projects/lyrebird/build
Changes:
=====================================
projects/lyrebird/build
=====================================
@@ -20,7 +20,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %]
tar -xf $rootdir/[% c('input_files_by_name/go_vendor') %]
-go build -mod=vendor -ldflags '-s[% IF c("var/android") %] -checklinkname=0[% END %]' ./cmd/lyrebird
+go build -mod=vendor -ldflags '-X main.lyrebirdVersion=[% c("version") %] -s[% IF c("var/android") %] -checklinkname=0[% END %]' ./cmd/lyrebird
cp -a lyrebird[% IF c("var/windows") %].exe[% END %] $distdir
go-licenses save ./cmd/lyrebird --save_path=$distdir/licenses
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/7…
You're receiving this email because of your account on gitlab.torproject.org.
Pier Angelo Vendrame pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
284a7380 by Pier Angelo Vendrame at 2025-04-07T14:57:55+02:00
Bug 41425: Move Snowflake to a ClientTransportPlugin on its own.
It seems tor passes all the transport it expects a certain PT to
provide.
For this reason, Lyrebird disabled proxy support also when running in
obfs4 or meek mode.
Moving Snowflake to another ClientTransportPlugin solves the issue.
- - - - -
1 changed file:
- projects/tor-expert-bundle/pt_config.json
Changes:
=====================================
projects/tor-expert-bundle/pt_config.json
=====================================
@@ -1,7 +1,8 @@
{
"recommendedDefault" : "obfs4",
"pluggableTransports" : {
- "lyrebird" : "ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit,snowflake,webtunnel exec ${pt_path}lyrebird${pt_extension}",
+ "lyrebird" : "ClientTransportPlugin meek_lite,obfs2,obfs3,obfs4,scramblesuit,webtunnel exec ${pt_path}lyrebird${pt_extension}",
+ "snowflake": "ClientTransportPlugin snowflake exec ${pt_path}lyrebird${pt_extension}",
"conjure" : "ClientTransportPlugin conjure exec ${pt_path}conjure-client${pt_extension} -registerURL https://registration.refraction.network/api"
},
"bridges" : {
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/2…
You're receiving this email because of your account on gitlab.torproject.org.
ma1 pushed to branch base-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
770f769b by Dan Ballard at 2025-04-03T10:48:25-07:00
BB 43544: DoH pane undefined error in Privacy and Security
From: Sarah Jamie Lewis <sarah(a)openprivacy.ca>
Date: Fri, 28 Feb 2025 09:30:45 -0800
Subject: [PATCH 1/1] DoH Settings: Check for nulll gParentalControlsService
When the parental controls service is disabled in a build, the DoH
settings now display the correct stauts when Increased or Max Protection
is enabled.
Previously, selecting either of these options would cause DoH to be
enabled, but the "Status" and "Provider" fields would not be properly
populated, due to a check on the gParentalControlsService causing an
error.
This check is now identical to the same check in DownloadIntegration.sys.mjs
Apply 1 suggestion(s) to 1 file(s)
Co-authored-by: ma1 <giorgio(a)maone.net>
- - - - -
1 changed file:
- browser/components/preferences/privacy.js
Changes:
=====================================
browser/components/preferences/privacy.js
=====================================
@@ -54,11 +54,12 @@ ChromeUtils.defineLazyGetter(lazy, "AboutLoginsL10n", () => {
return new Localization(["branding/brand.ftl", "browser/aboutLogins.ftl"]);
});
-XPCOMUtils.defineLazyServiceGetter(
- lazy,
- "gParentalControlsService",
- "@mozilla.org/parental-controls-service;1",
- "nsIParentalControlsService"
+ChromeUtils.defineLazyGetter(lazy, "gParentalControlsService", () =>
+ "@mozilla.org/parental-controls-service;1" in Cc
+ ? Cc["@mozilla.org/parental-controls-service;1"].createInstance(
+ Ci.nsIParentalControlsService
+ )
+ : null
);
// TODO: module import via ChromeUtils.defineModuleGetter
@@ -735,7 +736,7 @@ var gPrivacyPane = {
mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY
) {
- if (lazy.gParentalControlsService.parentalControlsEnabled) {
+ if (lazy.gParentalControlsService?.parentalControlsEnabled) {
return "preferences-doh-status-not-active";
}
let confirmationState = Services.dns.currentTrrConfirmationState;
@@ -758,7 +759,7 @@ var gPrivacyPane = {
if (
(mode == Ci.nsIDNSService.MODE_TRRFIRST ||
mode == Ci.nsIDNSService.MODE_TRRONLY) &&
- lazy.gParentalControlsService.parentalControlsEnabled
+ lazy.gParentalControlsService?.parentalControlsEnabled
) {
errReason = Services.dns.getTRRSkipReasonName(
Ci.nsITRRSkipReason.TRR_PARENTAL_CONTROL
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/770f769…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/770f769…
You're receiving this email because of your account on gitlab.torproject.org.
Dan Ballard pushed to branch tor-browser-128.9.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
1c2cd6e8 by Dan Ballard at 2025-04-03T18:17:41+00:00
fixup! [android] Modify build system
Always set gradle pref for nimbusFml as tbb's env var NIMBUS_FML supercedes it
- - - - -
1 changed file:
- mobile/android/fenix/app/build.gradle
Changes:
=====================================
mobile/android/fenix/app/build.gradle
=====================================
@@ -311,12 +311,14 @@ android.applicationVariants.configureEach { variant ->
def isDebugOrDCD = isDebug || isDataCollectionDisabled
def useReleaseVersioning = variant.buildType.buildConfigFields['USE_RELEASE_VERSIONING']?.value ?: false
- // only set this property to pass to our patched application-service if it's defined in
- // local.poperties, indicating this is a local dev build,
- // otherwise we are in a TBB build env and the env var should be set and will be picked up
- if (gradle.hasProperty('localProperties.dependencySubstitutions.geckoviewTopsrcdir')) {
- System.setProperty("nimbusFml", "${topsrcdir}/mobile/android/fenix/tools/nimbus-fml")
- }
+ // env var NIMBUS_FML always overrides this in the tbb built patched application services
+ // https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/blob/mai…
+ // so safe to have always set so local builds and supply their expected location as fetched by
+ // fenix/tools/tba-fetch-deps.sh
+ // We normalize the path because it is valid to open/build from both tb and fenix roots
+ def normalizedTBPath = rootProject.projectDir.absolutePath.minus("mobile/android/fenix")
+ System.setProperty("nimbusFml", normalizedTBPath + "/mobile/android/fenix/tools/nimbus-fml")
+
def disableTor = false
if (project.hasProperty("disableTor")) {
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1c2cd6e…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/1c2cd6e…
You're receiving this email because of your account on gitlab.torproject.org.