31 lines
1.5 KiB
Diff
31 lines
1.5 KiB
Diff
diff -up firefox-48.0.1/toolkit/mozapps/extensions/internal/XPIProvider.jsm.mydebug firefox-48.0.1/toolkit/mozapps/extensions/internal/XPIProvider.jsm
|
|
--- firefox-48.0.1/toolkit/mozapps/extensions/internal/XPIProvider.jsm.mydebug 2016-08-15 23:35:40.000000000 +0200
|
|
+++ firefox-48.0.1/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2016-09-21 16:08:04.441220821 +0200
|
|
@@ -2724,6 +2724,11 @@ this.XPIProvider = {
|
|
this.addAddonsToCrashReporter();
|
|
}
|
|
|
|
+ // Save locale settings to compare it later to check whenever some addon
|
|
+ // changed it.
|
|
+ var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
|
|
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
|
|
+
|
|
try {
|
|
AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
|
|
for (let id in this.bootstrappedAddons) {
|
|
@@ -2751,6 +2756,14 @@ this.XPIProvider = {
|
|
AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
|
|
}
|
|
|
|
+ var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
|
|
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
|
|
+ if (currentLocale != previousLocale) {
|
|
+ // We have to flush string cache if the locale was changed during loading
|
|
+ // of addons
|
|
+ Services.obs.notifyObservers(null, "chrome-flush-caches", null);
|
|
+ }
|
|
+
|
|
// Let these shutdown a little earlier when they still have access to most
|
|
// of XPCOM
|
|
Services.obs.addObserver({
|