Bill Gianopoulos 3 years ago
parent
commit
7de27486e5

+ 0 - 1
bug1240930-253/comm/series-append

@@ -1,4 +1,3 @@
-#StopHere
 1468240-port-1437942-mail-62a1.patch
 1468240-port-1437942-mail-62a1.patch
 1639866-1-port-1437942-suite-277.patch
 1639866-1-port-1437942-suite-277.patch
 1240930-mail-80a1.patch
 1240930-mail-80a1.patch

+ 20 - 25
bug1240930-253/mozilla/1240930-80a1.patch

@@ -38,7 +38,7 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
  # pulls. You may override them if you provide your own files.
  # pulls. You may override them if you provide your own files.
  ZIP_IN ?= $(ABS_DIST)/$(PACKAGE)
  ZIP_IN ?= $(ABS_DIST)/$(PACKAGE)
  
  
-@@ -46,34 +46,34 @@ endif
+@@ -42,29 +42,29 @@ endif
  # Required for l10n.mk - defines a list of app sub dirs that should
  # Required for l10n.mk - defines a list of app sub dirs that should
  # be included in langpack xpis.
  # be included in langpack xpis.
  DIST_SUBDIRS = $(DIST_SUBDIR)
  DIST_SUBDIRS = $(DIST_SUBDIR)
@@ -60,16 +60,10 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
  ifneq (,$(wildcard ../extensions/formautofill/locales))
  ifneq (,$(wildcard ../extensions/formautofill/locales))
  	@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
  	@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
  endif
  endif
- 	@$(MAKE) -C ../extensions/jaws-esr/locales AB_CD=$* XPI_NAME=locale-$*
- 	@$(MAKE) -C ../extensions/pocket/locale AB_CD=$* XPI_NAME=locale-$*
- ifneq '$(or $(MOZ_DEV_EDITION),$(NIGHTLY_BUILD))' ''
- 	@$(MAKE) -C ../extensions/webcompat-reporter/locales AB_CD=$* XPI_NAME=locale-$*
- endif
+ 	@$(MAKE) -C ../../intl/locales AB_CD=$* XPI_NAME=locale-$*
  	@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
  	@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
- 	@$(MAKE) -C ../../devtools/shim/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
 -	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
 -	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
 +	@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
 +	@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
- 	@$(MAKE) multilocale.txt-$* AB_CD=$* XPI_NAME=locale-$*
  	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
  	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
  
  
  chrome-%: AB_CD=$*
  chrome-%: AB_CD=$*
@@ -77,7 +71,8 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
  chrome-%:
  chrome-%:
  	$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
  	$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
  	@$(MAKE) -C ../../toolkit/locales chrome-$*
  	@$(MAKE) -C ../../toolkit/locales chrome-$*
-@@ -99,17 +99,17 @@ langpack: langpack-$(AB_CD)
+ 	@$(MAKE) -C ../../services/sync/locales chrome AB_CD=$*
+@@ -84,17 +84,17 @@ langpack: langpack-$(AB_CD)
  
  
  # This is a generic target that will make a langpack, repack ZIP (+tarball)
  # This is a generic target that will make a langpack, repack ZIP (+tarball)
  # builds, and repack an installer if applicable. It is called from the
  # builds, and repack an installer if applicable. It is called from the
@@ -99,7 +94,7 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
 diff --git a/config/rules.mk b/config/rules.mk
 diff --git a/config/rules.mk b/config/rules.mk
 --- a/config/rules.mk
 --- a/config/rules.mk
 +++ b/config/rules.mk
 +++ b/config/rules.mk
-@@ -1229,22 +1229,26 @@ endif
+@@ -1223,22 +1223,26 @@ endif
  # no way langpacks will get packaged right, so error out.
  # no way langpacks will get packaged right, so error out.
  ifneq (,$(DIST_SUBDIR))
  ifneq (,$(DIST_SUBDIR))
  ifndef XPI_ROOT_APPID
  ifndef XPI_ROOT_APPID
@@ -130,7 +125,7 @@ diff --git a/config/rules.mk b/config/rules.mk
 diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
 diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
 --- a/python/mozbuild/mozbuild/backend/recursivemake.py
 --- a/python/mozbuild/mozbuild/backend/recursivemake.py
 +++ b/python/mozbuild/mozbuild/backend/recursivemake.py
 +++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -513,18 +513,16 @@ class RecursiveMakeBackend(CommonBackend
+@@ -511,18 +511,16 @@ class RecursiveMakeBackend(CommonBackend
          elif isinstance(obj, HostDefines):
          elif isinstance(obj, HostDefines):
              self._process_defines(obj, backend_file, which='HOST_DEFINES')
              self._process_defines(obj, backend_file, which='HOST_DEFINES')
          elif isinstance(obj, Defines):
          elif isinstance(obj, Defines):
@@ -149,7 +144,7 @@ diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild
              # output paths.
              # output paths.
              if obj.localized:
              if obj.localized:
                  substs = {'AB_CD': '$(AB_CD)', 'AB_rCD': '$(AB_rCD)'}
                  substs = {'AB_CD': '$(AB_CD)', 'AB_rCD': '$(AB_rCD)'}
-@@ -609,17 +607,17 @@ class RecursiveMakeBackend(CommonBackend
+@@ -612,17 +610,17 @@ class RecursiveMakeBackend(CommonBackend
             # with a different locale as input. IS_LANGUAGE_REPACK will reliably be set
             # with a different locale as input. IS_LANGUAGE_REPACK will reliably be set
             # in this situation, so simply force the generation to run in that case.
             # in this situation, so simply force the generation to run in that case.
             force=force,
             force=force,
@@ -168,7 +163,7 @@ diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild
              build_target = self._build_target_for_obj(obj)
              build_target = self._build_target_for_obj(obj)
              self._compile_graph[build_target]
              self._compile_graph[build_target]
  
  
-@@ -1487,16 +1485,19 @@ class RecursiveMakeBackend(CommonBackend
+@@ -1493,16 +1491,19 @@ class RecursiveMakeBackend(CommonBackend
                      else:
                      else:
                          install_manifest.add_link(f.full_path, dest)
                          install_manifest.add_link(f.full_path, dest)
                  else:
                  else:
@@ -188,7 +183,7 @@ diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild
                  # from often have spaces.  So we write our own rule.
                  # from often have spaces.  So we write our own rule.
                  self._no_skip['misc'].add(backend_file.relobjdir)
                  self._no_skip['misc'].add(backend_file.relobjdir)
                  backend_file.write('misc::\n%s\n' %
                  backend_file.write('misc::\n%s\n' %
-@@ -1545,37 +1546,37 @@ class RecursiveMakeBackend(CommonBackend
+@@ -1551,37 +1552,37 @@ class RecursiveMakeBackend(CommonBackend
  
  
      def _process_localized_files(self, obj, files, backend_file):
      def _process_localized_files(self, obj, files, backend_file):
          target = obj.install_target
          target = obj.install_target
@@ -291,7 +286,7 @@ diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/pytho
              '$(MDDEPDIR)/abc.xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input FORCE' % env.topsrcdir,
              '$(MDDEPDIR)/abc.xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input FORCE' % env.topsrcdir,
              '$(REPORT_BUILD)',
              '$(REPORT_BUILD)',
              '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main abc.xyz $(MDDEPDIR)/abc.xyz.pp $(MDDEPDIR)/abc.xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
              '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main abc.xyz $(MDDEPDIR)/abc.xyz.pp $(MDDEPDIR)/abc.xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-             '@$(TOUCH) $@',
+ +            '@$(TOUCH) $@',
 @@ -518,17 +518,17 @@ class TestRecursiveMakeBackend(BackendTe
 @@ -518,17 +518,17 @@ class TestRecursiveMakeBackend(BackendTe
          """Ensure LOCALIZED_GENERATED_FILES is handled properly
          """Ensure LOCALIZED_GENERATED_FILES is handled properly
          when {AB_CD} and {AB_rCD} are used."""
          when {AB_CD} and {AB_rCD} are used."""
@@ -311,7 +306,7 @@ diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/pytho
              '$(REPORT_BUILD)',
              '$(REPORT_BUILD)',
              '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo$(AB_CD).xyz $(MDDEPDIR)/foo$(AB_CD).xyz.pp $(MDDEPDIR)/foo$(AB_CD).xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
              '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo$(AB_CD).xyz $(MDDEPDIR)/foo$(AB_CD).xyz.pp $(MDDEPDIR)/foo$(AB_CD).xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
              '@$(TOUCH) $@',
              '@$(TOUCH) $@',
-@@ -972,17 +972,17 @@ class TestRecursiveMakeBackend(BackendTe
+@@ -979,17 +979,17 @@ class TestRecursiveMakeBackend(BackendTe
          backend_path = mozpath.join(env.topobjdir, 'backend.mk')
          backend_path = mozpath.join(env.topobjdir, 'backend.mk')
          lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
          lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
  
  
@@ -330,7 +325,7 @@ diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/pytho
  
  
      def test_localized_pp_files(self):
      def test_localized_pp_files(self):
          """Test that LOCALIZED_PP_FILES is written to backend.mk correctly."""
          """Test that LOCALIZED_PP_FILES is written to backend.mk correctly."""
-@@ -990,17 +990,17 @@ class TestRecursiveMakeBackend(BackendTe
+@@ -997,17 +997,17 @@ class TestRecursiveMakeBackend(BackendTe
  
  
          backend_path = mozpath.join(env.topobjdir, 'backend.mk')
          backend_path = mozpath.join(env.topobjdir, 'backend.mk')
          lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
          lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
@@ -424,12 +419,12 @@ diff --git a/toolkit/locales/l10n.mk b/toolkit/locales/l10n.mk
  LPROJ_ROOT := $(subst -,_,$(AB_CD))
  LPROJ_ROOT := $(subst -,_,$(AB_CD))
  endif
  endif
  endif
  endif
-@@ -199,17 +199,17 @@ endif
- 	$(RM) -rf $(REAL_LOCALE_MERGEDIR)
+@@ -197,17 +197,17 @@ endif
  	-$(MOZILLA_DIR)/mach compare-locales $(COMPARE_LOCALES_DEFINES) --merge $(BASE_MERGE) $(srcdir)/l10n.toml $(L10NBASEDIR) $*
  	-$(MOZILLA_DIR)/mach compare-locales $(COMPARE_LOCALES_DEFINES) --merge $(BASE_MERGE) $(srcdir)/l10n.toml $(L10NBASEDIR) $*
  
  
  langpack-%: IS_LANGUAGE_REPACK=1
  langpack-%: IS_LANGUAGE_REPACK=1
  langpack-%: IS_LANGPACK=1
  langpack-%: IS_LANGPACK=1
+ langpack-%: libs-%
  langpack-%: AB_CD=$*
  langpack-%: AB_CD=$*
  langpack-%:
  langpack-%:
  	@echo 'Making langpack $(LANGPACK_FILE)'
  	@echo 'Making langpack $(LANGPACK_FILE)'
@@ -437,9 +432,9 @@ diff --git a/toolkit/locales/l10n.mk b/toolkit/locales/l10n.mk
 +	@$(MAKE) l10n-$(AB_CD)
 +	@$(MAKE) l10n-$(AB_CD)
  	@$(MAKE) package-langpack-$(AB_CD)
  	@$(MAKE) package-langpack-$(AB_CD)
  
  
- # language pack checking is done against the toolkit version.
- ifeq (,$(MOZ_SUITE))
- MOZ_MIN_APP_VERSION = $(MOZ_APP_VERSION)
- MOZ_MAX_APP_VERSION = $(MOZ_APP_MAXVERSION)
- else
- MOZ_MIN_APP_VERSION = $(MOZILLA_VERSION)
+ package-langpack-%: LANGPACK_FILE=$(ABS_DIST)/$(PKG_LANGPACK_PATH)$(PKG_LANGPACK_BASENAME).xpi
+ package-langpack-%: XPI_NAME=locale-$*
+ package-langpack-%: AB_CD=$*
+ package-langpack-%:
+ 	@echo 'Making langpack $(LANGPACK_FILE)'
+ 	$(NSINSTALL) -D $(DIST)/$(PKG_LANGPACK_PATH)

+ 1371 - 0
bug1240930-253/mozilla/1437943-62a1.patch

@@ -0,0 +1,1371 @@
+# HG changeset patch
+# User Michael Kaply <mozilla@kaply.com>
+# Date 1528148750 18000
+# Node ID 67f15f4455067ee2d85245e5482d7241880911a1
+# Parent  bf962e0c8abe9f80d8e20a51a62667b2977d903b
+Bug 1437942 - Remove search engines from langpacks. r=adw
+
+MozReview-Commit-ID: GFCIbfmCc5B
+
+diff --git a/browser/base/content/test/static/browser_all_files_referenced.js b/browser/base/content/test/static/browser_all_files_referenced.js
+--- a/browser/base/content/test/static/browser_all_files_referenced.js
++++ b/browser/base/content/test/static/browser_all_files_referenced.js
+@@ -7,17 +7,16 @@
+ 
+ // Slow on asan builds.
+ requestLongerTimeout(5);
+ 
+ var isDevtools = SimpleTest.harnessParameters.subsuite == "devtools";
+ 
+ var gExceptionPaths = [
+   "chrome://browser/content/defaultthemes/",
+-  "chrome://browser/locale/searchplugins/",
+   "resource://app/defaults/blocklists/",
+   "resource://app/defaults/pinning/",
+   "resource://app/defaults/preferences/",
+   "resource://gre/modules/commonjs/",
+   "resource://gre/defaults/pref/",
+   "resource://shield-recipe-client/node_modules/jexl/lib/",
+ 
+   // https://github.com/mozilla/normandy/issues/577
+diff --git a/browser/base/jar.mn b/browser/base/jar.mn
+--- a/browser/base/jar.mn
++++ b/browser/base/jar.mn
+@@ -159,9 +159,8 @@ browser.jar:
+ % overlay chrome://browser/content/browser.xul chrome://browser/content/report-phishing-overlay.xul
+ 
+ % override chrome://global/content/netError.xhtml chrome://browser/content/aboutNetError.xhtml
+ 
+ # L10n resources and overrides.
+ % override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties
+ % override chrome://global/locale/netError.dtd chrome://browser/locale/netError.dtd
+ % override chrome://mozapps/locale/downloads/settingsChange.dtd chrome://browser/locale/downloads/settingsChange.dtd
+-% resource search-plugins chrome://browser/locale/searchplugins/
+diff --git a/browser/components/search/content/search.xml b/browser/components/search/content/search.xml
+--- a/browser/components/search/content/search.xml
++++ b/browser/components/search/content/search.xml
+@@ -68,16 +68,17 @@
+     </content>
+ 
+     <implementation implements="nsIObserver">
+       <constructor><![CDATA[
+         if (this.parentNode.parentNode.localName == "toolbarpaletteitem")
+           return;
+ 
+         Services.obs.addObserver(this, "browser-search-engine-modified");
++        Services.obs.addObserver(this, "browser-search-service");
+ 
+         this._initialized = true;
+ 
+         (window.delayedStartupPromise || Promise.resolve()).then(() => {
+           window.requestIdleCallback(() => {
+             Services.search.init(aStatus => {
+               // Bail out if the binding's been destroyed
+               if (!this._initialized)
+@@ -115,16 +116,17 @@
+       ]]></destructor>
+ 
+       <method name="destroy">
+         <body><![CDATA[
+         if (this._initialized) {
+           this._initialized = false;
+ 
+           Services.obs.removeObserver(this, "browser-search-engine-modified");
++          Services.obs.removeObserver(this, "browser-search-service");
+         }
+ 
+         // Make sure to break the cycle from _textbox to us. Otherwise we leak
+         // the world. But make sure it's actually pointing to us.
+         // Also make sure the textbox has ever been constructed, otherwise the
+         // _textbox getter will cause the textbox constructor to run, add an
+         // observer, and leak the world too.
+         if (this._textboxInitialized && this._textbox.mController.input == this)
+@@ -184,17 +186,18 @@
+         ]]></body>
+       </method>
+ 
+       <method name="observe">
+         <parameter name="aEngine"/>
+         <parameter name="aTopic"/>
+         <parameter name="aVerb"/>
+         <body><![CDATA[
+-          if (aTopic == "browser-search-engine-modified") {
++          if (aTopic == "browser-search-engine-modified" ||
++              (aTopic == "browser-search-service" && aVerb == "init-complete")) {
+             switch (aVerb) {
+             case "engine-removed":
+               this.offerNewEngine(aEngine);
+               break;
+             case "engine-added":
+               this.hideNewEngine(aEngine);
+               break;
+             case "engine-changed":
+@@ -1411,16 +1414,17 @@
+         menu.addEventListener("popuphidden", aEvent => {
+           this._ignoreMouseEvents = false;
+           aEvent.stopPropagation();
+         });
+ 
+         // Add weak referenced observers to invalidate our cached list of engines.
+         Services.prefs.addObserver("browser.search.hiddenOneOffs", this, true);
+         Services.obs.addObserver(this, "browser-search-engine-modified", true);
++        Services.obs.addObserver(this, "browser-search-service", true);
+ 
+         // Rebuild the buttons when the theme changes.  See bug 1357800 for
+         // details.  Summary: On Linux, switching between themes can cause a row
+         // of buttons to disappear.
+         Services.obs.addObserver(this, "lightweight-theme-changed", true);
+       ]]></constructor>
+ 
+       <!-- This handles events outside the one-off buttons, like on the popup
+diff --git a/browser/components/search/jar.mn b/browser/components/search/jar.mn
+--- a/browser/components/search/jar.mn
++++ b/browser/components/search/jar.mn
+@@ -2,8 +2,12 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ 
+ browser.jar:
+         content/browser/search/search.xml                           (content/search.xml)
+         content/browser/search/searchbarBindings.css                (content/searchbarBindings.css)
+         content/browser/search/searchReset.xhtml                    (content/searchReset.xhtml)
+         content/browser/search/searchReset.js                       (content/searchReset.js)
++
++        searchplugins/                                              (searchplugins/**)
++
++% resource search-plugins %searchplugins/
+diff --git a/browser/locales/searchplugins/allaannonser-sv-SE.xml b/browser/components/search/searchplugins/allaannonser-sv-SE.xml
+rename from browser/locales/searchplugins/allaannonser-sv-SE.xml
+rename to browser/components/search/searchplugins/allaannonser-sv-SE.xml
+diff --git a/browser/locales/searchplugins/allegro-pl.xml b/browser/components/search/searchplugins/allegro-pl.xml
+rename from browser/locales/searchplugins/allegro-pl.xml
+rename to browser/components/search/searchplugins/allegro-pl.xml
+diff --git a/browser/locales/searchplugins/amazon-en-GB.xml b/browser/components/search/searchplugins/amazon-en-GB.xml
+rename from browser/locales/searchplugins/amazon-en-GB.xml
+rename to browser/components/search/searchplugins/amazon-en-GB.xml
+diff --git a/browser/locales/searchplugins/amazon-france.xml b/browser/components/search/searchplugins/amazon-france.xml
+rename from browser/locales/searchplugins/amazon-france.xml
+rename to browser/components/search/searchplugins/amazon-france.xml
+diff --git a/browser/locales/searchplugins/amazon-in.xml b/browser/components/search/searchplugins/amazon-in.xml
+rename from browser/locales/searchplugins/amazon-in.xml
+rename to browser/components/search/searchplugins/amazon-in.xml
+diff --git a/browser/locales/searchplugins/amazon-it.xml b/browser/components/search/searchplugins/amazon-it.xml
+rename from browser/locales/searchplugins/amazon-it.xml
+rename to browser/components/search/searchplugins/amazon-it.xml
+diff --git a/browser/locales/searchplugins/amazon-jp.xml b/browser/components/search/searchplugins/amazon-jp.xml
+rename from browser/locales/searchplugins/amazon-jp.xml
+rename to browser/components/search/searchplugins/amazon-jp.xml
+diff --git a/browser/locales/searchplugins/amazondotcn.xml b/browser/components/search/searchplugins/amazondotcn.xml
+rename from browser/locales/searchplugins/amazondotcn.xml
+rename to browser/components/search/searchplugins/amazondotcn.xml
+diff --git a/browser/locales/searchplugins/amazondotcom-de.xml b/browser/components/search/searchplugins/amazondotcom-de.xml
+rename from browser/locales/searchplugins/amazondotcom-de.xml
+rename to browser/components/search/searchplugins/amazondotcom-de.xml
+diff --git a/browser/locales/searchplugins/amazondotcom.xml b/browser/components/search/searchplugins/amazondotcom.xml
+rename from browser/locales/searchplugins/amazondotcom.xml
+rename to browser/components/search/searchplugins/amazondotcom.xml
+diff --git a/browser/locales/searchplugins/atlas-sk.xml b/browser/components/search/searchplugins/atlas-sk.xml
+rename from browser/locales/searchplugins/atlas-sk.xml
+rename to browser/components/search/searchplugins/atlas-sk.xml
+diff --git a/browser/locales/searchplugins/azerdict.xml b/browser/components/search/searchplugins/azerdict.xml
+rename from browser/locales/searchplugins/azerdict.xml
+rename to browser/components/search/searchplugins/azerdict.xml
+diff --git a/browser/locales/searchplugins/azet-sk.xml b/browser/components/search/searchplugins/azet-sk.xml
+rename from browser/locales/searchplugins/azet-sk.xml
+rename to browser/components/search/searchplugins/azet-sk.xml
+diff --git a/browser/locales/searchplugins/baidu.xml b/browser/components/search/searchplugins/baidu.xml
+rename from browser/locales/searchplugins/baidu.xml
+rename to browser/components/search/searchplugins/baidu.xml
+diff --git a/browser/locales/searchplugins/bbc-alba.xml b/browser/components/search/searchplugins/bbc-alba.xml
+rename from browser/locales/searchplugins/bbc-alba.xml
+rename to browser/components/search/searchplugins/bbc-alba.xml
+diff --git a/browser/locales/searchplugins/bing.xml b/browser/components/search/searchplugins/bing.xml
+rename from browser/locales/searchplugins/bing.xml
+rename to browser/components/search/searchplugins/bing.xml
+diff --git a/browser/locales/searchplugins/bok-NO.xml b/browser/components/search/searchplugins/bok-NO.xml
+rename from browser/locales/searchplugins/bok-NO.xml
+rename to browser/components/search/searchplugins/bok-NO.xml
+diff --git a/browser/locales/searchplugins/bolcom-fy-NL.xml b/browser/components/search/searchplugins/bolcom-fy-NL.xml
+rename from browser/locales/searchplugins/bolcom-fy-NL.xml
+rename to browser/components/search/searchplugins/bolcom-fy-NL.xml
+diff --git a/browser/locales/searchplugins/bolcom-nl.xml b/browser/components/search/searchplugins/bolcom-nl.xml
+rename from browser/locales/searchplugins/bolcom-nl.xml
+rename to browser/components/search/searchplugins/bolcom-nl.xml
+diff --git a/browser/locales/searchplugins/bookplus-fi.xml b/browser/components/search/searchplugins/bookplus-fi.xml
+rename from browser/locales/searchplugins/bookplus-fi.xml
+rename to browser/components/search/searchplugins/bookplus-fi.xml
+diff --git a/browser/locales/searchplugins/buscape.xml b/browser/components/search/searchplugins/buscape.xml
+rename from browser/locales/searchplugins/buscape.xml
+rename to browser/components/search/searchplugins/buscape.xml
+diff --git a/browser/locales/searchplugins/ceneji.xml b/browser/components/search/searchplugins/ceneji.xml
+rename from browser/locales/searchplugins/ceneji.xml
+rename to browser/components/search/searchplugins/ceneji.xml
+diff --git a/browser/locales/searchplugins/chambers-en-GB.xml b/browser/components/search/searchplugins/chambers-en-GB.xml
+rename from browser/locales/searchplugins/chambers-en-GB.xml
+rename to browser/components/search/searchplugins/chambers-en-GB.xml
+diff --git a/browser/locales/searchplugins/cnrtl-tlfi-fr.xml b/browser/components/search/searchplugins/cnrtl-tlfi-fr.xml
+rename from browser/locales/searchplugins/cnrtl-tlfi-fr.xml
+rename to browser/components/search/searchplugins/cnrtl-tlfi-fr.xml
+diff --git a/browser/locales/searchplugins/coccoc.xml b/browser/components/search/searchplugins/coccoc.xml
+rename from browser/locales/searchplugins/coccoc.xml
+rename to browser/components/search/searchplugins/coccoc.xml
+diff --git a/browser/locales/searchplugins/danawa-kr.xml b/browser/components/search/searchplugins/danawa-kr.xml
+rename from browser/locales/searchplugins/danawa-kr.xml
+rename to browser/components/search/searchplugins/danawa-kr.xml
+diff --git a/browser/locales/searchplugins/daum-kr.xml b/browser/components/search/searchplugins/daum-kr.xml
+rename from browser/locales/searchplugins/daum-kr.xml
+rename to browser/components/search/searchplugins/daum-kr.xml
+diff --git a/browser/locales/searchplugins/ddg.xml b/browser/components/search/searchplugins/ddg.xml
+rename from browser/locales/searchplugins/ddg.xml
+rename to browser/components/search/searchplugins/ddg.xml
+diff --git a/browser/locales/searchplugins/diccionariu-alla.xml b/browser/components/search/searchplugins/diccionariu-alla.xml
+rename from browser/locales/searchplugins/diccionariu-alla.xml
+rename to browser/components/search/searchplugins/diccionariu-alla.xml
+diff --git a/browser/locales/searchplugins/dict-enlv.xml b/browser/components/search/searchplugins/dict-enlv.xml
+rename from browser/locales/searchplugins/dict-enlv.xml
+rename to browser/components/search/searchplugins/dict-enlv.xml
+diff --git a/browser/locales/searchplugins/diec2.xml b/browser/components/search/searchplugins/diec2.xml
+rename from browser/locales/searchplugins/diec2.xml
+rename to browser/components/search/searchplugins/diec2.xml
+diff --git a/browser/locales/searchplugins/diribg.xml b/browser/components/search/searchplugins/diribg.xml
+rename from browser/locales/searchplugins/diribg.xml
+rename to browser/components/search/searchplugins/diribg.xml
+diff --git a/browser/locales/searchplugins/drae.xml b/browser/components/search/searchplugins/drae.xml
+rename from browser/locales/searchplugins/drae.xml
+rename to browser/components/search/searchplugins/drae.xml
+diff --git a/browser/locales/searchplugins/eki-ee.xml b/browser/components/search/searchplugins/eki-ee.xml
+rename from browser/locales/searchplugins/eki-ee.xml
+rename to browser/components/search/searchplugins/eki-ee.xml
+diff --git a/browser/locales/searchplugins/elebila.xml b/browser/components/search/searchplugins/elebila.xml
+rename from browser/locales/searchplugins/elebila.xml
+rename to browser/components/search/searchplugins/elebila.xml
+diff --git a/browser/locales/searchplugins/eudict.xml b/browser/components/search/searchplugins/eudict.xml
+rename from browser/locales/searchplugins/eudict.xml
+rename to browser/components/search/searchplugins/eudict.xml
+diff --git a/browser/locales/searchplugins/faclair-beag.xml b/browser/components/search/searchplugins/faclair-beag.xml
+rename from browser/locales/searchplugins/faclair-beag.xml
+rename to browser/components/search/searchplugins/faclair-beag.xml
+diff --git a/browser/locales/searchplugins/findbook-zh-TW.xml b/browser/components/search/searchplugins/findbook-zh-TW.xml
+rename from browser/locales/searchplugins/findbook-zh-TW.xml
+rename to browser/components/search/searchplugins/findbook-zh-TW.xml
+diff --git a/browser/locales/searchplugins/flip.xml b/browser/components/search/searchplugins/flip.xml
+rename from browser/locales/searchplugins/flip.xml
+rename to browser/components/search/searchplugins/flip.xml
+diff --git a/browser/locales/searchplugins/freelang.xml b/browser/components/search/searchplugins/freelang.xml
+rename from browser/locales/searchplugins/freelang.xml
+rename to browser/components/search/searchplugins/freelang.xml
+diff --git a/browser/locales/searchplugins/google-nocodes.xml b/browser/components/search/searchplugins/google-nocodes.xml
+rename from browser/locales/searchplugins/google-nocodes.xml
+rename to browser/components/search/searchplugins/google-nocodes.xml
+diff --git a/browser/locales/searchplugins/google.xml b/browser/components/search/searchplugins/google.xml
+rename from browser/locales/searchplugins/google.xml
+rename to browser/components/search/searchplugins/google.xml
+diff --git a/browser/locales/searchplugins/gujaratilexicon.xml b/browser/components/search/searchplugins/gujaratilexicon.xml
+rename from browser/locales/searchplugins/gujaratilexicon.xml
+rename to browser/components/search/searchplugins/gujaratilexicon.xml
+diff --git a/browser/locales/searchplugins/gulesider-NO.xml b/browser/components/search/searchplugins/gulesider-NO.xml
+rename from browser/locales/searchplugins/gulesider-NO.xml
+rename to browser/components/search/searchplugins/gulesider-NO.xml
+diff --git a/browser/locales/searchplugins/heureka-cz.xml b/browser/components/search/searchplugins/heureka-cz.xml
+rename from browser/locales/searchplugins/heureka-cz.xml
+rename to browser/components/search/searchplugins/heureka-cz.xml
+diff --git a/browser/locales/searchplugins/hoepli.xml b/browser/components/search/searchplugins/hoepli.xml
+rename from browser/locales/searchplugins/hoepli.xml
+rename to browser/components/search/searchplugins/hoepli.xml
+diff --git a/browser/locales/searchplugins/images/amazon.ico b/browser/components/search/searchplugins/images/amazon.ico
+rename from browser/locales/searchplugins/images/amazon.ico
+rename to browser/components/search/searchplugins/images/amazon.ico
+diff --git a/browser/locales/searchplugins/images/wikipedia.ico b/browser/components/search/searchplugins/images/wikipedia.ico
+rename from browser/locales/searchplugins/images/wikipedia.ico
+rename to browser/components/search/searchplugins/images/wikipedia.ico
+diff --git a/browser/locales/searchplugins/images/yahoo.ico b/browser/components/search/searchplugins/images/yahoo.ico
+rename from browser/locales/searchplugins/images/yahoo.ico
+rename to browser/components/search/searchplugins/images/yahoo.ico
+diff --git a/browser/locales/searchplugins/images/yandex-en.ico b/browser/components/search/searchplugins/images/yandex-en.ico
+rename from browser/locales/searchplugins/images/yandex-en.ico
+rename to browser/components/search/searchplugins/images/yandex-en.ico
+diff --git a/browser/locales/searchplugins/images/yandex-ru.ico b/browser/components/search/searchplugins/images/yandex-ru.ico
+rename from browser/locales/searchplugins/images/yandex-ru.ico
+rename to browser/components/search/searchplugins/images/yandex-ru.ico
+diff --git a/browser/locales/searchplugins/kannadastore.xml b/browser/components/search/searchplugins/kannadastore.xml
+rename from browser/locales/searchplugins/kannadastore.xml
+rename to browser/components/search/searchplugins/kannadastore.xml
+diff --git a/browser/locales/searchplugins/kaz-kk.xml b/browser/components/search/searchplugins/kaz-kk.xml
+rename from browser/locales/searchplugins/kaz-kk.xml
+rename to browser/components/search/searchplugins/kaz-kk.xml
+diff --git a/browser/locales/searchplugins/klask.xml b/browser/components/search/searchplugins/klask.xml
+rename from browser/locales/searchplugins/klask.xml
+rename to browser/components/search/searchplugins/klask.xml
+diff --git a/browser/locales/searchplugins/leit-is.xml b/browser/components/search/searchplugins/leit-is.xml
+rename from browser/locales/searchplugins/leit-is.xml
+rename to browser/components/search/searchplugins/leit-is.xml
+diff --git a/browser/locales/searchplugins/leo_ende_de-rm.xml b/browser/components/search/searchplugins/leo_ende_de-rm.xml
+rename from browser/locales/searchplugins/leo_ende_de-rm.xml
+rename to browser/components/search/searchplugins/leo_ende_de-rm.xml
+diff --git a/browser/locales/searchplugins/leo_ende_de.xml b/browser/components/search/searchplugins/leo_ende_de.xml
+rename from browser/locales/searchplugins/leo_ende_de.xml
+rename to browser/components/search/searchplugins/leo_ende_de.xml
+diff --git a/browser/locales/searchplugins/list-am.xml b/browser/components/search/searchplugins/list-am.xml
+rename from browser/locales/searchplugins/list-am.xml
+rename to browser/components/search/searchplugins/list-am.xml
+diff --git a/browser/locales/searchplugins/longdo.xml b/browser/components/search/searchplugins/longdo.xml
+rename from browser/locales/searchplugins/longdo.xml
+rename to browser/components/search/searchplugins/longdo.xml
+diff --git a/browser/locales/searchplugins/mailru.xml b/browser/components/search/searchplugins/mailru.xml
+rename from browser/locales/searchplugins/mailru.xml
+rename to browser/components/search/searchplugins/mailru.xml
+diff --git a/browser/locales/searchplugins/mapy-cz.xml b/browser/components/search/searchplugins/mapy-cz.xml
+rename from browser/locales/searchplugins/mapy-cz.xml
+rename to browser/components/search/searchplugins/mapy-cz.xml
+diff --git a/browser/locales/searchplugins/marktplaats-fy-NL.xml b/browser/components/search/searchplugins/marktplaats-fy-NL.xml
+rename from browser/locales/searchplugins/marktplaats-fy-NL.xml
+rename to browser/components/search/searchplugins/marktplaats-fy-NL.xml
+diff --git a/browser/locales/searchplugins/marktplaats-nl.xml b/browser/components/search/searchplugins/marktplaats-nl.xml
+rename from browser/locales/searchplugins/marktplaats-nl.xml
+rename to browser/components/search/searchplugins/marktplaats-nl.xml
+diff --git a/browser/locales/searchplugins/mercadolibre-ar.xml b/browser/components/search/searchplugins/mercadolibre-ar.xml
+rename from browser/locales/searchplugins/mercadolibre-ar.xml
+rename to browser/components/search/searchplugins/mercadolibre-ar.xml
+diff --git a/browser/locales/searchplugins/mercadolibre-cl.xml b/browser/components/search/searchplugins/mercadolibre-cl.xml
+rename from browser/locales/searchplugins/mercadolibre-cl.xml
+rename to browser/components/search/searchplugins/mercadolibre-cl.xml
+diff --git a/browser/locales/searchplugins/mercadolibre-mx.xml b/browser/components/search/searchplugins/mercadolibre-mx.xml
+rename from browser/locales/searchplugins/mercadolibre-mx.xml
+rename to browser/components/search/searchplugins/mercadolibre-mx.xml
+diff --git a/browser/locales/searchplugins/mercadolivre.xml b/browser/components/search/searchplugins/mercadolivre.xml
+rename from browser/locales/searchplugins/mercadolivre.xml
+rename to browser/components/search/searchplugins/mercadolivre.xml
+diff --git a/browser/locales/searchplugins/meta-ua.xml b/browser/components/search/searchplugins/meta-ua.xml
+rename from browser/locales/searchplugins/meta-ua.xml
+rename to browser/components/search/searchplugins/meta-ua.xml
+diff --git a/browser/locales/searchplugins/metamarket.xml b/browser/components/search/searchplugins/metamarket.xml
+rename from browser/locales/searchplugins/metamarket.xml
+rename to browser/components/search/searchplugins/metamarket.xml
+diff --git a/browser/locales/searchplugins/morfix-dic.xml b/browser/components/search/searchplugins/morfix-dic.xml
+rename from browser/locales/searchplugins/morfix-dic.xml
+rename to browser/components/search/searchplugins/morfix-dic.xml
+diff --git a/browser/locales/searchplugins/najdi-si.xml b/browser/components/search/searchplugins/najdi-si.xml
+rename from browser/locales/searchplugins/najdi-si.xml
+rename to browser/components/search/searchplugins/najdi-si.xml
+diff --git a/browser/locales/searchplugins/naver-kr.xml b/browser/components/search/searchplugins/naver-kr.xml
+rename from browser/locales/searchplugins/naver-kr.xml
+rename to browser/components/search/searchplugins/naver-kr.xml
+diff --git a/browser/locales/searchplugins/neti-ee.xml b/browser/components/search/searchplugins/neti-ee.xml
+rename from browser/locales/searchplugins/neti-ee.xml
+rename to browser/components/search/searchplugins/neti-ee.xml
+diff --git a/browser/locales/searchplugins/odpiralni.xml b/browser/components/search/searchplugins/odpiralni.xml
+rename from browser/locales/searchplugins/odpiralni.xml
+rename to browser/components/search/searchplugins/odpiralni.xml
+diff --git a/browser/locales/searchplugins/olx.xml b/browser/components/search/searchplugins/olx.xml
+rename from browser/locales/searchplugins/olx.xml
+rename to browser/components/search/searchplugins/olx.xml
+diff --git a/browser/locales/searchplugins/oshiete-goo.xml b/browser/components/search/searchplugins/oshiete-goo.xml
+rename from browser/locales/searchplugins/oshiete-goo.xml
+rename to browser/components/search/searchplugins/oshiete-goo.xml
+diff --git a/browser/locales/searchplugins/osta-ee.xml b/browser/components/search/searchplugins/osta-ee.xml
+rename from browser/locales/searchplugins/osta-ee.xml
+rename to browser/components/search/searchplugins/osta-ee.xml
+diff --git a/browser/locales/searchplugins/ozonru.xml b/browser/components/search/searchplugins/ozonru.xml
+rename from browser/locales/searchplugins/ozonru.xml
+rename to browser/components/search/searchplugins/ozonru.xml
+diff --git a/browser/locales/searchplugins/palasprint.xml b/browser/components/search/searchplugins/palasprint.xml
+rename from browser/locales/searchplugins/palasprint.xml
+rename to browser/components/search/searchplugins/palasprint.xml
+diff --git a/browser/locales/searchplugins/paroledigenova-lij.xml b/browser/components/search/searchplugins/paroledigenova-lij.xml
+rename from browser/locales/searchplugins/paroledigenova-lij.xml
+rename to browser/components/search/searchplugins/paroledigenova-lij.xml
+diff --git a/browser/locales/searchplugins/pledarigrond.xml b/browser/components/search/searchplugins/pledarigrond.xml
+rename from browser/locales/searchplugins/pledarigrond.xml
+rename to browser/components/search/searchplugins/pledarigrond.xml
+diff --git a/browser/locales/searchplugins/pogodak.xml b/browser/components/search/searchplugins/pogodak.xml
+rename from browser/locales/searchplugins/pogodak.xml
+rename to browser/components/search/searchplugins/pogodak.xml
+diff --git a/browser/locales/searchplugins/portalbgdict.xml b/browser/components/search/searchplugins/portalbgdict.xml
+rename from browser/locales/searchplugins/portalbgdict.xml
+rename to browser/components/search/searchplugins/portalbgdict.xml
+diff --git a/browser/locales/searchplugins/priberam.xml b/browser/components/search/searchplugins/priberam.xml
+rename from browser/locales/searchplugins/priberam.xml
+rename to browser/components/search/searchplugins/priberam.xml
+diff --git a/browser/locales/searchplugins/priceru.xml b/browser/components/search/searchplugins/priceru.xml
+rename from browser/locales/searchplugins/priceru.xml
+rename to browser/components/search/searchplugins/priceru.xml
+diff --git a/browser/locales/searchplugins/prisjakt-sv-SE.xml b/browser/components/search/searchplugins/prisjakt-sv-SE.xml
+rename from browser/locales/searchplugins/prisjakt-sv-SE.xml
+rename to browser/components/search/searchplugins/prisjakt-sv-SE.xml
+diff --git a/browser/locales/searchplugins/pwn-pl.xml b/browser/components/search/searchplugins/pwn-pl.xml
+rename from browser/locales/searchplugins/pwn-pl.xml
+rename to browser/components/search/searchplugins/pwn-pl.xml
+diff --git a/browser/locales/searchplugins/qxl-NO.xml b/browser/components/search/searchplugins/qxl-NO.xml
+rename from browser/locales/searchplugins/qxl-NO.xml
+rename to browser/components/search/searchplugins/qxl-NO.xml
+diff --git a/browser/locales/searchplugins/rakuten.xml b/browser/components/search/searchplugins/rakuten.xml
+rename from browser/locales/searchplugins/rakuten.xml
+rename to browser/components/search/searchplugins/rakuten.xml
+diff --git a/browser/locales/searchplugins/rediff.xml b/browser/components/search/searchplugins/rediff.xml
+rename from browser/locales/searchplugins/rediff.xml
+rename to browser/components/search/searchplugins/rediff.xml
+diff --git a/browser/locales/searchplugins/reta-vortaro.xml b/browser/components/search/searchplugins/reta-vortaro.xml
+rename from browser/locales/searchplugins/reta-vortaro.xml
+rename to browser/components/search/searchplugins/reta-vortaro.xml
+diff --git a/browser/locales/searchplugins/salidzinilv.xml b/browser/components/search/searchplugins/salidzinilv.xml
+rename from browser/locales/searchplugins/salidzinilv.xml
+rename to browser/components/search/searchplugins/salidzinilv.xml
+diff --git a/browser/locales/searchplugins/sapo.xml b/browser/components/search/searchplugins/sapo.xml
+rename from browser/locales/searchplugins/sapo.xml
+rename to browser/components/search/searchplugins/sapo.xml
+diff --git a/browser/locales/searchplugins/seznam-cz.xml b/browser/components/search/searchplugins/seznam-cz.xml
+rename from browser/locales/searchplugins/seznam-cz.xml
+rename to browser/components/search/searchplugins/seznam-cz.xml
+diff --git a/browser/locales/searchplugins/slovnik-sk.xml b/browser/components/search/searchplugins/slovnik-sk.xml
+rename from browser/locales/searchplugins/slovnik-sk.xml
+rename to browser/components/search/searchplugins/slovnik-sk.xml
+diff --git a/browser/locales/searchplugins/sslv.xml b/browser/components/search/searchplugins/sslv.xml
+rename from browser/locales/searchplugins/sslv.xml
+rename to browser/components/search/searchplugins/sslv.xml
+diff --git a/browser/locales/searchplugins/sztaki-en-hu.xml b/browser/components/search/searchplugins/sztaki-en-hu.xml
+rename from browser/locales/searchplugins/sztaki-en-hu.xml
+rename to browser/components/search/searchplugins/sztaki-en-hu.xml
+diff --git a/browser/locales/searchplugins/tearma.xml b/browser/components/search/searchplugins/tearma.xml
+rename from browser/locales/searchplugins/tearma.xml
+rename to browser/components/search/searchplugins/tearma.xml
+diff --git a/browser/locales/searchplugins/termau.xml b/browser/components/search/searchplugins/termau.xml
+rename from browser/locales/searchplugins/termau.xml
+rename to browser/components/search/searchplugins/termau.xml
+diff --git a/browser/locales/searchplugins/twitter-ja.xml b/browser/components/search/searchplugins/twitter-ja.xml
+rename from browser/locales/searchplugins/twitter-ja.xml
+rename to browser/components/search/searchplugins/twitter-ja.xml
+diff --git a/browser/locales/searchplugins/twitter.xml b/browser/components/search/searchplugins/twitter.xml
+rename from browser/locales/searchplugins/twitter.xml
+rename to browser/components/search/searchplugins/twitter.xml
+diff --git a/browser/locales/searchplugins/tyda-sv-SE.xml b/browser/components/search/searchplugins/tyda-sv-SE.xml
+rename from browser/locales/searchplugins/tyda-sv-SE.xml
+rename to browser/components/search/searchplugins/tyda-sv-SE.xml
+diff --git a/browser/locales/searchplugins/vatera.xml b/browser/components/search/searchplugins/vatera.xml
+rename from browser/locales/searchplugins/vatera.xml
+rename to browser/components/search/searchplugins/vatera.xml
+diff --git a/browser/locales/searchplugins/webdunia.xml b/browser/components/search/searchplugins/webdunia.xml
+rename from browser/locales/searchplugins/webdunia.xml
+rename to browser/components/search/searchplugins/webdunia.xml
+diff --git a/browser/locales/searchplugins/wikipedia-NN.xml b/browser/components/search/searchplugins/wikipedia-NN.xml
+rename from browser/locales/searchplugins/wikipedia-NN.xml
+rename to browser/components/search/searchplugins/wikipedia-NN.xml
+diff --git a/browser/locales/searchplugins/wikipedia-NO.xml b/browser/components/search/searchplugins/wikipedia-NO.xml
+rename from browser/locales/searchplugins/wikipedia-NO.xml
+rename to browser/components/search/searchplugins/wikipedia-NO.xml
+diff --git a/browser/locales/searchplugins/wikipedia-af.xml b/browser/components/search/searchplugins/wikipedia-af.xml
+rename from browser/locales/searchplugins/wikipedia-af.xml
+rename to browser/components/search/searchplugins/wikipedia-af.xml
+diff --git a/browser/locales/searchplugins/wikipedia-an.xml b/browser/components/search/searchplugins/wikipedia-an.xml
+rename from browser/locales/searchplugins/wikipedia-an.xml
+rename to browser/components/search/searchplugins/wikipedia-an.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ar.xml b/browser/components/search/searchplugins/wikipedia-ar.xml
+rename from browser/locales/searchplugins/wikipedia-ar.xml
+rename to browser/components/search/searchplugins/wikipedia-ar.xml
+diff --git a/browser/locales/searchplugins/wikipedia-as.xml b/browser/components/search/searchplugins/wikipedia-as.xml
+rename from browser/locales/searchplugins/wikipedia-as.xml
+rename to browser/components/search/searchplugins/wikipedia-as.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ast.xml b/browser/components/search/searchplugins/wikipedia-ast.xml
+rename from browser/locales/searchplugins/wikipedia-ast.xml
+rename to browser/components/search/searchplugins/wikipedia-ast.xml
+diff --git a/browser/locales/searchplugins/wikipedia-az.xml b/browser/components/search/searchplugins/wikipedia-az.xml
+rename from browser/locales/searchplugins/wikipedia-az.xml
+rename to browser/components/search/searchplugins/wikipedia-az.xml
+diff --git a/browser/locales/searchplugins/wikipedia-be-tarask.xml b/browser/components/search/searchplugins/wikipedia-be-tarask.xml
+rename from browser/locales/searchplugins/wikipedia-be-tarask.xml
+rename to browser/components/search/searchplugins/wikipedia-be-tarask.xml
+diff --git a/browser/locales/searchplugins/wikipedia-be.xml b/browser/components/search/searchplugins/wikipedia-be.xml
+rename from browser/locales/searchplugins/wikipedia-be.xml
+rename to browser/components/search/searchplugins/wikipedia-be.xml
+diff --git a/browser/locales/searchplugins/wikipedia-bg.xml b/browser/components/search/searchplugins/wikipedia-bg.xml
+rename from browser/locales/searchplugins/wikipedia-bg.xml
+rename to browser/components/search/searchplugins/wikipedia-bg.xml
+diff --git a/browser/locales/searchplugins/wikipedia-bn.xml b/browser/components/search/searchplugins/wikipedia-bn.xml
+rename from browser/locales/searchplugins/wikipedia-bn.xml
+rename to browser/components/search/searchplugins/wikipedia-bn.xml
+diff --git a/browser/locales/searchplugins/wikipedia-br.xml b/browser/components/search/searchplugins/wikipedia-br.xml
+rename from browser/locales/searchplugins/wikipedia-br.xml
+rename to browser/components/search/searchplugins/wikipedia-br.xml
+diff --git a/browser/locales/searchplugins/wikipedia-bs.xml b/browser/components/search/searchplugins/wikipedia-bs.xml
+rename from browser/locales/searchplugins/wikipedia-bs.xml
+rename to browser/components/search/searchplugins/wikipedia-bs.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ca.xml b/browser/components/search/searchplugins/wikipedia-ca.xml
+rename from browser/locales/searchplugins/wikipedia-ca.xml
+rename to browser/components/search/searchplugins/wikipedia-ca.xml
+diff --git a/browser/locales/searchplugins/wikipedia-cy.xml b/browser/components/search/searchplugins/wikipedia-cy.xml
+rename from browser/locales/searchplugins/wikipedia-cy.xml
+rename to browser/components/search/searchplugins/wikipedia-cy.xml
+diff --git a/browser/locales/searchplugins/wikipedia-cz.xml b/browser/components/search/searchplugins/wikipedia-cz.xml
+rename from browser/locales/searchplugins/wikipedia-cz.xml
+rename to browser/components/search/searchplugins/wikipedia-cz.xml
+diff --git a/browser/locales/searchplugins/wikipedia-da.xml b/browser/components/search/searchplugins/wikipedia-da.xml
+rename from browser/locales/searchplugins/wikipedia-da.xml
+rename to browser/components/search/searchplugins/wikipedia-da.xml
+diff --git a/browser/locales/searchplugins/wikipedia-de.xml b/browser/components/search/searchplugins/wikipedia-de.xml
+rename from browser/locales/searchplugins/wikipedia-de.xml
+rename to browser/components/search/searchplugins/wikipedia-de.xml
+diff --git a/browser/locales/searchplugins/wikipedia-dsb.xml b/browser/components/search/searchplugins/wikipedia-dsb.xml
+rename from browser/locales/searchplugins/wikipedia-dsb.xml
+rename to browser/components/search/searchplugins/wikipedia-dsb.xml
+diff --git a/browser/locales/searchplugins/wikipedia-el.xml b/browser/components/search/searchplugins/wikipedia-el.xml
+rename from browser/locales/searchplugins/wikipedia-el.xml
+rename to browser/components/search/searchplugins/wikipedia-el.xml
+diff --git a/browser/locales/searchplugins/wikipedia-eo.xml b/browser/components/search/searchplugins/wikipedia-eo.xml
+rename from browser/locales/searchplugins/wikipedia-eo.xml
+rename to browser/components/search/searchplugins/wikipedia-eo.xml
+diff --git a/browser/locales/searchplugins/wikipedia-es.xml b/browser/components/search/searchplugins/wikipedia-es.xml
+rename from browser/locales/searchplugins/wikipedia-es.xml
+rename to browser/components/search/searchplugins/wikipedia-es.xml
+diff --git a/browser/locales/searchplugins/wikipedia-et.xml b/browser/components/search/searchplugins/wikipedia-et.xml
+rename from browser/locales/searchplugins/wikipedia-et.xml
+rename to browser/components/search/searchplugins/wikipedia-et.xml
+diff --git a/browser/locales/searchplugins/wikipedia-eu.xml b/browser/components/search/searchplugins/wikipedia-eu.xml
+rename from browser/locales/searchplugins/wikipedia-eu.xml
+rename to browser/components/search/searchplugins/wikipedia-eu.xml
+diff --git a/browser/locales/searchplugins/wikipedia-fa.xml b/browser/components/search/searchplugins/wikipedia-fa.xml
+rename from browser/locales/searchplugins/wikipedia-fa.xml
+rename to browser/components/search/searchplugins/wikipedia-fa.xml
+diff --git a/browser/locales/searchplugins/wikipedia-fi.xml b/browser/components/search/searchplugins/wikipedia-fi.xml
+rename from browser/locales/searchplugins/wikipedia-fi.xml
+rename to browser/components/search/searchplugins/wikipedia-fi.xml
+diff --git a/browser/locales/searchplugins/wikipedia-fr.xml b/browser/components/search/searchplugins/wikipedia-fr.xml
+rename from browser/locales/searchplugins/wikipedia-fr.xml
+rename to browser/components/search/searchplugins/wikipedia-fr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-fy-NL.xml b/browser/components/search/searchplugins/wikipedia-fy-NL.xml
+rename from browser/locales/searchplugins/wikipedia-fy-NL.xml
+rename to browser/components/search/searchplugins/wikipedia-fy-NL.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ga-IE.xml b/browser/components/search/searchplugins/wikipedia-ga-IE.xml
+rename from browser/locales/searchplugins/wikipedia-ga-IE.xml
+rename to browser/components/search/searchplugins/wikipedia-ga-IE.xml
+diff --git a/browser/locales/searchplugins/wikipedia-gd.xml b/browser/components/search/searchplugins/wikipedia-gd.xml
+rename from browser/locales/searchplugins/wikipedia-gd.xml
+rename to browser/components/search/searchplugins/wikipedia-gd.xml
+diff --git a/browser/locales/searchplugins/wikipedia-gl.xml b/browser/components/search/searchplugins/wikipedia-gl.xml
+rename from browser/locales/searchplugins/wikipedia-gl.xml
+rename to browser/components/search/searchplugins/wikipedia-gl.xml
+diff --git a/browser/locales/searchplugins/wikipedia-gn.xml b/browser/components/search/searchplugins/wikipedia-gn.xml
+rename from browser/locales/searchplugins/wikipedia-gn.xml
+rename to browser/components/search/searchplugins/wikipedia-gn.xml
+diff --git a/browser/locales/searchplugins/wikipedia-gu.xml b/browser/components/search/searchplugins/wikipedia-gu.xml
+rename from browser/locales/searchplugins/wikipedia-gu.xml
+rename to browser/components/search/searchplugins/wikipedia-gu.xml
+diff --git a/browser/locales/searchplugins/wikipedia-he.xml b/browser/components/search/searchplugins/wikipedia-he.xml
+rename from browser/locales/searchplugins/wikipedia-he.xml
+rename to browser/components/search/searchplugins/wikipedia-he.xml
+diff --git a/browser/locales/searchplugins/wikipedia-hi.xml b/browser/components/search/searchplugins/wikipedia-hi.xml
+rename from browser/locales/searchplugins/wikipedia-hi.xml
+rename to browser/components/search/searchplugins/wikipedia-hi.xml
+diff --git a/browser/locales/searchplugins/wikipedia-hr.xml b/browser/components/search/searchplugins/wikipedia-hr.xml
+rename from browser/locales/searchplugins/wikipedia-hr.xml
+rename to browser/components/search/searchplugins/wikipedia-hr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-hsb.xml b/browser/components/search/searchplugins/wikipedia-hsb.xml
+rename from browser/locales/searchplugins/wikipedia-hsb.xml
+rename to browser/components/search/searchplugins/wikipedia-hsb.xml
+diff --git a/browser/locales/searchplugins/wikipedia-hu.xml b/browser/components/search/searchplugins/wikipedia-hu.xml
+rename from browser/locales/searchplugins/wikipedia-hu.xml
+rename to browser/components/search/searchplugins/wikipedia-hu.xml
+diff --git a/browser/locales/searchplugins/wikipedia-hy.xml b/browser/components/search/searchplugins/wikipedia-hy.xml
+rename from browser/locales/searchplugins/wikipedia-hy.xml
+rename to browser/components/search/searchplugins/wikipedia-hy.xml
+diff --git a/browser/locales/searchplugins/wikipedia-id.xml b/browser/components/search/searchplugins/wikipedia-id.xml
+rename from browser/locales/searchplugins/wikipedia-id.xml
+rename to browser/components/search/searchplugins/wikipedia-id.xml
+diff --git a/browser/locales/searchplugins/wikipedia-is.xml b/browser/components/search/searchplugins/wikipedia-is.xml
+rename from browser/locales/searchplugins/wikipedia-is.xml
+rename to browser/components/search/searchplugins/wikipedia-is.xml
+diff --git a/browser/locales/searchplugins/wikipedia-it.xml b/browser/components/search/searchplugins/wikipedia-it.xml
+rename from browser/locales/searchplugins/wikipedia-it.xml
+rename to browser/components/search/searchplugins/wikipedia-it.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ja.xml b/browser/components/search/searchplugins/wikipedia-ja.xml
+rename from browser/locales/searchplugins/wikipedia-ja.xml
+rename to browser/components/search/searchplugins/wikipedia-ja.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ka.xml b/browser/components/search/searchplugins/wikipedia-ka.xml
+rename from browser/locales/searchplugins/wikipedia-ka.xml
+rename to browser/components/search/searchplugins/wikipedia-ka.xml
+diff --git a/browser/locales/searchplugins/wikipedia-kab.xml b/browser/components/search/searchplugins/wikipedia-kab.xml
+rename from browser/locales/searchplugins/wikipedia-kab.xml
+rename to browser/components/search/searchplugins/wikipedia-kab.xml
+diff --git a/browser/locales/searchplugins/wikipedia-kk.xml b/browser/components/search/searchplugins/wikipedia-kk.xml
+rename from browser/locales/searchplugins/wikipedia-kk.xml
+rename to browser/components/search/searchplugins/wikipedia-kk.xml
+diff --git a/browser/locales/searchplugins/wikipedia-km.xml b/browser/components/search/searchplugins/wikipedia-km.xml
+rename from browser/locales/searchplugins/wikipedia-km.xml
+rename to browser/components/search/searchplugins/wikipedia-km.xml
+diff --git a/browser/locales/searchplugins/wikipedia-kn.xml b/browser/components/search/searchplugins/wikipedia-kn.xml
+rename from browser/locales/searchplugins/wikipedia-kn.xml
+rename to browser/components/search/searchplugins/wikipedia-kn.xml
+diff --git a/browser/locales/searchplugins/wikipedia-kr.xml b/browser/components/search/searchplugins/wikipedia-kr.xml
+rename from browser/locales/searchplugins/wikipedia-kr.xml
+rename to browser/components/search/searchplugins/wikipedia-kr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-lij.xml b/browser/components/search/searchplugins/wikipedia-lij.xml
+rename from browser/locales/searchplugins/wikipedia-lij.xml
+rename to browser/components/search/searchplugins/wikipedia-lij.xml
+diff --git a/browser/locales/searchplugins/wikipedia-lo.xml b/browser/components/search/searchplugins/wikipedia-lo.xml
+rename from browser/locales/searchplugins/wikipedia-lo.xml
+rename to browser/components/search/searchplugins/wikipedia-lo.xml
+diff --git a/browser/locales/searchplugins/wikipedia-lt.xml b/browser/components/search/searchplugins/wikipedia-lt.xml
+rename from browser/locales/searchplugins/wikipedia-lt.xml
+rename to browser/components/search/searchplugins/wikipedia-lt.xml
+diff --git a/browser/locales/searchplugins/wikipedia-lv.xml b/browser/components/search/searchplugins/wikipedia-lv.xml
+rename from browser/locales/searchplugins/wikipedia-lv.xml
+rename to browser/components/search/searchplugins/wikipedia-lv.xml
+diff --git a/browser/locales/searchplugins/wikipedia-mk.xml b/browser/components/search/searchplugins/wikipedia-mk.xml
+rename from browser/locales/searchplugins/wikipedia-mk.xml
+rename to browser/components/search/searchplugins/wikipedia-mk.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ml.xml b/browser/components/search/searchplugins/wikipedia-ml.xml
+rename from browser/locales/searchplugins/wikipedia-ml.xml
+rename to browser/components/search/searchplugins/wikipedia-ml.xml
+diff --git a/browser/locales/searchplugins/wikipedia-mr.xml b/browser/components/search/searchplugins/wikipedia-mr.xml
+rename from browser/locales/searchplugins/wikipedia-mr.xml
+rename to browser/components/search/searchplugins/wikipedia-mr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ms.xml b/browser/components/search/searchplugins/wikipedia-ms.xml
+rename from browser/locales/searchplugins/wikipedia-ms.xml
+rename to browser/components/search/searchplugins/wikipedia-ms.xml
+diff --git a/browser/locales/searchplugins/wikipedia-my.xml b/browser/components/search/searchplugins/wikipedia-my.xml
+rename from browser/locales/searchplugins/wikipedia-my.xml
+rename to browser/components/search/searchplugins/wikipedia-my.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ne.xml b/browser/components/search/searchplugins/wikipedia-ne.xml
+rename from browser/locales/searchplugins/wikipedia-ne.xml
+rename to browser/components/search/searchplugins/wikipedia-ne.xml
+diff --git a/browser/locales/searchplugins/wikipedia-nl.xml b/browser/components/search/searchplugins/wikipedia-nl.xml
+rename from browser/locales/searchplugins/wikipedia-nl.xml
+rename to browser/components/search/searchplugins/wikipedia-nl.xml
+diff --git a/browser/locales/searchplugins/wikipedia-or.xml b/browser/components/search/searchplugins/wikipedia-or.xml
+rename from browser/locales/searchplugins/wikipedia-or.xml
+rename to browser/components/search/searchplugins/wikipedia-or.xml
+diff --git a/browser/locales/searchplugins/wikipedia-pa.xml b/browser/components/search/searchplugins/wikipedia-pa.xml
+rename from browser/locales/searchplugins/wikipedia-pa.xml
+rename to browser/components/search/searchplugins/wikipedia-pa.xml
+diff --git a/browser/locales/searchplugins/wikipedia-pl.xml b/browser/components/search/searchplugins/wikipedia-pl.xml
+rename from browser/locales/searchplugins/wikipedia-pl.xml
+rename to browser/components/search/searchplugins/wikipedia-pl.xml
+diff --git a/browser/locales/searchplugins/wikipedia-pt.xml b/browser/components/search/searchplugins/wikipedia-pt.xml
+rename from browser/locales/searchplugins/wikipedia-pt.xml
+rename to browser/components/search/searchplugins/wikipedia-pt.xml
+diff --git a/browser/locales/searchplugins/wikipedia-rm.xml b/browser/components/search/searchplugins/wikipedia-rm.xml
+rename from browser/locales/searchplugins/wikipedia-rm.xml
+rename to browser/components/search/searchplugins/wikipedia-rm.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ru.xml b/browser/components/search/searchplugins/wikipedia-ru.xml
+rename from browser/locales/searchplugins/wikipedia-ru.xml
+rename to browser/components/search/searchplugins/wikipedia-ru.xml
+diff --git a/browser/locales/searchplugins/wikipedia-si.xml b/browser/components/search/searchplugins/wikipedia-si.xml
+rename from browser/locales/searchplugins/wikipedia-si.xml
+rename to browser/components/search/searchplugins/wikipedia-si.xml
+diff --git a/browser/locales/searchplugins/wikipedia-sk.xml b/browser/components/search/searchplugins/wikipedia-sk.xml
+rename from browser/locales/searchplugins/wikipedia-sk.xml
+rename to browser/components/search/searchplugins/wikipedia-sk.xml
+diff --git a/browser/locales/searchplugins/wikipedia-sl.xml b/browser/components/search/searchplugins/wikipedia-sl.xml
+rename from browser/locales/searchplugins/wikipedia-sl.xml
+rename to browser/components/search/searchplugins/wikipedia-sl.xml
+diff --git a/browser/locales/searchplugins/wikipedia-sq.xml b/browser/components/search/searchplugins/wikipedia-sq.xml
+rename from browser/locales/searchplugins/wikipedia-sq.xml
+rename to browser/components/search/searchplugins/wikipedia-sq.xml
+diff --git a/browser/locales/searchplugins/wikipedia-sr.xml b/browser/components/search/searchplugins/wikipedia-sr.xml
+rename from browser/locales/searchplugins/wikipedia-sr.xml
+rename to browser/components/search/searchplugins/wikipedia-sr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-sv-SE.xml b/browser/components/search/searchplugins/wikipedia-sv-SE.xml
+rename from browser/locales/searchplugins/wikipedia-sv-SE.xml
+rename to browser/components/search/searchplugins/wikipedia-sv-SE.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ta.xml b/browser/components/search/searchplugins/wikipedia-ta.xml
+rename from browser/locales/searchplugins/wikipedia-ta.xml
+rename to browser/components/search/searchplugins/wikipedia-ta.xml
+diff --git a/browser/locales/searchplugins/wikipedia-te.xml b/browser/components/search/searchplugins/wikipedia-te.xml
+rename from browser/locales/searchplugins/wikipedia-te.xml
+rename to browser/components/search/searchplugins/wikipedia-te.xml
+diff --git a/browser/locales/searchplugins/wikipedia-th.xml b/browser/components/search/searchplugins/wikipedia-th.xml
+rename from browser/locales/searchplugins/wikipedia-th.xml
+rename to browser/components/search/searchplugins/wikipedia-th.xml
+diff --git a/browser/locales/searchplugins/wikipedia-tl.xml b/browser/components/search/searchplugins/wikipedia-tl.xml
+rename from browser/locales/searchplugins/wikipedia-tl.xml
+rename to browser/components/search/searchplugins/wikipedia-tl.xml
+diff --git a/browser/locales/searchplugins/wikipedia-tr.xml b/browser/components/search/searchplugins/wikipedia-tr.xml
+rename from browser/locales/searchplugins/wikipedia-tr.xml
+rename to browser/components/search/searchplugins/wikipedia-tr.xml
+diff --git a/browser/locales/searchplugins/wikipedia-uk.xml b/browser/components/search/searchplugins/wikipedia-uk.xml
+rename from browser/locales/searchplugins/wikipedia-uk.xml
+rename to browser/components/search/searchplugins/wikipedia-uk.xml
+diff --git a/browser/locales/searchplugins/wikipedia-ur.xml b/browser/components/search/searchplugins/wikipedia-ur.xml
+rename from browser/locales/searchplugins/wikipedia-ur.xml
+rename to browser/components/search/searchplugins/wikipedia-ur.xml
+diff --git a/browser/locales/searchplugins/wikipedia-uz.xml b/browser/components/search/searchplugins/wikipedia-uz.xml
+rename from browser/locales/searchplugins/wikipedia-uz.xml
+rename to browser/components/search/searchplugins/wikipedia-uz.xml
+diff --git a/browser/locales/searchplugins/wikipedia-vi.xml b/browser/components/search/searchplugins/wikipedia-vi.xml
+rename from browser/locales/searchplugins/wikipedia-vi.xml
+rename to browser/components/search/searchplugins/wikipedia-vi.xml
+diff --git a/browser/locales/searchplugins/wikipedia-wo.xml b/browser/components/search/searchplugins/wikipedia-wo.xml
+rename from browser/locales/searchplugins/wikipedia-wo.xml
+rename to browser/components/search/searchplugins/wikipedia-wo.xml
+diff --git a/browser/locales/searchplugins/wikipedia-zh-CN.xml b/browser/components/search/searchplugins/wikipedia-zh-CN.xml
+rename from browser/locales/searchplugins/wikipedia-zh-CN.xml
+rename to browser/components/search/searchplugins/wikipedia-zh-CN.xml
+diff --git a/browser/locales/searchplugins/wikipedia-zh-TW.xml b/browser/components/search/searchplugins/wikipedia-zh-TW.xml
+rename from browser/locales/searchplugins/wikipedia-zh-TW.xml
+rename to browser/components/search/searchplugins/wikipedia-zh-TW.xml
+diff --git a/browser/locales/searchplugins/wikipedia.xml b/browser/components/search/searchplugins/wikipedia.xml
+rename from browser/locales/searchplugins/wikipedia.xml
+rename to browser/components/search/searchplugins/wikipedia.xml
+diff --git a/browser/locales/searchplugins/wikipediaro.xml b/browser/components/search/searchplugins/wikipediaro.xml
+rename from browser/locales/searchplugins/wikipediaro.xml
+rename to browser/components/search/searchplugins/wikipediaro.xml
+diff --git a/browser/locales/searchplugins/wiktionary-te.xml b/browser/components/search/searchplugins/wiktionary-te.xml
+rename from browser/locales/searchplugins/wiktionary-te.xml
+rename to browser/components/search/searchplugins/wiktionary-te.xml
+diff --git a/browser/locales/searchplugins/wolnelektury-pl.xml b/browser/components/search/searchplugins/wolnelektury-pl.xml
+rename from browser/locales/searchplugins/wolnelektury-pl.xml
+rename to browser/components/search/searchplugins/wolnelektury-pl.xml
+diff --git a/browser/locales/searchplugins/yahoo-NO.xml b/browser/components/search/searchplugins/yahoo-NO.xml
+rename from browser/locales/searchplugins/yahoo-NO.xml
+rename to browser/components/search/searchplugins/yahoo-NO.xml
+diff --git a/browser/locales/searchplugins/yahoo-answer-zh-TW.xml b/browser/components/search/searchplugins/yahoo-answer-zh-TW.xml
+rename from browser/locales/searchplugins/yahoo-answer-zh-TW.xml
+rename to browser/components/search/searchplugins/yahoo-answer-zh-TW.xml
+diff --git a/browser/locales/searchplugins/yahoo-ar.xml b/browser/components/search/searchplugins/yahoo-ar.xml
+rename from browser/locales/searchplugins/yahoo-ar.xml
+rename to browser/components/search/searchplugins/yahoo-ar.xml
+diff --git a/browser/locales/searchplugins/yahoo-bid-zh-TW.xml b/browser/components/search/searchplugins/yahoo-bid-zh-TW.xml
+rename from browser/locales/searchplugins/yahoo-bid-zh-TW.xml
+rename to browser/components/search/searchplugins/yahoo-bid-zh-TW.xml
+diff --git a/browser/locales/searchplugins/yahoo-br.xml b/browser/components/search/searchplugins/yahoo-br.xml
+rename from browser/locales/searchplugins/yahoo-br.xml
+rename to browser/components/search/searchplugins/yahoo-br.xml
+diff --git a/browser/locales/searchplugins/yahoo-ch.xml b/browser/components/search/searchplugins/yahoo-ch.xml
+rename from browser/locales/searchplugins/yahoo-ch.xml
+rename to browser/components/search/searchplugins/yahoo-ch.xml
+diff --git a/browser/locales/searchplugins/yahoo-cl.xml b/browser/components/search/searchplugins/yahoo-cl.xml
+rename from browser/locales/searchplugins/yahoo-cl.xml
+rename to browser/components/search/searchplugins/yahoo-cl.xml
+diff --git a/browser/locales/searchplugins/yahoo-de.xml b/browser/components/search/searchplugins/yahoo-de.xml
+rename from browser/locales/searchplugins/yahoo-de.xml
+rename to browser/components/search/searchplugins/yahoo-de.xml
+diff --git a/browser/locales/searchplugins/yahoo-en-CA.xml b/browser/components/search/searchplugins/yahoo-en-CA.xml
+rename from browser/locales/searchplugins/yahoo-en-CA.xml
+rename to browser/components/search/searchplugins/yahoo-en-CA.xml
+diff --git a/browser/locales/searchplugins/yahoo-en-GB.xml b/browser/components/search/searchplugins/yahoo-en-GB.xml
+rename from browser/locales/searchplugins/yahoo-en-GB.xml
+rename to browser/components/search/searchplugins/yahoo-en-GB.xml
+diff --git a/browser/locales/searchplugins/yahoo-es.xml b/browser/components/search/searchplugins/yahoo-es.xml
+rename from browser/locales/searchplugins/yahoo-es.xml
+rename to browser/components/search/searchplugins/yahoo-es.xml
+diff --git a/browser/locales/searchplugins/yahoo-espanol.xml b/browser/components/search/searchplugins/yahoo-espanol.xml
+rename from browser/locales/searchplugins/yahoo-espanol.xml
+rename to browser/components/search/searchplugins/yahoo-espanol.xml
+diff --git a/browser/locales/searchplugins/yahoo-fi.xml b/browser/components/search/searchplugins/yahoo-fi.xml
+rename from browser/locales/searchplugins/yahoo-fi.xml
+rename to browser/components/search/searchplugins/yahoo-fi.xml
+diff --git a/browser/locales/searchplugins/yahoo-france.xml b/browser/components/search/searchplugins/yahoo-france.xml
+rename from browser/locales/searchplugins/yahoo-france.xml
+rename to browser/components/search/searchplugins/yahoo-france.xml
+diff --git a/browser/locales/searchplugins/yahoo-fy-NL.xml b/browser/components/search/searchplugins/yahoo-fy-NL.xml
+rename from browser/locales/searchplugins/yahoo-fy-NL.xml
+rename to browser/components/search/searchplugins/yahoo-fy-NL.xml
+diff --git a/browser/locales/searchplugins/yahoo-id.xml b/browser/components/search/searchplugins/yahoo-id.xml
+rename from browser/locales/searchplugins/yahoo-id.xml
+rename to browser/components/search/searchplugins/yahoo-id.xml
+diff --git a/browser/locales/searchplugins/yahoo-in.xml b/browser/components/search/searchplugins/yahoo-in.xml
+rename from browser/locales/searchplugins/yahoo-in.xml
+rename to browser/components/search/searchplugins/yahoo-in.xml
+diff --git a/browser/locales/searchplugins/yahoo-it.xml b/browser/components/search/searchplugins/yahoo-it.xml
+rename from browser/locales/searchplugins/yahoo-it.xml
+rename to browser/components/search/searchplugins/yahoo-it.xml
+diff --git a/browser/locales/searchplugins/yahoo-jp-auctions.xml b/browser/components/search/searchplugins/yahoo-jp-auctions.xml
+rename from browser/locales/searchplugins/yahoo-jp-auctions.xml
+rename to browser/components/search/searchplugins/yahoo-jp-auctions.xml
+diff --git a/browser/locales/searchplugins/yahoo-jp.xml b/browser/components/search/searchplugins/yahoo-jp.xml
+rename from browser/locales/searchplugins/yahoo-jp.xml
+rename to browser/components/search/searchplugins/yahoo-jp.xml
+diff --git a/browser/locales/searchplugins/yahoo-mx.xml b/browser/components/search/searchplugins/yahoo-mx.xml
+rename from browser/locales/searchplugins/yahoo-mx.xml
+rename to browser/components/search/searchplugins/yahoo-mx.xml
+diff --git a/browser/locales/searchplugins/yahoo-sv-SE.xml b/browser/components/search/searchplugins/yahoo-sv-SE.xml
+rename from browser/locales/searchplugins/yahoo-sv-SE.xml
+rename to browser/components/search/searchplugins/yahoo-sv-SE.xml
+diff --git a/browser/locales/searchplugins/yahoo-tl.xml b/browser/components/search/searchplugins/yahoo-tl.xml
+rename from browser/locales/searchplugins/yahoo-tl.xml
+rename to browser/components/search/searchplugins/yahoo-tl.xml
+diff --git a/browser/locales/searchplugins/yahoo-zh-TW-HK.xml b/browser/components/search/searchplugins/yahoo-zh-TW-HK.xml
+rename from browser/locales/searchplugins/yahoo-zh-TW-HK.xml
+rename to browser/components/search/searchplugins/yahoo-zh-TW-HK.xml
+diff --git a/browser/locales/searchplugins/yahoo-zh-TW.xml b/browser/components/search/searchplugins/yahoo-zh-TW.xml
+rename from browser/locales/searchplugins/yahoo-zh-TW.xml
+rename to browser/components/search/searchplugins/yahoo-zh-TW.xml
+diff --git a/browser/locales/searchplugins/yahoo.xml b/browser/components/search/searchplugins/yahoo.xml
+rename from browser/locales/searchplugins/yahoo.xml
+rename to browser/components/search/searchplugins/yahoo.xml
+diff --git a/browser/locales/searchplugins/yandex-az.xml b/browser/components/search/searchplugins/yandex-az.xml
+rename from browser/locales/searchplugins/yandex-az.xml
+rename to browser/components/search/searchplugins/yandex-az.xml
+diff --git a/browser/locales/searchplugins/yandex-by.xml b/browser/components/search/searchplugins/yandex-by.xml
+rename from browser/locales/searchplugins/yandex-by.xml
+rename to browser/components/search/searchplugins/yandex-by.xml
+diff --git a/browser/locales/searchplugins/yandex-en.xml b/browser/components/search/searchplugins/yandex-en.xml
+rename from browser/locales/searchplugins/yandex-en.xml
+rename to browser/components/search/searchplugins/yandex-en.xml
+diff --git a/browser/locales/searchplugins/yandex-kk.xml b/browser/components/search/searchplugins/yandex-kk.xml
+rename from browser/locales/searchplugins/yandex-kk.xml
+rename to browser/components/search/searchplugins/yandex-kk.xml
+diff --git a/browser/locales/searchplugins/yandex-ru.xml b/browser/components/search/searchplugins/yandex-ru.xml
+rename from browser/locales/searchplugins/yandex-ru.xml
+rename to browser/components/search/searchplugins/yandex-ru.xml
+diff --git a/browser/locales/searchplugins/yandex-tr.xml b/browser/components/search/searchplugins/yandex-tr.xml
+rename from browser/locales/searchplugins/yandex-tr.xml
+rename to browser/components/search/searchplugins/yandex-tr.xml
+diff --git a/browser/locales/searchplugins/yandex-uk.xml b/browser/components/search/searchplugins/yandex-uk.xml
+rename from browser/locales/searchplugins/yandex-uk.xml
+rename to browser/components/search/searchplugins/yandex-uk.xml
+diff --git a/browser/locales/searchplugins/zing-mp3.xml b/browser/components/search/searchplugins/zing-mp3.xml
+rename from browser/locales/searchplugins/zing-mp3.xml
+rename to browser/components/search/searchplugins/zing-mp3.xml
+diff --git a/browser/locales/searchplugins/zoznam-sk.xml b/browser/components/search/searchplugins/zoznam-sk.xml
+rename from browser/locales/searchplugins/zoznam-sk.xml
+rename to browser/components/search/searchplugins/zoznam-sk.xml
+diff --git a/browser/locales/search/list.json b/browser/components/search/searchplugins/list.json
+rename from browser/locales/search/list.json
+rename to browser/components/search/searchplugins/list.json
+--- a/browser/locales/search/list.json
++++ b/browser/components/search/searchplugins/list.json
+@@ -404,17 +404,17 @@
+     },
+     "it": {
+       "default": {
+         "visibleDefaultEngines": [
+           "google", "yahoo-it", "bing", "amazon-it", "ddg", "hoepli", "wikipedia-it"
+         ]
+       }
+     },
+-    "ja-JP-mac": {
++    "ja-JP-macos": {
+       "default": {
+         "searchOrder": ["Google", "Yahoo! JAPAN", "Bing", "Amazon.co.jp", "楽天市場", "ヤフオク!", "教えて!goo", "Twitter", "Wikipedia (ja)"],
+         "visibleDefaultEngines": [
+           "google", "yahoo-jp", "bing", "amazon-jp", "rakuten", "yahoo-jp-auctions", "oshiete-goo", "twitter-ja", "wikipedia-ja", "ddg"
+         ]
+       }
+     },
+     "ja": {
+diff --git a/browser/components/search/test/browser.ini b/browser/components/search/test/browser.ini
+--- a/browser/components/search/test/browser.ini
++++ b/browser/components/search/test/browser.ini
+@@ -19,23 +19,19 @@ support-files =
+ [browser_addEngine.js]
+ [browser_amazon.js]
+ [browser_bing.js]
+ [browser_contextmenu.js]
+ [browser_contextSearchTabPosition.js]
+ skip-if = os == "mac" # bug 967013
+ [browser_ddg.js]
+ [browser_google.js]
+-skip-if = artifact # bug 1315953
+ [browser_google_codes.js]
+-skip-if = artifact # bug 1315953
+ [browser_google_nocodes.js]
+-skip-if = artifact # bug 1315953
+ [browser_google_behavior.js]
+-skip-if = artifact # bug 1315953
+ [browser_healthreport.js]
+ [browser_hiddenOneOffs_cleanup.js]
+ [browser_hiddenOneOffs_diacritics.js]
+ [browser_oneOffContextMenu.js]
+ [browser_oneOffContextMenu_setDefault.js]
+ [browser_oneOffHeader.js]
+ skip-if = os == "mac" # bug 1361276
+ [browser_private_search_perwindowpb.js]
+diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
+--- a/browser/locales/Makefile.in
++++ b/browser/locales/Makefile.in
+@@ -34,55 +34,36 @@ MOZ_PKG_MAC_EXTRA=--symlink '/Applicatio
+ endif
+ 
+ ifeq ($(CPU_ARCH), aarch64)
+ MOZ_SFX_PACKAGE=$(topsrcdir)/other-licenses/7zstub/firefox/7zSD.ARM64.sfx
+ else
+ MOZ_SFX_PACKAGE=$(topsrcdir)/other-licenses/7zstub/firefox/7zSD.Win32.sfx
+ endif
+ 
+-SEARCHPLUGINS_FILENAMES := $(shell $(call py_action,output_searchplugins_list,$(srcdir)/search/list.json $(AB_CD)))
+-SEARCHPLUGINS_PATH := .deps/generated_$(AB_CD)
+-SEARCHPLUGINS_TARGET := libs searchplugins
+-SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_FILENAMES)),$(or $(wildcard $(srcdir)/searchplugins/$(plugin)),$(warning Missing searchplugin: $(plugin))))
+-# Some locale-specific search plugins may have preprocessor directives, but the
+-# default en-US ones do not.
+-SEARCHPLUGINS_FLAGS := --silence-missing-directive-warnings
+-PP_TARGETS += SEARCHPLUGINS
+-
+-list-json = $(SEARCHPLUGINS_PATH)/list.json
+-GARBAGE += $(list-json)
+-
+-libs:: searchplugins
+-
+ # Required for l10n.mk - defines a list of app sub dirs that should
+ # be included in langpack xpis.
+ DIST_SUBDIRS = $(DIST_SUBDIR)
+ 
+ include $(topsrcdir)/config/rules.mk
+ 
+ include $(topsrcdir)/toolkit/locales/l10n.mk
+ 
+-$(list-json): $(call mkdir_deps,$(SEARCHPLUGINS_PATH)) $(if $(IS_LANGUAGE_REPACK),FORCE)
+-	$(call py_action,generate_searchjson,$(srcdir)/search/list.json $(AB_CD) $(list-json))
+-searchplugins:: $(list-json)
+-
+ libs-%: AB_CD=$*
+ libs-%:
+ 	$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
+ 	$(NSINSTALL) -D $(DIST)/install
+ 	@$(MAKE) -C ../../toolkit/locales libs-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
+ 	@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
+ 	@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
+ ifneq (,$(wildcard ../extensions/formautofill/locales))
+ 	@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
+ endif
+ 	@$(MAKE) -C ../../intl/locales AB_CD=$* XPI_NAME=locale-$*
+ 	@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
+-	@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
+ 	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
+ 	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
+ 
+ chrome-%: AB_CD=$*
+ chrome-%: IS_LANGUAGE_REPACK=1
+ chrome-%:
+ 	$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
+ 	@$(MAKE) -C ../../toolkit/locales chrome-$*
+diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
+--- a/browser/locales/jar.mn
++++ b/browser/locales/jar.mn
+@@ -96,28 +96,16 @@
+     locale/browser/preferences/siteDataSettings.dtd     (%chrome/browser/preferences/siteDataSettings.dtd)
+     locale/browser/preferences-old/sync.dtd           (%chrome/browser/preferences-old/sync.dtd)
+     locale/browser/preferences/sync.dtd               (%chrome/browser/preferences/sync.dtd)
+     locale/browser/preferences-old/tabs.dtd           (%chrome/browser/preferences-old/tabs.dtd)
+     locale/browser/preferences/tabs.dtd               (%chrome/browser/preferences/tabs.dtd)
+     locale/browser/preferences/translation.dtd        (%chrome/browser/preferences/translation.dtd)
+     locale/browser/syncBrand.dtd                (%chrome/browser/syncBrand.dtd)
+     locale/browser/syncSetup.properties         (%chrome/browser/syncSetup.properties)
+-#if BUILD_FASTER
+-    locale/browser/searchplugins/               (searchplugins/*.xml)
+-    locale/browser/searchplugins/list.json      (search/list.json)
+-#else
+-    locale/browser/searchplugins/               (.deps/generated_@AB_CD@/*.xml)
+-    locale/browser/searchplugins/list.json      (.deps/generated_@AB_CD@/list.json)
+-#endif
+-    locale/browser/searchplugins/images/amazon.ico     (searchplugins/images/amazon.ico)
+-    locale/browser/searchplugins/images/wikipedia.ico  (searchplugins/images/wikipedia.ico)
+-    locale/browser/searchplugins/images/yahoo.ico      (searchplugins/images/yahoo.ico)
+-    locale/browser/searchplugins/images/yandex-en.ico  (searchplugins/images/yandex-en.ico)
+-    locale/browser/searchplugins/images/yandex-ru.ico  (searchplugins/images/yandex-ru.ico)
+ % locale browser-region @AB_CD@ %locale/browser-region/
+     locale/browser-region/region.properties        (%chrome/browser-region/region.properties)
+ # the following files are browser-specific overrides
+     locale/browser/netError.dtd                (%chrome/overrides/netError.dtd)
+     locale/browser/appstrings.properties       (%chrome/overrides/appstrings.properties)
+     locale/browser/downloads/settingsChange.dtd  (%chrome/overrides/settingsChange.dtd)
+ % locale pdf.js @AB_CD@ %locale/pdfviewer/
+     locale/pdfviewer/viewer.properties             (%pdfviewer/viewer.properties)
+diff --git a/browser/modules/ContentSearch.jsm b/browser/modules/ContentSearch.jsm
+--- a/browser/modules/ContentSearch.jsm
++++ b/browser/modules/ContentSearch.jsm
+@@ -100,16 +100,17 @@ this.ContentSearch = {
+   _destroyedPromise: null,
+ 
+   // The current controller and browser in _onMessageGetSuggestions.  Allows
+   // fetch cancellation from _cancelSuggestions.
+   _currentSuggestion: null,
+ 
+   init() {
+     Services.obs.addObserver(this, "browser-search-engine-modified");
++    Services.obs.addObserver(this, "browser-search-service");
+     Services.obs.addObserver(this, "shutdown-leaks-before-check");
+     Services.prefs.addObserver("browser.search.hiddenOneOffs", this);
+     this._stringBundle = Services.strings.createBundle("chrome://global/locale/autocomplete.properties");
+   },
+ 
+   get searchSuggestionUIStrings() {
+     if (this._searchSuggestionUIStrings) {
+       return this._searchSuggestionUIStrings;
+@@ -126,16 +127,17 @@ this.ContentSearch = {
+   },
+ 
+   destroy() {
+     if (this._destroyedPromise) {
+       return this._destroyedPromise;
+     }
+ 
+     Services.obs.removeObserver(this, "browser-search-engine-modified");
++    Services.obs.removeObserver(this, "browser-search-service");
+     Services.obs.removeObserver(this, "shutdown-leaks-before-check");
+ 
+     this._eventQueue.length = 0;
+     this._destroyedPromise = Promise.resolve(this._currentEventPromise);
+     return this._destroyedPromise;
+   },
+ 
+   /**
+@@ -177,16 +179,20 @@ this.ContentSearch = {
+       type: "Message",
+       data: msg,
+     });
+     this._processEventQueue();
+   },
+ 
+   observe(subj, topic, data) {
+     switch (topic) {
++    case "browser-search-service":
++      if (data != "init-complete") {
++        break;
++      }
+     case "nsPref:changed":
+     case "browser-search-engine-modified":
+       this._eventQueue.push({
+         type: "Observe",
+         data,
+       });
+       this._processEventQueue();
+       break;
+diff --git a/toolkit/components/search/nsSearchService.js b/toolkit/components/search/nsSearchService.js
+--- a/toolkit/components/search/nsSearchService.js
++++ b/toolkit/components/search/nsSearchService.js
+@@ -57,17 +57,17 @@ const NS_APP_USER_PROFILE_50_DIR = "Prof
+ 
+ // Loading plugins from NS_APP_SEARCH_DIR is no longer supported.
+ // Instead, we now load plugins from APP_SEARCH_PREFIX, where a
+ // list.txt file needs to exist to list available engines.
+ const APP_SEARCH_PREFIX = "resource://search-plugins/";
+ 
+ // See documentation in nsIBrowserSearchService.idl.
+ const SEARCH_ENGINE_TOPIC        = "browser-search-engine-modified";
+-const REQ_LOCALES_CHANGED_TOPIC  = "intl:requested-locales-changed";
++const TOPIC_LOCALES_CHANGE       = "intl:app-locales-changed";
+ const QUIT_APPLICATION_TOPIC     = "quit-application";
+ 
+ const SEARCH_ENGINE_REMOVED      = "engine-removed";
+ const SEARCH_ENGINE_ADDED        = "engine-added";
+ const SEARCH_ENGINE_CHANGED      = "engine-changed";
+ const SEARCH_ENGINE_LOADED       = "engine-loaded";
+ const SEARCH_ENGINE_CURRENT      = "engine-current";
+ const SEARCH_ENGINE_DEFAULT      = "engine-default";
+@@ -3171,19 +3171,19 @@ SearchService.prototype = {
+         await ensureKnownCountryCode(this);
+         // Due to the HTTP requests done by ensureKnownCountryCode, it's possible that
+         // at this point a synchronous init has been forced by other code.
+         if (!gInitialized)
+           await this._asyncLoadEngines(cache);
+ 
+         // Typically we'll re-init as a result of a pref observer,
+         // so signal to 'callers' that we're done.
++        gInitialized = true;
+         Services.obs.notifyObservers(null, SEARCH_SERVICE_TOPIC, "init-complete");
+         this._recordEngineTelemetry();
+-        gInitialized = true;
+       } catch (err) {
+         LOG("Reinit failed: " + err);
+         Services.obs.notifyObservers(null, SEARCH_SERVICE_TOPIC, "reinit-failed");
+       } finally {
+         Services.obs.notifyObservers(null, SEARCH_SERVICE_TOPIC, "reinit-complete");
+       }
+     })();
+   },
+@@ -3651,24 +3651,41 @@ SearchService.prototype = {
+       this._parseListTxt(list, uris);
+     } else {
+       this._parseListJSON(list, uris);
+     }
+     return uris;
+   },
+ 
+   _parseListJSON: function SRCH_SVC_parseListJSON(list, uris) {
+-    let searchSettings;
++    let json;
+     try {
+-      searchSettings = JSON.parse(list);
++      json = JSON.parse(list);
+     } catch (e) {
+-      LOG("failing to parse list.json: " + e);
++      Cu.reportError("parseListJSON: Failed to parse list.json: " + e);
++      dump("parseListJSON: Failed to parse list.json: " + e + "\n");
+       return;
+     }
+ 
++    let searchSettings;
++    let locale = Services.locale.getAppLocaleAsBCP47();
++    if ("locales" in json &&
++        locale in json.locales) {
++      searchSettings = json.locales[locale];
++    } else {
++      // No locales were found, so use the JSON as is.
++      // It should have a default section.
++      if (!("default" in json)) {
++        Cu.reportError("parseListJSON: Missing default in list.json");
++        dump("parseListJSON: Missing default in list.json\n");
++        return;
++      }
++      searchSettings = json;
++    }
++
+     // Check if we have a useable country specific list of visible default engines.
+     // This will only be set if we got the list from the Mozilla search server;
+     // it will not be set for distributions.
+     let engineNames;
+     let visibleDefaultEngines = this.getVerifiedGlobalAttr("visibleDefaultEngines");
+     if (visibleDefaultEngines) {
+       let jarNames = new Set();
+       for (let region in searchSettings) {
+@@ -3710,48 +3727,66 @@ SearchService.prototype = {
+           "visibleDefaultEngines" in searchSettings[searchRegion]) {
+         engineNames = searchSettings[searchRegion].visibleDefaultEngines;
+       } else {
+         engineNames = searchSettings.default.visibleDefaultEngines;
+       }
+     }
+ 
+     // Remove any engine names that are supposed to be ignored.
+-    // This pref is only allows in a partner distribution.
++    // This pref is only allowed in a partner distribution.
+     let branch = Services.prefs.getDefaultBranch(BROWSER_SEARCH_PREF);
+     if (isPartnerBuild() &&
+         branch.getPrefType("ignoredJAREngines") == branch.PREF_STRING) {
+       let ignoredJAREngines = branch.getCharPref("ignoredJAREngines")
+                                     .split(",");
+       let filteredEngineNames = engineNames.filter(e => !ignoredJAREngines.includes(e));
+       // Don't allow all engines to be hidden
+       if (filteredEngineNames.length > 0) {
+         engineNames = filteredEngineNames;
+       }
+     }
+ 
++    if ("regionOverrides" in json &&
++        searchRegion in json.regionOverrides) {
++      for (let engine in json.regionOverrides[searchRegion]) {
++        let index = engineNames.indexOf(engine);
++        if (index > -1) {
++          engineNames[index] = json.regionOverrides[searchRegion][engine];
++        }
++      }
++    }
++
+     for (let name of engineNames) {
+       uris.push(APP_SEARCH_PREFIX + name + ".xml");
+     }
+ 
+     // Store this so that it can be used while writing the cache file.
+     this._visibleDefaultEngines = engineNames;
+ 
+     if (searchRegion && searchRegion in searchSettings &&
+         "searchDefault" in searchSettings[searchRegion]) {
+       this._searchDefault = searchSettings[searchRegion].searchDefault;
++    } else if ("searchDefault" in searchSettings.default) {
++      this._searchDefault = searchSettings.default.searchDefault;
+     } else {
+-      this._searchDefault = searchSettings.default.searchDefault;
++      this._searchDefault = json.default.searchDefault;
++    }
++
++    if (!this._searchDefault) {
++      Cu.reportError("parseListJSON: No searchDefault");
+     }
+ 
+     if (searchRegion && searchRegion in searchSettings &&
+         "searchOrder" in searchSettings[searchRegion]) {
+       this._searchOrder = searchSettings[searchRegion].searchOrder;
+     } else if ("searchOrder" in searchSettings.default) {
+       this._searchOrder = searchSettings.default.searchOrder;
++    } else if ("searchOrder" in json.default) {
++      this._searchOrder = json.default.searchOrder;
+     }
+   },
+ 
+   _parseListTxt: function SRCH_SVC_parseListTxt(list, uris) {
+     let names = list.split("\n").filter(n => !!n);
+     // This maps the names of our built-in engines to a boolean
+     // indicating whether it should be hidden by default.
+     let jarNames = new Map();
+@@ -4674,19 +4709,20 @@ SearchService.prototype = {
+             break;
+         }
+         break;
+ 
+       case QUIT_APPLICATION_TOPIC:
+         this._removeObservers();
+         break;
+ 
+-      case REQ_LOCALES_CHANGED_TOPIC:
++      case TOPIC_LOCALES_CHANGE:
+         // Locale changed. Re-init. We rely on observers, because we can't
+         // return this promise to anyone.
++        // FYI, This is also used by the search tests to do an async reinit.
+         this._asyncReInit();
+         break;
+     }
+   },
+ 
+   // nsITimerCallback
+   notify: function SRCH_SVC_notify(aTimer) {
+     LOG("_notify: checking for updates");
+@@ -4731,20 +4767,17 @@ SearchService.prototype = {
+       // There might be a race between synchronous and asynchronous
+       // initialization for which we try to register the observers twice.
+       return;
+     }
+     this._observersAdded = true;
+ 
+     Services.obs.addObserver(this, SEARCH_ENGINE_TOPIC);
+     Services.obs.addObserver(this, QUIT_APPLICATION_TOPIC);
+-
+-    if (AppConstants.MOZ_BUILD_APP == "mobile/android") {
+-      Services.obs.addObserver(this, REQ_LOCALES_CHANGED_TOPIC);
+-    }
++    Services.obs.addObserver(this, TOPIC_LOCALES_CHANGE);
+ 
+     // The current stage of shutdown. Used to help analyze crash
+     // signatures in case of shutdown timeout.
+     let shutdownState = {
+       step: "Not started",
+       latestError: {
+         message: undefined,
+         stack: undefined
+@@ -4776,20 +4809,17 @@ SearchService.prototype = {
+       () => shutdownState
+     );
+   },
+   _observersAdded: false,
+ 
+   _removeObservers: function SRCH_SVC_removeObservers() {
+     Services.obs.removeObserver(this, SEARCH_ENGINE_TOPIC);
+     Services.obs.removeObserver(this, QUIT_APPLICATION_TOPIC);
+-
+-    if (AppConstants.MOZ_BUILD_APP == "mobile/android") {
+-      Services.obs.removeObserver(this, REQ_LOCALES_CHANGED_TOPIC);
+-    }
++    Services.obs.removeObserver(this, TOPIC_LOCALES_CHANGE);
+   },
+ 
+   QueryInterface: XPCOMUtils.generateQI([
+     Ci.nsIBrowserSearchService,
+     Ci.nsIObserver,
+     Ci.nsITimerCallback
+   ])
+ };
+diff --git a/toolkit/components/search/tests/xpcshell/data/list.json b/toolkit/components/search/tests/xpcshell/data/list.json
+--- a/toolkit/components/search/tests/xpcshell/data/list.json
++++ b/toolkit/components/search/tests/xpcshell/data/list.json
+@@ -1,9 +1,30 @@
+ {
+   "default": {
+     "searchDefault": "Test search engine",
+     "searchOrder": ["engine-resourceicon", "engine-chromeicon"],
+     "visibleDefaultEngines": [
+       "engine", "engine-pref", "engine-rel-searchform-purpose", "engine-system-purpose", "engine-chromeicon", "engine-resourceicon"
+     ]
++  },
++  "regionOverrides": {
++    "RU": {
++      "engine": "engine-chromeicon"
++    }
++  },
++  "locales": {
++    "de": {
++      "default": {
++        "visibleDefaultEngines": [
++          "engine"
++        ]
++      }
++    },
++    "fr": {
++      "default": {
++        "visibleDefaultEngines": [
++          "engine", "engine-pref"
++        ]
++      }
++    }
+   }
+ }
+diff --git a/toolkit/components/search/tests/xpcshell/head_search.js b/toolkit/components/search/tests/xpcshell/head_search.js
+--- a/toolkit/components/search/tests/xpcshell/head_search.js
++++ b/toolkit/components/search/tests/xpcshell/head_search.js
+@@ -248,17 +248,17 @@ function isUSTimezone() {
+   // Hawaii-Aleutian Standard Time (http://www.timeanddate.com/time/zones/hast)
+ 
+   let UTCOffset = (new Date()).getTimezoneOffset();
+   return UTCOffset >= 150 && UTCOffset <= 600;
+ }
+ 
+ const kDefaultenginenamePref = "browser.search.defaultenginename";
+ const kTestEngineName = "Test search engine";
+-const REQ_LOCALES_CHANGED_TOPIC = "intl:requested-locales-changed";
++const TOPIC_LOCALES_CHANGE = "intl:app-locales-changed";
+ 
+ function getDefaultEngineName(isUS) {
+   // The list of visibleDefaultEngines needs to match or the cache will be ignored.
+   let chan = NetUtil.newChannel({
+     uri: "resource://search-plugins/list.json",
+     loadUsingSystemPrincipal: true
+   });
+   let searchSettings = parseJsonFromStream(chan.open2());
+@@ -509,17 +509,17 @@ function asyncInit() {
+     });
+   });
+ }
+ 
+ function asyncReInit() {
+   let promise = waitForSearchNotification("reinit-complete");
+ 
+   Services.search.QueryInterface(Ci.nsIObserver)
+-          .observe(null, REQ_LOCALES_CHANGED_TOPIC, null);
++          .observe(null, TOPIC_LOCALES_CHANGE, null);
+ 
+   return promise;
+ }
+ 
+ // This "enum" from nsSearchService.js
+ const TELEMETRY_RESULT_ENUM = {
+   SUCCESS: 0,
+   SUCCESS_WITHOUT_DATA: 1,
+diff --git a/toolkit/components/search/tests/xpcshell/xpcshell.ini b/toolkit/components/search/tests/xpcshell/xpcshell.ini
+--- a/toolkit/components/search/tests/xpcshell/xpcshell.ini
++++ b/toolkit/components/search/tests/xpcshell/xpcshell.ini
+@@ -38,16 +38,17 @@ support-files =
+ [test_bug930456_child.js]
+ [test_engine_set_alias.js]
+ [test_hasEngineWithURL.js]
+ [test_identifiers.js]
+ [test_invalid_engine_from_dir.js]
+ [test_init_async_multiple.js]
+ [test_init_async_multiple_then_sync.js]
+ [test_json_cache.js]
++[test_list_json_locale.js]
+ [test_list_json_searchdefault.js]
+ [test_list_json_searchorder.js]
+ [test_location.js]
+ [test_location_error.js]
+ [test_location_malformed_json.js]
+ [test_location_migrate_countrycode_isUS.js]
+ [test_location_migrate_no_countrycode_isUS.js]
+ [test_location_migrate_no_countrycode_notUS.js]
+diff --git a/toolkit/mozapps/installer/l10n-repack.py b/toolkit/mozapps/installer/l10n-repack.py
+--- a/toolkit/mozapps/installer/l10n-repack.py
++++ b/toolkit/mozapps/installer/l10n-repack.py
+@@ -10,26 +10,24 @@ directory.
+ from mozpack.packager import l10n
+ from argparse import ArgumentParser
+ import buildconfig
+ 
+ # Set of files or directories not listed in a chrome.manifest but that are
+ # localized.
+ NON_CHROME = set([
+     '**/crashreporter*.ini',
+-    'searchplugins',
+     'dictionaries',
+     'hyphenation',
+     'defaults/profile',
+     'defaults/pref*/*-l10n.js',
+     'update.locale',
+     'updater.ini',
+     'extensions/langpack-*@*',
+     'distribution/extensions/langpack-*@*',
+-    'chrome/**/searchplugins/*.xml',
+ ])
+ 
+ 
+ def valid_extra_l10n(arg):
+     if '=' not in arg:
+         raise ValueError('Invalid value')
+     return tuple(arg.split('=', 1))
+ 

+ 1 - 1
bug1240930-253/mozilla/series-append

@@ -1,4 +1,4 @@
-#StopHere
 1437942-62a1.patch
 1437942-62a1.patch
 1240930-80a1.patch
 1240930-80a1.patch
+#StopHere
 1457321-1only-62a1.patch
 1457321-1only-62a1.patch