buc 10d2145
diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
buc 10d2145
--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang	2017-01-16 17:16:52.000000000 +0100
buc 10d2145
+++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm	2017-01-18 12:35:29.380394216 +0100
buc 10d2145
@@ -2852,6 +2852,11 @@ this.XPIProvider = {
buc 4235987
         this.addAddonsToCrashReporter();
buc 4235987
       }
buc 4235987
 
buc 4235987
+      // Save locale settings to compare it later to check whenever some addon
buc 4235987
+      // changed it.
buc 4235987
+      var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
buc 4235987
+                          .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
buc 4235987
+
buc 4235987
       try {
buc 4235987
         AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
buc 10d2145
 
buc 10d2145
@@ -2880,6 +2885,14 @@ this.XPIProvider = {
buc 4235987
         AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
buc 4235987
       }
buc 4235987
 
buc 4235987
+      var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
buc 4235987
+                         .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
buc 4235987
+      if (currentLocale != previousLocale) {
buc 4235987
+        // We have to flush string cache if the locale was changed during loading
buc 4235987
+        // of addons
buc 4235987
+        Services.obs.notifyObservers(null, "chrome-flush-caches", null);
buc 4235987
+      }
buc 4235987
+
buc 4235987
       // Let these shutdown a little earlier when they still have access to most
buc 4235987
       // of XPCOM
buc 4235987
       Services.obs.addObserver({