summaryrefslogtreecommitdiff
path: root/waterfox/mozilla-1005640-accept-lang.patch
diff options
context:
space:
mode:
Diffstat (limited to 'waterfox/mozilla-1005640-accept-lang.patch')
-rw-r--r--waterfox/mozilla-1005640-accept-lang.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/waterfox/mozilla-1005640-accept-lang.patch b/waterfox/mozilla-1005640-accept-lang.patch
new file mode 100644
index 0000000..29d3833
--- /dev/null
+++ b/waterfox/mozilla-1005640-accept-lang.patch
@@ -0,0 +1,30 @@
+diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang 2017-01-16 17:16:52.000000000 +0100
++++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2017-01-18 12:35:29.380394216 +0100
+@@ -2852,6 +2852,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");
+
+@@ -2880,6 +2885,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({
bgstack15