mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 13:55:43 +00:00
0926b7133c
MozReview-Commit-ID: GFCIbfmCc5B --HG-- rename : browser/locales/searchplugins/allaannonser-sv-SE.xml => browser/components/search/searchplugins/allaannonser-sv-SE.xml rename : browser/locales/searchplugins/allegro-pl.xml => browser/components/search/searchplugins/allegro-pl.xml rename : browser/locales/searchplugins/amazon-au.xml => browser/components/search/searchplugins/amazon-au.xml rename : browser/locales/searchplugins/amazon-br.xml => browser/components/search/searchplugins/amazon-br.xml rename : browser/locales/searchplugins/amazon-ca.xml => browser/components/search/searchplugins/amazon-ca.xml rename : browser/locales/searchplugins/amazon-en-GB.xml => browser/components/search/searchplugins/amazon-en-GB.xml rename : browser/locales/searchplugins/amazon-france.xml => browser/components/search/searchplugins/amazon-france.xml rename : browser/locales/searchplugins/amazon-in.xml => browser/components/search/searchplugins/amazon-in.xml rename : browser/locales/searchplugins/amazon-it.xml => browser/components/search/searchplugins/amazon-it.xml rename : browser/locales/searchplugins/amazon-jp.xml => browser/components/search/searchplugins/amazon-jp.xml rename : browser/locales/searchplugins/amazon-mx.xml => browser/components/search/searchplugins/amazon-mx.xml rename : browser/locales/searchplugins/amazon-nl.xml => browser/components/search/searchplugins/amazon-nl.xml rename : browser/locales/searchplugins/amazondotcn.xml => browser/components/search/searchplugins/amazondotcn.xml rename : browser/locales/searchplugins/amazondotcom-de.xml => browser/components/search/searchplugins/amazondotcom-de.xml rename : browser/locales/searchplugins/amazondotcom.xml => browser/components/search/searchplugins/amazondotcom.xml rename : browser/locales/searchplugins/atlas-sk.xml => browser/components/search/searchplugins/atlas-sk.xml rename : browser/locales/searchplugins/azerdict.xml => browser/components/search/searchplugins/azerdict.xml rename : browser/locales/searchplugins/azet-sk.xml => browser/components/search/searchplugins/azet-sk.xml rename : browser/locales/searchplugins/baidu.xml => browser/components/search/searchplugins/baidu.xml rename : browser/locales/searchplugins/bbc-alba.xml => browser/components/search/searchplugins/bbc-alba.xml rename : browser/locales/searchplugins/bing.xml => browser/components/search/searchplugins/bing.xml rename : browser/locales/searchplugins/bok-NO.xml => browser/components/search/searchplugins/bok-NO.xml rename : browser/locales/searchplugins/bolcom-fy-NL.xml => browser/components/search/searchplugins/bolcom-fy-NL.xml rename : browser/locales/searchplugins/bolcom-nl.xml => browser/components/search/searchplugins/bolcom-nl.xml rename : browser/locales/searchplugins/bookplus-fi.xml => browser/components/search/searchplugins/bookplus-fi.xml rename : browser/locales/searchplugins/buscape.xml => browser/components/search/searchplugins/buscape.xml rename : browser/locales/searchplugins/ceneji.xml => browser/components/search/searchplugins/ceneji.xml rename : browser/locales/searchplugins/chambers-en-GB.xml => browser/components/search/searchplugins/chambers-en-GB.xml rename : browser/locales/searchplugins/cnrtl-tlfi-fr.xml => browser/components/search/searchplugins/cnrtl-tlfi-fr.xml rename : browser/locales/searchplugins/coccoc.xml => browser/components/search/searchplugins/coccoc.xml rename : browser/locales/searchplugins/danawa-kr.xml => browser/components/search/searchplugins/danawa-kr.xml rename : browser/locales/searchplugins/daum-kr.xml => browser/components/search/searchplugins/daum-kr.xml rename : browser/locales/searchplugins/ddg.xml => browser/components/search/searchplugins/ddg.xml rename : browser/locales/searchplugins/diccionariu-alla.xml => browser/components/search/searchplugins/diccionariu-alla.xml rename : browser/locales/searchplugins/dict-enlv.xml => browser/components/search/searchplugins/dict-enlv.xml rename : browser/locales/searchplugins/diec2.xml => browser/components/search/searchplugins/diec2.xml rename : browser/locales/searchplugins/drae.xml => browser/components/search/searchplugins/drae.xml rename : browser/locales/searchplugins/ebay-at.xml => browser/components/search/searchplugins/ebay-at.xml rename : browser/locales/searchplugins/ebay-au.xml => browser/components/search/searchplugins/ebay-au.xml rename : browser/locales/searchplugins/ebay-be.xml => browser/components/search/searchplugins/ebay-be.xml rename : browser/locales/searchplugins/ebay-ca.xml => browser/components/search/searchplugins/ebay-ca.xml rename : browser/locales/searchplugins/ebay-ch.xml => browser/components/search/searchplugins/ebay-ch.xml rename : browser/locales/searchplugins/ebay-de.xml => browser/components/search/searchplugins/ebay-de.xml rename : browser/locales/searchplugins/ebay-es.xml => browser/components/search/searchplugins/ebay-es.xml rename : browser/locales/searchplugins/ebay-fr.xml => browser/components/search/searchplugins/ebay-fr.xml rename : browser/locales/searchplugins/ebay-ie.xml => browser/components/search/searchplugins/ebay-ie.xml rename : browser/locales/searchplugins/ebay-it.xml => browser/components/search/searchplugins/ebay-it.xml rename : browser/locales/searchplugins/ebay-nl.xml => browser/components/search/searchplugins/ebay-nl.xml rename : browser/locales/searchplugins/ebay-uk.xml => browser/components/search/searchplugins/ebay-uk.xml rename : browser/locales/searchplugins/ebay.xml => browser/components/search/searchplugins/ebay.xml rename : browser/locales/searchplugins/ecosia.xml => browser/components/search/searchplugins/ecosia.xml rename : browser/locales/searchplugins/eki-ee.xml => browser/components/search/searchplugins/eki-ee.xml rename : browser/locales/searchplugins/elebila.xml => browser/components/search/searchplugins/elebila.xml rename : browser/locales/searchplugins/eudict.xml => browser/components/search/searchplugins/eudict.xml rename : browser/locales/searchplugins/faclair-beag.xml => browser/components/search/searchplugins/faclair-beag.xml rename : browser/locales/searchplugins/flip.xml => browser/components/search/searchplugins/flip.xml rename : browser/locales/searchplugins/freelang.xml => browser/components/search/searchplugins/freelang.xml rename : browser/locales/searchplugins/google-2018.xml => browser/components/search/searchplugins/google-2018.xml rename : browser/locales/searchplugins/google.xml => browser/components/search/searchplugins/google.xml rename : browser/locales/searchplugins/gujaratilexicon.xml => browser/components/search/searchplugins/gujaratilexicon.xml rename : browser/locales/searchplugins/gulesider-NO.xml => browser/components/search/searchplugins/gulesider-NO.xml rename : browser/locales/searchplugins/heureka-cz.xml => browser/components/search/searchplugins/heureka-cz.xml rename : browser/locales/searchplugins/hoepli.xml => browser/components/search/searchplugins/hoepli.xml rename : browser/locales/searchplugins/hotline-ua.xml => browser/components/search/searchplugins/hotline-ua.xml rename : browser/locales/searchplugins/images/amazon.ico => browser/components/search/searchplugins/images/amazon.ico rename : browser/locales/searchplugins/images/ebay.ico => browser/components/search/searchplugins/images/ebay.ico rename : browser/locales/searchplugins/images/wikipedia.ico => browser/components/search/searchplugins/images/wikipedia.ico rename : browser/locales/searchplugins/images/yandex-en.ico => browser/components/search/searchplugins/images/yandex-en.ico rename : browser/locales/searchplugins/images/yandex-ru.ico => browser/components/search/searchplugins/images/yandex-ru.ico rename : browser/locales/searchplugins/kannadastore.xml => browser/components/search/searchplugins/kannadastore.xml rename : browser/locales/searchplugins/kaz-kk.xml => browser/components/search/searchplugins/kaz-kk.xml rename : browser/locales/searchplugins/klask.xml => browser/components/search/searchplugins/klask.xml rename : browser/locales/searchplugins/leit-is.xml => browser/components/search/searchplugins/leit-is.xml rename : browser/locales/searchplugins/leo_ende_de-rm.xml => browser/components/search/searchplugins/leo_ende_de-rm.xml rename : browser/locales/searchplugins/leo_ende_de.xml => browser/components/search/searchplugins/leo_ende_de.xml rename : browser/locales/searchplugins/list-am.xml => browser/components/search/searchplugins/list-am.xml rename : browser/locales/search/list.json => browser/components/search/searchplugins/list.json rename : browser/locales/searchplugins/longdo.xml => browser/components/search/searchplugins/longdo.xml rename : browser/locales/searchplugins/mailru.xml => browser/components/search/searchplugins/mailru.xml rename : browser/locales/searchplugins/mapy-cz.xml => browser/components/search/searchplugins/mapy-cz.xml rename : browser/locales/searchplugins/marktplaats-fy-NL.xml => browser/components/search/searchplugins/marktplaats-fy-NL.xml rename : browser/locales/searchplugins/marktplaats-nl.xml => browser/components/search/searchplugins/marktplaats-nl.xml rename : browser/locales/searchplugins/mercadolibre-ar.xml => browser/components/search/searchplugins/mercadolibre-ar.xml rename : browser/locales/searchplugins/mercadolibre-cl.xml => browser/components/search/searchplugins/mercadolibre-cl.xml rename : browser/locales/searchplugins/mercadolibre-mx.xml => browser/components/search/searchplugins/mercadolibre-mx.xml rename : browser/locales/searchplugins/mercadolivre.xml => browser/components/search/searchplugins/mercadolivre.xml rename : browser/locales/searchplugins/meta-ua.xml => browser/components/search/searchplugins/meta-ua.xml rename : browser/locales/searchplugins/morfix-dic.xml => browser/components/search/searchplugins/morfix-dic.xml rename : browser/locales/searchplugins/najdi-si.xml => browser/components/search/searchplugins/najdi-si.xml rename : browser/locales/searchplugins/naver-kr.xml => browser/components/search/searchplugins/naver-kr.xml rename : browser/locales/searchplugins/neti-ee.xml => browser/components/search/searchplugins/neti-ee.xml rename : browser/locales/searchplugins/odpiralni.xml => browser/components/search/searchplugins/odpiralni.xml rename : browser/locales/searchplugins/olx.xml => browser/components/search/searchplugins/olx.xml rename : browser/locales/searchplugins/oshiete-goo.xml => browser/components/search/searchplugins/oshiete-goo.xml rename : browser/locales/searchplugins/osta-ee.xml => browser/components/search/searchplugins/osta-ee.xml rename : browser/locales/searchplugins/ozonru.xml => browser/components/search/searchplugins/ozonru.xml rename : browser/locales/searchplugins/palasprint.xml => browser/components/search/searchplugins/palasprint.xml rename : browser/locales/searchplugins/paroledigenova-lij.xml => browser/components/search/searchplugins/paroledigenova-lij.xml rename : browser/locales/searchplugins/pazaruvaj.xml => browser/components/search/searchplugins/pazaruvaj.xml rename : browser/locales/searchplugins/pledarigrond.xml => browser/components/search/searchplugins/pledarigrond.xml rename : browser/locales/searchplugins/pogodak.xml => browser/components/search/searchplugins/pogodak.xml rename : browser/locales/searchplugins/portalbgdict.xml => browser/components/search/searchplugins/portalbgdict.xml rename : browser/locales/searchplugins/priberam.xml => browser/components/search/searchplugins/priberam.xml rename : browser/locales/searchplugins/priceru.xml => browser/components/search/searchplugins/priceru.xml rename : browser/locales/searchplugins/prisjakt-sv-SE.xml => browser/components/search/searchplugins/prisjakt-sv-SE.xml rename : browser/locales/searchplugins/pwn-pl.xml => browser/components/search/searchplugins/pwn-pl.xml rename : browser/locales/searchplugins/qwant.xml => browser/components/search/searchplugins/qwant.xml rename : browser/locales/searchplugins/qxl-NO.xml => browser/components/search/searchplugins/qxl-NO.xml rename : browser/locales/searchplugins/rakuten.xml => browser/components/search/searchplugins/rakuten.xml rename : browser/locales/searchplugins/readmoo.xml => browser/components/search/searchplugins/readmoo.xml rename : browser/locales/searchplugins/rediff.xml => browser/components/search/searchplugins/rediff.xml rename : browser/locales/searchplugins/reta-vortaro.xml => browser/components/search/searchplugins/reta-vortaro.xml rename : browser/locales/searchplugins/salidzinilv.xml => browser/components/search/searchplugins/salidzinilv.xml rename : browser/locales/searchplugins/sapo.xml => browser/components/search/searchplugins/sapo.xml rename : browser/locales/searchplugins/seznam-cz.xml => browser/components/search/searchplugins/seznam-cz.xml rename : browser/locales/searchplugins/slovnik-sk.xml => browser/components/search/searchplugins/slovnik-sk.xml rename : browser/locales/searchplugins/sslv.xml => browser/components/search/searchplugins/sslv.xml rename : browser/locales/searchplugins/sztaki-en-hu.xml => browser/components/search/searchplugins/sztaki-en-hu.xml rename : browser/locales/searchplugins/tearma.xml => browser/components/search/searchplugins/tearma.xml rename : browser/locales/searchplugins/termau.xml => browser/components/search/searchplugins/termau.xml rename : browser/locales/searchplugins/twitter-ja.xml => browser/components/search/searchplugins/twitter-ja.xml rename : browser/locales/searchplugins/twitter.xml => browser/components/search/searchplugins/twitter.xml rename : browser/locales/searchplugins/tyda-sv-SE.xml => browser/components/search/searchplugins/tyda-sv-SE.xml rename : browser/locales/searchplugins/vatera.xml => browser/components/search/searchplugins/vatera.xml rename : browser/locales/searchplugins/webdunia.xml => browser/components/search/searchplugins/webdunia.xml rename : browser/locales/searchplugins/wikipedia-NN.xml => browser/components/search/searchplugins/wikipedia-NN.xml rename : browser/locales/searchplugins/wikipedia-NO.xml => browser/components/search/searchplugins/wikipedia-NO.xml rename : browser/locales/searchplugins/wikipedia-af.xml => browser/components/search/searchplugins/wikipedia-af.xml rename : browser/locales/searchplugins/wikipedia-an.xml => browser/components/search/searchplugins/wikipedia-an.xml rename : browser/locales/searchplugins/wikipedia-ar.xml => browser/components/search/searchplugins/wikipedia-ar.xml rename : browser/locales/searchplugins/wikipedia-as.xml => browser/components/search/searchplugins/wikipedia-as.xml rename : browser/locales/searchplugins/wikipedia-ast.xml => browser/components/search/searchplugins/wikipedia-ast.xml rename : browser/locales/searchplugins/wikipedia-az.xml => browser/components/search/searchplugins/wikipedia-az.xml rename : browser/locales/searchplugins/wikipedia-be-tarask.xml => browser/components/search/searchplugins/wikipedia-be-tarask.xml rename : browser/locales/searchplugins/wikipedia-be.xml => browser/components/search/searchplugins/wikipedia-be.xml rename : browser/locales/searchplugins/wikipedia-bg.xml => browser/components/search/searchplugins/wikipedia-bg.xml rename : browser/locales/searchplugins/wikipedia-bn.xml => browser/components/search/searchplugins/wikipedia-bn.xml rename : browser/locales/searchplugins/wikipedia-br.xml => browser/components/search/searchplugins/wikipedia-br.xml rename : browser/locales/searchplugins/wikipedia-bs.xml => browser/components/search/searchplugins/wikipedia-bs.xml rename : browser/locales/searchplugins/wikipedia-ca.xml => browser/components/search/searchplugins/wikipedia-ca.xml rename : browser/locales/searchplugins/wikipedia-crh.xml => browser/components/search/searchplugins/wikipedia-crh.xml rename : browser/locales/searchplugins/wikipedia-cy.xml => browser/components/search/searchplugins/wikipedia-cy.xml rename : browser/locales/searchplugins/wikipedia-cz.xml => browser/components/search/searchplugins/wikipedia-cz.xml rename : browser/locales/searchplugins/wikipedia-da.xml => browser/components/search/searchplugins/wikipedia-da.xml rename : browser/locales/searchplugins/wikipedia-de.xml => browser/components/search/searchplugins/wikipedia-de.xml rename : browser/locales/searchplugins/wikipedia-dsb.xml => browser/components/search/searchplugins/wikipedia-dsb.xml rename : browser/locales/searchplugins/wikipedia-el.xml => browser/components/search/searchplugins/wikipedia-el.xml rename : browser/locales/searchplugins/wikipedia-eo.xml => browser/components/search/searchplugins/wikipedia-eo.xml rename : browser/locales/searchplugins/wikipedia-es.xml => browser/components/search/searchplugins/wikipedia-es.xml rename : browser/locales/searchplugins/wikipedia-et.xml => browser/components/search/searchplugins/wikipedia-et.xml rename : browser/locales/searchplugins/wikipedia-eu.xml => browser/components/search/searchplugins/wikipedia-eu.xml rename : browser/locales/searchplugins/wikipedia-fa.xml => browser/components/search/searchplugins/wikipedia-fa.xml rename : browser/locales/searchplugins/wikipedia-fi.xml => browser/components/search/searchplugins/wikipedia-fi.xml rename : browser/locales/searchplugins/wikipedia-fr.xml => browser/components/search/searchplugins/wikipedia-fr.xml rename : browser/locales/searchplugins/wikipedia-fy-NL.xml => browser/components/search/searchplugins/wikipedia-fy-NL.xml rename : browser/locales/searchplugins/wikipedia-ga-IE.xml => browser/components/search/searchplugins/wikipedia-ga-IE.xml rename : browser/locales/searchplugins/wikipedia-gd.xml => browser/components/search/searchplugins/wikipedia-gd.xml rename : browser/locales/searchplugins/wikipedia-gl.xml => browser/components/search/searchplugins/wikipedia-gl.xml rename : browser/locales/searchplugins/wikipedia-gn.xml => browser/components/search/searchplugins/wikipedia-gn.xml rename : browser/locales/searchplugins/wikipedia-gu.xml => browser/components/search/searchplugins/wikipedia-gu.xml rename : browser/locales/searchplugins/wikipedia-he.xml => browser/components/search/searchplugins/wikipedia-he.xml rename : browser/locales/searchplugins/wikipedia-hi.xml => browser/components/search/searchplugins/wikipedia-hi.xml rename : browser/locales/searchplugins/wikipedia-hr.xml => browser/components/search/searchplugins/wikipedia-hr.xml rename : browser/locales/searchplugins/wikipedia-hsb.xml => browser/components/search/searchplugins/wikipedia-hsb.xml rename : browser/locales/searchplugins/wikipedia-hu.xml => browser/components/search/searchplugins/wikipedia-hu.xml rename : browser/locales/searchplugins/wikipedia-hy.xml => browser/components/search/searchplugins/wikipedia-hy.xml rename : browser/locales/searchplugins/wikipedia-ia.xml => browser/components/search/searchplugins/wikipedia-ia.xml rename : browser/locales/searchplugins/wikipedia-id.xml => browser/components/search/searchplugins/wikipedia-id.xml rename : browser/locales/searchplugins/wikipedia-is.xml => browser/components/search/searchplugins/wikipedia-is.xml rename : browser/locales/searchplugins/wikipedia-it.xml => browser/components/search/searchplugins/wikipedia-it.xml rename : browser/locales/searchplugins/wikipedia-ja.xml => browser/components/search/searchplugins/wikipedia-ja.xml rename : browser/locales/searchplugins/wikipedia-ka.xml => browser/components/search/searchplugins/wikipedia-ka.xml rename : browser/locales/searchplugins/wikipedia-kab.xml => browser/components/search/searchplugins/wikipedia-kab.xml rename : browser/locales/searchplugins/wikipedia-kk.xml => browser/components/search/searchplugins/wikipedia-kk.xml rename : browser/locales/searchplugins/wikipedia-km.xml => browser/components/search/searchplugins/wikipedia-km.xml rename : browser/locales/searchplugins/wikipedia-kn.xml => browser/components/search/searchplugins/wikipedia-kn.xml rename : browser/locales/searchplugins/wikipedia-kr.xml => browser/components/search/searchplugins/wikipedia-kr.xml rename : browser/locales/searchplugins/wikipedia-lij.xml => browser/components/search/searchplugins/wikipedia-lij.xml rename : browser/locales/searchplugins/wikipedia-lo.xml => browser/components/search/searchplugins/wikipedia-lo.xml rename : browser/locales/searchplugins/wikipedia-lt.xml => browser/components/search/searchplugins/wikipedia-lt.xml rename : browser/locales/searchplugins/wikipedia-ltg.xml => browser/components/search/searchplugins/wikipedia-ltg.xml rename : browser/locales/searchplugins/wikipedia-lv.xml => browser/components/search/searchplugins/wikipedia-lv.xml rename : browser/locales/searchplugins/wikipedia-mk.xml => browser/components/search/searchplugins/wikipedia-mk.xml rename : browser/locales/searchplugins/wikipedia-ml.xml => browser/components/search/searchplugins/wikipedia-ml.xml rename : browser/locales/searchplugins/wikipedia-mr.xml => browser/components/search/searchplugins/wikipedia-mr.xml rename : browser/locales/searchplugins/wikipedia-ms.xml => browser/components/search/searchplugins/wikipedia-ms.xml rename : browser/locales/searchplugins/wikipedia-my.xml => browser/components/search/searchplugins/wikipedia-my.xml rename : browser/locales/searchplugins/wikipedia-ne.xml => browser/components/search/searchplugins/wikipedia-ne.xml rename : browser/locales/searchplugins/wikipedia-nl.xml => browser/components/search/searchplugins/wikipedia-nl.xml rename : browser/locales/searchplugins/wikipedia-oc.xml => browser/components/search/searchplugins/wikipedia-oc.xml rename : browser/locales/searchplugins/wikipedia-or.xml => browser/components/search/searchplugins/wikipedia-or.xml rename : browser/locales/searchplugins/wikipedia-pa.xml => browser/components/search/searchplugins/wikipedia-pa.xml rename : browser/locales/searchplugins/wikipedia-pl.xml => browser/components/search/searchplugins/wikipedia-pl.xml rename : browser/locales/searchplugins/wikipedia-pt.xml => browser/components/search/searchplugins/wikipedia-pt.xml rename : browser/locales/searchplugins/wikipedia-rm.xml => browser/components/search/searchplugins/wikipedia-rm.xml rename : browser/locales/searchplugins/wikipedia-ro.xml => browser/components/search/searchplugins/wikipedia-ro.xml rename : browser/locales/searchplugins/wikipedia-ru.xml => browser/components/search/searchplugins/wikipedia-ru.xml rename : browser/locales/searchplugins/wikipedia-si.xml => browser/components/search/searchplugins/wikipedia-si.xml rename : browser/locales/searchplugins/wikipedia-sk.xml => browser/components/search/searchplugins/wikipedia-sk.xml rename : browser/locales/searchplugins/wikipedia-sl.xml => browser/components/search/searchplugins/wikipedia-sl.xml rename : browser/locales/searchplugins/wikipedia-sq.xml => browser/components/search/searchplugins/wikipedia-sq.xml rename : browser/locales/searchplugins/wikipedia-sr.xml => browser/components/search/searchplugins/wikipedia-sr.xml rename : browser/locales/searchplugins/wikipedia-sv-SE.xml => browser/components/search/searchplugins/wikipedia-sv-SE.xml rename : browser/locales/searchplugins/wikipedia-ta.xml => browser/components/search/searchplugins/wikipedia-ta.xml rename : browser/locales/searchplugins/wikipedia-te.xml => browser/components/search/searchplugins/wikipedia-te.xml rename : browser/locales/searchplugins/wikipedia-th.xml => browser/components/search/searchplugins/wikipedia-th.xml rename : browser/locales/searchplugins/wikipedia-tl.xml => browser/components/search/searchplugins/wikipedia-tl.xml rename : browser/locales/searchplugins/wikipedia-tr.xml => browser/components/search/searchplugins/wikipedia-tr.xml rename : browser/locales/searchplugins/wikipedia-uk.xml => browser/components/search/searchplugins/wikipedia-uk.xml rename : browser/locales/searchplugins/wikipedia-ur.xml => browser/components/search/searchplugins/wikipedia-ur.xml rename : browser/locales/searchplugins/wikipedia-uz.xml => browser/components/search/searchplugins/wikipedia-uz.xml rename : browser/locales/searchplugins/wikipedia-vi.xml => browser/components/search/searchplugins/wikipedia-vi.xml rename : browser/locales/searchplugins/wikipedia-wo.xml => browser/components/search/searchplugins/wikipedia-wo.xml rename : browser/locales/searchplugins/wikipedia-zh-CN.xml => browser/components/search/searchplugins/wikipedia-zh-CN.xml rename : browser/locales/searchplugins/wikipedia-zh-TW.xml => browser/components/search/searchplugins/wikipedia-zh-TW.xml rename : browser/locales/searchplugins/wikipedia.xml => browser/components/search/searchplugins/wikipedia.xml rename : browser/locales/searchplugins/wiktionary-oc.xml => browser/components/search/searchplugins/wiktionary-oc.xml rename : browser/locales/searchplugins/wiktionary-te.xml => browser/components/search/searchplugins/wiktionary-te.xml rename : browser/locales/searchplugins/wolnelektury-pl.xml => browser/components/search/searchplugins/wolnelektury-pl.xml rename : browser/locales/searchplugins/yahoo-jp-auctions.xml => browser/components/search/searchplugins/yahoo-jp-auctions.xml rename : browser/locales/searchplugins/yahoo-jp.xml => browser/components/search/searchplugins/yahoo-jp.xml rename : browser/locales/searchplugins/yandex-az.xml => browser/components/search/searchplugins/yandex-az.xml rename : browser/locales/searchplugins/yandex-by.xml => browser/components/search/searchplugins/yandex-by.xml rename : browser/locales/searchplugins/yandex-en.xml => browser/components/search/searchplugins/yandex-en.xml rename : browser/locales/searchplugins/yandex-kk.xml => browser/components/search/searchplugins/yandex-kk.xml rename : browser/locales/searchplugins/yandex-ru.xml => browser/components/search/searchplugins/yandex-ru.xml rename : browser/locales/searchplugins/yandex-tr.xml => browser/components/search/searchplugins/yandex-tr.xml rename : browser/locales/searchplugins/zoznam-sk.xml => browser/components/search/searchplugins/zoznam-sk.xml rename : mobile/locales/searchplugins/amazon-au.xml => mobile/android/components/search/searchplugins/amazon-au.xml rename : mobile/locales/searchplugins/amazon-br.xml => mobile/android/components/search/searchplugins/amazon-br.xml rename : mobile/locales/searchplugins/amazon-ca.xml => mobile/android/components/search/searchplugins/amazon-ca.xml rename : mobile/locales/searchplugins/amazon-co-uk.xml => mobile/android/components/search/searchplugins/amazon-co-uk.xml rename : mobile/locales/searchplugins/amazon-de.xml => mobile/android/components/search/searchplugins/amazon-de.xml rename : mobile/locales/searchplugins/amazon-fr.xml => mobile/android/components/search/searchplugins/amazon-fr.xml rename : mobile/locales/searchplugins/amazon-in.xml => mobile/android/components/search/searchplugins/amazon-in.xml rename : mobile/locales/searchplugins/amazon-it.xml => mobile/android/components/search/searchplugins/amazon-it.xml rename : mobile/locales/searchplugins/amazon-jp.xml => mobile/android/components/search/searchplugins/amazon-jp.xml rename : mobile/locales/searchplugins/amazon-mx.xml => mobile/android/components/search/searchplugins/amazon-mx.xml rename : mobile/locales/searchplugins/amazon-nl.xml => mobile/android/components/search/searchplugins/amazon-nl.xml rename : mobile/locales/searchplugins/amazondotcom.xml => mobile/android/components/search/searchplugins/amazondotcom.xml rename : mobile/locales/searchplugins/azerdict.xml => mobile/android/components/search/searchplugins/azerdict.xml rename : mobile/locales/searchplugins/azet-sk.xml => mobile/android/components/search/searchplugins/azet-sk.xml rename : mobile/locales/searchplugins/baidu.xml => mobile/android/components/search/searchplugins/baidu.xml rename : mobile/locales/searchplugins/bing.xml => mobile/android/components/search/searchplugins/bing.xml rename : mobile/locales/searchplugins/bolcom-fy-NL.xml => mobile/android/components/search/searchplugins/bolcom-fy-NL.xml rename : mobile/locales/searchplugins/bolcom-nl.xml => mobile/android/components/search/searchplugins/bolcom-nl.xml rename : mobile/locales/searchplugins/ceneje.xml => mobile/android/components/search/searchplugins/ceneje.xml rename : mobile/locales/searchplugins/coccoc.xml => mobile/android/components/search/searchplugins/coccoc.xml rename : mobile/locales/searchplugins/danawa-kr.xml => mobile/android/components/search/searchplugins/danawa-kr.xml rename : mobile/locales/searchplugins/daum-kr.xml => mobile/android/components/search/searchplugins/daum-kr.xml rename : mobile/locales/searchplugins/ddg.xml => mobile/android/components/search/searchplugins/ddg.xml rename : mobile/locales/searchplugins/diec2.xml => mobile/android/components/search/searchplugins/diec2.xml rename : mobile/locales/searchplugins/drae.xml => mobile/android/components/search/searchplugins/drae.xml rename : mobile/locales/searchplugins/duckduckgo.xml => mobile/android/components/search/searchplugins/duckduckgo.xml rename : mobile/locales/searchplugins/elebila.xml => mobile/android/components/search/searchplugins/elebila.xml rename : mobile/locales/searchplugins/faclair-beag.xml => mobile/android/components/search/searchplugins/faclair-beag.xml rename : mobile/locales/searchplugins/google-2018.xml => mobile/android/components/search/searchplugins/google-2018.xml rename : mobile/locales/searchplugins/google.xml => mobile/android/components/search/searchplugins/google.xml rename : mobile/locales/searchplugins/gulesider-mobile-NO.xml => mobile/android/components/search/searchplugins/gulesider-mobile-NO.xml rename : mobile/locales/searchplugins/heureka-cz.xml => mobile/android/components/search/searchplugins/heureka-cz.xml rename : mobile/locales/searchplugins/hotline-ua.xml => mobile/android/components/search/searchplugins/hotline-ua.xml rename : mobile/locales/searchplugins/leit-is.xml => mobile/android/components/search/searchplugins/leit-is.xml rename : mobile/locales/searchplugins/leo_ende_de.xml => mobile/android/components/search/searchplugins/leo_ende_de.xml rename : mobile/locales/searchplugins/list-am.xml => mobile/android/components/search/searchplugins/list-am.xml rename : mobile/locales/search/list.json => mobile/android/components/search/searchplugins/list.json rename : mobile/locales/searchplugins/mapy-cz.xml => mobile/android/components/search/searchplugins/mapy-cz.xml rename : mobile/locales/searchplugins/mercadolibre-ar.xml => mobile/android/components/search/searchplugins/mercadolibre-ar.xml rename : mobile/locales/searchplugins/mercadolibre-cl.xml => mobile/android/components/search/searchplugins/mercadolibre-cl.xml rename : mobile/locales/searchplugins/mercadolibre-mx.xml => mobile/android/components/search/searchplugins/mercadolibre-mx.xml rename : mobile/locales/searchplugins/naver-kr.xml => mobile/android/components/search/searchplugins/naver-kr.xml rename : mobile/locales/searchplugins/odpiralni.xml => mobile/android/components/search/searchplugins/odpiralni.xml rename : mobile/locales/searchplugins/pazaruvaj.xml => mobile/android/components/search/searchplugins/pazaruvaj.xml rename : mobile/locales/searchplugins/pledarigrond.xml => mobile/android/components/search/searchplugins/pledarigrond.xml rename : mobile/locales/searchplugins/prisjakt-sv-SE.xml => mobile/android/components/search/searchplugins/prisjakt-sv-SE.xml rename : mobile/locales/searchplugins/qwant.xml => mobile/android/components/search/searchplugins/qwant.xml rename : mobile/locales/searchplugins/rediff.xml => mobile/android/components/search/searchplugins/rediff.xml rename : mobile/locales/searchplugins/reta-vortaro.xml => mobile/android/components/search/searchplugins/reta-vortaro.xml rename : mobile/locales/searchplugins/salidzinilv.xml => mobile/android/components/search/searchplugins/salidzinilv.xml rename : mobile/locales/searchplugins/seznam-cz.xml => mobile/android/components/search/searchplugins/seznam-cz.xml rename : mobile/locales/searchplugins/skroutz.xml => mobile/android/components/search/searchplugins/skroutz.xml rename : mobile/locales/searchplugins/slovnik-sk.xml => mobile/android/components/search/searchplugins/slovnik-sk.xml rename : mobile/locales/searchplugins/sslv.xml => mobile/android/components/search/searchplugins/sslv.xml rename : mobile/locales/searchplugins/sztaki-en-hu.xml => mobile/android/components/search/searchplugins/sztaki-en-hu.xml rename : mobile/locales/searchplugins/taobao.xml => mobile/android/components/search/searchplugins/taobao.xml rename : mobile/locales/searchplugins/tearma.xml => mobile/android/components/search/searchplugins/tearma.xml rename : mobile/locales/searchplugins/twitter-ja.xml => mobile/android/components/search/searchplugins/twitter-ja.xml rename : mobile/locales/searchplugins/twitter.xml => mobile/android/components/search/searchplugins/twitter.xml rename : mobile/locales/searchplugins/vatera.xml => mobile/android/components/search/searchplugins/vatera.xml rename : mobile/locales/searchplugins/wikipedia-NN.xml => mobile/android/components/search/searchplugins/wikipedia-NN.xml rename : mobile/locales/searchplugins/wikipedia-NO.xml => mobile/android/components/search/searchplugins/wikipedia-NO.xml rename : mobile/locales/searchplugins/wikipedia-an.xml => mobile/android/components/search/searchplugins/wikipedia-an.xml rename : mobile/locales/searchplugins/wikipedia-ar.xml => mobile/android/components/search/searchplugins/wikipedia-ar.xml rename : mobile/locales/searchplugins/wikipedia-as.xml => mobile/android/components/search/searchplugins/wikipedia-as.xml rename : mobile/locales/searchplugins/wikipedia-ast.xml => mobile/android/components/search/searchplugins/wikipedia-ast.xml rename : mobile/locales/searchplugins/wikipedia-az.xml => mobile/android/components/search/searchplugins/wikipedia-az.xml rename : mobile/locales/searchplugins/wikipedia-be.xml => mobile/android/components/search/searchplugins/wikipedia-be.xml rename : mobile/locales/searchplugins/wikipedia-bg.xml => mobile/android/components/search/searchplugins/wikipedia-bg.xml rename : mobile/locales/searchplugins/wikipedia-bn.xml => mobile/android/components/search/searchplugins/wikipedia-bn.xml rename : mobile/locales/searchplugins/wikipedia-br.xml => mobile/android/components/search/searchplugins/wikipedia-br.xml rename : mobile/locales/searchplugins/wikipedia-bs.xml => mobile/android/components/search/searchplugins/wikipedia-bs.xml rename : mobile/locales/searchplugins/wikipedia-ca.xml => mobile/android/components/search/searchplugins/wikipedia-ca.xml rename : mobile/locales/searchplugins/wikipedia-cy.xml => mobile/android/components/search/searchplugins/wikipedia-cy.xml rename : mobile/locales/searchplugins/wikipedia-cz.xml => mobile/android/components/search/searchplugins/wikipedia-cz.xml rename : mobile/locales/searchplugins/wikipedia-da.xml => mobile/android/components/search/searchplugins/wikipedia-da.xml rename : mobile/locales/searchplugins/wikipedia-de.xml => mobile/android/components/search/searchplugins/wikipedia-de.xml rename : mobile/locales/searchplugins/wikipedia-dsb.xml => mobile/android/components/search/searchplugins/wikipedia-dsb.xml rename : mobile/locales/searchplugins/wikipedia-el.xml => mobile/android/components/search/searchplugins/wikipedia-el.xml rename : mobile/locales/searchplugins/wikipedia-eo.xml => mobile/android/components/search/searchplugins/wikipedia-eo.xml rename : mobile/locales/searchplugins/wikipedia-es.xml => mobile/android/components/search/searchplugins/wikipedia-es.xml rename : mobile/locales/searchplugins/wikipedia-et.xml => mobile/android/components/search/searchplugins/wikipedia-et.xml rename : mobile/locales/searchplugins/wikipedia-eu.xml => mobile/android/components/search/searchplugins/wikipedia-eu.xml rename : mobile/locales/searchplugins/wikipedia-fa.xml => mobile/android/components/search/searchplugins/wikipedia-fa.xml rename : mobile/locales/searchplugins/wikipedia-fi.xml => mobile/android/components/search/searchplugins/wikipedia-fi.xml rename : mobile/locales/searchplugins/wikipedia-fr.xml => mobile/android/components/search/searchplugins/wikipedia-fr.xml rename : mobile/locales/searchplugins/wikipedia-fy-NL.xml => mobile/android/components/search/searchplugins/wikipedia-fy-NL.xml rename : mobile/locales/searchplugins/wikipedia-ga-IE.xml => mobile/android/components/search/searchplugins/wikipedia-ga-IE.xml rename : mobile/locales/searchplugins/wikipedia-gd.xml => mobile/android/components/search/searchplugins/wikipedia-gd.xml rename : mobile/locales/searchplugins/wikipedia-gl.xml => mobile/android/components/search/searchplugins/wikipedia-gl.xml rename : mobile/locales/searchplugins/wikipedia-gn.xml => mobile/android/components/search/searchplugins/wikipedia-gn.xml rename : mobile/locales/searchplugins/wikipedia-gu.xml => mobile/android/components/search/searchplugins/wikipedia-gu.xml rename : mobile/locales/searchplugins/wikipedia-he.xml => mobile/android/components/search/searchplugins/wikipedia-he.xml rename : mobile/locales/searchplugins/wikipedia-hi.xml => mobile/android/components/search/searchplugins/wikipedia-hi.xml rename : mobile/locales/searchplugins/wikipedia-hr.xml => mobile/android/components/search/searchplugins/wikipedia-hr.xml rename : mobile/locales/searchplugins/wikipedia-hsb.xml => mobile/android/components/search/searchplugins/wikipedia-hsb.xml rename : mobile/locales/searchplugins/wikipedia-hu.xml => mobile/android/components/search/searchplugins/wikipedia-hu.xml rename : mobile/locales/searchplugins/wikipedia-hy-AM.xml => mobile/android/components/search/searchplugins/wikipedia-hy-AM.xml rename : mobile/locales/searchplugins/wikipedia-ia.xml => mobile/android/components/search/searchplugins/wikipedia-ia.xml rename : mobile/locales/searchplugins/wikipedia-id.xml => mobile/android/components/search/searchplugins/wikipedia-id.xml rename : mobile/locales/searchplugins/wikipedia-is.xml => mobile/android/components/search/searchplugins/wikipedia-is.xml rename : mobile/locales/searchplugins/wikipedia-it.xml => mobile/android/components/search/searchplugins/wikipedia-it.xml rename : mobile/locales/searchplugins/wikipedia-ja.xml => mobile/android/components/search/searchplugins/wikipedia-ja.xml rename : mobile/locales/searchplugins/wikipedia-ka.xml => mobile/android/components/search/searchplugins/wikipedia-ka.xml rename : mobile/locales/searchplugins/wikipedia-kab.xml => mobile/android/components/search/searchplugins/wikipedia-kab.xml rename : mobile/locales/searchplugins/wikipedia-kk.xml => mobile/android/components/search/searchplugins/wikipedia-kk.xml rename : mobile/locales/searchplugins/wikipedia-km.xml => mobile/android/components/search/searchplugins/wikipedia-km.xml rename : mobile/locales/searchplugins/wikipedia-kn.xml => mobile/android/components/search/searchplugins/wikipedia-kn.xml rename : mobile/locales/searchplugins/wikipedia-lij.xml => mobile/android/components/search/searchplugins/wikipedia-lij.xml rename : mobile/locales/searchplugins/wikipedia-lo.xml => mobile/android/components/search/searchplugins/wikipedia-lo.xml rename : mobile/locales/searchplugins/wikipedia-lt.xml => mobile/android/components/search/searchplugins/wikipedia-lt.xml rename : mobile/locales/searchplugins/wikipedia-ltg.xml => mobile/android/components/search/searchplugins/wikipedia-ltg.xml rename : mobile/locales/searchplugins/wikipedia-lv.xml => mobile/android/components/search/searchplugins/wikipedia-lv.xml rename : mobile/locales/searchplugins/wikipedia-ml.xml => mobile/android/components/search/searchplugins/wikipedia-ml.xml rename : mobile/locales/searchplugins/wikipedia-mr.xml => mobile/android/components/search/searchplugins/wikipedia-mr.xml rename : mobile/locales/searchplugins/wikipedia-ms.xml => mobile/android/components/search/searchplugins/wikipedia-ms.xml rename : mobile/locales/searchplugins/wikipedia-my.xml => mobile/android/components/search/searchplugins/wikipedia-my.xml rename : mobile/locales/searchplugins/wikipedia-ne.xml => mobile/android/components/search/searchplugins/wikipedia-ne.xml rename : mobile/locales/searchplugins/wikipedia-nl.xml => mobile/android/components/search/searchplugins/wikipedia-nl.xml rename : mobile/locales/searchplugins/wikipedia-oc.xml => mobile/android/components/search/searchplugins/wikipedia-oc.xml rename : mobile/locales/searchplugins/wikipedia-or.xml => mobile/android/components/search/searchplugins/wikipedia-or.xml rename : mobile/locales/searchplugins/wikipedia-pa.xml => mobile/android/components/search/searchplugins/wikipedia-pa.xml rename : mobile/locales/searchplugins/wikipedia-pl.xml => mobile/android/components/search/searchplugins/wikipedia-pl.xml rename : mobile/locales/searchplugins/wikipedia-pt.xml => mobile/android/components/search/searchplugins/wikipedia-pt.xml rename : mobile/locales/searchplugins/wikipedia-rm.xml => mobile/android/components/search/searchplugins/wikipedia-rm.xml rename : mobile/locales/searchplugins/wikipedia-ro.xml => mobile/android/components/search/searchplugins/wikipedia-ro.xml rename : mobile/locales/searchplugins/wikipedia-ru.xml => mobile/android/components/search/searchplugins/wikipedia-ru.xml rename : mobile/locales/searchplugins/wikipedia-sk.xml => mobile/android/components/search/searchplugins/wikipedia-sk.xml rename : mobile/locales/searchplugins/wikipedia-sl.xml => mobile/android/components/search/searchplugins/wikipedia-sl.xml rename : mobile/locales/searchplugins/wikipedia-sq.xml => mobile/android/components/search/searchplugins/wikipedia-sq.xml rename : mobile/locales/searchplugins/wikipedia-sr.xml => mobile/android/components/search/searchplugins/wikipedia-sr.xml rename : mobile/locales/searchplugins/wikipedia-sv-SE.xml => mobile/android/components/search/searchplugins/wikipedia-sv-SE.xml rename : mobile/locales/searchplugins/wikipedia-ta.xml => mobile/android/components/search/searchplugins/wikipedia-ta.xml rename : mobile/locales/searchplugins/wikipedia-te.xml => mobile/android/components/search/searchplugins/wikipedia-te.xml rename : mobile/locales/searchplugins/wikipedia-th.xml => mobile/android/components/search/searchplugins/wikipedia-th.xml rename : mobile/locales/searchplugins/wikipedia-tr.xml => mobile/android/components/search/searchplugins/wikipedia-tr.xml rename : mobile/locales/searchplugins/wikipedia-uk.xml => mobile/android/components/search/searchplugins/wikipedia-uk.xml rename : mobile/locales/searchplugins/wikipedia-ur.xml => mobile/android/components/search/searchplugins/wikipedia-ur.xml rename : mobile/locales/searchplugins/wikipedia-uz.xml => mobile/android/components/search/searchplugins/wikipedia-uz.xml rename : mobile/locales/searchplugins/wikipedia-vi.xml => mobile/android/components/search/searchplugins/wikipedia-vi.xml rename : mobile/locales/searchplugins/wikipedia-wo.xml => mobile/android/components/search/searchplugins/wikipedia-wo.xml rename : mobile/locales/searchplugins/wikipedia-zh-CN.xml => mobile/android/components/search/searchplugins/wikipedia-zh-CN.xml rename : mobile/locales/searchplugins/wikipedia-zh-TW.xml => mobile/android/components/search/searchplugins/wikipedia-zh-TW.xml rename : mobile/locales/searchplugins/wikipedia.xml => mobile/android/components/search/searchplugins/wikipedia.xml rename : mobile/locales/searchplugins/wiktionary-kn.xml => mobile/android/components/search/searchplugins/wiktionary-kn.xml rename : mobile/locales/searchplugins/wiktionary-oc.xml => mobile/android/components/search/searchplugins/wiktionary-oc.xml rename : mobile/locales/searchplugins/wiktionary-or.xml => mobile/android/components/search/searchplugins/wiktionary-or.xml rename : mobile/locales/searchplugins/wiktionary-ta.xml => mobile/android/components/search/searchplugins/wiktionary-ta.xml rename : mobile/locales/searchplugins/wiktionary-te.xml => mobile/android/components/search/searchplugins/wiktionary-te.xml rename : mobile/locales/searchplugins/yahoo-jp.xml => mobile/android/components/search/searchplugins/yahoo-jp.xml rename : mobile/locales/searchplugins/yandex-en.xml => mobile/android/components/search/searchplugins/yandex-en.xml rename : mobile/locales/searchplugins/yandex-ru.xml => mobile/android/components/search/searchplugins/yandex-ru.xml rename : mobile/locales/searchplugins/yandex-tr.xml => mobile/android/components/search/searchplugins/yandex-tr.xml rename : mobile/locales/searchplugins/yandex.by.xml => mobile/android/components/search/searchplugins/yandex.by.xml rename : mobile/locales/searchplugins/yandex.xml => mobile/android/components/search/searchplugins/yandex.xml extra : rebase_source : 5be775e097a95f4581bc778b3f91e13c3cd07809
561 lines
18 KiB
JavaScript
561 lines
18 KiB
JavaScript
/* 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/. */
|
|
"use strict";
|
|
|
|
var EXPORTED_SYMBOLS = [
|
|
"ContentSearch",
|
|
];
|
|
|
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
XPCOMUtils.defineLazyGlobalGetters(this, ["XMLHttpRequest"]);
|
|
|
|
ChromeUtils.defineModuleGetter(this, "FormHistory",
|
|
"resource://gre/modules/FormHistory.jsm");
|
|
ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
|
|
"resource://gre/modules/PrivateBrowsingUtils.jsm");
|
|
ChromeUtils.defineModuleGetter(this, "SearchSuggestionController",
|
|
"resource://gre/modules/SearchSuggestionController.jsm");
|
|
|
|
const INBOUND_MESSAGE = "ContentSearch";
|
|
const OUTBOUND_MESSAGE = INBOUND_MESSAGE;
|
|
const MAX_LOCAL_SUGGESTIONS = 3;
|
|
const MAX_SUGGESTIONS = 6;
|
|
|
|
/**
|
|
* ContentSearch receives messages named INBOUND_MESSAGE and sends messages
|
|
* named OUTBOUND_MESSAGE. The data of each message is expected to look like
|
|
* { type, data }. type is the message's type (or subtype if you consider the
|
|
* type of the message itself to be INBOUND_MESSAGE), and data is data that is
|
|
* specific to the type.
|
|
*
|
|
* Inbound messages have the following types:
|
|
*
|
|
* AddFormHistoryEntry
|
|
* Adds an entry to the search form history.
|
|
* data: the entry, a string
|
|
* GetSuggestions
|
|
* Retrieves an array of search suggestions given a search string.
|
|
* data: { engineName, searchString }
|
|
* GetState
|
|
* Retrieves the current search engine state.
|
|
* data: null
|
|
* GetStrings
|
|
* Retrieves localized search UI strings.
|
|
* data: null
|
|
* ManageEngines
|
|
* Opens the search engine management window.
|
|
* data: null
|
|
* RemoveFormHistoryEntry
|
|
* Removes an entry from the search form history.
|
|
* data: the entry, a string
|
|
* Search
|
|
* Performs a search.
|
|
* Any GetSuggestions messages in the queue from the same target will be
|
|
* cancelled.
|
|
* data: { engineName, searchString, healthReportKey, searchPurpose }
|
|
* SetCurrentEngine
|
|
* Sets the current engine.
|
|
* data: the name of the engine
|
|
* SpeculativeConnect
|
|
* Speculatively connects to an engine.
|
|
* data: the name of the engine
|
|
*
|
|
* Outbound messages have the following types:
|
|
*
|
|
* CurrentEngine
|
|
* Broadcast when the current engine changes.
|
|
* data: see _currentEngineObj
|
|
* CurrentState
|
|
* Broadcast when the current search state changes.
|
|
* data: see currentStateObj
|
|
* State
|
|
* Sent in reply to GetState.
|
|
* data: see currentStateObj
|
|
* Strings
|
|
* Sent in reply to GetStrings
|
|
* data: Object containing string names and values for the current locale.
|
|
* Suggestions
|
|
* Sent in reply to GetSuggestions.
|
|
* data: see _onMessageGetSuggestions
|
|
* SuggestionsCancelled
|
|
* Sent in reply to GetSuggestions when pending GetSuggestions events are
|
|
* cancelled.
|
|
* data: null
|
|
*/
|
|
|
|
var ContentSearch = {
|
|
|
|
// Inbound events are queued and processed in FIFO order instead of handling
|
|
// them immediately, which would result in non-FIFO responses due to the
|
|
// asynchrononicity added by converting image data URIs to ArrayBuffers.
|
|
_eventQueue: [],
|
|
_currentEventPromise: null,
|
|
|
|
// This is used to handle search suggestions. It maps xul:browsers to objects
|
|
// { controller, previousFormHistoryResult }. See _onMessageGetSuggestions.
|
|
_suggestionMap: new WeakMap(),
|
|
|
|
// Resolved when we finish shutting down.
|
|
_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;
|
|
}
|
|
this._searchSuggestionUIStrings = {};
|
|
let searchBundle = Services.strings.createBundle("chrome://browser/locale/search.properties");
|
|
let stringNames = ["searchHeader", "searchForSomethingWith2",
|
|
"searchWithHeader", "searchSettings"];
|
|
|
|
for (let name of stringNames) {
|
|
this._searchSuggestionUIStrings[name] = searchBundle.GetStringFromName(name);
|
|
}
|
|
return this._searchSuggestionUIStrings;
|
|
},
|
|
|
|
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;
|
|
},
|
|
|
|
/**
|
|
* Focuses the search input in the page with the given message manager.
|
|
* @param messageManager
|
|
* The MessageManager object of the selected browser.
|
|
*/
|
|
focusInput(messageManager) {
|
|
messageManager.sendAsyncMessage(OUTBOUND_MESSAGE, {
|
|
type: "FocusInput"
|
|
});
|
|
},
|
|
|
|
// Listeners and observers are added in nsBrowserGlue.js
|
|
receiveMessage(msg) {
|
|
// Add a temporary event handler that exists only while the message is in
|
|
// the event queue. If the message's source docshell changes browsers in
|
|
// the meantime, then we need to update msg.target. event.detail will be
|
|
// the docshell's new parent <xul:browser> element.
|
|
msg.handleEvent = event => {
|
|
let browserData = this._suggestionMap.get(msg.target);
|
|
if (browserData) {
|
|
this._suggestionMap.delete(msg.target);
|
|
this._suggestionMap.set(event.detail, browserData);
|
|
}
|
|
msg.target.removeEventListener("SwapDocShells", msg, true);
|
|
msg.target = event.detail;
|
|
msg.target.addEventListener("SwapDocShells", msg, true);
|
|
};
|
|
msg.target.addEventListener("SwapDocShells", msg, true);
|
|
|
|
// Search requests cause cancellation of all Suggestion requests from the
|
|
// same browser.
|
|
if (msg.data.type === "Search") {
|
|
this._cancelSuggestions(msg);
|
|
}
|
|
|
|
this._eventQueue.push({
|
|
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;
|
|
case "shutdown-leaks-before-check":
|
|
subj.wrappedJSObject.client.addBlocker(
|
|
"ContentSearch: Wait until the service is destroyed", () => this.destroy());
|
|
break;
|
|
}
|
|
},
|
|
|
|
removeFormHistoryEntry(msg, entry) {
|
|
let browserData = this._suggestionDataForBrowser(msg.target);
|
|
if (browserData && browserData.previousFormHistoryResult) {
|
|
let { previousFormHistoryResult } = browserData;
|
|
for (let i = 0; i < previousFormHistoryResult.matchCount; i++) {
|
|
if (previousFormHistoryResult.getValueAt(i) === entry) {
|
|
previousFormHistoryResult.removeValueAt(i, true);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
performSearch(msg, data) {
|
|
this._ensureDataHasProperties(data, [
|
|
"engineName",
|
|
"searchString",
|
|
"healthReportKey",
|
|
"searchPurpose",
|
|
]);
|
|
let engine = Services.search.getEngineByName(data.engineName);
|
|
let submission = engine.getSubmission(data.searchString, "", data.searchPurpose);
|
|
let browser = msg.target;
|
|
let win = browser.ownerGlobal;
|
|
if (!win) {
|
|
// The browser may have been closed between the time its content sent the
|
|
// message and the time we handle it.
|
|
return;
|
|
}
|
|
let where = win.whereToOpenLink(data.originalEvent);
|
|
|
|
// There is a chance that by the time we receive the search message, the user
|
|
// has switched away from the tab that triggered the search. If, based on the
|
|
// event, we need to load the search in the same tab that triggered it (i.e.
|
|
// where === "current"), openUILinkIn will not work because that tab is no
|
|
// longer the current one. For this case we manually load the URI.
|
|
if (where === "current") {
|
|
// Since we're going to load the search in the same browser, blur the search
|
|
// UI to prevent further interaction before we start loading.
|
|
this._reply(msg, "Blur");
|
|
browser.loadURI(submission.uri.spec, {
|
|
postData: submission.postData
|
|
});
|
|
} else {
|
|
let params = {
|
|
postData: submission.postData,
|
|
inBackground: Services.prefs.getBoolPref("browser.tabs.loadInBackground"),
|
|
};
|
|
win.openTrustedLinkIn(submission.uri.spec, where, params);
|
|
}
|
|
win.BrowserSearch.recordSearchInTelemetry(engine, data.healthReportKey,
|
|
{ selection: data.selection });
|
|
},
|
|
|
|
async getSuggestions(engineName, searchString, browser) {
|
|
let engine = Services.search.getEngineByName(engineName);
|
|
if (!engine) {
|
|
throw new Error("Unknown engine name: " + engineName);
|
|
}
|
|
|
|
let browserData = this._suggestionDataForBrowser(browser, true);
|
|
let { controller } = browserData;
|
|
let ok = SearchSuggestionController.engineOffersSuggestions(engine);
|
|
controller.maxLocalResults = ok ? MAX_LOCAL_SUGGESTIONS : MAX_SUGGESTIONS;
|
|
controller.maxRemoteResults = ok ? MAX_SUGGESTIONS : 0;
|
|
let priv = PrivateBrowsingUtils.isBrowserPrivate(browser);
|
|
// fetch() rejects its promise if there's a pending request, but since we
|
|
// process our event queue serially, there's never a pending request.
|
|
this._currentSuggestion = { controller, target: browser };
|
|
let suggestions = await controller.fetch(searchString, priv, engine);
|
|
this._currentSuggestion = null;
|
|
|
|
// suggestions will be null if the request was cancelled
|
|
let result = {};
|
|
if (!suggestions) {
|
|
return result;
|
|
}
|
|
|
|
// Keep the form history result so RemoveFormHistoryEntry can remove entries
|
|
// from it. Keeping only one result isn't foolproof because the client may
|
|
// try to remove an entry from one set of suggestions after it has requested
|
|
// more but before it's received them. In that case, the entry may not
|
|
// appear in the new suggestions. But that should happen rarely.
|
|
browserData.previousFormHistoryResult = suggestions.formHistoryResult;
|
|
result = {
|
|
engineName,
|
|
term: suggestions.term,
|
|
local: suggestions.local,
|
|
remote: suggestions.remote,
|
|
};
|
|
return result;
|
|
},
|
|
|
|
async addFormHistoryEntry(browser, entry = "") {
|
|
let isPrivate = false;
|
|
try {
|
|
// isBrowserPrivate assumes that the passed-in browser has all the normal
|
|
// properties, which won't be true if the browser has been destroyed.
|
|
// That may be the case here due to the asynchronous nature of messaging.
|
|
isPrivate = PrivateBrowsingUtils.isBrowserPrivate(browser.target);
|
|
} catch (err) {
|
|
return false;
|
|
}
|
|
if (isPrivate || entry === "") {
|
|
return false;
|
|
}
|
|
let browserData = this._suggestionDataForBrowser(browser.target, true);
|
|
FormHistory.update({
|
|
op: "bump",
|
|
fieldname: browserData.controller.formHistoryParam,
|
|
value: entry,
|
|
}, {
|
|
handleCompletion: () => {},
|
|
handleError: err => {
|
|
Cu.reportError("Error adding form history entry: " + err);
|
|
},
|
|
});
|
|
return true;
|
|
},
|
|
|
|
async currentStateObj(uriFlag = false) {
|
|
let state = {
|
|
engines: [],
|
|
currentEngine: await this._currentEngineObj(),
|
|
};
|
|
if (uriFlag) {
|
|
state.currentEngine.iconBuffer = Services.search.currentEngine.getIconURLBySize(16, 16);
|
|
}
|
|
let pref = Services.prefs.getCharPref("browser.search.hiddenOneOffs");
|
|
let hiddenList = pref ? pref.split(",") : [];
|
|
for (let engine of Services.search.getVisibleEngines()) {
|
|
let uri = engine.getIconURLBySize(16, 16);
|
|
let iconBuffer = uri;
|
|
if (!uriFlag) {
|
|
iconBuffer = await this._arrayBufferFromDataURI(uri);
|
|
}
|
|
state.engines.push({
|
|
name: engine.name,
|
|
iconBuffer,
|
|
hidden: hiddenList.includes(engine.name),
|
|
identifier: engine.identifier
|
|
});
|
|
}
|
|
return state;
|
|
},
|
|
|
|
_processEventQueue() {
|
|
if (this._currentEventPromise || !this._eventQueue.length) {
|
|
return;
|
|
}
|
|
|
|
let event = this._eventQueue.shift();
|
|
|
|
this._currentEventPromise = (async () => {
|
|
try {
|
|
await this["_on" + event.type](event.data);
|
|
} catch (err) {
|
|
Cu.reportError(err);
|
|
} finally {
|
|
this._currentEventPromise = null;
|
|
this._processEventQueue();
|
|
}
|
|
})();
|
|
},
|
|
|
|
_cancelSuggestions(msg) {
|
|
let cancelled = false;
|
|
// cancel active suggestion request
|
|
if (this._currentSuggestion && this._currentSuggestion.target === msg.target) {
|
|
this._currentSuggestion.controller.stop();
|
|
cancelled = true;
|
|
}
|
|
// cancel queued suggestion requests
|
|
for (let i = 0; i < this._eventQueue.length; i++) {
|
|
let m = this._eventQueue[i].data;
|
|
if (msg.target === m.target && m.data.type === "GetSuggestions") {
|
|
this._eventQueue.splice(i, 1);
|
|
cancelled = true;
|
|
i--;
|
|
}
|
|
}
|
|
if (cancelled) {
|
|
this._reply(msg, "SuggestionsCancelled");
|
|
}
|
|
},
|
|
|
|
async _onMessage(msg) {
|
|
let methodName = "_onMessage" + msg.data.type;
|
|
if (methodName in this) {
|
|
await this._initService();
|
|
await this[methodName](msg, msg.data.data);
|
|
if (!Cu.isDeadWrapper(msg.target)) {
|
|
msg.target.removeEventListener("SwapDocShells", msg, true);
|
|
}
|
|
}
|
|
},
|
|
|
|
_onMessageGetState(msg, data) {
|
|
return this.currentStateObj().then(state => {
|
|
this._reply(msg, "State", state);
|
|
});
|
|
},
|
|
|
|
_onMessageGetStrings(msg, data) {
|
|
this._reply(msg, "Strings", this.searchSuggestionUIStrings);
|
|
},
|
|
|
|
_onMessageSearch(msg, data) {
|
|
this.performSearch(msg, data);
|
|
},
|
|
|
|
_onMessageSetCurrentEngine(msg, data) {
|
|
Services.search.currentEngine = Services.search.getEngineByName(data);
|
|
},
|
|
|
|
_onMessageManageEngines(msg) {
|
|
msg.target.ownerGlobal.openPreferences("paneSearch", { origin: "contentSearch" });
|
|
},
|
|
|
|
async _onMessageGetSuggestions(msg, data) {
|
|
this._ensureDataHasProperties(data, [
|
|
"engineName",
|
|
"searchString",
|
|
]);
|
|
let {engineName, searchString} = data;
|
|
let suggestions = await this.getSuggestions(engineName, searchString, msg.target);
|
|
|
|
this._reply(msg, "Suggestions", {
|
|
engineName: data.engineName,
|
|
searchString: suggestions.term,
|
|
formHistory: suggestions.local,
|
|
remote: suggestions.remote,
|
|
});
|
|
},
|
|
|
|
async _onMessageAddFormHistoryEntry(msg, entry) {
|
|
await this.addFormHistoryEntry(msg, entry);
|
|
},
|
|
|
|
_onMessageRemoveFormHistoryEntry(msg, entry) {
|
|
this.removeFormHistoryEntry(msg, entry);
|
|
},
|
|
|
|
_onMessageSpeculativeConnect(msg, engineName) {
|
|
let engine = Services.search.getEngineByName(engineName);
|
|
if (!engine) {
|
|
throw new Error("Unknown engine name: " + engineName);
|
|
}
|
|
if (msg.target.contentWindow) {
|
|
engine.speculativeConnect({
|
|
window: msg.target.contentWindow,
|
|
originAttributes: msg.target.contentPrincipal.originAttributes
|
|
});
|
|
}
|
|
},
|
|
|
|
async _onObserve(data) {
|
|
if (data === "engine-current") {
|
|
let engine = await this._currentEngineObj();
|
|
this._broadcast("CurrentEngine", engine);
|
|
} else if (data !== "engine-default") {
|
|
// engine-default is always sent with engine-current and isn't otherwise
|
|
// relevant to content searches.
|
|
let state = await this.currentStateObj();
|
|
this._broadcast("CurrentState", state);
|
|
}
|
|
},
|
|
|
|
_suggestionDataForBrowser(browser, create = false) {
|
|
let data = this._suggestionMap.get(browser);
|
|
if (!data && create) {
|
|
// Since one SearchSuggestionController instance is meant to be used per
|
|
// autocomplete widget, this means that we assume each xul:browser has at
|
|
// most one such widget.
|
|
data = {
|
|
controller: new SearchSuggestionController(),
|
|
};
|
|
this._suggestionMap.set(browser, data);
|
|
}
|
|
return data;
|
|
},
|
|
|
|
_reply(msg, type, data) {
|
|
// We reply asyncly to messages, and by the time we reply the browser we're
|
|
// responding to may have been destroyed. messageManager is null then.
|
|
if (!Cu.isDeadWrapper(msg.target) && msg.target.messageManager) {
|
|
msg.target.messageManager.sendAsyncMessage(...this._msgArgs(type, data));
|
|
}
|
|
},
|
|
|
|
_broadcast(type, data) {
|
|
Services.mm.broadcastAsyncMessage(...this._msgArgs(type, data));
|
|
},
|
|
|
|
_msgArgs(type, data) {
|
|
return [OUTBOUND_MESSAGE, {
|
|
type,
|
|
data,
|
|
}];
|
|
},
|
|
|
|
async _currentEngineObj() {
|
|
let engine = Services.search.currentEngine;
|
|
let favicon = engine.getIconURLBySize(16, 16);
|
|
let placeholder = this._stringBundle.formatStringFromName(
|
|
"searchWithEngine", [engine.name], 1);
|
|
let obj = {
|
|
name: engine.name,
|
|
placeholder,
|
|
iconBuffer: await this._arrayBufferFromDataURI(favicon),
|
|
};
|
|
return obj;
|
|
},
|
|
|
|
_arrayBufferFromDataURI(uri) {
|
|
if (!uri) {
|
|
return Promise.resolve(null);
|
|
}
|
|
return new Promise(resolve => {
|
|
let xhr = new XMLHttpRequest();
|
|
xhr.open("GET", uri, true);
|
|
xhr.responseType = "arraybuffer";
|
|
xhr.onload = () => {
|
|
resolve(xhr.response);
|
|
};
|
|
xhr.onerror = xhr.onabort = xhr.ontimeout = () => {
|
|
resolve(null);
|
|
};
|
|
try {
|
|
// This throws if the URI is erroneously encoded.
|
|
xhr.send();
|
|
} catch (err) {
|
|
resolve(null);
|
|
}
|
|
});
|
|
},
|
|
|
|
_ensureDataHasProperties(data, requiredProperties) {
|
|
for (let prop of requiredProperties) {
|
|
if (!(prop in data)) {
|
|
throw new Error("Message data missing required property: " + prop);
|
|
}
|
|
}
|
|
},
|
|
|
|
_initService() {
|
|
if (!this._initServicePromise) {
|
|
this._initServicePromise =
|
|
new Promise(resolve => Services.search.init(resolve));
|
|
}
|
|
return this._initServicePromise;
|
|
},
|
|
};
|