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:
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