Bug 1900648 - Allow language spoofing in XSLT status messages. r=platform-i18n-reviewers,dom-core,farre,nordzilla

Differential Revision: https://phabricator.services.mozilla.com/D244597
This commit is contained in:
Pier Angelo Vendrame
2025-05-20 19:29:06 +00:00
committed by enordin@mozilla.com
parent 90daa226bc
commit 30e6f870be
3 changed files with 28 additions and 3 deletions

View File

@@ -105,6 +105,13 @@ already_AddRefed<Localization> Localization::Create(
return MakeAndAddRef<Localization>(aResourceIds, aIsSync);
}
/* static */
already_AddRefed<Localization> Localization::Create(
const nsTArray<nsCString>& aResourceIds, bool aIsSync,
const nsTArray<nsCString>& aLocales) {
return MakeAndAddRef<Localization>(aResourceIds, aIsSync, aLocales);
}
/* static */
already_AddRefed<Localization> Localization::Create(
const nsTArray<ffi::GeckoResourceId>& aResourceIds, bool aIsSync) {
@@ -119,6 +126,13 @@ Localization::Localization(const nsTArray<nsCString>& aResIds, bool aIsSync) {
RegisterObservers();
}
Localization::Localization(const nsTArray<nsCString>& aResIds, bool aIsSync,
const nsTArray<nsCString>& aLocales) {
auto ffiResourceIds{L10nRegistry::ResourceIdsToFFI(aResIds)};
ffi::localization_new_with_locales(&ffiResourceIds, aIsSync, nullptr,
&aLocales, getter_AddRefs(mRaw));
}
Localization::Localization(const nsTArray<ffi::GeckoResourceId>& aResIds,
bool aIsSync) {
ffi::localization_new(&aResIds, aIsSync, nullptr, getter_AddRefs(mRaw));

View File

@@ -94,6 +94,9 @@ class Localization : public nsIObserver,
ErrorResult& aRv);
static already_AddRefed<Localization> Create(
const nsTArray<nsCString>& aResourceIds, bool aIsSync);
static already_AddRefed<Localization> Create(
const nsTArray<nsCString>& aResourceIds, bool aIsSync,
const nsTArray<nsCString>& aLocales);
static already_AddRefed<Localization> Create(
const nsTArray<ffi::GeckoResourceId>& aResourceIds, bool aIsSync);
@@ -142,6 +145,8 @@ class Localization : public nsIObserver,
protected:
Localization(const nsTArray<nsCString>& aResIds, bool aIsSync);
Localization(const nsTArray<nsCString>& aResIds, bool aIsSync,
const nsTArray<nsCString>& aLocales);
Localization(const nsTArray<ffi::GeckoResourceId>& aResIds, bool aIsSync);
Localization(nsIGlobalObject* aGlobal, bool aIsSync);