Bug 1409973 - Update JS runtime default locale when pref javascript.use_us_english_local changes.
MozReview-Commit-ID: GzKSIFEqw4h
--- a/js/xpconnect/src/XPCLocale.cpp
+++ b/js/xpconnect/src/XPCLocale.cpp
@@ -38,22 +38,25 @@ NS_IMPL_ISUPPORTS(XPCLocaleObserver, nsI
void
XPCLocaleObserver::Init()
{
nsCOMPtr<nsIObserverService> observerService =
mozilla::services::GetObserverService();
observerService->AddObserver(this, "intl:app-locales-changed", false);
+
+ Preferences::AddStrongObserver(this, "javascript.use_us_english_locale");
}
NS_IMETHODIMP
XPCLocaleObserver::Observe(nsISupports* aSubject, const char* aTopic, const char16_t* aData)
{
- if (!strcmp(aTopic, "intl:app-locales-changed")) {
+ if (!strcmp(aTopic, "intl:app-locales-changed") ||
+ (!strcmp(aTopic, "nsPref:changed") && !NS_strcmp(aData, u"javascript.use_us_english_locale"))) {
JSRuntime* rt = CycleCollectedJSRuntime::Get()->Runtime();
if (!xpc_LocalizeRuntime(rt)) {
return NS_ERROR_OUT_OF_MEMORY;
}
return NS_OK;
}
return NS_ERROR_UNEXPECTED;