forked from mirrors/gecko-dev
Bug 1880108 - Pass the locale list when constructing l10n in datetimebox. r=reusable-components-reviewers,tgiles
The datetime input is inconsistent with other inputs when using spoof English: its placeholder is not translated, unlike the default values and texts of all the other inputs. Differential Revision: https://phabricator.services.mozilla.com/D201726
This commit is contained in:
parent
e6b70d8c47
commit
5f63463ffa
2 changed files with 15 additions and 2 deletions
|
|
@ -96,6 +96,7 @@ export class UAWidgetsChild extends JSWindowActorChild {
|
||||||
case "input":
|
case "input":
|
||||||
uri = "chrome://global/content/elements/datetimebox.js";
|
uri = "chrome://global/content/elements/datetimebox.js";
|
||||||
widgetName = "DateTimeBoxWidget";
|
widgetName = "DateTimeBoxWidget";
|
||||||
|
prefKeys = ["privacy.resistFingerprinting"];
|
||||||
break;
|
break;
|
||||||
case "marquee":
|
case "marquee":
|
||||||
uri = "chrome://global/content/elements/marquee.js";
|
uri = "chrome://global/content/elements/marquee.js";
|
||||||
|
|
|
||||||
|
|
@ -12,17 +12,29 @@
|
||||||
* according to the value of the "type" property.
|
* according to the value of the "type" property.
|
||||||
*/
|
*/
|
||||||
this.DateTimeBoxWidget = class {
|
this.DateTimeBoxWidget = class {
|
||||||
constructor(shadowRoot) {
|
constructor(shadowRoot, prefs) {
|
||||||
this.shadowRoot = shadowRoot;
|
this.shadowRoot = shadowRoot;
|
||||||
this.element = shadowRoot.host;
|
this.element = shadowRoot.host;
|
||||||
this.document = this.element.ownerDocument;
|
this.document = this.element.ownerDocument;
|
||||||
this.window = this.document.defaultView;
|
this.window = this.document.defaultView;
|
||||||
|
// When undefined, DOMLocalization will use the app locales.
|
||||||
|
let locales;
|
||||||
|
if (prefs["privacy.resistFingerprinting"]) {
|
||||||
|
locales = [...this.window.getWebExposedLocales()];
|
||||||
|
// Make sure to always include en-US, in case the web exposed languages do
|
||||||
|
// not include a translation for the widget.
|
||||||
|
if (!locales.includes("en-US")) {
|
||||||
|
locales.push("en-US");
|
||||||
|
}
|
||||||
|
}
|
||||||
// The DOMLocalization instance needs to allow for sync methods so that
|
// The DOMLocalization instance needs to allow for sync methods so that
|
||||||
// the placeholder value may be determined and set during the
|
// the placeholder value may be determined and set during the
|
||||||
// createEditFieldAndAppend() call.
|
// createEditFieldAndAppend() call.
|
||||||
this.l10n = new this.window.DOMLocalization(
|
this.l10n = new this.window.DOMLocalization(
|
||||||
["toolkit/global/datetimebox.ftl"],
|
["toolkit/global/datetimebox.ftl"],
|
||||||
/* aSync = */ true
|
/* aSync = */ true,
|
||||||
|
undefined,
|
||||||
|
locales
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue