tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 020575f646049c843a22a40d7c70fa50858da76d
parent b8cbddc6aef7e15f2879eac238a6813a94409fa2
Author: Eemeli Aro <eemeli@mozilla.com>
Date:   Thu, 30 Oct 2025 10:57:46 +0000

Bug 1760013 - Use Services.locale.{alwaysAppendAccesskeys,insertSeparatorBeforeAccesskeys}. r=glandium,layout-reviewers,hjones,emilio

Differential Revision: https://phabricator.services.mozilla.com/D267410

Diffstat:
Mlayout/base/nsCSSFrameConstructor.cpp | 13++++---------
Mmodules/libpref/init/all.js | 2--
Mtoolkit/components/aboutconfig/test/browser/browser_basic.js | 4----
Mtoolkit/components/aboutconfig/test/browser/browser_edit.js | 15+--------------
Mtoolkit/components/aboutconfig/test/browser/head.js | 1-
Mtoolkit/content/widgets/moz-label/moz-label.mjs | 21++++-----------------
Mtoolkit/content/widgets/text.js | 19++-----------------
Mtoolkit/locales/en-US/chrome/global/intl.properties | 6------
8 files changed, 11 insertions(+), 70 deletions(-)

diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp @@ -51,6 +51,7 @@ #include "mozilla/dom/HTMLSelectElement.h" #include "mozilla/dom/HTMLSharedListElement.h" #include "mozilla/dom/HTMLSummaryElement.h" +#include "mozilla/intl/LocaleService.h" #include "nsAtom.h" #include "nsAutoLayoutPhase.h" #include "nsBackdropFrame.h" @@ -488,11 +489,8 @@ static bool InsertSeparatorBeforeAccessKey() { static bool sValue = false; if (!sInitialized) { sInitialized = true; - - const char* prefName = "intl.menuitems.insertseparatorbeforeaccesskeys"; - nsAutoString val; - Preferences::GetLocalizedString(prefName, val); - sValue = val.EqualsLiteral("true"); + sValue = + intl::LocaleService::GetInstance()->InsertSeparatorBeforeAccesskeys(); } return sValue; } @@ -502,10 +500,7 @@ static bool AlwaysAppendAccessKey() { static bool sValue = false; if (!sInitialized) { sInitialized = true; - const char* prefName = "intl.menuitems.alwaysappendaccesskeys"; - nsAutoString val; - Preferences::GetLocalizedString(prefName, val); - sValue = val.EqualsLiteral("true"); + sValue = intl::LocaleService::GetInstance()->AlwaysAppendAccesskeys(); } return sValue; } diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js @@ -1486,8 +1486,6 @@ pref("converter.html2txt.structs", true); // Output structured phrases pref("converter.html2txt.header_strategy", 1); // 0 = no indention; 1 = indention, increased with header level; 2 = numbering and slight indention pref("intl.accept_languages", "chrome://global/locale/intl.properties"); -pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties"); -pref("intl.menuitems.insertseparatorbeforeaccesskeys","chrome://global/locale/intl.properties"); // this pref allows user to request that all internationalization formatters // like date/time formatting, unit formatting, calendars etc. should use // OS locale set instead of the app locale set. diff --git a/toolkit/components/aboutconfig/test/browser/browser_basic.js b/toolkit/components/aboutconfig/test/browser/browser_basic.js @@ -43,9 +43,5 @@ add_task(async function test_load_settings() { this.getRow("test.aboutconfig.userValueLikeLocalized").value, "chrome://test/locale/testing.properties" ); - - // Test to see if empty string when value matches - // /^chrome:\/\/.+\/locale\/.+\.properties/ and an exception is thrown. - Assert.equal(this.getRow(PREF_STRING_LOCALIZED_MISSING).value, ""); }); }); diff --git a/toolkit/components/aboutconfig/test/browser/browser_edit.js b/toolkit/components/aboutconfig/test/browser/browser_edit.js @@ -155,10 +155,7 @@ add_task(async function test_click_type_label_multiple_forms() { add_task(async function test_reset_user_pref() { await SpecialPowers.pushPrefEnv({ - set: [ - [PREF_BOOLEAN_DEFAULT_TRUE, false], - [PREF_STRING_LOCALIZED_MISSING, "user-value"], - ], + set: [[PREF_BOOLEAN_DEFAULT_TRUE, false]], }); await AboutConfigTest.withNewTab(async function () { @@ -177,16 +174,6 @@ add_task(async function test_reset_user_pref() { Assert.ok(!row.hasClass("has-user-value")); Assert.ok(!row.resetColumnButton); Assert.equal(this.getRow(PREF_BOOLEAN_DEFAULT_TRUE).value, "true"); - - // Clicking reset on a localized preference without a corresponding value. - row = this.getRow(PREF_STRING_LOCALIZED_MISSING); - Assert.equal(row.value, "user-value"); - row.resetColumnButton.click(); - // Check new layout and reset. - Assert.ok(!row.hasClass("has-user-value")); - Assert.ok(!row.resetColumnButton); - Assert.ok(!Services.prefs.prefHasUserValue(PREF_STRING_LOCALIZED_MISSING)); - Assert.equal(this.getRow(PREF_STRING_LOCALIZED_MISSING).value, ""); }); }); diff --git a/toolkit/components/aboutconfig/test/browser/head.js b/toolkit/components/aboutconfig/test/browser/head.js @@ -17,7 +17,6 @@ const PREF_NUMBER_DEFAULT_ZERO = "accessibility.typeaheadfind.casesensitive"; const PREF_STRING_DEFAULT_EMPTY = "browser.helperApps.neverAsk.openFile"; const PREF_STRING_DEFAULT_NOTEMPTY = "accessibility.typeaheadfind.soundURL"; const PREF_STRING_DEFAULT_NOTEMPTY_VALUE = "beep"; -const PREF_STRING_LOCALIZED_MISSING = "intl.menuitems.alwaysappendaccesskeys"; // Other preference names used in tests. const PREF_NEW = "test.aboutconfig.new"; diff --git a/toolkit/content/widgets/moz-label/moz-label.mjs b/toolkit/content/widgets/moz-label/moz-label.mjs @@ -42,23 +42,10 @@ class MozTextLabel extends HTMLLabelElement { ); if (MozTextLabel.#underlineAccesskey) { try { - const nsIPrefLocalizedString = Ci.nsIPrefLocalizedString; - const prefNameInsertSeparator = - "intl.menuitems.insertseparatorbeforeaccesskeys"; - const prefNameAlwaysAppendAccessKey = - "intl.menuitems.alwaysappendaccesskeys"; - - let val = Services.prefs.getComplexValue( - prefNameInsertSeparator, - nsIPrefLocalizedString - ).data; - this.#insertSeparator = val == "true"; - val = Services.prefs.getComplexValue( - prefNameAlwaysAppendAccessKey, - nsIPrefLocalizedString - ).data; - this.#alwaysAppendAccessKey = val == "true"; - } catch (e) { + this.#insertSeparator = + Services.locale.insertSeparatorBeforeAccesskeys; + this.#alwaysAppendAccessKey = Services.locale.alwaysAppendAccesskeys; + } catch { this.#insertSeparator = this.#alwaysAppendAccessKey = true; } } diff --git a/toolkit/content/widgets/text.js b/toolkit/content/widgets/text.js @@ -15,23 +15,8 @@ Services.prefs.getIntPref("ui.key.menuAccessKey") != 0; if (gUnderlineAccesskey) { try { - const nsIPrefLocalizedString = Ci.nsIPrefLocalizedString; - const prefNameInsertSeparator = - "intl.menuitems.insertseparatorbeforeaccesskeys"; - const prefNameAlwaysAppendAccessKey = - "intl.menuitems.alwaysappendaccesskeys"; - - let val = Services.prefs.getComplexValue( - prefNameInsertSeparator, - nsIPrefLocalizedString - ).data; - gInsertSeparator = val == "true"; - - val = Services.prefs.getComplexValue( - prefNameAlwaysAppendAccessKey, - nsIPrefLocalizedString - ).data; - gAlwaysAppendAccessKey = val == "true"; + gInsertSeparator = Services.locale.insertSeparatorBeforeAccesskeys; + gAlwaysAppendAccessKey = Services.locale.alwaysAppendAccesskeys; } catch (e) { gInsertSeparator = gAlwaysAppendAccessKey = true; } diff --git a/toolkit/locales/en-US/chrome/global/intl.properties b/toolkit/locales/en-US/chrome/global/intl.properties @@ -35,9 +35,3 @@ font.language.group=x-western # to provide and in what order. # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals pluralRule=1 - -# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys): -# Valid values are: true, false, <empty string> -# Missing preference or empty value equals false. -intl.menuitems.alwaysappendaccesskeys= -intl.menuitems.insertseparatorbeforeaccesskeys=true