Bug 1437942 - Remove search engines from langpacks. r=adw, ted.mielczarek draft
authorMichael Kaply <mozilla@kaply.com>
Mon, 04 Jun 2018 16:45:50 -0500
changeset 804833 4a2a3d21289186d74fbf31adde1794b4611d2b7b
parent 804634 cec4a3cecc29ff97860198969b6fdff24b9e93bb
push id112478
push usermozilla@kaply.com
push dateWed, 06 Jun 2018 17:16:28 +0000
reviewersadw, ted.mielczarek
bugs1437942
milestone62.0a1
Bug 1437942 - Remove search engines from langpacks. r=adw, ted.mielczarek MozReview-Commit-ID: GFCIbfmCc5B
browser/base/content/test/static/browser_all_files_referenced.js
browser/base/jar.mn
browser/components/search/content/search.xml
browser/components/search/jar.mn
browser/components/search/searchplugins/allaannonser-sv-SE.xml
browser/components/search/searchplugins/allegro-pl.xml
browser/components/search/searchplugins/amazon-au.xml
browser/components/search/searchplugins/amazon-br.xml
browser/components/search/searchplugins/amazon-ca.xml
browser/components/search/searchplugins/amazon-en-GB.xml
browser/components/search/searchplugins/amazon-france.xml
browser/components/search/searchplugins/amazon-in.xml
browser/components/search/searchplugins/amazon-it.xml
browser/components/search/searchplugins/amazon-jp.xml
browser/components/search/searchplugins/amazon-mx.xml
browser/components/search/searchplugins/amazon-nl.xml
browser/components/search/searchplugins/amazondotcn.xml
browser/components/search/searchplugins/amazondotcom-de.xml
browser/components/search/searchplugins/amazondotcom.xml
browser/components/search/searchplugins/atlas-sk.xml
browser/components/search/searchplugins/azerdict.xml
browser/components/search/searchplugins/azet-sk.xml
browser/components/search/searchplugins/baidu.xml
browser/components/search/searchplugins/bbc-alba.xml
browser/components/search/searchplugins/bing.xml
browser/components/search/searchplugins/bok-NO.xml
browser/components/search/searchplugins/bolcom-fy-NL.xml
browser/components/search/searchplugins/bolcom-nl.xml
browser/components/search/searchplugins/bookplus-fi.xml
browser/components/search/searchplugins/buscape.xml
browser/components/search/searchplugins/ceneji.xml
browser/components/search/searchplugins/chambers-en-GB.xml
browser/components/search/searchplugins/cnrtl-tlfi-fr.xml
browser/components/search/searchplugins/coccoc.xml
browser/components/search/searchplugins/danawa-kr.xml
browser/components/search/searchplugins/daum-kr.xml
browser/components/search/searchplugins/ddg.xml
browser/components/search/searchplugins/diccionariu-alla.xml
browser/components/search/searchplugins/dict-enlv.xml
browser/components/search/searchplugins/diec2.xml
browser/components/search/searchplugins/drae.xml
browser/components/search/searchplugins/ebay-at.xml
browser/components/search/searchplugins/ebay-au.xml
browser/components/search/searchplugins/ebay-be.xml
browser/components/search/searchplugins/ebay-ca.xml
browser/components/search/searchplugins/ebay-ch.xml
browser/components/search/searchplugins/ebay-de.xml
browser/components/search/searchplugins/ebay-es.xml
browser/components/search/searchplugins/ebay-fr.xml
browser/components/search/searchplugins/ebay-ie.xml
browser/components/search/searchplugins/ebay-it.xml
browser/components/search/searchplugins/ebay-nl.xml
browser/components/search/searchplugins/ebay-uk.xml
browser/components/search/searchplugins/ebay.xml
browser/components/search/searchplugins/ecosia.xml
browser/components/search/searchplugins/eki-ee.xml
browser/components/search/searchplugins/elebila.xml
browser/components/search/searchplugins/eudict.xml
browser/components/search/searchplugins/faclair-beag.xml
browser/components/search/searchplugins/flip.xml
browser/components/search/searchplugins/freelang.xml
browser/components/search/searchplugins/google-2018.xml
browser/components/search/searchplugins/google.xml
browser/components/search/searchplugins/gujaratilexicon.xml
browser/components/search/searchplugins/gulesider-NO.xml
browser/components/search/searchplugins/heureka-cz.xml
browser/components/search/searchplugins/hoepli.xml
browser/components/search/searchplugins/hotline-ua.xml
browser/components/search/searchplugins/images/amazon.ico
browser/components/search/searchplugins/images/ebay.ico
browser/components/search/searchplugins/images/wikipedia.ico
browser/components/search/searchplugins/images/yandex-en.ico
browser/components/search/searchplugins/images/yandex-ru.ico
browser/components/search/searchplugins/kannadastore.xml
browser/components/search/searchplugins/kaz-kk.xml
browser/components/search/searchplugins/klask.xml
browser/components/search/searchplugins/leit-is.xml
browser/components/search/searchplugins/leo_ende_de-rm.xml
browser/components/search/searchplugins/leo_ende_de.xml
browser/components/search/searchplugins/list-am.xml
browser/components/search/searchplugins/list.json
browser/components/search/searchplugins/longdo.xml
browser/components/search/searchplugins/mailru.xml
browser/components/search/searchplugins/mapy-cz.xml
browser/components/search/searchplugins/marktplaats-fy-NL.xml
browser/components/search/searchplugins/marktplaats-nl.xml
browser/components/search/searchplugins/mercadolibre-ar.xml
browser/components/search/searchplugins/mercadolibre-cl.xml
browser/components/search/searchplugins/mercadolibre-mx.xml
browser/components/search/searchplugins/mercadolivre.xml
browser/components/search/searchplugins/meta-ua.xml
browser/components/search/searchplugins/morfix-dic.xml
browser/components/search/searchplugins/najdi-si.xml
browser/components/search/searchplugins/naver-kr.xml
browser/components/search/searchplugins/neti-ee.xml
browser/components/search/searchplugins/odpiralni.xml
browser/components/search/searchplugins/olx.xml
browser/components/search/searchplugins/oshiete-goo.xml
browser/components/search/searchplugins/osta-ee.xml
browser/components/search/searchplugins/ozonru.xml
browser/components/search/searchplugins/palasprint.xml
browser/components/search/searchplugins/paroledigenova-lij.xml
browser/components/search/searchplugins/pazaruvaj.xml
browser/components/search/searchplugins/pledarigrond.xml
browser/components/search/searchplugins/pogodak.xml
browser/components/search/searchplugins/portalbgdict.xml
browser/components/search/searchplugins/priberam.xml
browser/components/search/searchplugins/priceru.xml
browser/components/search/searchplugins/prisjakt-sv-SE.xml
browser/components/search/searchplugins/pwn-pl.xml
browser/components/search/searchplugins/qwant.xml
browser/components/search/searchplugins/qxl-NO.xml
browser/components/search/searchplugins/rakuten.xml
browser/components/search/searchplugins/readmoo.xml
browser/components/search/searchplugins/rediff.xml
browser/components/search/searchplugins/reta-vortaro.xml
browser/components/search/searchplugins/salidzinilv.xml
browser/components/search/searchplugins/sapo.xml
browser/components/search/searchplugins/seznam-cz.xml
browser/components/search/searchplugins/slovnik-sk.xml
browser/components/search/searchplugins/sslv.xml
browser/components/search/searchplugins/sztaki-en-hu.xml
browser/components/search/searchplugins/tearma.xml
browser/components/search/searchplugins/termau.xml
browser/components/search/searchplugins/twitter-ja.xml
browser/components/search/searchplugins/twitter.xml
browser/components/search/searchplugins/tyda-sv-SE.xml
browser/components/search/searchplugins/vatera.xml
browser/components/search/searchplugins/webdunia.xml
browser/components/search/searchplugins/wikipedia-NN.xml
browser/components/search/searchplugins/wikipedia-NO.xml
browser/components/search/searchplugins/wikipedia-af.xml
browser/components/search/searchplugins/wikipedia-an.xml
browser/components/search/searchplugins/wikipedia-ar.xml
browser/components/search/searchplugins/wikipedia-as.xml
browser/components/search/searchplugins/wikipedia-ast.xml
browser/components/search/searchplugins/wikipedia-az.xml
browser/components/search/searchplugins/wikipedia-be-tarask.xml
browser/components/search/searchplugins/wikipedia-be.xml
browser/components/search/searchplugins/wikipedia-bg.xml
browser/components/search/searchplugins/wikipedia-bn.xml
browser/components/search/searchplugins/wikipedia-br.xml
browser/components/search/searchplugins/wikipedia-bs.xml
browser/components/search/searchplugins/wikipedia-ca.xml
browser/components/search/searchplugins/wikipedia-crh.xml
browser/components/search/searchplugins/wikipedia-cy.xml
browser/components/search/searchplugins/wikipedia-cz.xml
browser/components/search/searchplugins/wikipedia-da.xml
browser/components/search/searchplugins/wikipedia-de.xml
browser/components/search/searchplugins/wikipedia-dsb.xml
browser/components/search/searchplugins/wikipedia-el.xml
browser/components/search/searchplugins/wikipedia-eo.xml
browser/components/search/searchplugins/wikipedia-es.xml
browser/components/search/searchplugins/wikipedia-et.xml
browser/components/search/searchplugins/wikipedia-eu.xml
browser/components/search/searchplugins/wikipedia-fa.xml
browser/components/search/searchplugins/wikipedia-fi.xml
browser/components/search/searchplugins/wikipedia-fr.xml
browser/components/search/searchplugins/wikipedia-fy-NL.xml
browser/components/search/searchplugins/wikipedia-ga-IE.xml
browser/components/search/searchplugins/wikipedia-gd.xml
browser/components/search/searchplugins/wikipedia-gl.xml
browser/components/search/searchplugins/wikipedia-gn.xml
browser/components/search/searchplugins/wikipedia-gu.xml
browser/components/search/searchplugins/wikipedia-he.xml
browser/components/search/searchplugins/wikipedia-hi.xml
browser/components/search/searchplugins/wikipedia-hr.xml
browser/components/search/searchplugins/wikipedia-hsb.xml
browser/components/search/searchplugins/wikipedia-hu.xml
browser/components/search/searchplugins/wikipedia-hy.xml
browser/components/search/searchplugins/wikipedia-ia.xml
browser/components/search/searchplugins/wikipedia-id.xml
browser/components/search/searchplugins/wikipedia-is.xml
browser/components/search/searchplugins/wikipedia-it.xml
browser/components/search/searchplugins/wikipedia-ja.xml
browser/components/search/searchplugins/wikipedia-ka.xml
browser/components/search/searchplugins/wikipedia-kab.xml
browser/components/search/searchplugins/wikipedia-kk.xml
browser/components/search/searchplugins/wikipedia-km.xml
browser/components/search/searchplugins/wikipedia-kn.xml
browser/components/search/searchplugins/wikipedia-kr.xml
browser/components/search/searchplugins/wikipedia-lij.xml
browser/components/search/searchplugins/wikipedia-lo.xml
browser/components/search/searchplugins/wikipedia-lt.xml
browser/components/search/searchplugins/wikipedia-ltg.xml
browser/components/search/searchplugins/wikipedia-lv.xml
browser/components/search/searchplugins/wikipedia-mk.xml
browser/components/search/searchplugins/wikipedia-ml.xml
browser/components/search/searchplugins/wikipedia-mr.xml
browser/components/search/searchplugins/wikipedia-ms.xml
browser/components/search/searchplugins/wikipedia-my.xml
browser/components/search/searchplugins/wikipedia-ne.xml
browser/components/search/searchplugins/wikipedia-nl.xml
browser/components/search/searchplugins/wikipedia-oc.xml
browser/components/search/searchplugins/wikipedia-or.xml
browser/components/search/searchplugins/wikipedia-pa.xml
browser/components/search/searchplugins/wikipedia-pl.xml
browser/components/search/searchplugins/wikipedia-pt.xml
browser/components/search/searchplugins/wikipedia-rm.xml
browser/components/search/searchplugins/wikipedia-ro.xml
browser/components/search/searchplugins/wikipedia-ru.xml
browser/components/search/searchplugins/wikipedia-si.xml
browser/components/search/searchplugins/wikipedia-sk.xml
browser/components/search/searchplugins/wikipedia-sl.xml
browser/components/search/searchplugins/wikipedia-sq.xml
browser/components/search/searchplugins/wikipedia-sr.xml
browser/components/search/searchplugins/wikipedia-sv-SE.xml
browser/components/search/searchplugins/wikipedia-ta.xml
browser/components/search/searchplugins/wikipedia-te.xml
browser/components/search/searchplugins/wikipedia-th.xml
browser/components/search/searchplugins/wikipedia-tl.xml
browser/components/search/searchplugins/wikipedia-tr.xml
browser/components/search/searchplugins/wikipedia-uk.xml
browser/components/search/searchplugins/wikipedia-ur.xml
browser/components/search/searchplugins/wikipedia-uz.xml
browser/components/search/searchplugins/wikipedia-vi.xml
browser/components/search/searchplugins/wikipedia-wo.xml
browser/components/search/searchplugins/wikipedia-zh-CN.xml
browser/components/search/searchplugins/wikipedia-zh-TW.xml
browser/components/search/searchplugins/wikipedia.xml
browser/components/search/searchplugins/wiktionary-oc.xml
browser/components/search/searchplugins/wiktionary-te.xml
browser/components/search/searchplugins/wolnelektury-pl.xml
browser/components/search/searchplugins/yahoo-jp-auctions.xml
browser/components/search/searchplugins/yahoo-jp.xml
browser/components/search/searchplugins/yandex-az.xml
browser/components/search/searchplugins/yandex-by.xml
browser/components/search/searchplugins/yandex-en.xml
browser/components/search/searchplugins/yandex-kk.xml
browser/components/search/searchplugins/yandex-ru.xml
browser/components/search/searchplugins/yandex-tr.xml
browser/components/search/searchplugins/zoznam-sk.xml
browser/components/search/test/browser.ini
browser/locales/Makefile.in
browser/locales/jar.mn
browser/locales/moz.build
browser/locales/search/list.json
browser/locales/searchplugins/allaannonser-sv-SE.xml
browser/locales/searchplugins/allegro-pl.xml
browser/locales/searchplugins/amazon-au.xml
browser/locales/searchplugins/amazon-br.xml
browser/locales/searchplugins/amazon-ca.xml
browser/locales/searchplugins/amazon-en-GB.xml
browser/locales/searchplugins/amazon-france.xml
browser/locales/searchplugins/amazon-in.xml
browser/locales/searchplugins/amazon-it.xml
browser/locales/searchplugins/amazon-jp.xml
browser/locales/searchplugins/amazon-mx.xml
browser/locales/searchplugins/amazon-nl.xml
browser/locales/searchplugins/amazondotcn.xml
browser/locales/searchplugins/amazondotcom-de.xml
browser/locales/searchplugins/amazondotcom.xml
browser/locales/searchplugins/atlas-sk.xml
browser/locales/searchplugins/azerdict.xml
browser/locales/searchplugins/azet-sk.xml
browser/locales/searchplugins/baidu.xml
browser/locales/searchplugins/bbc-alba.xml
browser/locales/searchplugins/bing.xml
browser/locales/searchplugins/bok-NO.xml
browser/locales/searchplugins/bolcom-fy-NL.xml
browser/locales/searchplugins/bolcom-nl.xml
browser/locales/searchplugins/bookplus-fi.xml
browser/locales/searchplugins/buscape.xml
browser/locales/searchplugins/ceneji.xml
browser/locales/searchplugins/chambers-en-GB.xml
browser/locales/searchplugins/cnrtl-tlfi-fr.xml
browser/locales/searchplugins/coccoc.xml
browser/locales/searchplugins/danawa-kr.xml
browser/locales/searchplugins/daum-kr.xml
browser/locales/searchplugins/ddg.xml
browser/locales/searchplugins/diccionariu-alla.xml
browser/locales/searchplugins/dict-enlv.xml
browser/locales/searchplugins/diec2.xml
browser/locales/searchplugins/drae.xml
browser/locales/searchplugins/ebay-at.xml
browser/locales/searchplugins/ebay-au.xml
browser/locales/searchplugins/ebay-be.xml
browser/locales/searchplugins/ebay-ca.xml
browser/locales/searchplugins/ebay-ch.xml
browser/locales/searchplugins/ebay-de.xml
browser/locales/searchplugins/ebay-es.xml
browser/locales/searchplugins/ebay-fr.xml
browser/locales/searchplugins/ebay-ie.xml
browser/locales/searchplugins/ebay-it.xml
browser/locales/searchplugins/ebay-nl.xml
browser/locales/searchplugins/ebay-uk.xml
browser/locales/searchplugins/ebay.xml
browser/locales/searchplugins/ecosia.xml
browser/locales/searchplugins/eki-ee.xml
browser/locales/searchplugins/elebila.xml
browser/locales/searchplugins/eudict.xml
browser/locales/searchplugins/faclair-beag.xml
browser/locales/searchplugins/flip.xml
browser/locales/searchplugins/freelang.xml
browser/locales/searchplugins/google-2018.xml
browser/locales/searchplugins/google.xml
browser/locales/searchplugins/gujaratilexicon.xml
browser/locales/searchplugins/gulesider-NO.xml
browser/locales/searchplugins/heureka-cz.xml
browser/locales/searchplugins/hoepli.xml
browser/locales/searchplugins/hotline-ua.xml
browser/locales/searchplugins/images/amazon.ico
browser/locales/searchplugins/images/ebay.ico
browser/locales/searchplugins/images/wikipedia.ico
browser/locales/searchplugins/images/yandex-en.ico
browser/locales/searchplugins/images/yandex-ru.ico
browser/locales/searchplugins/kannadastore.xml
browser/locales/searchplugins/kaz-kk.xml
browser/locales/searchplugins/klask.xml
browser/locales/searchplugins/leit-is.xml
browser/locales/searchplugins/leo_ende_de-rm.xml
browser/locales/searchplugins/leo_ende_de.xml
browser/locales/searchplugins/list-am.xml
browser/locales/searchplugins/longdo.xml
browser/locales/searchplugins/mailru.xml
browser/locales/searchplugins/mapy-cz.xml
browser/locales/searchplugins/marktplaats-fy-NL.xml
browser/locales/searchplugins/marktplaats-nl.xml
browser/locales/searchplugins/mercadolibre-ar.xml
browser/locales/searchplugins/mercadolibre-cl.xml
browser/locales/searchplugins/mercadolibre-mx.xml
browser/locales/searchplugins/mercadolivre.xml
browser/locales/searchplugins/meta-ua.xml
browser/locales/searchplugins/morfix-dic.xml
browser/locales/searchplugins/najdi-si.xml
browser/locales/searchplugins/naver-kr.xml
browser/locales/searchplugins/neti-ee.xml
browser/locales/searchplugins/odpiralni.xml
browser/locales/searchplugins/olx.xml
browser/locales/searchplugins/oshiete-goo.xml
browser/locales/searchplugins/osta-ee.xml
browser/locales/searchplugins/ozonru.xml
browser/locales/searchplugins/palasprint.xml
browser/locales/searchplugins/paroledigenova-lij.xml
browser/locales/searchplugins/pazaruvaj.xml
browser/locales/searchplugins/pledarigrond.xml
browser/locales/searchplugins/pogodak.xml
browser/locales/searchplugins/portalbgdict.xml
browser/locales/searchplugins/priberam.xml
browser/locales/searchplugins/priceru.xml
browser/locales/searchplugins/prisjakt-sv-SE.xml
browser/locales/searchplugins/pwn-pl.xml
browser/locales/searchplugins/qwant.xml
browser/locales/searchplugins/qxl-NO.xml
browser/locales/searchplugins/rakuten.xml
browser/locales/searchplugins/readmoo.xml
browser/locales/searchplugins/rediff.xml
browser/locales/searchplugins/reta-vortaro.xml
browser/locales/searchplugins/salidzinilv.xml
browser/locales/searchplugins/sapo.xml
browser/locales/searchplugins/seznam-cz.xml
browser/locales/searchplugins/slovnik-sk.xml
browser/locales/searchplugins/sslv.xml
browser/locales/searchplugins/sztaki-en-hu.xml
browser/locales/searchplugins/tearma.xml
browser/locales/searchplugins/termau.xml
browser/locales/searchplugins/twitter-ja.xml
browser/locales/searchplugins/twitter.xml
browser/locales/searchplugins/tyda-sv-SE.xml
browser/locales/searchplugins/vatera.xml
browser/locales/searchplugins/webdunia.xml
browser/locales/searchplugins/wikipedia-NN.xml
browser/locales/searchplugins/wikipedia-NO.xml
browser/locales/searchplugins/wikipedia-af.xml
browser/locales/searchplugins/wikipedia-an.xml
browser/locales/searchplugins/wikipedia-ar.xml
browser/locales/searchplugins/wikipedia-as.xml
browser/locales/searchplugins/wikipedia-ast.xml
browser/locales/searchplugins/wikipedia-az.xml
browser/locales/searchplugins/wikipedia-be-tarask.xml
browser/locales/searchplugins/wikipedia-be.xml
browser/locales/searchplugins/wikipedia-bg.xml
browser/locales/searchplugins/wikipedia-bn.xml
browser/locales/searchplugins/wikipedia-br.xml
browser/locales/searchplugins/wikipedia-bs.xml
browser/locales/searchplugins/wikipedia-ca.xml
browser/locales/searchplugins/wikipedia-crh.xml
browser/locales/searchplugins/wikipedia-cy.xml
browser/locales/searchplugins/wikipedia-cz.xml
browser/locales/searchplugins/wikipedia-da.xml
browser/locales/searchplugins/wikipedia-de.xml
browser/locales/searchplugins/wikipedia-dsb.xml
browser/locales/searchplugins/wikipedia-el.xml
browser/locales/searchplugins/wikipedia-eo.xml
browser/locales/searchplugins/wikipedia-es.xml
browser/locales/searchplugins/wikipedia-et.xml
browser/locales/searchplugins/wikipedia-eu.xml
browser/locales/searchplugins/wikipedia-fa.xml
browser/locales/searchplugins/wikipedia-fi.xml
browser/locales/searchplugins/wikipedia-fr.xml
browser/locales/searchplugins/wikipedia-fy-NL.xml
browser/locales/searchplugins/wikipedia-ga-IE.xml
browser/locales/searchplugins/wikipedia-gd.xml
browser/locales/searchplugins/wikipedia-gl.xml
browser/locales/searchplugins/wikipedia-gn.xml
browser/locales/searchplugins/wikipedia-gu.xml
browser/locales/searchplugins/wikipedia-he.xml
browser/locales/searchplugins/wikipedia-hi.xml
browser/locales/searchplugins/wikipedia-hr.xml
browser/locales/searchplugins/wikipedia-hsb.xml
browser/locales/searchplugins/wikipedia-hu.xml
browser/locales/searchplugins/wikipedia-hy.xml
browser/locales/searchplugins/wikipedia-ia.xml
browser/locales/searchplugins/wikipedia-id.xml
browser/locales/searchplugins/wikipedia-is.xml
browser/locales/searchplugins/wikipedia-it.xml
browser/locales/searchplugins/wikipedia-ja.xml
browser/locales/searchplugins/wikipedia-ka.xml
browser/locales/searchplugins/wikipedia-kab.xml
browser/locales/searchplugins/wikipedia-kk.xml
browser/locales/searchplugins/wikipedia-km.xml
browser/locales/searchplugins/wikipedia-kn.xml
browser/locales/searchplugins/wikipedia-kr.xml
browser/locales/searchplugins/wikipedia-lij.xml
browser/locales/searchplugins/wikipedia-lo.xml
browser/locales/searchplugins/wikipedia-lt.xml
browser/locales/searchplugins/wikipedia-ltg.xml
browser/locales/searchplugins/wikipedia-lv.xml
browser/locales/searchplugins/wikipedia-mk.xml
browser/locales/searchplugins/wikipedia-ml.xml
browser/locales/searchplugins/wikipedia-mr.xml
browser/locales/searchplugins/wikipedia-ms.xml
browser/locales/searchplugins/wikipedia-my.xml
browser/locales/searchplugins/wikipedia-ne.xml
browser/locales/searchplugins/wikipedia-nl.xml
browser/locales/searchplugins/wikipedia-oc.xml
browser/locales/searchplugins/wikipedia-or.xml
browser/locales/searchplugins/wikipedia-pa.xml
browser/locales/searchplugins/wikipedia-pl.xml
browser/locales/searchplugins/wikipedia-pt.xml
browser/locales/searchplugins/wikipedia-rm.xml
browser/locales/searchplugins/wikipedia-ro.xml
browser/locales/searchplugins/wikipedia-ru.xml
browser/locales/searchplugins/wikipedia-si.xml
browser/locales/searchplugins/wikipedia-sk.xml
browser/locales/searchplugins/wikipedia-sl.xml
browser/locales/searchplugins/wikipedia-sq.xml
browser/locales/searchplugins/wikipedia-sr.xml
browser/locales/searchplugins/wikipedia-sv-SE.xml
browser/locales/searchplugins/wikipedia-ta.xml
browser/locales/searchplugins/wikipedia-te.xml
browser/locales/searchplugins/wikipedia-th.xml
browser/locales/searchplugins/wikipedia-tl.xml
browser/locales/searchplugins/wikipedia-tr.xml
browser/locales/searchplugins/wikipedia-uk.xml
browser/locales/searchplugins/wikipedia-ur.xml
browser/locales/searchplugins/wikipedia-uz.xml
browser/locales/searchplugins/wikipedia-vi.xml
browser/locales/searchplugins/wikipedia-wo.xml
browser/locales/searchplugins/wikipedia-zh-CN.xml
browser/locales/searchplugins/wikipedia-zh-TW.xml
browser/locales/searchplugins/wikipedia.xml
browser/locales/searchplugins/wiktionary-oc.xml
browser/locales/searchplugins/wiktionary-te.xml
browser/locales/searchplugins/wolnelektury-pl.xml
browser/locales/searchplugins/yahoo-jp-auctions.xml
browser/locales/searchplugins/yahoo-jp.xml
browser/locales/searchplugins/yandex-az.xml
browser/locales/searchplugins/yandex-by.xml
browser/locales/searchplugins/yandex-en.xml
browser/locales/searchplugins/yandex-kk.xml
browser/locales/searchplugins/yandex-ru.xml
browser/locales/searchplugins/yandex-tr.xml
browser/locales/searchplugins/zoznam-sk.xml
browser/modules/ContentSearch.jsm
mobile/android/chrome/jar.mn
mobile/android/components/moz.build
mobile/android/components/search/jar.mn
mobile/android/components/search/moz.build
mobile/android/components/search/searchplugins/amazon-au.xml
mobile/android/components/search/searchplugins/amazon-br.xml
mobile/android/components/search/searchplugins/amazon-ca.xml
mobile/android/components/search/searchplugins/amazon-co-uk.xml
mobile/android/components/search/searchplugins/amazon-de.xml
mobile/android/components/search/searchplugins/amazon-fr.xml
mobile/android/components/search/searchplugins/amazon-in.xml
mobile/android/components/search/searchplugins/amazon-it.xml
mobile/android/components/search/searchplugins/amazon-jp.xml
mobile/android/components/search/searchplugins/amazon-mx.xml
mobile/android/components/search/searchplugins/amazon-nl.xml
mobile/android/components/search/searchplugins/amazondotcom.xml
mobile/android/components/search/searchplugins/azerdict.xml
mobile/android/components/search/searchplugins/azet-sk.xml
mobile/android/components/search/searchplugins/baidu.xml
mobile/android/components/search/searchplugins/bing.xml
mobile/android/components/search/searchplugins/bolcom-fy-NL.xml
mobile/android/components/search/searchplugins/bolcom-nl.xml
mobile/android/components/search/searchplugins/ceneje.xml
mobile/android/components/search/searchplugins/coccoc.xml
mobile/android/components/search/searchplugins/danawa-kr.xml
mobile/android/components/search/searchplugins/daum-kr.xml
mobile/android/components/search/searchplugins/ddg.xml
mobile/android/components/search/searchplugins/diec2.xml
mobile/android/components/search/searchplugins/drae.xml
mobile/android/components/search/searchplugins/duckduckgo.xml
mobile/android/components/search/searchplugins/elebila.xml
mobile/android/components/search/searchplugins/faclair-beag.xml
mobile/android/components/search/searchplugins/google-2018.xml
mobile/android/components/search/searchplugins/google.xml
mobile/android/components/search/searchplugins/gulesider-mobile-NO.xml
mobile/android/components/search/searchplugins/heureka-cz.xml
mobile/android/components/search/searchplugins/hotline-ua.xml
mobile/android/components/search/searchplugins/leit-is.xml
mobile/android/components/search/searchplugins/leo_ende_de.xml
mobile/android/components/search/searchplugins/list-am.xml
mobile/android/components/search/searchplugins/list.json
mobile/android/components/search/searchplugins/mapy-cz.xml
mobile/android/components/search/searchplugins/mercadolibre-ar.xml
mobile/android/components/search/searchplugins/mercadolibre-cl.xml
mobile/android/components/search/searchplugins/mercadolibre-mx.xml
mobile/android/components/search/searchplugins/naver-kr.xml
mobile/android/components/search/searchplugins/odpiralni.xml
mobile/android/components/search/searchplugins/pazaruvaj.xml
mobile/android/components/search/searchplugins/pledarigrond.xml
mobile/android/components/search/searchplugins/prisjakt-sv-SE.xml
mobile/android/components/search/searchplugins/qwant.xml
mobile/android/components/search/searchplugins/rediff.xml
mobile/android/components/search/searchplugins/reta-vortaro.xml
mobile/android/components/search/searchplugins/salidzinilv.xml
mobile/android/components/search/searchplugins/seznam-cz.xml
mobile/android/components/search/searchplugins/skroutz.xml
mobile/android/components/search/searchplugins/slovnik-sk.xml
mobile/android/components/search/searchplugins/sslv.xml
mobile/android/components/search/searchplugins/sztaki-en-hu.xml
mobile/android/components/search/searchplugins/taobao.xml
mobile/android/components/search/searchplugins/tearma.xml
mobile/android/components/search/searchplugins/twitter-ja.xml
mobile/android/components/search/searchplugins/twitter.xml
mobile/android/components/search/searchplugins/vatera.xml
mobile/android/components/search/searchplugins/wikipedia-NN.xml
mobile/android/components/search/searchplugins/wikipedia-NO.xml
mobile/android/components/search/searchplugins/wikipedia-an.xml
mobile/android/components/search/searchplugins/wikipedia-ar.xml
mobile/android/components/search/searchplugins/wikipedia-as.xml
mobile/android/components/search/searchplugins/wikipedia-ast.xml
mobile/android/components/search/searchplugins/wikipedia-az.xml
mobile/android/components/search/searchplugins/wikipedia-be.xml
mobile/android/components/search/searchplugins/wikipedia-bg.xml
mobile/android/components/search/searchplugins/wikipedia-bn.xml
mobile/android/components/search/searchplugins/wikipedia-br.xml
mobile/android/components/search/searchplugins/wikipedia-bs.xml
mobile/android/components/search/searchplugins/wikipedia-ca.xml
mobile/android/components/search/searchplugins/wikipedia-cy.xml
mobile/android/components/search/searchplugins/wikipedia-cz.xml
mobile/android/components/search/searchplugins/wikipedia-da.xml
mobile/android/components/search/searchplugins/wikipedia-de.xml
mobile/android/components/search/searchplugins/wikipedia-dsb.xml
mobile/android/components/search/searchplugins/wikipedia-el.xml
mobile/android/components/search/searchplugins/wikipedia-eo.xml
mobile/android/components/search/searchplugins/wikipedia-es.xml
mobile/android/components/search/searchplugins/wikipedia-et.xml
mobile/android/components/search/searchplugins/wikipedia-eu.xml
mobile/android/components/search/searchplugins/wikipedia-fa.xml
mobile/android/components/search/searchplugins/wikipedia-fi.xml
mobile/android/components/search/searchplugins/wikipedia-fr.xml
mobile/android/components/search/searchplugins/wikipedia-fy-NL.xml
mobile/android/components/search/searchplugins/wikipedia-ga-IE.xml
mobile/android/components/search/searchplugins/wikipedia-gd.xml
mobile/android/components/search/searchplugins/wikipedia-gl.xml
mobile/android/components/search/searchplugins/wikipedia-gn.xml
mobile/android/components/search/searchplugins/wikipedia-gu.xml
mobile/android/components/search/searchplugins/wikipedia-he.xml
mobile/android/components/search/searchplugins/wikipedia-hi.xml
mobile/android/components/search/searchplugins/wikipedia-hr.xml
mobile/android/components/search/searchplugins/wikipedia-hsb.xml
mobile/android/components/search/searchplugins/wikipedia-hu.xml
mobile/android/components/search/searchplugins/wikipedia-hy-AM.xml
mobile/android/components/search/searchplugins/wikipedia-ia.xml
mobile/android/components/search/searchplugins/wikipedia-id.xml
mobile/android/components/search/searchplugins/wikipedia-is.xml
mobile/android/components/search/searchplugins/wikipedia-it.xml
mobile/android/components/search/searchplugins/wikipedia-ja.xml
mobile/android/components/search/searchplugins/wikipedia-ka.xml
mobile/android/components/search/searchplugins/wikipedia-kab.xml
mobile/android/components/search/searchplugins/wikipedia-kk.xml
mobile/android/components/search/searchplugins/wikipedia-km.xml
mobile/android/components/search/searchplugins/wikipedia-kn.xml
mobile/android/components/search/searchplugins/wikipedia-lij.xml
mobile/android/components/search/searchplugins/wikipedia-lo.xml
mobile/android/components/search/searchplugins/wikipedia-lt.xml
mobile/android/components/search/searchplugins/wikipedia-ltg.xml
mobile/android/components/search/searchplugins/wikipedia-lv.xml
mobile/android/components/search/searchplugins/wikipedia-ml.xml
mobile/android/components/search/searchplugins/wikipedia-mr.xml
mobile/android/components/search/searchplugins/wikipedia-ms.xml
mobile/android/components/search/searchplugins/wikipedia-my.xml
mobile/android/components/search/searchplugins/wikipedia-ne.xml
mobile/android/components/search/searchplugins/wikipedia-nl.xml
mobile/android/components/search/searchplugins/wikipedia-oc.xml
mobile/android/components/search/searchplugins/wikipedia-or.xml
mobile/android/components/search/searchplugins/wikipedia-pa.xml
mobile/android/components/search/searchplugins/wikipedia-pl.xml
mobile/android/components/search/searchplugins/wikipedia-pt.xml
mobile/android/components/search/searchplugins/wikipedia-rm.xml
mobile/android/components/search/searchplugins/wikipedia-ro.xml
mobile/android/components/search/searchplugins/wikipedia-ru.xml
mobile/android/components/search/searchplugins/wikipedia-sk.xml
mobile/android/components/search/searchplugins/wikipedia-sl.xml
mobile/android/components/search/searchplugins/wikipedia-sq.xml
mobile/android/components/search/searchplugins/wikipedia-sr.xml
mobile/android/components/search/searchplugins/wikipedia-sv-SE.xml
mobile/android/components/search/searchplugins/wikipedia-ta.xml
mobile/android/components/search/searchplugins/wikipedia-te.xml
mobile/android/components/search/searchplugins/wikipedia-th.xml
mobile/android/components/search/searchplugins/wikipedia-tr.xml
mobile/android/components/search/searchplugins/wikipedia-uk.xml
mobile/android/components/search/searchplugins/wikipedia-ur.xml
mobile/android/components/search/searchplugins/wikipedia-uz.xml
mobile/android/components/search/searchplugins/wikipedia-vi.xml
mobile/android/components/search/searchplugins/wikipedia-wo.xml
mobile/android/components/search/searchplugins/wikipedia-zh-CN.xml
mobile/android/components/search/searchplugins/wikipedia-zh-TW.xml
mobile/android/components/search/searchplugins/wikipedia.xml
mobile/android/components/search/searchplugins/wiktionary-kn.xml
mobile/android/components/search/searchplugins/wiktionary-oc.xml
mobile/android/components/search/searchplugins/wiktionary-or.xml
mobile/android/components/search/searchplugins/wiktionary-ta.xml
mobile/android/components/search/searchplugins/wiktionary-te.xml
mobile/android/components/search/searchplugins/yahoo-jp.xml
mobile/android/components/search/searchplugins/yandex-en.xml
mobile/android/components/search/searchplugins/yandex-ru.xml
mobile/android/components/search/searchplugins/yandex-tr.xml
mobile/android/components/search/searchplugins/yandex.by.xml
mobile/android/components/search/searchplugins/yandex.xml
mobile/android/installer/allowed-dupes.mn
mobile/locales/Makefile.in
mobile/locales/search/list.json
mobile/locales/searchplugins/amazon-au.xml
mobile/locales/searchplugins/amazon-br.xml
mobile/locales/searchplugins/amazon-ca.xml
mobile/locales/searchplugins/amazon-co-uk.xml
mobile/locales/searchplugins/amazon-de.xml
mobile/locales/searchplugins/amazon-fr.xml
mobile/locales/searchplugins/amazon-in.xml
mobile/locales/searchplugins/amazon-it.xml
mobile/locales/searchplugins/amazon-jp.xml
mobile/locales/searchplugins/amazon-mx.xml
mobile/locales/searchplugins/amazon-nl.xml
mobile/locales/searchplugins/amazondotcom.xml
mobile/locales/searchplugins/azerdict.xml
mobile/locales/searchplugins/azet-sk.xml
mobile/locales/searchplugins/baidu.xml
mobile/locales/searchplugins/bing.xml
mobile/locales/searchplugins/bolcom-fy-NL.xml
mobile/locales/searchplugins/bolcom-nl.xml
mobile/locales/searchplugins/ceneje.xml
mobile/locales/searchplugins/coccoc.xml
mobile/locales/searchplugins/danawa-kr.xml
mobile/locales/searchplugins/daum-kr.xml
mobile/locales/searchplugins/ddg.xml
mobile/locales/searchplugins/diec2.xml
mobile/locales/searchplugins/drae.xml
mobile/locales/searchplugins/duckduckgo.xml
mobile/locales/searchplugins/elebila.xml
mobile/locales/searchplugins/faclair-beag.xml
mobile/locales/searchplugins/google-2018.xml
mobile/locales/searchplugins/google.xml
mobile/locales/searchplugins/gulesider-mobile-NO.xml
mobile/locales/searchplugins/heureka-cz.xml
mobile/locales/searchplugins/hotline-ua.xml
mobile/locales/searchplugins/leit-is.xml
mobile/locales/searchplugins/leo_ende_de.xml
mobile/locales/searchplugins/list-am.xml
mobile/locales/searchplugins/mapy-cz.xml
mobile/locales/searchplugins/mercadolibre-ar.xml
mobile/locales/searchplugins/mercadolibre-cl.xml
mobile/locales/searchplugins/mercadolibre-mx.xml
mobile/locales/searchplugins/naver-kr.xml
mobile/locales/searchplugins/odpiralni.xml
mobile/locales/searchplugins/pazaruvaj.xml
mobile/locales/searchplugins/pledarigrond.xml
mobile/locales/searchplugins/prisjakt-sv-SE.xml
mobile/locales/searchplugins/qwant.xml
mobile/locales/searchplugins/rediff.xml
mobile/locales/searchplugins/reta-vortaro.xml
mobile/locales/searchplugins/salidzinilv.xml
mobile/locales/searchplugins/seznam-cz.xml
mobile/locales/searchplugins/skroutz.xml
mobile/locales/searchplugins/slovnik-sk.xml
mobile/locales/searchplugins/sslv.xml
mobile/locales/searchplugins/sztaki-en-hu.xml
mobile/locales/searchplugins/taobao.xml
mobile/locales/searchplugins/tearma.xml
mobile/locales/searchplugins/twitter-ja.xml
mobile/locales/searchplugins/twitter.xml
mobile/locales/searchplugins/vatera.xml
mobile/locales/searchplugins/wikipedia-NN.xml
mobile/locales/searchplugins/wikipedia-NO.xml
mobile/locales/searchplugins/wikipedia-an.xml
mobile/locales/searchplugins/wikipedia-ar.xml
mobile/locales/searchplugins/wikipedia-as.xml
mobile/locales/searchplugins/wikipedia-ast.xml
mobile/locales/searchplugins/wikipedia-az.xml
mobile/locales/searchplugins/wikipedia-be.xml
mobile/locales/searchplugins/wikipedia-bg.xml
mobile/locales/searchplugins/wikipedia-bn.xml
mobile/locales/searchplugins/wikipedia-br.xml
mobile/locales/searchplugins/wikipedia-bs.xml
mobile/locales/searchplugins/wikipedia-ca.xml
mobile/locales/searchplugins/wikipedia-cy.xml
mobile/locales/searchplugins/wikipedia-cz.xml
mobile/locales/searchplugins/wikipedia-da.xml
mobile/locales/searchplugins/wikipedia-de.xml
mobile/locales/searchplugins/wikipedia-dsb.xml
mobile/locales/searchplugins/wikipedia-el.xml
mobile/locales/searchplugins/wikipedia-eo.xml
mobile/locales/searchplugins/wikipedia-es.xml
mobile/locales/searchplugins/wikipedia-et.xml
mobile/locales/searchplugins/wikipedia-eu.xml
mobile/locales/searchplugins/wikipedia-fa.xml
mobile/locales/searchplugins/wikipedia-fi.xml
mobile/locales/searchplugins/wikipedia-fr.xml
mobile/locales/searchplugins/wikipedia-fy-NL.xml
mobile/locales/searchplugins/wikipedia-ga-IE.xml
mobile/locales/searchplugins/wikipedia-gd.xml
mobile/locales/searchplugins/wikipedia-gl.xml
mobile/locales/searchplugins/wikipedia-gn.xml
mobile/locales/searchplugins/wikipedia-gu.xml
mobile/locales/searchplugins/wikipedia-he.xml
mobile/locales/searchplugins/wikipedia-hi.xml
mobile/locales/searchplugins/wikipedia-hr.xml
mobile/locales/searchplugins/wikipedia-hsb.xml
mobile/locales/searchplugins/wikipedia-hu.xml
mobile/locales/searchplugins/wikipedia-hy-AM.xml
mobile/locales/searchplugins/wikipedia-ia.xml
mobile/locales/searchplugins/wikipedia-id.xml
mobile/locales/searchplugins/wikipedia-is.xml
mobile/locales/searchplugins/wikipedia-it.xml
mobile/locales/searchplugins/wikipedia-ja.xml
mobile/locales/searchplugins/wikipedia-ka.xml
mobile/locales/searchplugins/wikipedia-kab.xml
mobile/locales/searchplugins/wikipedia-kk.xml
mobile/locales/searchplugins/wikipedia-km.xml
mobile/locales/searchplugins/wikipedia-kn.xml
mobile/locales/searchplugins/wikipedia-lij.xml
mobile/locales/searchplugins/wikipedia-lo.xml
mobile/locales/searchplugins/wikipedia-lt.xml
mobile/locales/searchplugins/wikipedia-ltg.xml
mobile/locales/searchplugins/wikipedia-lv.xml
mobile/locales/searchplugins/wikipedia-ml.xml
mobile/locales/searchplugins/wikipedia-mr.xml
mobile/locales/searchplugins/wikipedia-ms.xml
mobile/locales/searchplugins/wikipedia-my.xml
mobile/locales/searchplugins/wikipedia-ne.xml
mobile/locales/searchplugins/wikipedia-nl.xml
mobile/locales/searchplugins/wikipedia-oc.xml
mobile/locales/searchplugins/wikipedia-or.xml
mobile/locales/searchplugins/wikipedia-pa.xml
mobile/locales/searchplugins/wikipedia-pl.xml
mobile/locales/searchplugins/wikipedia-pt.xml
mobile/locales/searchplugins/wikipedia-rm.xml
mobile/locales/searchplugins/wikipedia-ro.xml
mobile/locales/searchplugins/wikipedia-ru.xml
mobile/locales/searchplugins/wikipedia-sk.xml
mobile/locales/searchplugins/wikipedia-sl.xml
mobile/locales/searchplugins/wikipedia-sq.xml
mobile/locales/searchplugins/wikipedia-sr.xml
mobile/locales/searchplugins/wikipedia-sv-SE.xml
mobile/locales/searchplugins/wikipedia-ta.xml
mobile/locales/searchplugins/wikipedia-te.xml
mobile/locales/searchplugins/wikipedia-th.xml
mobile/locales/searchplugins/wikipedia-tr.xml
mobile/locales/searchplugins/wikipedia-uk.xml
mobile/locales/searchplugins/wikipedia-ur.xml
mobile/locales/searchplugins/wikipedia-uz.xml
mobile/locales/searchplugins/wikipedia-vi.xml
mobile/locales/searchplugins/wikipedia-wo.xml
mobile/locales/searchplugins/wikipedia-zh-CN.xml
mobile/locales/searchplugins/wikipedia-zh-TW.xml
mobile/locales/searchplugins/wikipedia.xml
mobile/locales/searchplugins/wiktionary-kn.xml
mobile/locales/searchplugins/wiktionary-oc.xml
mobile/locales/searchplugins/wiktionary-or.xml
mobile/locales/searchplugins/wiktionary-ta.xml
mobile/locales/searchplugins/wiktionary-te.xml
mobile/locales/searchplugins/yahoo-jp.xml
mobile/locales/searchplugins/yandex-en.xml
mobile/locales/searchplugins/yandex-ru.xml
mobile/locales/searchplugins/yandex-tr.xml
mobile/locales/searchplugins/yandex.by.xml
mobile/locales/searchplugins/yandex.xml
toolkit/components/search/nsSearchService.js
toolkit/components/search/tests/xpcshell/data/list.json
toolkit/components/search/tests/xpcshell/head_search.js
toolkit/components/search/tests/xpcshell/test_list_json_locale.js
toolkit/components/search/tests/xpcshell/xpcshell.ini
toolkit/mozapps/installer/l10n-repack.py
--- 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/settings/blocklists/",
   "resource://app/defaults/settings/main/",
   "resource://app/defaults/settings/pinning/",
   "resource://app/defaults/preferences/",
   "resource://gre/modules/commonjs/",
   "resource://gre/defaults/pref/",
 
   // These resources are referenced using relative paths from html files.
@@ -31,16 +30,19 @@ var gExceptionPaths = [
   "resource://activity-stream/prerendered/",
 
   // browser/extensions/pdfjs/content/build/pdf.js#1999
   "resource://pdf.js/web/images/",
 
   // Exclude all the metadata paths under the country metadata folder because these
   // paths will be concatenated in FormAutofillUtils.jsm based on different country/region.
   "resource://formautofill/addressmetadata/",
+
+  // Exclude all search-plugins because they aren't referenced by filename
+  "resource://search-plugins/",
 ];
 
 // These are not part of the omni.ja file, so we find them only when running
 // the test on a non-packaged build.
 if (AppConstants.platform == "macosx")
   gExceptionPaths.push("resource://gre/res/cursors/");
 
 var whitelist = [
--- a/browser/base/jar.mn
+++ b/browser/base/jar.mn
@@ -112,9 +112,8 @@ browser.jar:
         content/browser/blockedSite.xhtml               (content/blockedSite.xhtml)
 
 % 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/
--- a/browser/components/search/content/search.xml
+++ b/browser/components/search/content/search.xml
@@ -62,16 +62,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)
@@ -109,16 +110,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)
@@ -178,17 +180,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")) {
             // Make sure the engine list is refetched next time it's needed
             this._engines = null;
 
             // Update the popup header and update the display after any modification.
             this._textbox.popup.updateHeader();
             this.updateDisplay();
           }
         ]]></body>
@@ -1301,16 +1304,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
--- a/browser/components/search/jar.mn
+++ b/browser/components/search/jar.mn
@@ -1,8 +1,12 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # 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/searchReset.xhtml                    (content/searchReset.xhtml)
         content/browser/search/searchReset.js                       (content/searchReset.js)
+
+        searchplugins/                                              (searchplugins/**)
+
+% resource search-plugins %searchplugins/
rename from browser/locales/searchplugins/allaannonser-sv-SE.xml
rename to browser/components/search/searchplugins/allaannonser-sv-SE.xml
rename from browser/locales/searchplugins/allegro-pl.xml
rename to browser/components/search/searchplugins/allegro-pl.xml
rename from browser/locales/searchplugins/amazon-au.xml
rename to browser/components/search/searchplugins/amazon-au.xml
rename from browser/locales/searchplugins/amazon-br.xml
rename to browser/components/search/searchplugins/amazon-br.xml
rename from browser/locales/searchplugins/amazon-ca.xml
rename to browser/components/search/searchplugins/amazon-ca.xml
rename from browser/locales/searchplugins/amazon-en-GB.xml
rename to browser/components/search/searchplugins/amazon-en-GB.xml
rename from browser/locales/searchplugins/amazon-france.xml
rename to browser/components/search/searchplugins/amazon-france.xml
rename from browser/locales/searchplugins/amazon-in.xml
rename to browser/components/search/searchplugins/amazon-in.xml
rename from browser/locales/searchplugins/amazon-it.xml
rename to browser/components/search/searchplugins/amazon-it.xml
rename from browser/locales/searchplugins/amazon-jp.xml
rename to browser/components/search/searchplugins/amazon-jp.xml
rename from browser/locales/searchplugins/amazon-mx.xml
rename to browser/components/search/searchplugins/amazon-mx.xml
rename from browser/locales/searchplugins/amazon-nl.xml
rename to browser/components/search/searchplugins/amazon-nl.xml
rename from browser/locales/searchplugins/amazondotcn.xml
rename to browser/components/search/searchplugins/amazondotcn.xml
rename from browser/locales/searchplugins/amazondotcom-de.xml
rename to browser/components/search/searchplugins/amazondotcom-de.xml
rename from browser/locales/searchplugins/amazondotcom.xml
rename to browser/components/search/searchplugins/amazondotcom.xml
rename from browser/locales/searchplugins/atlas-sk.xml
rename to browser/components/search/searchplugins/atlas-sk.xml
rename from browser/locales/searchplugins/azerdict.xml
rename to browser/components/search/searchplugins/azerdict.xml
rename from browser/locales/searchplugins/azet-sk.xml
rename to browser/components/search/searchplugins/azet-sk.xml
rename from browser/locales/searchplugins/baidu.xml
rename to browser/components/search/searchplugins/baidu.xml
rename from browser/locales/searchplugins/bbc-alba.xml
rename to browser/components/search/searchplugins/bbc-alba.xml
rename from browser/locales/searchplugins/bing.xml
rename to browser/components/search/searchplugins/bing.xml
rename from browser/locales/searchplugins/bok-NO.xml
rename to browser/components/search/searchplugins/bok-NO.xml
rename from browser/locales/searchplugins/bolcom-fy-NL.xml
rename to browser/components/search/searchplugins/bolcom-fy-NL.xml
rename from browser/locales/searchplugins/bolcom-nl.xml
rename to browser/components/search/searchplugins/bolcom-nl.xml
rename from browser/locales/searchplugins/bookplus-fi.xml
rename to browser/components/search/searchplugins/bookplus-fi.xml
rename from browser/locales/searchplugins/buscape.xml
rename to browser/components/search/searchplugins/buscape.xml
rename from browser/locales/searchplugins/ceneji.xml
rename to browser/components/search/searchplugins/ceneji.xml
rename from browser/locales/searchplugins/chambers-en-GB.xml
rename to browser/components/search/searchplugins/chambers-en-GB.xml
rename from browser/locales/searchplugins/cnrtl-tlfi-fr.xml
rename to browser/components/search/searchplugins/cnrtl-tlfi-fr.xml
rename from browser/locales/searchplugins/coccoc.xml
rename to browser/components/search/searchplugins/coccoc.xml
rename from browser/locales/searchplugins/danawa-kr.xml
rename to browser/components/search/searchplugins/danawa-kr.xml
rename from browser/locales/searchplugins/daum-kr.xml
rename to browser/components/search/searchplugins/daum-kr.xml
rename from browser/locales/searchplugins/ddg.xml
rename to browser/components/search/searchplugins/ddg.xml
rename from browser/locales/searchplugins/diccionariu-alla.xml
rename to browser/components/search/searchplugins/diccionariu-alla.xml
rename from browser/locales/searchplugins/dict-enlv.xml
rename to browser/components/search/searchplugins/dict-enlv.xml
rename from browser/locales/searchplugins/diec2.xml
rename to browser/components/search/searchplugins/diec2.xml
rename from browser/locales/searchplugins/drae.xml
rename to browser/components/search/searchplugins/drae.xml
rename from browser/locales/searchplugins/ebay-at.xml
rename to browser/components/search/searchplugins/ebay-at.xml
rename from browser/locales/searchplugins/ebay-au.xml
rename to browser/components/search/searchplugins/ebay-au.xml
rename from browser/locales/searchplugins/ebay-be.xml
rename to browser/components/search/searchplugins/ebay-be.xml
rename from browser/locales/searchplugins/ebay-ca.xml
rename to browser/components/search/searchplugins/ebay-ca.xml
rename from browser/locales/searchplugins/ebay-ch.xml
rename to browser/components/search/searchplugins/ebay-ch.xml
rename from browser/locales/searchplugins/ebay-de.xml
rename to browser/components/search/searchplugins/ebay-de.xml
rename from browser/locales/searchplugins/ebay-es.xml
rename to browser/components/search/searchplugins/ebay-es.xml
rename from browser/locales/searchplugins/ebay-fr.xml
rename to browser/components/search/searchplugins/ebay-fr.xml
rename from browser/locales/searchplugins/ebay-ie.xml
rename to browser/components/search/searchplugins/ebay-ie.xml
rename from browser/locales/searchplugins/ebay-it.xml
rename to browser/components/search/searchplugins/ebay-it.xml
rename from browser/locales/searchplugins/ebay-nl.xml
rename to browser/components/search/searchplugins/ebay-nl.xml
rename from browser/locales/searchplugins/ebay-uk.xml
rename to browser/components/search/searchplugins/ebay-uk.xml
rename from browser/locales/searchplugins/ebay.xml
rename to browser/components/search/searchplugins/ebay.xml
rename from browser/locales/searchplugins/ecosia.xml
rename to browser/components/search/searchplugins/ecosia.xml
rename from browser/locales/searchplugins/eki-ee.xml
rename to browser/components/search/searchplugins/eki-ee.xml
rename from browser/locales/searchplugins/elebila.xml
rename to browser/components/search/searchplugins/elebila.xml
rename from browser/locales/searchplugins/eudict.xml
rename to browser/components/search/searchplugins/eudict.xml
rename from browser/locales/searchplugins/faclair-beag.xml
rename to browser/components/search/searchplugins/faclair-beag.xml
rename from browser/locales/searchplugins/flip.xml
rename to browser/components/search/searchplugins/flip.xml
rename from browser/locales/searchplugins/freelang.xml
rename to browser/components/search/searchplugins/freelang.xml
rename from browser/locales/searchplugins/google-2018.xml
rename to browser/components/search/searchplugins/google-2018.xml
rename from browser/locales/searchplugins/google.xml
rename to browser/components/search/searchplugins/google.xml
rename from browser/locales/searchplugins/gujaratilexicon.xml
rename to browser/components/search/searchplugins/gujaratilexicon.xml
rename from browser/locales/searchplugins/gulesider-NO.xml
rename to browser/components/search/searchplugins/gulesider-NO.xml
rename from browser/locales/searchplugins/heureka-cz.xml
rename to browser/components/search/searchplugins/heureka-cz.xml
rename from browser/locales/searchplugins/hoepli.xml
rename to browser/components/search/searchplugins/hoepli.xml
rename from browser/locales/searchplugins/hotline-ua.xml
rename to browser/components/search/searchplugins/hotline-ua.xml
rename from browser/locales/searchplugins/images/amazon.ico
rename to browser/components/search/searchplugins/images/amazon.ico
rename from browser/locales/searchplugins/images/ebay.ico
rename to browser/components/search/searchplugins/images/ebay.ico
rename from browser/locales/searchplugins/images/wikipedia.ico
rename to browser/components/search/searchplugins/images/wikipedia.ico
rename from browser/locales/searchplugins/images/yandex-en.ico
rename to browser/components/search/searchplugins/images/yandex-en.ico
rename from browser/locales/searchplugins/images/yandex-ru.ico
rename to browser/components/search/searchplugins/images/yandex-ru.ico
rename from browser/locales/searchplugins/kannadastore.xml
rename to browser/components/search/searchplugins/kannadastore.xml
rename from browser/locales/searchplugins/kaz-kk.xml
rename to browser/components/search/searchplugins/kaz-kk.xml
rename from browser/locales/searchplugins/klask.xml
rename to browser/components/search/searchplugins/klask.xml
rename from browser/locales/searchplugins/leit-is.xml
rename to browser/components/search/searchplugins/leit-is.xml
rename from browser/locales/searchplugins/leo_ende_de-rm.xml
rename to browser/components/search/searchplugins/leo_ende_de-rm.xml
rename from browser/locales/searchplugins/leo_ende_de.xml
rename to browser/components/search/searchplugins/leo_ende_de.xml
rename from browser/locales/searchplugins/list-am.xml
rename to browser/components/search/searchplugins/list-am.xml
rename from browser/locales/search/list.json
rename to browser/components/search/searchplugins/list.json
rename from browser/locales/searchplugins/longdo.xml
rename to browser/components/search/searchplugins/longdo.xml
rename from browser/locales/searchplugins/mailru.xml
rename to browser/components/search/searchplugins/mailru.xml
rename from browser/locales/searchplugins/mapy-cz.xml
rename to browser/components/search/searchplugins/mapy-cz.xml
rename from browser/locales/searchplugins/marktplaats-fy-NL.xml
rename to browser/components/search/searchplugins/marktplaats-fy-NL.xml
rename from browser/locales/searchplugins/marktplaats-nl.xml
rename to browser/components/search/searchplugins/marktplaats-nl.xml
rename from browser/locales/searchplugins/mercadolibre-ar.xml
rename to browser/components/search/searchplugins/mercadolibre-ar.xml
rename from browser/locales/searchplugins/mercadolibre-cl.xml
rename to browser/components/search/searchplugins/mercadolibre-cl.xml
rename from browser/locales/searchplugins/mercadolibre-mx.xml
rename to browser/components/search/searchplugins/mercadolibre-mx.xml
rename from browser/locales/searchplugins/mercadolivre.xml
rename to browser/components/search/searchplugins/mercadolivre.xml
rename from browser/locales/searchplugins/meta-ua.xml
rename to browser/components/search/searchplugins/meta-ua.xml
rename from browser/locales/searchplugins/morfix-dic.xml
rename to browser/components/search/searchplugins/morfix-dic.xml
rename from browser/locales/searchplugins/najdi-si.xml
rename to browser/components/search/searchplugins/najdi-si.xml
rename from browser/locales/searchplugins/naver-kr.xml
rename to browser/components/search/searchplugins/naver-kr.xml
rename from browser/locales/searchplugins/neti-ee.xml
rename to browser/components/search/searchplugins/neti-ee.xml
rename from browser/locales/searchplugins/odpiralni.xml
rename to browser/components/search/searchplugins/odpiralni.xml
rename from browser/locales/searchplugins/olx.xml
rename to browser/components/search/searchplugins/olx.xml
rename from browser/locales/searchplugins/oshiete-goo.xml
rename to browser/components/search/searchplugins/oshiete-goo.xml
rename from browser/locales/searchplugins/osta-ee.xml
rename to browser/components/search/searchplugins/osta-ee.xml
rename from browser/locales/searchplugins/ozonru.xml
rename to browser/components/search/searchplugins/ozonru.xml
rename from browser/locales/searchplugins/palasprint.xml
rename to browser/components/search/searchplugins/palasprint.xml
rename from browser/locales/searchplugins/paroledigenova-lij.xml
rename to browser/components/search/searchplugins/paroledigenova-lij.xml
rename from browser/locales/searchplugins/pazaruvaj.xml
rename to browser/components/search/searchplugins/pazaruvaj.xml
rename from browser/locales/searchplugins/pledarigrond.xml
rename to browser/components/search/searchplugins/pledarigrond.xml
rename from browser/locales/searchplugins/pogodak.xml
rename to browser/components/search/searchplugins/pogodak.xml
rename from browser/locales/searchplugins/portalbgdict.xml
rename to browser/components/search/searchplugins/portalbgdict.xml
rename from browser/locales/searchplugins/priberam.xml
rename to browser/components/search/searchplugins/priberam.xml
rename from browser/locales/searchplugins/priceru.xml
rename to browser/components/search/searchplugins/priceru.xml
rename from browser/locales/searchplugins/prisjakt-sv-SE.xml
rename to browser/components/search/searchplugins/prisjakt-sv-SE.xml
rename from browser/locales/searchplugins/pwn-pl.xml
rename to browser/components/search/searchplugins/pwn-pl.xml
rename from browser/locales/searchplugins/qwant.xml
rename to browser/components/search/searchplugins/qwant.xml
rename from browser/locales/searchplugins/qxl-NO.xml
rename to browser/components/search/searchplugins/qxl-NO.xml
rename from browser/locales/searchplugins/rakuten.xml
rename to browser/components/search/searchplugins/rakuten.xml
rename from browser/locales/searchplugins/readmoo.xml
rename to browser/components/search/searchplugins/readmoo.xml
rename from browser/locales/searchplugins/rediff.xml
rename to browser/components/search/searchplugins/rediff.xml
rename from browser/locales/searchplugins/reta-vortaro.xml
rename to browser/components/search/searchplugins/reta-vortaro.xml
rename from browser/locales/searchplugins/salidzinilv.xml
rename to browser/components/search/searchplugins/salidzinilv.xml
rename from browser/locales/searchplugins/sapo.xml
rename to browser/components/search/searchplugins/sapo.xml
rename from browser/locales/searchplugins/seznam-cz.xml
rename to browser/components/search/searchplugins/seznam-cz.xml
rename from browser/locales/searchplugins/slovnik-sk.xml
rename to browser/components/search/searchplugins/slovnik-sk.xml
rename from browser/locales/searchplugins/sslv.xml
rename to browser/components/search/searchplugins/sslv.xml
rename from browser/locales/searchplugins/sztaki-en-hu.xml
rename to browser/components/search/searchplugins/sztaki-en-hu.xml
rename from browser/locales/searchplugins/tearma.xml
rename to browser/components/search/searchplugins/tearma.xml
rename from browser/locales/searchplugins/termau.xml
rename to browser/components/search/searchplugins/termau.xml
rename from browser/locales/searchplugins/twitter-ja.xml
rename to browser/components/search/searchplugins/twitter-ja.xml
rename from browser/locales/searchplugins/twitter.xml
rename to browser/components/search/searchplugins/twitter.xml
rename from browser/locales/searchplugins/tyda-sv-SE.xml
rename to browser/components/search/searchplugins/tyda-sv-SE.xml
rename from browser/locales/searchplugins/vatera.xml
rename to browser/components/search/searchplugins/vatera.xml
rename from browser/locales/searchplugins/webdunia.xml
rename to browser/components/search/searchplugins/webdunia.xml
rename from browser/locales/searchplugins/wikipedia-NN.xml
rename to browser/components/search/searchplugins/wikipedia-NN.xml
rename from browser/locales/searchplugins/wikipedia-NO.xml
rename to browser/components/search/searchplugins/wikipedia-NO.xml
rename from browser/locales/searchplugins/wikipedia-af.xml
rename to browser/components/search/searchplugins/wikipedia-af.xml
rename from browser/locales/searchplugins/wikipedia-an.xml
rename to browser/components/search/searchplugins/wikipedia-an.xml
rename from browser/locales/searchplugins/wikipedia-ar.xml
rename to browser/components/search/searchplugins/wikipedia-ar.xml
rename from browser/locales/searchplugins/wikipedia-as.xml
rename to browser/components/search/searchplugins/wikipedia-as.xml
rename from browser/locales/searchplugins/wikipedia-ast.xml
rename to browser/components/search/searchplugins/wikipedia-ast.xml
rename from browser/locales/searchplugins/wikipedia-az.xml
rename to browser/components/search/searchplugins/wikipedia-az.xml
rename from browser/locales/searchplugins/wikipedia-be-tarask.xml
rename to browser/components/search/searchplugins/wikipedia-be-tarask.xml
rename from browser/locales/searchplugins/wikipedia-be.xml
rename to browser/components/search/searchplugins/wikipedia-be.xml
rename from browser/locales/searchplugins/wikipedia-bg.xml
rename to browser/components/search/searchplugins/wikipedia-bg.xml
rename from browser/locales/searchplugins/wikipedia-bn.xml
rename to browser/components/search/searchplugins/wikipedia-bn.xml
rename from browser/locales/searchplugins/wikipedia-br.xml
rename to browser/components/search/searchplugins/wikipedia-br.xml
rename from browser/locales/searchplugins/wikipedia-bs.xml
rename to browser/components/search/searchplugins/wikipedia-bs.xml
rename from browser/locales/searchplugins/wikipedia-ca.xml
rename to browser/components/search/searchplugins/wikipedia-ca.xml
rename from browser/locales/searchplugins/wikipedia-crh.xml
rename to browser/components/search/searchplugins/wikipedia-crh.xml
rename from browser/locales/searchplugins/wikipedia-cy.xml
rename to browser/components/search/searchplugins/wikipedia-cy.xml
rename from browser/locales/searchplugins/wikipedia-cz.xml
rename to browser/components/search/searchplugins/wikipedia-cz.xml
rename from browser/locales/searchplugins/wikipedia-da.xml
rename to browser/components/search/searchplugins/wikipedia-da.xml
rename from browser/locales/searchplugins/wikipedia-de.xml
rename to browser/components/search/searchplugins/wikipedia-de.xml
rename from browser/locales/searchplugins/wikipedia-dsb.xml
rename to browser/components/search/searchplugins/wikipedia-dsb.xml
rename from browser/locales/searchplugins/wikipedia-el.xml
rename to browser/components/search/searchplugins/wikipedia-el.xml
rename from browser/locales/searchplugins/wikipedia-eo.xml
rename to browser/components/search/searchplugins/wikipedia-eo.xml
rename from browser/locales/searchplugins/wikipedia-es.xml
rename to browser/components/search/searchplugins/wikipedia-es.xml
rename from browser/locales/searchplugins/wikipedia-et.xml
rename to browser/components/search/searchplugins/wikipedia-et.xml
rename from browser/locales/searchplugins/wikipedia-eu.xml
rename to browser/components/search/searchplugins/wikipedia-eu.xml
rename from browser/locales/searchplugins/wikipedia-fa.xml
rename to browser/components/search/searchplugins/wikipedia-fa.xml
rename from browser/locales/searchplugins/wikipedia-fi.xml
rename to browser/components/search/searchplugins/wikipedia-fi.xml
rename from browser/locales/searchplugins/wikipedia-fr.xml
rename to browser/components/search/searchplugins/wikipedia-fr.xml
rename from browser/locales/searchplugins/wikipedia-fy-NL.xml
rename to browser/components/search/searchplugins/wikipedia-fy-NL.xml
rename from browser/locales/searchplugins/wikipedia-ga-IE.xml
rename to browser/components/search/searchplugins/wikipedia-ga-IE.xml
rename from browser/locales/searchplugins/wikipedia-gd.xml
rename to browser/components/search/searchplugins/wikipedia-gd.xml
rename from browser/locales/searchplugins/wikipedia-gl.xml
rename to browser/components/search/searchplugins/wikipedia-gl.xml
rename from browser/locales/searchplugins/wikipedia-gn.xml
rename to browser/components/search/searchplugins/wikipedia-gn.xml
rename from browser/locales/searchplugins/wikipedia-gu.xml
rename to browser/components/search/searchplugins/wikipedia-gu.xml
rename from browser/locales/searchplugins/wikipedia-he.xml
rename to browser/components/search/searchplugins/wikipedia-he.xml
rename from browser/locales/searchplugins/wikipedia-hi.xml
rename to browser/components/search/searchplugins/wikipedia-hi.xml
rename from browser/locales/searchplugins/wikipedia-hr.xml
rename to browser/components/search/searchplugins/wikipedia-hr.xml
rename from browser/locales/searchplugins/wikipedia-hsb.xml
rename to browser/components/search/searchplugins/wikipedia-hsb.xml
rename from browser/locales/searchplugins/wikipedia-hu.xml
rename to browser/components/search/searchplugins/wikipedia-hu.xml
rename from browser/locales/searchplugins/wikipedia-hy.xml
rename to browser/components/search/searchplugins/wikipedia-hy.xml
rename from browser/locales/searchplugins/wikipedia-ia.xml
rename to browser/components/search/searchplugins/wikipedia-ia.xml
rename from browser/locales/searchplugins/wikipedia-id.xml
rename to browser/components/search/searchplugins/wikipedia-id.xml
rename from browser/locales/searchplugins/wikipedia-is.xml
rename to browser/components/search/searchplugins/wikipedia-is.xml
rename from browser/locales/searchplugins/wikipedia-it.xml
rename to browser/components/search/searchplugins/wikipedia-it.xml
rename from browser/locales/searchplugins/wikipedia-ja.xml
rename to browser/components/search/searchplugins/wikipedia-ja.xml
rename from browser/locales/searchplugins/wikipedia-ka.xml
rename to browser/components/search/searchplugins/wikipedia-ka.xml
rename from browser/locales/searchplugins/wikipedia-kab.xml
rename to browser/components/search/searchplugins/wikipedia-kab.xml
rename from browser/locales/searchplugins/wikipedia-kk.xml
rename to browser/components/search/searchplugins/wikipedia-kk.xml
rename from browser/locales/searchplugins/wikipedia-km.xml
rename to browser/components/search/searchplugins/wikipedia-km.xml
rename from browser/locales/searchplugins/wikipedia-kn.xml
rename to browser/components/search/searchplugins/wikipedia-kn.xml
rename from browser/locales/searchplugins/wikipedia-kr.xml
rename to browser/components/search/searchplugins/wikipedia-kr.xml
rename from browser/locales/searchplugins/wikipedia-lij.xml
rename to browser/components/search/searchplugins/wikipedia-lij.xml
rename from browser/locales/searchplugins/wikipedia-lo.xml
rename to browser/components/search/searchplugins/wikipedia-lo.xml
rename from browser/locales/searchplugins/wikipedia-lt.xml
rename to browser/components/search/searchplugins/wikipedia-lt.xml
rename from browser/locales/searchplugins/wikipedia-ltg.xml
rename to browser/components/search/searchplugins/wikipedia-ltg.xml
rename from browser/locales/searchplugins/wikipedia-lv.xml
rename to browser/components/search/searchplugins/wikipedia-lv.xml
rename from browser/locales/searchplugins/wikipedia-mk.xml
rename to browser/components/search/searchplugins/wikipedia-mk.xml
rename from browser/locales/searchplugins/wikipedia-ml.xml
rename to browser/components/search/searchplugins/wikipedia-ml.xml
rename from browser/locales/searchplugins/wikipedia-mr.xml
rename to browser/components/search/searchplugins/wikipedia-mr.xml
rename from browser/locales/searchplugins/wikipedia-ms.xml
rename to browser/components/search/searchplugins/wikipedia-ms.xml
rename from browser/locales/searchplugins/wikipedia-my.xml
rename to browser/components/search/searchplugins/wikipedia-my.xml
rename from browser/locales/searchplugins/wikipedia-ne.xml
rename to browser/components/search/searchplugins/wikipedia-ne.xml
rename from browser/locales/searchplugins/wikipedia-nl.xml
rename to browser/components/search/searchplugins/wikipedia-nl.xml
rename from browser/locales/searchplugins/wikipedia-oc.xml
rename to browser/components/search/searchplugins/wikipedia-oc.xml
rename from browser/locales/searchplugins/wikipedia-or.xml
rename to browser/components/search/searchplugins/wikipedia-or.xml
rename from browser/locales/searchplugins/wikipedia-pa.xml
rename to browser/components/search/searchplugins/wikipedia-pa.xml
rename from browser/locales/searchplugins/wikipedia-pl.xml
rename to browser/components/search/searchplugins/wikipedia-pl.xml
rename from browser/locales/searchplugins/wikipedia-pt.xml
rename to browser/components/search/searchplugins/wikipedia-pt.xml
rename from browser/locales/searchplugins/wikipedia-rm.xml
rename to browser/components/search/searchplugins/wikipedia-rm.xml
rename from browser/locales/searchplugins/wikipedia-ro.xml
rename to browser/components/search/searchplugins/wikipedia-ro.xml
rename from browser/locales/searchplugins/wikipedia-ru.xml
rename to browser/components/search/searchplugins/wikipedia-ru.xml
rename from browser/locales/searchplugins/wikipedia-si.xml
rename to browser/components/search/searchplugins/wikipedia-si.xml
rename from browser/locales/searchplugins/wikipedia-sk.xml
rename to browser/components/search/searchplugins/wikipedia-sk.xml
rename from browser/locales/searchplugins/wikipedia-sl.xml
rename to browser/components/search/searchplugins/wikipedia-sl.xml
rename from browser/locales/searchplugins/wikipedia-sq.xml
rename to browser/components/search/searchplugins/wikipedia-sq.xml
rename from browser/locales/searchplugins/wikipedia-sr.xml
rename to browser/components/search/searchplugins/wikipedia-sr.xml
rename from browser/locales/searchplugins/wikipedia-sv-SE.xml
rename to browser/components/search/searchplugins/wikipedia-sv-SE.xml
rename from browser/locales/searchplugins/wikipedia-ta.xml
rename to browser/components/search/searchplugins/wikipedia-ta.xml
rename from browser/locales/searchplugins/wikipedia-te.xml
rename to browser/components/search/searchplugins/wikipedia-te.xml
rename from browser/locales/searchplugins/wikipedia-th.xml
rename to browser/components/search/searchplugins/wikipedia-th.xml
rename from browser/locales/searchplugins/wikipedia-tl.xml
rename to browser/components/search/searchplugins/wikipedia-tl.xml
rename from browser/locales/searchplugins/wikipedia-tr.xml
rename to browser/components/search/searchplugins/wikipedia-tr.xml
rename from browser/locales/searchplugins/wikipedia-uk.xml
rename to browser/components/search/searchplugins/wikipedia-uk.xml
rename from browser/locales/searchplugins/wikipedia-ur.xml
rename to browser/components/search/searchplugins/wikipedia-ur.xml
rename from browser/locales/searchplugins/wikipedia-uz.xml
rename to browser/components/search/searchplugins/wikipedia-uz.xml
rename from browser/locales/searchplugins/wikipedia-vi.xml
rename to browser/components/search/searchplugins/wikipedia-vi.xml
rename from browser/locales/searchplugins/wikipedia-wo.xml
rename to browser/components/search/searchplugins/wikipedia-wo.xml
rename from browser/locales/searchplugins/wikipedia-zh-CN.xml
rename to browser/components/search/searchplugins/wikipedia-zh-CN.xml
rename from browser/locales/searchplugins/wikipedia-zh-TW.xml
rename to browser/components/search/searchplugins/wikipedia-zh-TW.xml
rename from browser/locales/searchplugins/wikipedia.xml
rename to browser/components/search/searchplugins/wikipedia.xml
rename from browser/locales/searchplugins/wiktionary-oc.xml
rename to browser/components/search/searchplugins/wiktionary-oc.xml
rename from browser/locales/searchplugins/wiktionary-te.xml
rename to browser/components/search/searchplugins/wiktionary-te.xml
rename from browser/locales/searchplugins/wolnelektury-pl.xml
rename to browser/components/search/searchplugins/wolnelektury-pl.xml
rename from browser/locales/searchplugins/yahoo-jp-auctions.xml
rename to browser/components/search/searchplugins/yahoo-jp-auctions.xml
rename from browser/locales/searchplugins/yahoo-jp.xml
rename to browser/components/search/searchplugins/yahoo-jp.xml
rename from browser/locales/searchplugins/yandex-az.xml
rename to browser/components/search/searchplugins/yandex-az.xml
rename from browser/locales/searchplugins/yandex-by.xml
rename to browser/components/search/searchplugins/yandex-by.xml
rename from browser/locales/searchplugins/yandex-en.xml
rename to browser/components/search/searchplugins/yandex-en.xml
rename from browser/locales/searchplugins/yandex-kk.xml
rename to browser/components/search/searchplugins/yandex-kk.xml
rename from browser/locales/searchplugins/yandex-ru.xml
rename to browser/components/search/searchplugins/yandex-ru.xml
rename from browser/locales/searchplugins/yandex-tr.xml
rename to browser/components/search/searchplugins/yandex-tr.xml
rename from browser/locales/searchplugins/zoznam-sk.xml
rename to browser/components/search/searchplugins/zoznam-sk.xml
--- a/browser/components/search/test/browser.ini
+++ b/browser/components/search/test/browser.ini
@@ -19,21 +19,18 @@ 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_eBay.js]
-skip-if = artifact # bug 1315953
 [browser_google.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" #1421238
 [browser_private_search_perwindowpb.js]
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -34,58 +34,39 @@ ifneq (,$(filter cocoa,$(MOZ_WIDGET_TOOL
 MOZ_PKG_MAC_DSSTORE=$(ABS_DIST)/branding/dsstore
 MOZ_PKG_MAC_BACKGROUND=$(ABS_DIST)/branding/background.png
 MOZ_PKG_MAC_ICON=$(ABS_DIST)/branding/disk.icns
 MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
 endif
 
 MOZ_SFX_PACKAGE=$(topsrcdir)/other-licenses/7zstub/firefox/7zSD.sfx
 
-SEARCHPLUGINS_FILENAMES := $(or $(shell $(call py_action,output_searchplugins_list,$(srcdir)/search/list.json $(AB_CD))), $(error Missing search plugins))
-SEARCHPLUGINS_PATH := .deps/generated_$(AB_CD)
-SEARCHPLUGINS_TARGET := libs searchplugins
-SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_FILENAMES)),$(or $(wildcard $(srcdir)/searchplugins/$(plugin)),$(error 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 ../extensions/onboarding/locales AB_CD=$* XPI_NAME=locale-$*
 	@$(MAKE) -C ../extensions/pocket/locale AB_CD=$* XPI_NAME=locale-$*
 	@$(MAKE) -C ../extensions/webcompat-reporter/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/startup/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) multilocale.txt-$* AB_CD=$* XPI_NAME=locale-$*
 	@$(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-$*)
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -55,28 +55,16 @@
     locale/browser/feeds/subscribe.dtd              (%chrome/browser/feeds/subscribe.dtd)
     locale/browser/feeds/subscribe.properties       (%chrome/browser/feeds/subscribe.properties)
     locale/browser/migration/migration.dtd         (%chrome/browser/migration/migration.dtd)
     locale/browser/migration/migration.properties  (%chrome/browser/migration/migration.properties)
     locale/browser/preferences/preferences.properties     (%chrome/browser/preferences/preferences.properties)
     locale/browser/preferences/security.dtd           (%chrome/browser/preferences/security.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/ebay.ico       (searchplugins/images/ebay.ico)
-    locale/browser/searchplugins/images/wikipedia.ico  (searchplugins/images/wikipedia.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)
--- a/browser/locales/moz.build
+++ b/browser/locales/moz.build
@@ -39,16 +39,10 @@ with Files("**"):
     BUG_COMPONENT = ("Firefox Build System", "General")
 
 with Files("all-locales"):
     BUG_COMPONENT = ("Core", "Localization")
 
 with Files("en-US/**"):
     BUG_COMPONENT = ("Core", "Localization")
 
-with Files("search/**"):
-    BUG_COMPONENT = ("Firefox", "Search")
-
-with Files("searchplugins/**"):
-    BUG_COMPONENT = ("Firefox", "Search")
-
 with Files("shipped-locales"):
     BUG_COMPONENT = ("Core", "Localization")
--- a/browser/modules/ContentSearch.jsm
+++ b/browser/modules/ContentSearch.jsm
@@ -102,16 +102,17 @@ var 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;
@@ -128,16 +129,17 @@ var 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;
   },
 
   /**
@@ -179,16 +181,20 @@ var 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;
--- a/mobile/android/chrome/jar.mn
+++ b/mobile/android/chrome/jar.mn
@@ -82,10 +82,8 @@ chrome.jar:
 % override chrome://global/locale/global.dtd chrome://browser/locale/overrides/global.dtd
 % override chrome://global/locale/AccessFu.properties chrome://browser/locale/overrides/AccessFu.properties
 % override chrome://global/locale/dom/dom.properties chrome://browser/locale/overrides/dom/dom.properties
 % override chrome://global/locale/plugins.properties chrome://browser/locale/overrides/plugins.properties
 
 # mobile/locales/jar.mn resources and overrides
 % override chrome://global/locale/netError.dtd    chrome://browser/locale/netError.dtd
 % override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties
-% resource search-plugins chrome://browser/locale/searchplugins/
-
--- a/mobile/android/components/moz.build
+++ b/mobile/android/components/moz.build
@@ -46,9 +46,10 @@ EXTRA_COMPONENTS += [
 EXTRA_PP_COMPONENTS += [
     'MobileComponents.manifest',
 ]
 
 DIRS += [
     'extensions',
     'build',
     'geckoview',
+    'search',
 ]
new file mode 100644
--- /dev/null
+++ b/mobile/android/components/search/jar.mn
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# 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/.
+
+chrome.jar:
+        searchplugins/                                              (searchplugins/**)
+
+% resource search-plugins %searchplugins/
new file mode 100644
--- /dev/null
+++ b/mobile/android/components/search/moz.build
@@ -0,0 +1,10 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# 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/.
+
+JAR_MANIFESTS += ['jar.mn']
+
+with Files('**'):
+    BUG_COMPONENT = ('Firefox for Android', 'Awesomescreen')
rename from mobile/locales/searchplugins/amazon-au.xml
rename to mobile/android/components/search/searchplugins/amazon-au.xml
rename from mobile/locales/searchplugins/amazon-br.xml
rename to mobile/android/components/search/searchplugins/amazon-br.xml
rename from mobile/locales/searchplugins/amazon-ca.xml
rename to mobile/android/components/search/searchplugins/amazon-ca.xml
rename from mobile/locales/searchplugins/amazon-co-uk.xml
rename to mobile/android/components/search/searchplugins/amazon-co-uk.xml
rename from mobile/locales/searchplugins/amazon-de.xml
rename to mobile/android/components/search/searchplugins/amazon-de.xml
rename from mobile/locales/searchplugins/amazon-fr.xml
rename to mobile/android/components/search/searchplugins/amazon-fr.xml
rename from mobile/locales/searchplugins/amazon-in.xml
rename to mobile/android/components/search/searchplugins/amazon-in.xml
rename from mobile/locales/searchplugins/amazon-it.xml
rename to mobile/android/components/search/searchplugins/amazon-it.xml
rename from mobile/locales/searchplugins/amazon-jp.xml
rename to mobile/android/components/search/searchplugins/amazon-jp.xml
rename from mobile/locales/searchplugins/amazon-mx.xml
rename to mobile/android/components/search/searchplugins/amazon-mx.xml
rename from mobile/locales/searchplugins/amazon-nl.xml
rename to mobile/android/components/search/searchplugins/amazon-nl.xml
rename from mobile/locales/searchplugins/amazondotcom.xml
rename to mobile/android/components/search/searchplugins/amazondotcom.xml
rename from mobile/locales/searchplugins/azerdict.xml
rename to mobile/android/components/search/searchplugins/azerdict.xml
rename from mobile/locales/searchplugins/azet-sk.xml
rename to mobile/android/components/search/searchplugins/azet-sk.xml
rename from mobile/locales/searchplugins/baidu.xml
rename to mobile/android/components/search/searchplugins/baidu.xml
rename from mobile/locales/searchplugins/bing.xml
rename to mobile/android/components/search/searchplugins/bing.xml
rename from mobile/locales/searchplugins/bolcom-fy-NL.xml
rename to mobile/android/components/search/searchplugins/bolcom-fy-NL.xml
rename from mobile/locales/searchplugins/bolcom-nl.xml
rename to mobile/android/components/search/searchplugins/bolcom-nl.xml
rename from mobile/locales/searchplugins/ceneje.xml
rename to mobile/android/components/search/searchplugins/ceneje.xml
rename from mobile/locales/searchplugins/coccoc.xml
rename to mobile/android/components/search/searchplugins/coccoc.xml
rename from mobile/locales/searchplugins/danawa-kr.xml
rename to mobile/android/components/search/searchplugins/danawa-kr.xml
rename from mobile/locales/searchplugins/daum-kr.xml
rename to mobile/android/components/search/searchplugins/daum-kr.xml
rename from mobile/locales/searchplugins/ddg.xml
rename to mobile/android/components/search/searchplugins/ddg.xml
rename from mobile/locales/searchplugins/diec2.xml
rename to mobile/android/components/search/searchplugins/diec2.xml
rename from mobile/locales/searchplugins/drae.xml
rename to mobile/android/components/search/searchplugins/drae.xml
rename from mobile/locales/searchplugins/duckduckgo.xml
rename to mobile/android/components/search/searchplugins/duckduckgo.xml
rename from mobile/locales/searchplugins/elebila.xml
rename to mobile/android/components/search/searchplugins/elebila.xml
rename from mobile/locales/searchplugins/faclair-beag.xml
rename to mobile/android/components/search/searchplugins/faclair-beag.xml
rename from mobile/locales/searchplugins/google-2018.xml
rename to mobile/android/components/search/searchplugins/google-2018.xml
rename from mobile/locales/searchplugins/google.xml
rename to mobile/android/components/search/searchplugins/google.xml
rename from mobile/locales/searchplugins/gulesider-mobile-NO.xml
rename to mobile/android/components/search/searchplugins/gulesider-mobile-NO.xml
rename from mobile/locales/searchplugins/heureka-cz.xml
rename to mobile/android/components/search/searchplugins/heureka-cz.xml
rename from mobile/locales/searchplugins/hotline-ua.xml
rename to mobile/android/components/search/searchplugins/hotline-ua.xml
rename from mobile/locales/searchplugins/leit-is.xml
rename to mobile/android/components/search/searchplugins/leit-is.xml
rename from mobile/locales/searchplugins/leo_ende_de.xml
rename to mobile/android/components/search/searchplugins/leo_ende_de.xml
rename from mobile/locales/searchplugins/list-am.xml
rename to mobile/android/components/search/searchplugins/list-am.xml
rename from mobile/locales/search/list.json
rename to mobile/android/components/search/searchplugins/list.json
rename from mobile/locales/searchplugins/mapy-cz.xml
rename to mobile/android/components/search/searchplugins/mapy-cz.xml
rename from mobile/locales/searchplugins/mercadolibre-ar.xml
rename to mobile/android/components/search/searchplugins/mercadolibre-ar.xml
rename from mobile/locales/searchplugins/mercadolibre-cl.xml
rename to mobile/android/components/search/searchplugins/mercadolibre-cl.xml
rename from mobile/locales/searchplugins/mercadolibre-mx.xml
rename to mobile/android/components/search/searchplugins/mercadolibre-mx.xml
rename from mobile/locales/searchplugins/naver-kr.xml
rename to mobile/android/components/search/searchplugins/naver-kr.xml
rename from mobile/locales/searchplugins/odpiralni.xml
rename to mobile/android/components/search/searchplugins/odpiralni.xml
rename from mobile/locales/searchplugins/pazaruvaj.xml
rename to mobile/android/components/search/searchplugins/pazaruvaj.xml
rename from mobile/locales/searchplugins/pledarigrond.xml
rename to mobile/android/components/search/searchplugins/pledarigrond.xml
rename from mobile/locales/searchplugins/prisjakt-sv-SE.xml
rename to mobile/android/components/search/searchplugins/prisjakt-sv-SE.xml
rename from mobile/locales/searchplugins/qwant.xml
rename to mobile/android/components/search/searchplugins/qwant.xml
rename from mobile/locales/searchplugins/rediff.xml
rename to mobile/android/components/search/searchplugins/rediff.xml
rename from mobile/locales/searchplugins/reta-vortaro.xml
rename to mobile/android/components/search/searchplugins/reta-vortaro.xml
rename from mobile/locales/searchplugins/salidzinilv.xml
rename to mobile/android/components/search/searchplugins/salidzinilv.xml
rename from mobile/locales/searchplugins/seznam-cz.xml
rename to mobile/android/components/search/searchplugins/seznam-cz.xml
rename from mobile/locales/searchplugins/skroutz.xml
rename to mobile/android/components/search/searchplugins/skroutz.xml
rename from mobile/locales/searchplugins/slovnik-sk.xml
rename to mobile/android/components/search/searchplugins/slovnik-sk.xml
rename from mobile/locales/searchplugins/sslv.xml
rename to mobile/android/components/search/searchplugins/sslv.xml
rename from mobile/locales/searchplugins/sztaki-en-hu.xml
rename to mobile/android/components/search/searchplugins/sztaki-en-hu.xml
rename from mobile/locales/searchplugins/taobao.xml
rename to mobile/android/components/search/searchplugins/taobao.xml
rename from mobile/locales/searchplugins/tearma.xml
rename to mobile/android/components/search/searchplugins/tearma.xml
rename from mobile/locales/searchplugins/twitter-ja.xml
rename to mobile/android/components/search/searchplugins/twitter-ja.xml
rename from mobile/locales/searchplugins/twitter.xml
rename to mobile/android/components/search/searchplugins/twitter.xml
rename from mobile/locales/searchplugins/vatera.xml
rename to mobile/android/components/search/searchplugins/vatera.xml
rename from mobile/locales/searchplugins/wikipedia-NN.xml
rename to mobile/android/components/search/searchplugins/wikipedia-NN.xml
rename from mobile/locales/searchplugins/wikipedia-NO.xml
rename to mobile/android/components/search/searchplugins/wikipedia-NO.xml
rename from mobile/locales/searchplugins/wikipedia-an.xml
rename to mobile/android/components/search/searchplugins/wikipedia-an.xml
rename from mobile/locales/searchplugins/wikipedia-ar.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ar.xml
rename from mobile/locales/searchplugins/wikipedia-as.xml
rename to mobile/android/components/search/searchplugins/wikipedia-as.xml
rename from mobile/locales/searchplugins/wikipedia-ast.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ast.xml
rename from mobile/locales/searchplugins/wikipedia-az.xml
rename to mobile/android/components/search/searchplugins/wikipedia-az.xml
rename from mobile/locales/searchplugins/wikipedia-be.xml
rename to mobile/android/components/search/searchplugins/wikipedia-be.xml
rename from mobile/locales/searchplugins/wikipedia-bg.xml
rename to mobile/android/components/search/searchplugins/wikipedia-bg.xml
rename from mobile/locales/searchplugins/wikipedia-bn.xml
rename to mobile/android/components/search/searchplugins/wikipedia-bn.xml
rename from mobile/locales/searchplugins/wikipedia-br.xml
rename to mobile/android/components/search/searchplugins/wikipedia-br.xml
rename from mobile/locales/searchplugins/wikipedia-bs.xml
rename to mobile/android/components/search/searchplugins/wikipedia-bs.xml
rename from mobile/locales/searchplugins/wikipedia-ca.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ca.xml
rename from mobile/locales/searchplugins/wikipedia-cy.xml
rename to mobile/android/components/search/searchplugins/wikipedia-cy.xml
rename from mobile/locales/searchplugins/wikipedia-cz.xml
rename to mobile/android/components/search/searchplugins/wikipedia-cz.xml
rename from mobile/locales/searchplugins/wikipedia-da.xml
rename to mobile/android/components/search/searchplugins/wikipedia-da.xml
rename from mobile/locales/searchplugins/wikipedia-de.xml
rename to mobile/android/components/search/searchplugins/wikipedia-de.xml
rename from mobile/locales/searchplugins/wikipedia-dsb.xml
rename to mobile/android/components/search/searchplugins/wikipedia-dsb.xml
rename from mobile/locales/searchplugins/wikipedia-el.xml
rename to mobile/android/components/search/searchplugins/wikipedia-el.xml
rename from mobile/locales/searchplugins/wikipedia-eo.xml
rename to mobile/android/components/search/searchplugins/wikipedia-eo.xml
rename from mobile/locales/searchplugins/wikipedia-es.xml
rename to mobile/android/components/search/searchplugins/wikipedia-es.xml
rename from mobile/locales/searchplugins/wikipedia-et.xml
rename to mobile/android/components/search/searchplugins/wikipedia-et.xml
rename from mobile/locales/searchplugins/wikipedia-eu.xml
rename to mobile/android/components/search/searchplugins/wikipedia-eu.xml
rename from mobile/locales/searchplugins/wikipedia-fa.xml
rename to mobile/android/components/search/searchplugins/wikipedia-fa.xml
rename from mobile/locales/searchplugins/wikipedia-fi.xml
rename to mobile/android/components/search/searchplugins/wikipedia-fi.xml
rename from mobile/locales/searchplugins/wikipedia-fr.xml
rename to mobile/android/components/search/searchplugins/wikipedia-fr.xml
rename from mobile/locales/searchplugins/wikipedia-fy-NL.xml
rename to mobile/android/components/search/searchplugins/wikipedia-fy-NL.xml
rename from mobile/locales/searchplugins/wikipedia-ga-IE.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ga-IE.xml
rename from mobile/locales/searchplugins/wikipedia-gd.xml
rename to mobile/android/components/search/searchplugins/wikipedia-gd.xml
rename from mobile/locales/searchplugins/wikipedia-gl.xml
rename to mobile/android/components/search/searchplugins/wikipedia-gl.xml
rename from mobile/locales/searchplugins/wikipedia-gn.xml
rename to mobile/android/components/search/searchplugins/wikipedia-gn.xml
rename from mobile/locales/searchplugins/wikipedia-gu.xml
rename to mobile/android/components/search/searchplugins/wikipedia-gu.xml
rename from mobile/locales/searchplugins/wikipedia-he.xml
rename to mobile/android/components/search/searchplugins/wikipedia-he.xml
rename from mobile/locales/searchplugins/wikipedia-hi.xml
rename to mobile/android/components/search/searchplugins/wikipedia-hi.xml
rename from mobile/locales/searchplugins/wikipedia-hr.xml
rename to mobile/android/components/search/searchplugins/wikipedia-hr.xml
rename from mobile/locales/searchplugins/wikipedia-hsb.xml
rename to mobile/android/components/search/searchplugins/wikipedia-hsb.xml
rename from mobile/locales/searchplugins/wikipedia-hu.xml
rename to mobile/android/components/search/searchplugins/wikipedia-hu.xml
rename from mobile/locales/searchplugins/wikipedia-hy-AM.xml
rename to mobile/android/components/search/searchplugins/wikipedia-hy-AM.xml
rename from mobile/locales/searchplugins/wikipedia-ia.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ia.xml
rename from mobile/locales/searchplugins/wikipedia-id.xml
rename to mobile/android/components/search/searchplugins/wikipedia-id.xml
rename from mobile/locales/searchplugins/wikipedia-is.xml
rename to mobile/android/components/search/searchplugins/wikipedia-is.xml
rename from mobile/locales/searchplugins/wikipedia-it.xml
rename to mobile/android/components/search/searchplugins/wikipedia-it.xml
rename from mobile/locales/searchplugins/wikipedia-ja.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ja.xml
rename from mobile/locales/searchplugins/wikipedia-ka.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ka.xml
rename from mobile/locales/searchplugins/wikipedia-kab.xml
rename to mobile/android/components/search/searchplugins/wikipedia-kab.xml
rename from mobile/locales/searchplugins/wikipedia-kk.xml
rename to mobile/android/components/search/searchplugins/wikipedia-kk.xml
rename from mobile/locales/searchplugins/wikipedia-km.xml
rename to mobile/android/components/search/searchplugins/wikipedia-km.xml
rename from mobile/locales/searchplugins/wikipedia-kn.xml
rename to mobile/android/components/search/searchplugins/wikipedia-kn.xml
rename from mobile/locales/searchplugins/wikipedia-lij.xml
rename to mobile/android/components/search/searchplugins/wikipedia-lij.xml
rename from mobile/locales/searchplugins/wikipedia-lo.xml
rename to mobile/android/components/search/searchplugins/wikipedia-lo.xml
rename from mobile/locales/searchplugins/wikipedia-lt.xml
rename to mobile/android/components/search/searchplugins/wikipedia-lt.xml
rename from mobile/locales/searchplugins/wikipedia-ltg.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ltg.xml
rename from mobile/locales/searchplugins/wikipedia-lv.xml
rename to mobile/android/components/search/searchplugins/wikipedia-lv.xml
rename from mobile/locales/searchplugins/wikipedia-ml.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ml.xml
rename from mobile/locales/searchplugins/wikipedia-mr.xml
rename to mobile/android/components/search/searchplugins/wikipedia-mr.xml
rename from mobile/locales/searchplugins/wikipedia-ms.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ms.xml
rename from mobile/locales/searchplugins/wikipedia-my.xml
rename to mobile/android/components/search/searchplugins/wikipedia-my.xml
rename from mobile/locales/searchplugins/wikipedia-ne.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ne.xml
rename from mobile/locales/searchplugins/wikipedia-nl.xml
rename to mobile/android/components/search/searchplugins/wikipedia-nl.xml
rename from mobile/locales/searchplugins/wikipedia-oc.xml
rename to mobile/android/components/search/searchplugins/wikipedia-oc.xml
rename from mobile/locales/searchplugins/wikipedia-or.xml
rename to mobile/android/components/search/searchplugins/wikipedia-or.xml
rename from mobile/locales/searchplugins/wikipedia-pa.xml
rename to mobile/android/components/search/searchplugins/wikipedia-pa.xml
rename from mobile/locales/searchplugins/wikipedia-pl.xml
rename to mobile/android/components/search/searchplugins/wikipedia-pl.xml
rename from mobile/locales/searchplugins/wikipedia-pt.xml
rename to mobile/android/components/search/searchplugins/wikipedia-pt.xml
rename from mobile/locales/searchplugins/wikipedia-rm.xml
rename to mobile/android/components/search/searchplugins/wikipedia-rm.xml
rename from mobile/locales/searchplugins/wikipedia-ro.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ro.xml
rename from mobile/locales/searchplugins/wikipedia-ru.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ru.xml
rename from mobile/locales/searchplugins/wikipedia-sk.xml
rename to mobile/android/components/search/searchplugins/wikipedia-sk.xml
rename from mobile/locales/searchplugins/wikipedia-sl.xml
rename to mobile/android/components/search/searchplugins/wikipedia-sl.xml
rename from mobile/locales/searchplugins/wikipedia-sq.xml
rename to mobile/android/components/search/searchplugins/wikipedia-sq.xml
rename from mobile/locales/searchplugins/wikipedia-sr.xml
rename to mobile/android/components/search/searchplugins/wikipedia-sr.xml
rename from mobile/locales/searchplugins/wikipedia-sv-SE.xml
rename to mobile/android/components/search/searchplugins/wikipedia-sv-SE.xml
rename from mobile/locales/searchplugins/wikipedia-ta.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ta.xml
rename from mobile/locales/searchplugins/wikipedia-te.xml
rename to mobile/android/components/search/searchplugins/wikipedia-te.xml
rename from mobile/locales/searchplugins/wikipedia-th.xml
rename to mobile/android/components/search/searchplugins/wikipedia-th.xml
rename from mobile/locales/searchplugins/wikipedia-tr.xml
rename to mobile/android/components/search/searchplugins/wikipedia-tr.xml
rename from mobile/locales/searchplugins/wikipedia-uk.xml
rename to mobile/android/components/search/searchplugins/wikipedia-uk.xml
rename from mobile/locales/searchplugins/wikipedia-ur.xml
rename to mobile/android/components/search/searchplugins/wikipedia-ur.xml
rename from mobile/locales/searchplugins/wikipedia-uz.xml
rename to mobile/android/components/search/searchplugins/wikipedia-uz.xml
rename from mobile/locales/searchplugins/wikipedia-vi.xml
rename to mobile/android/components/search/searchplugins/wikipedia-vi.xml
rename from mobile/locales/searchplugins/wikipedia-wo.xml
rename to mobile/android/components/search/searchplugins/wikipedia-wo.xml
rename from mobile/locales/searchplugins/wikipedia-zh-CN.xml
rename to mobile/android/components/search/searchplugins/wikipedia-zh-CN.xml
rename from mobile/locales/searchplugins/wikipedia-zh-TW.xml
rename to mobile/android/components/search/searchplugins/wikipedia-zh-TW.xml
rename from mobile/locales/searchplugins/wikipedia.xml
rename to mobile/android/components/search/searchplugins/wikipedia.xml
rename from mobile/locales/searchplugins/wiktionary-kn.xml
rename to mobile/android/components/search/searchplugins/wiktionary-kn.xml
rename from mobile/locales/searchplugins/wiktionary-oc.xml
rename to mobile/android/components/search/searchplugins/wiktionary-oc.xml
rename from mobile/locales/searchplugins/wiktionary-or.xml
rename to mobile/android/components/search/searchplugins/wiktionary-or.xml
rename from mobile/locales/searchplugins/wiktionary-ta.xml
rename to mobile/android/components/search/searchplugins/wiktionary-ta.xml
rename from mobile/locales/searchplugins/wiktionary-te.xml
rename to mobile/android/components/search/searchplugins/wiktionary-te.xml
rename from mobile/locales/searchplugins/yahoo-jp.xml
rename to mobile/android/components/search/searchplugins/yahoo-jp.xml
rename from mobile/locales/searchplugins/yandex-en.xml
rename to mobile/android/components/search/searchplugins/yandex-en.xml
rename from mobile/locales/searchplugins/yandex-ru.xml
rename to mobile/android/components/search/searchplugins/yandex-ru.xml
rename from mobile/locales/searchplugins/yandex-tr.xml
rename to mobile/android/components/search/searchplugins/yandex-tr.xml
rename from mobile/locales/searchplugins/yandex.by.xml
rename to mobile/android/components/search/searchplugins/yandex.by.xml
rename from mobile/locales/searchplugins/yandex.xml
rename to mobile/android/components/search/searchplugins/yandex.xml
--- a/mobile/android/installer/allowed-dupes.mn
+++ b/mobile/android/installer/allowed-dupes.mn
@@ -43,8 +43,12 @@ res/table-remove-column-active.gif
 res/table-remove-column-hover.gif
 res/table-remove-column.gif
 res/table-remove-row-active.gif
 res/table-remove-row-hover.gif
 res/table-remove-row.gif
 res/multilocale.txt
 modules/commonjs/index.js
 update.locale
+chrome/chrome/searchplugins/bolcom-fy-NL.xml
+chrome/chrome/searchplugins/bolcom-nl.xml
+chrome/chrome/searchplugins/ddg.xml
+chrome/chrome/searchplugins/duckduckgo.xml
--- a/mobile/locales/Makefile.in
+++ b/mobile/locales/Makefile.in
@@ -1,144 +1,30 @@
 # -*- makefile -*-
 # This Source Code Form is subject to the terms of the Mozilla Public
 # 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/.
 
-#####################################################################################
-# Dependency build overhead:
-#   o always create/update/hard link targets boomkarks.json & searchplugins
-#   o latest symlink will be correct for the current locale / local build.
-#   o logic is essentially FORCE for language packs w/o all the build overhead
-#   o phase 2: replace hard links with a user function able to derive path
-#     based on current locale.
-#####################################################################################
-
 include $(topsrcdir)/config/config.mk
 
 USE_AUTOTARGETS_MK=1
 include $(topsrcdir)/config/makefiles/makeutils.mk
 
-# Separate items of contention
-tgt-gendir = .deps/generated_$(AB_CD)
-
-GENERATED_DIRS += .deps
-
 $(call errorIfEmpty,MOZ_BRANDING_DIRECTORY)
 SUBMAKEFILES += \
         $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/Makefile \
         $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales/Makefile \
         $(NULL)
 
-###########################################################################
-# Default target, preserve existing functionality for:
-#    gmake -C $obj/mobile/locales
-###########################################################################
-search-jar-default: search-jar
-
-
-###########################################################################
-## Searchlist plugin config
-plugin-file-array = \
-  $(srcdir)/search/list.json \
-  $(NULL)
-
-###########################################################################
-plugin_file    = $(firstword $(plugin-file-array))
-plugin-file-ts = $(tgt-gendir)/$(subst $(topsrcdir)/,$(NULL),$(plugin_file)).ts
-
-GARBAGE += $(plugin-file-ts)
-# ---------------------------------------------------------------------------
-# plugin-file-ts track searchlist file used ($path/list.json)
-# and time when the file was last modified.
-###########################################################################
-plugin-file-ts-preqs = \
-  $(call mkdir_deps,$(dir $(plugin-file-ts))) \
-  $(plugin_file) \
-  $(NULL)
-
-###########################################################################
-# Detect locale changes.  Force stale deps when searchlist file
-# or content has changed.
-$(plugin-file-ts): $(plugin-file-ts-preqs)
-	@touch $@
-
-
-###########################################################################
-search-jar-common = tmp-search.jar.mn
-search-jar        = $(tgt-gendir)/$(search-jar-common)
-search-jar-ts     = $(search-jar).ts
-
-GARBAGE += $(search-jar) $(search-jar-ts) $(search-jar-common)
-# ---------------------------------------------------------------------------
-# search-jar contains a list of providers for the search plugin
-###########################################################################
-SEARCH_PLUGINS := $(shell $(call py_action,output_searchplugins_list,$(srcdir)/search/list.json $(AB_CD)))
-$(call errorIfEmpty,SEARCH_PLUGINS)
-
-search-jar-preqs = \
-  $(plugin-file-ts) \
-  $(if $(IS_LANGUAGE_REPACK),FORCE) \
-  $(NULL)
-
-.PHONY: search-jar
-search-jar: $(search-jar)
-$(search-jar): $(search-jar-preqs)
-	@echo '\nGenerating: search-jar'
-	printf '$(AB_CD).jar:' > $@
-	ln -fn $@ .
-	printf '$(foreach plugin,$(SEARCH_PLUGINS),$(subst __PLUGIN_SUBST__,$(plugin), \n locale/$(AB_CD)/browser/searchplugins/__PLUGIN_SUBST__.xml (__PLUGIN_SUBST__.xml)))' >>  $@
-	printf '\n locale/$(AB_CD)/browser/searchplugins/list.json (list.json)' >> $@
-	@echo   >> $@
-
-###################
-search-dir-deps = \
-  $(plugin-file) \
-  $(dir-chrome) \
-  $(NULL)
-
-search-preqs =\
-  $(call mkdir_deps,$(dir $(search-jar-ts))) \
-  $(call mkdir_deps,$(FINAL_TARGET)/chrome) \
-  $(search-jar) \
-  $(search-dir-deps) \
-  $(if $(IS_LANGUAGE_REPACK),FORCE) \
-  $(GLOBAL_DEPS) \
-  $(NULL)
-
-.PHONY: searchplugins
-searchplugins: $(search-preqs)
-	$(call py_action,generate_searchjson,$(srcdir)/search/list.json $(AB_CD) $(tgt-gendir)/list.json)
-	$(call py_action,jar_maker,\
-          $(QUIET) -d $(FINAL_TARGET) \
-          -s $(topsrcdir)/$(relativesrcdir)/searchplugins \
-          -s $(tgt-gendir) \
-          $(MAKE_JARS_FLAGS) $(search-jar))
-	$(TOUCH) $@
-
 include $(topsrcdir)/config/rules.mk
 
-
-#############
-libs-preqs =\
-  $(call mkdir-deps,$(DIST)/install) \
-  $(NULL)
-
 libs-%: AB_CD=$*
-libs-%: $(libs-preqs)
-	$(display-deps)
+libs-%:
+	$(NSINSTALL) -D $(DIST)/install
 	@$(MAKE) -C $(DEPTH)/toolkit/locales libs-$*
-	@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
 	@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref
 	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$*
 
 # Tailored target to just add the chrome processing for multi-locale builds
 chrome-%: AB_CD=$*
 chrome-%:
-	$(display-deps)
-	@$(MAKE) -B searchplugins AB_CD=$*
 	@$(MAKE) chrome AB_CD=$*
 	@$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales chrome AB_CD=$*
-
-NO_JA_JP_MAC_AB_CD := $(if $(filter ja-JP-mac, $(AB_CD)),ja,$(AB_CD))
-
-
-export:: searchplugins
--- a/toolkit/components/search/nsSearchService.js
+++ b/toolkit/components/search/nsSearchService.js
@@ -57,17 +57,17 @@ const NS_APP_DISTRIBUTION_SEARCH_DIR_LIS
 const NS_APP_USER_PROFILE_50_DIR = "ProfD";
 
 // We load plugins from APP_SEARCH_PREFIX, where a list.json
 // 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";
@@ -3004,19 +3004,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");
       }
     })();
   },
@@ -3401,24 +3401,41 @@ SearchService.prototype = {
       request.send();
     });
 
     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) {
@@ -3460,48 +3477,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;
     }
   },
 
   _saveSortedEngineList: function SRCH_SVC_saveSortedEngineList() {
     LOG("SRCH_SVC_saveSortedEngineList: starting");
 
     // Set the useDB pref to indicate that from now on we should use the order
     // information stored in the database.
@@ -4416,19 +4451,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");
@@ -4473,20 +4509,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
@@ -4518,20 +4551,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: ChromeUtils.generateQI([
     Ci.nsIBrowserSearchService,
     Ci.nsIObserver,
     Ci.nsITimerCallback
   ])
 };
--- 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"
+        ]
+      }
+    }
   }
 }
--- a/toolkit/components/search/tests/xpcshell/head_search.js
+++ b/toolkit/components/search/tests/xpcshell/head_search.js
@@ -227,17 +227,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());
@@ -458,17 +458,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,
new file mode 100644
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/test_list_json_locale.js
@@ -0,0 +1,60 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/* Check default search engine is picked from list.json searchDefault */
+
+"use strict";
+
+function run_test() {
+  Assert.ok(!Services.search.isInitialized, "search isn't initialized yet");
+
+  run_next_test();
+}
+
+// Override list.json with test data from data/list.json
+// and check that different locale is working
+add_task(async function test_listJSONlocale() {
+  let url = "resource://test/data/";
+  let resProt = Services.io.getProtocolHandler("resource")
+                        .QueryInterface(Ci.nsIResProtocolHandler);
+  resProt.setSubstitution("search-plugins", Services.io.newURI(url));
+
+  Services.locale.setAvailableLocales(["de"]);
+  Services.locale.setRequestedLocales(["de"]);
+
+  await asyncInit();
+
+  Assert.ok(Services.search.isInitialized, "search initialized");
+
+  let sortedEngines = Services.search.getEngines();
+  Assert.equal(sortedEngines.length, 1, "Should have only one engine");
+});
+
+
+// Check that switching locale switches search engines
+add_task(async function test_listJSONlocaleSwitch() {
+  let promise = waitForSearchNotification("reinit-complete");
+
+  Services.locale.setAvailableLocales(["fr"]);
+  Services.locale.setRequestedLocales(["fr"]);
+
+  await promise;
+
+  Assert.ok(Services.search.isInitialized, "search initialized");
+
+  let sortedEngines = Services.search.getEngines();
+  Assert.equal(sortedEngines.length, 2, "Should have two engines");
+});
+
+// Check that region overrides apply
+add_task(async function test_listJSONRegionOverride() {
+  Services.prefs.setCharPref("browser.search.region", "RU");
+
+  await asyncReInit();
+
+  Assert.ok(Services.search.isInitialized, "search initialized");
+
+  let sortedEngines = Services.search.getEngines();
+  Assert.equal(sortedEngines.length, 2, "Should have two engines");
+  Assert.equal(sortedEngines[0].identifier, "engine-chromeicon", "Engine should have been overridden by engine-chromeicon");
+});
--- a/toolkit/components/search/tests/xpcshell/xpcshell.ini
+++ b/toolkit/components/search/tests/xpcshell/xpcshell.ini
@@ -35,16 +35,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_partner.js]
 [test_location_funnelcake.js]
 [test_location_sync.js]
--- a/toolkit/mozapps/installer/l10n-repack.py
+++ b/toolkit/mozapps/installer/l10n-repack.py
@@ -10,25 +10,23 @@ 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',
     'defaults/profile',
     'defaults/pref*/*-l10n.js',
     'update.locale',
     'updater.ini',
     'extensions/langpack-*@*',
     'distribution/extensions/langpack-*@*',
-    'chrome/**/searchplugins/*.xml',
     '**/multilocale.txt'
 ])
 
 
 def valid_extra_l10n(arg):
     if '=' not in arg:
         raise ValueError('Invalid value')
     return tuple(arg.split('=', 1))