summaryrefslogtreecommitdiffstats
path: root/comm/suite/components/search
diff options
context:
space:
mode:
Diffstat (limited to 'comm/suite/components/search')
-rw-r--r--comm/suite/components/search/content/engineManager.js508
-rw-r--r--comm/suite/components/search/content/engineManager.xul98
-rw-r--r--comm/suite/components/search/content/search-panel.js86
-rw-r--r--comm/suite/components/search/content/search-panel.xul48
-rw-r--r--comm/suite/components/search/content/search.xml739
-rw-r--r--comm/suite/components/search/content/searchbarBindings.css21
-rw-r--r--comm/suite/components/search/jar.mn16
-rw-r--r--comm/suite/components/search/moz.build7
-rw-r--r--comm/suite/components/search/searchplugins/allegro-pl.xml18
-rw-r--r--comm/suite/components/search/searchplugins/amazon-br.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-de.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-en-GB.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-es.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-fr.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-it.xml20
-rw-r--r--comm/suite/components/search/searchplugins/amazon-jp.xml32
-rw-r--r--comm/suite/components/search/searchplugins/amazon-zh-CN.xml23
-rw-r--r--comm/suite/components/search/searchplugins/amazon.xml27
-rw-r--r--comm/suite/components/search/searchplugins/atlas-sk.xml14
-rw-r--r--comm/suite/components/search/searchplugins/azet-sk.xml15
-rw-r--r--comm/suite/components/search/searchplugins/bing.xml22
-rw-r--r--comm/suite/components/search/searchplugins/bolcom-nl.xml16
-rw-r--r--comm/suite/components/search/searchplugins/chambers-en-GB.xml19
-rw-r--r--comm/suite/components/search/searchplugins/cnrtl-tlfi-fr.xml20
-rw-r--r--comm/suite/components/search/searchplugins/drae.xml16
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-cs-CZ.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-de-DE.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-el-GR.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-en-GB.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-en-US.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-es-AR.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-es-ES.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-fi-FI.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-fr-FR.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-hu-HU.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-it-IT.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-ja-JP.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-nb-NO.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-nl-NL.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-pl-PL.xml27
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-pt-BR.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-pt-PT.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-ru-RU.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-sk-SK.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-sv-SE.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-zh-CN.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo-zh-TW.xml25
-rw-r--r--comm/suite/components/search/searchplugins/duckduckgo.xml23
-rw-r--r--comm/suite/components/search/searchplugins/ebay-de.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay-en-GB.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay-es.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay-fr.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay-it.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay-nl.xml20
-rw-r--r--comm/suite/components/search/searchplugins/ebay.xml20
-rw-r--r--comm/suite/components/search/searchplugins/google-jp.xml31
-rw-r--r--comm/suite/components/search/searchplugins/google.xml24
-rw-r--r--comm/suite/components/search/searchplugins/heureka-cz.xml22
-rw-r--r--comm/suite/components/search/searchplugins/hoepli.xml20
-rw-r--r--comm/suite/components/search/searchplugins/huuto-fi.xml24
-rw-r--r--comm/suite/components/search/searchplugins/images/amazon.icobin0 -> 1407 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/duckduckgo.icobin0 -> 5430 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/ebay.icobin0 -> 1455 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/google.icobin0 -> 5430 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/startpage.icobin0 -> 1150 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/wikipedia.icobin0 -> 884 bytes
-rw-r--r--comm/suite/components/search/searchplugins/images/yahoo.icobin0 -> 5430 bytes
-rw-r--r--comm/suite/components/search/searchplugins/list.json217
-rw-r--r--comm/suite/components/search/searchplugins/mapy-cz.xml18
-rw-r--r--comm/suite/components/search/searchplugins/marktplaats-nl.xml17
-rw-r--r--comm/suite/components/search/searchplugins/priberam.xml16
-rw-r--r--comm/suite/components/search/searchplugins/prisjakt-sv-SE.xml25
-rw-r--r--comm/suite/components/search/searchplugins/pwn-pl.xml14
-rw-r--r--comm/suite/components/search/searchplugins/sapo.xml22
-rw-r--r--comm/suite/components/search/searchplugins/seznam-cz.xml22
-rw-r--r--comm/suite/components/search/searchplugins/startpage-pl.xml17
-rw-r--r--comm/suite/components/search/searchplugins/startpage.xml17
-rw-r--r--comm/suite/components/search/searchplugins/tyda-sv-SE.xml17
-rw-r--r--comm/suite/components/search/searchplugins/vatera.xml18
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-NO.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-cz.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-de.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-el.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-es.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-fi.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-fr.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-hu.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-it.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-ja.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-ka.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-nl.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-pl.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-pt.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-ru.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-sk.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-sv-SE.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-zh-CN.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia-zh-TW.xml25
-rw-r--r--comm/suite/components/search/searchplugins/wikipedia.xml24
-rw-r--r--comm/suite/components/search/searchplugins/wolnelektury-pl.xml22
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-NO.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-ar.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-bid-zh-TW.xml18
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-br.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-de.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-en-GB.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-es.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-fi.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-fr.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-it.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-jp.xml18
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-nl.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-sv-SE.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-zh-CN.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo-zh-TW.xml25
-rw-r--r--comm/suite/components/search/searchplugins/yahoo.xml25
-rw-r--r--comm/suite/components/search/searchplugins/zoznam-sk.xml13
117 files changed, 4023 insertions, 0 deletions
diff --git a/comm/suite/components/search/content/engineManager.js b/comm/suite/components/search/content/engineManager.js
new file mode 100644
index 0000000000..c505bff7fc
--- /dev/null
+++ b/comm/suite/components/search/content/engineManager.js
@@ -0,0 +1,508 @@
+/* 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/. */
+
+var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
+
+ChromeUtils.defineModuleGetter(this, "PlacesUtils",
+ "resource://gre/modules/PlacesUtils.jsm");
+
+const ENGINE_FLAVOR = "text/x-moz-search-engine";
+
+const BROWSER_SUGGEST_PREF = "browser.search.suggest.enabled";
+
+var gEngineView = null;
+
+var gEngineManagerDialog = {
+ init: function engineManager_init() {
+ gEngineView = new EngineView(new EngineStore());
+
+ var suggestEnabled = Services.prefs.getBoolPref(BROWSER_SUGGEST_PREF);
+ document.getElementById("enableSuggest").checked = suggestEnabled;
+
+ var tree = document.getElementById("engineList");
+ tree.view = gEngineView;
+
+ Services.obs.addObserver(this, "browser-search-engine-modified");
+ },
+
+ destroy: function engineManager_destroy() {
+ // Remove the observer
+ Services.obs.removeObserver(this, "browser-search-engine-modified");
+ },
+
+ observe: function engineManager_observe(aEngine, aTopic, aVerb) {
+ if (aTopic == "browser-search-engine-modified") {
+ aEngine.QueryInterface(Ci.nsISearchEngine);
+ switch (aVerb) {
+ case "engine-added":
+ gEngineView._engineStore.addEngine(aEngine);
+ gEngineView.rowCountChanged(gEngineView.lastIndex, 1);
+ break;
+ case "engine-changed":
+ gEngineView._engineStore.reloadIcons();
+ gEngineView.invalidate();
+ break;
+ case "engine-removed":
+ case "engine-current":
+ case "engine-default":
+ // Not relevant
+ break;
+ }
+ }
+ },
+
+ onOK: function engineManager_onOK() {
+ // Set the preference
+ var newSuggestEnabled = document.getElementById("enableSuggest").checked;
+ Services.prefs.setBoolPref(BROWSER_SUGGEST_PREF, newSuggestEnabled);
+
+ // Commit the changes
+ gEngineView._engineStore.commit();
+ },
+
+ onRestoreDefaults: function engineManager_onRestoreDefaults() {
+ var num = gEngineView._engineStore.restoreDefaultEngines();
+ gEngineView.rowCountChanged(0, num);
+ gEngineView.invalidate();
+ },
+
+ showRestoreDefaults: function engineManager_showRestoreDefaults(val) {
+ document.documentElement.getButton("extra2").disabled = !val;
+ },
+
+ loadAddEngines: function engineManager_loadAddEngines() {
+ this.onOK();
+ window.arguments[0].value = true; // see OpenSearchEngineManager()
+ window.close();
+ },
+
+ remove: function engineManager_remove() {
+ gEngineView._engineStore.removeEngine(gEngineView.selectedEngine);
+ var index = gEngineView.selectedIndex;
+ gEngineView.rowCountChanged(index, -1);
+ gEngineView.invalidate();
+ gEngineView.selection.select(Math.min(index, gEngineView.lastIndex));
+ gEngineView.ensureRowIsVisible(gEngineView.currentIndex);
+ document.getElementById("engineList").focus();
+ },
+
+ /**
+ * Moves the selected engine either up or down in the engine list
+ * @param aDir
+ * -1 to move the selected engine down, +1 to move it up.
+ */
+ bump: function engineManager_move(aDir) {
+ var selectedEngine = gEngineView.selectedEngine;
+ var newIndex = gEngineView.selectedIndex - aDir;
+
+ gEngineView._engineStore.moveEngine(selectedEngine, newIndex);
+
+ gEngineView.invalidate();
+ gEngineView.selection.select(newIndex);
+ gEngineView.ensureRowIsVisible(newIndex);
+ this.showRestoreDefaults(true);
+ document.getElementById("engineList").focus();
+ },
+
+ selectEditKeyword: function engineManager_selectEditKeyword() {
+ let index = gEngineView.selectedIndex;
+ // No engine selected.
+ if (index == -1)
+ return;
+
+ let tree = document.getElementById("engineList");
+ let column = tree.columns.getColumnFor(document.getElementById("engineKeyword"));
+ tree.startEditing(index, column);
+ },
+
+ async editKeyword(aEngine, aNewKeyword) {
+ let keyword = aNewKeyword.trim();
+ if (keyword) {
+ let eduplicate = false;
+ let dupName = "";
+
+ // Check for duplicates in Places keywords.
+ let bduplicate = !!(await PlacesUtils.keywords.fetch(keyword));
+
+ // Check for duplicates in changes we haven't committed yet
+ let engines = gEngineView._engineStore.engines;
+ for (let engine of engines) {
+ if (engine.alias == keyword &&
+ engine.name != aEngine.name) {
+ eduplicate = true;
+ dupName = engine.name;
+ break;
+ }
+ }
+
+ // Notify the user if they have chosen an existing engine/bookmark keyword
+ if (eduplicate || bduplicate) {
+ let strings = document.getElementById("engineManagerBundle");
+ let dtitle = strings.getString("duplicateTitle");
+ let bmsg = strings.getString("duplicateBookmarkMsg");
+ let emsg = strings.getFormattedString("duplicateEngineMsg", [dupName]);
+
+ Services.prompt.alert(window, dtitle, eduplicate ? emsg : bmsg);
+ return false;
+ }
+ }
+
+ gEngineView._engineStore.changeEngine(aEngine, "alias", keyword);
+ gEngineView.invalidate();
+ return true;
+ },
+
+ onSelect: function engineManager_onSelect() {
+ // Buttons only work if an engine is selected and it's not the last engine,
+ // the latter is true when the selected is first and last at the same time.
+ var lastSelected = (gEngineView.selectedIndex == gEngineView.lastIndex);
+ var firstSelected = (gEngineView.selectedIndex == 0);
+ var noSelection = (gEngineView.selectedIndex == -1);
+
+ document.getElementById("cmd_remove")
+ .setAttribute("disabled", noSelection ||
+ (firstSelected && lastSelected));
+
+ document.getElementById("cmd_moveup")
+ .setAttribute("disabled", noSelection || firstSelected);
+
+ document.getElementById("cmd_movedown")
+ .setAttribute("disabled", noSelection || lastSelected);
+
+ document.getElementById("cmd_editkeyword")
+ .setAttribute("disabled", noSelection);
+ },
+
+ onKeydown: function(aEvent) {
+ var tree = document.getElementById("engineList");
+ if (tree.editingColumn)
+ return;
+
+ if (aEvent.keyCode == (AppConstants.platform == "macosx" ?
+ KeyEvent.DOM_VK_RETURN : KeyEvent.DOM_VK_F2) &&
+ tree.startEditing(gEngineView.selectedIndex,
+ tree.columns.engineKeyword)) {
+ aEvent.preventDefault();
+ }
+ }
+};
+
+function onDragEngineStart(event) {
+ var selectedIndex = gEngineView.selectedIndex;
+ if (selectedIndex >= 0) {
+ event.dataTransfer.setData(ENGINE_FLAVOR, selectedIndex.toString());
+ event.dataTransfer.effectAllowed = "move";
+ }
+}
+
+// "Operation" objects
+function EngineMoveOp(aEngineClone, aNewIndex) {
+ if (!aEngineClone)
+ throw new Error("bad args to new EngineMoveOp!");
+ this._engine = aEngineClone.originalEngine;
+ this._newIndex = aNewIndex;
+}
+EngineMoveOp.prototype = {
+ _engine: null,
+ _newIndex: null,
+ commit: function EMO_commit() {
+ Services.search.moveEngine(this._engine, this._newIndex);
+ }
+}
+
+function EngineRemoveOp(aEngineClone) {
+ if (!aEngineClone)
+ throw new Error("bad args to new EngineRemoveOp!");
+ this._engine = aEngineClone.originalEngine;
+}
+EngineRemoveOp.prototype = {
+ _engine: null,
+ commit: function ERO_commit() {
+ Services.search.removeEngine(this._engine);
+ }
+}
+
+function EngineUnhideOp(aEngineClone, aNewIndex) {
+ if (!aEngineClone)
+ throw new Error("bad args to new EngineUnhideOp!");
+ this._engine = aEngineClone.originalEngine;
+ this._newIndex = aNewIndex;
+}
+EngineUnhideOp.prototype = {
+ _engine: null,
+ _newIndex: null,
+ commit: function EUO_commit() {
+ this._engine.hidden = false;
+ Services.search.moveEngine(this._engine, this._newIndex);
+ }
+}
+
+function EngineChangeOp(aEngineClone, aProp, aValue) {
+ if (!aEngineClone)
+ throw new Error("bad args to new EngineChangeOp!");
+
+ this._engine = aEngineClone.originalEngine;
+ this._prop = aProp;
+ this._newValue = aValue;
+}
+EngineChangeOp.prototype = {
+ _engine: null,
+ _prop: null,
+ _newValue: null,
+ commit: function ECO_commit() {
+ this._engine[this._prop] = this._newValue;
+ }
+}
+
+function EngineStore() {
+ this._engines = Services.search.getVisibleEngines().map(this._cloneEngine);
+ this._defaultEngines = Services.search.getDefaultEngines().map(this._cloneEngine);
+
+ this._ops = [];
+
+ // check if we need to disable the restore defaults button
+ var someHidden = this._defaultEngines.some(e => e.hidden);
+ gEngineManagerDialog.showRestoreDefaults(someHidden);
+}
+EngineStore.prototype = {
+ _engines: null,
+ _defaultEngines: null,
+ _ops: null,
+
+ get engines() {
+ return this._engines;
+ },
+ set engines(val) {
+ this._engines = val;
+ return val;
+ },
+
+ _getIndexForEngine: function ES_getIndexForEngine(aEngine) {
+ return this._engines.indexOf(aEngine);
+ },
+
+ _getEngineByName: function ES_getEngineByName(aName) {
+ for (var engine of this._engines)
+ if (engine.name == aName)
+ return engine;
+
+ return null;
+ },
+
+ _cloneEngine: function ES_cloneEngine(aEngine) {
+ var clonedObj={};
+ for (var i in aEngine)
+ clonedObj[i] = aEngine[i];
+ clonedObj.originalEngine = aEngine;
+ return clonedObj;
+ },
+
+ // Callback for Array's some(). A thisObj must be passed to some()
+ _isSameEngine: function ES_isSameEngine(aEngineClone) {
+ return aEngineClone.originalEngine == this.originalEngine;
+ },
+
+ commit: function ES_commit() {
+ var currentEngine = this._cloneEngine(Services.search.currentEngine);
+ for (var i = 0; i < this._ops.length; i++)
+ this._ops[i].commit();
+
+ // Restore currentEngine if it is a default engine that is still visible.
+ // Needed if the user deletes currentEngine and then restores it.
+ if (this._defaultEngines.some(this._isSameEngine, currentEngine) &&
+ !currentEngine.originalEngine.hidden)
+ Services.search.currentEngine = currentEngine.originalEngine;
+ },
+
+ addEngine: function ES_addEngine(aEngine) {
+ this._engines.push(this._cloneEngine(aEngine));
+ },
+
+ moveEngine: function ES_moveEngine(aEngine, aNewIndex) {
+ if (aNewIndex < 0 || aNewIndex > this._engines.length - 1)
+ throw new Error("ES_moveEngine: invalid aNewIndex!");
+ var index = this._getIndexForEngine(aEngine);
+ if (index == -1)
+ throw new Error("ES_moveEngine: invalid engine?");
+
+ if (index == aNewIndex)
+ return; // nothing to do
+
+ // Move the engine in our internal store
+ var removedEngine = this._engines.splice(index, 1)[0];
+ this._engines.splice(aNewIndex, 0, removedEngine);
+
+ this._ops.push(new EngineMoveOp(aEngine, aNewIndex));
+ },
+
+ removeEngine: function ES_removeEngine(aEngine) {
+ var index = this._getIndexForEngine(aEngine);
+ if (index == -1)
+ throw new Error("invalid engine?");
+
+ this._engines.splice(index, 1);
+ this._ops.push(new EngineRemoveOp(aEngine));
+ if (this._defaultEngines.some(this._isSameEngine, aEngine))
+ gEngineManagerDialog.showRestoreDefaults(true);
+ },
+
+ restoreDefaultEngines: function ES_restoreDefaultEngines() {
+ var added = 0;
+
+ for (var i = 0; i < this._defaultEngines.length; ++i) {
+ var e = this._defaultEngines[i];
+
+ // If the engine is already in the list, just move it.
+ if (this._engines.some(this._isSameEngine, e)) {
+ this.moveEngine(this._getEngineByName(e.name), i);
+ } else {
+ // Otherwise, add it back to our internal store
+ this._engines.splice(i, 0, e);
+ this._ops.push(new EngineUnhideOp(e, i));
+ added++;
+ }
+ }
+ gEngineManagerDialog.showRestoreDefaults(false);
+ return added;
+ },
+
+ changeEngine: function ES_changeEngine(aEngine, aProp, aNewValue) {
+ var index = this._getIndexForEngine(aEngine);
+ if (index == -1)
+ throw new Error("invalid engine?");
+
+ this._engines[index][aProp] = aNewValue;
+ this._ops.push(new EngineChangeOp(aEngine, aProp, aNewValue));
+ },
+
+ reloadIcons: function ES_reloadIcons() {
+ this._engines.forEach(function (e) {
+ e.uri = e.originalEngine.uri;
+ });
+ }
+}
+
+function EngineView(aEngineStore) {
+ this._engineStore = aEngineStore;
+}
+EngineView.prototype = {
+ _engineStore: null,
+ tree: null,
+
+ get lastIndex() {
+ return this.rowCount - 1;
+ },
+ get selectedIndex() {
+ var seln = this.selection;
+ if (seln.getRangeCount() > 0) {
+ var min = {};
+ seln.getRangeAt(0, min, {});
+ return min.value;
+ }
+ return -1;
+ },
+ get selectedEngine() {
+ return this._engineStore.engines[this.selectedIndex];
+ },
+
+ // Helpers
+ rowCountChanged: function (index, count) {
+ this.tree.rowCountChanged(index, count);
+ },
+
+ invalidate: function () {
+ this.tree.invalidate();
+ },
+
+ ensureRowIsVisible: function (index) {
+ this.tree.ensureRowIsVisible(index);
+ },
+
+ getSourceIndexFromDrag: function (dataTransfer) {
+ return parseInt(dataTransfer.getData(ENGINE_FLAVOR));
+ },
+
+ // nsITreeView
+ get rowCount() {
+ return this._engineStore.engines.length;
+ },
+
+ getImageSrc: function(index, column) {
+ if (column.id == "engineName" && this._engineStore.engines[index].iconURI)
+ return this._engineStore.engines[index].iconURI.spec;
+ return "";
+ },
+
+ getCellText: function(index, column) {
+ if (column.id == "engineName")
+ return this._engineStore.engines[index].name;
+ else if (column.id == "engineKeyword")
+ return this._engineStore.engines[index].alias;
+ return "";
+ },
+
+ setCellText: function(index, column, value) {
+ if (column.id == "engineKeyword") {
+ gEngineManagerDialog.editKeyword(this._engineStore.engines[index], value)
+ .then(valid => {
+ if (!valid)
+ document.getElementById("engineList").startEditing(index, column);
+ });
+ }
+ },
+
+ setTree: function(tree) {
+ this.tree = tree;
+ },
+
+ canDrop: function(targetIndex, orientation, dataTransfer) {
+ var sourceIndex = this.getSourceIndexFromDrag(dataTransfer);
+ return (sourceIndex != -1 &&
+ sourceIndex != targetIndex &&
+ sourceIndex != targetIndex + orientation);
+ },
+
+ drop: function(dropIndex, orientation, dataTransfer) {
+ var sourceIndex = this.getSourceIndexFromDrag(dataTransfer);
+ var sourceEngine = this._engineStore.engines[sourceIndex];
+
+ if (dropIndex > sourceIndex) {
+ if (orientation == Ci.nsITreeView.DROP_BEFORE)
+ dropIndex--;
+ } else {
+ if (orientation == Ci.nsITreeView.DROP_AFTER)
+ dropIndex++;
+ }
+
+ this._engineStore.moveEngine(sourceEngine, dropIndex);
+ gEngineManagerDialog.showRestoreDefaults(true);
+
+ // Redraw, and adjust selection
+ this.invalidate();
+ this.selection.select(dropIndex);
+ },
+
+ selection: null,
+ getRowProperties: function(index) { return ""; },
+ getCellProperties: function(index, column) { return ""; },
+ getColumnProperties: function(column) { return ""; },
+ isContainer: function(index) { return false; },
+ isContainerOpen: function(index) { return false; },
+ isContainerEmpty: function(index) { return false; },
+ isSeparator: function(index) { return false; },
+ isSorted: function(index) { return false; },
+ getParentIndex: function(index) { return -1; },
+ hasNextSibling: function(parentIndex, index) { return false; },
+ getLevel: function(index) { return 0; },
+ getProgressMode: function(index, column) { },
+ getCellValue: function(index, column) { },
+ toggleOpenState: function(index) { },
+ cycleHeader: function(column) { },
+ selectionChanged: function() { },
+ cycleCell: function(row, column) { },
+ isEditable: function(index, column) { return column.id == "engineKeyword"; },
+ isSelectable: function(index, column) { return false; },
+ setCellValue: function(index, column, value) { },
+};
diff --git a/comm/suite/components/search/content/engineManager.xul b/comm/suite/components/search/content/engineManager.xul
new file mode 100644
index 0000000000..b160afc4eb
--- /dev/null
+++ b/comm/suite/components/search/content/engineManager.xul
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!-- 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/. -->
+
+<?xml-stylesheet href="chrome://global/skin/"?>
+<?xml-stylesheet href="chrome://communicator/skin/search/engineManager.css"?>
+
+<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/search/engineManager.dtd">
+
+<dialog id="engineManager"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ buttons="accept,cancel,extra2"
+ buttonlabelextra2="&restoreDefaults.label;"
+ buttonaccesskeyextra2="&restoreDefaults.accesskey;"
+ onload="gEngineManagerDialog.init();"
+ onunload="gEngineManagerDialog.destroy();"
+ ondialogaccept="gEngineManagerDialog.onOK();"
+ ondialogextra2="gEngineManagerDialog.onRestoreDefaults();"
+ title="&engineManager.title;"
+ style="&engineManager.style;"
+ persist="screenX screenY width height"
+ windowtype="Browser:SearchManager">
+
+ <script src="chrome://communicator/content/search/engineManager.js"/>
+
+ <commandset id="engineManagerCommandSet">
+ <command id="cmd_remove"
+ oncommand="gEngineManagerDialog.remove();"
+ disabled="true"/>
+ <command id="cmd_moveup"
+ oncommand="gEngineManagerDialog.bump(1);"
+ disabled="true"/>
+ <command id="cmd_movedown"
+ oncommand="gEngineManagerDialog.bump(-1);"
+ disabled="true"/>
+ <command id="cmd_editkeyword"
+ oncommand="gEngineManagerDialog.selectEditKeyword();"
+ disabled="true"/>
+ </commandset>
+
+ <keyset id="engineManagerKeyset">
+ <key id="delete" keycode="VK_DELETE" command="cmd_remove"/>
+ </keyset>
+
+ <stringbundleset id="engineManagerBundleset">
+ <stringbundle id="engineManagerBundle" src="chrome://communicator/locale/search/engineManager.properties"/>
+ </stringbundleset>
+
+ <description>&engineManager.intro;</description>
+ <separator class="thin"/>
+ <hbox flex="1">
+ <tree id="engineList"
+ flex="1"
+ rows="10"
+ hidecolumnpicker="true"
+ editable="true"
+ seltype="single"
+ onselect="gEngineManagerDialog.onSelect();"
+ onkeydown="gEngineManagerDialog.onKeydown(event);">
+ <treechildren id="engineChildren" flex="1"
+ ondragstart="onDragEngineStart(event);"/>
+ <treecols>
+ <treecol id="engineName" flex="4" label="&columnLabel.name;"/>
+ <treecol id="engineKeyword" flex="1" label="&columnLabel.keyword;"/>
+ </treecols>
+ </tree>
+ <vbox>
+ <spacer flex="1"/>
+ <button id="edit"
+ label="&edit.label;"
+ accesskey="&edit.accesskey;"
+ command="cmd_editkeyword"/>
+ <button id="up"
+ label="&up.label;"
+ accesskey="&up.accesskey;"
+ command="cmd_moveup"/>
+ <button id="down"
+ label="&dn.label;"
+ accesskey="&dn.accesskey;"
+ command="cmd_movedown"/>
+ <spacer flex="1"/>
+ <button id="remove"
+ label="&remove.label;"
+ accesskey="&remove.accesskey;"
+ command="cmd_remove"/>
+ </vbox>
+ </hbox>
+ <hbox>
+ <checkbox id="enableSuggest"
+ label="&enableSuggest.label;"
+ accesskey="&enableSuggest.accesskey;"/>
+ </hbox>
+ <hbox>
+ <label id="addEngines" class="text-link" value="&addEngine.label;"
+ onclick="if (event.button == 0) { gEngineManagerDialog.loadAddEngines(); }"/>
+ </hbox>
+</dialog>
diff --git a/comm/suite/components/search/content/search-panel.js b/comm/suite/components/search/content/search-panel.js
new file mode 100644
index 0000000000..c6ab43c082
--- /dev/null
+++ b/comm/suite/components/search/content/search-panel.js
@@ -0,0 +1,86 @@
+/* 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/. */
+
+var {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const {FormHistory} = ChromeUtils.import("resource://gre/modules/FormHistory.jsm");
+
+const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+const SEARCH_ENGINE_TOPIC = "browser-search-engine-modified";
+var isPB, menulist, textbox;
+
+function Startup() {
+ menulist = document.getElementById("sidebar-search-engines");
+ textbox = document.getElementById("sidebar-search-text");
+ isPB = top.gPrivate;
+ if (isPB)
+ textbox.searchParam += "|private";
+
+ LoadEngineList();
+ Services.obs.addObserver(engineObserver, SEARCH_ENGINE_TOPIC, true);
+}
+
+function LoadEngineList() {
+ var currentEngineName = Services.search.currentEngine.name;
+ // Make sure the popup is empty.
+ menulist.removeAllItems();
+
+ var engines = Services.search.getVisibleEngines();
+ for (let engine of engines) {
+ let name = engine.name;
+ let menuitem = menulist.appendItem(name, name);
+ menuitem.setAttribute("class", "menuitem-iconic");
+ if (engine.iconURI)
+ menuitem.setAttribute("image", engine.iconURI.spec);
+ menuitem.engine = engine;
+ if (engine.name == currentEngineName) {
+ // Set selection to the current default engine.
+ menulist.selectedItem = menuitem;
+ }
+ }
+ // If the current engine isn't in the list any more, select the first item.
+ if (menulist.selectedIndex < 0)
+ menulist.selectedIndex = 0;
+}
+
+function SelectEngine() {
+ if (menulist.selectedItem)
+ Services.search.currentEngine = menulist.selectedItem.engine;
+ Services.obs.notifyObservers(null, SEARCH_ENGINE_TOPIC, "engine-current");
+}
+
+function doSearch() {
+ var textValue = textbox.value;
+
+ // Save the current value in the form history (shared with the search bar)
+ // except when in Private Browsing mode.
+
+ if (textValue && !isPB) {
+ FormHistory.update({
+ op: "bump",
+ fieldname: "searchbar-history",
+ value: textValue
+ }, {
+ handleError: function(aError) {
+ Cu.reportError("Saving search to form history failed: " + aError.message);
+ }
+ });
+ }
+
+ var where = Services.prefs.getBoolPref("browser.search.openintab") ? "tab" : "current";
+ var submission = Services.search.currentEngine.getSubmission(textValue);
+ openUILinkIn(submission.uri.spec, where, null, submission.postData);
+}
+
+var engineObserver = {
+ QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver,
+ Ci.nsISupportsWeakReference]),
+
+ observe: function(aEngine, aTopic, aVerb) {
+ if (aTopic == SEARCH_ENGINE_TOPIC) {
+ // Right now, always just rebuild the list after any modification.
+ LoadEngineList();
+ }
+ }
+}
diff --git a/comm/suite/components/search/content/search-panel.xul b/comm/suite/components/search/content/search-panel.xul
new file mode 100644
index 0000000000..8f7c86285e
--- /dev/null
+++ b/comm/suite/components/search/content/search-panel.xul
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!-- 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/. -->
+
+<?xml-stylesheet href="chrome://communicator/content/search/searchbarBindings.css"?>
+<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://communicator/skin/search/search.css" type="text/css"?>
+
+<!DOCTYPE page SYSTEM "chrome://communicator/locale/search/search-panel.dtd" >
+<page id="searchPanel"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ onload="Startup();"
+ elementtofocus="sidebar-search-text">
+
+ <script src="chrome://global/content/globalOverlay.js"/>
+ <script src="chrome://communicator/content/search/search-panel.js"/>
+ <script src="chrome://communicator/content/utilityOverlay.js"/>
+
+ <popupset id="sidebarPopupset">
+ <panel id="PopupAutoComplete"
+ type="autocomplete"
+ noautofocus="true"/>
+ </popupset>
+
+ <menulist id="sidebar-search-engines"
+ oncommand="SelectEngine(this);"/>
+
+ <hbox align="center">
+ <textbox id="sidebar-search-text" flex="1"
+ class="search-textbox padded"
+ ontextentered="doSearch();"
+ placeholder="&search.placeholder;"
+ type="autocomplete"
+ inputtype="search"
+ autocompletepopup="PopupAutoComplete"
+ autocompletesearch="search-autocomplete"
+ autocompletesearchparam="searchbar-history"
+ maxrows="10"
+ completeselectedindex="true"
+ tabscrolling="true"/>
+ <button id="searchButton" label="&search.button.label;"
+ oncommand="doSearch();"/>
+ </hbox>
+ <button id="managerButton"
+ label="&search.engineManager.label;"
+ oncommand="window.top.OpenSearchEngineManager();"/>
+</page>
diff --git a/comm/suite/components/search/content/search.xml b/comm/suite/components/search/content/search.xml
new file mode 100644
index 0000000000..8e89824314
--- /dev/null
+++ b/comm/suite/components/search/content/search.xml
@@ -0,0 +1,739 @@
+<?xml version="1.0"?>
+<!-- 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/. -->
+
+<!DOCTYPE bindings [
+ <!ENTITY % searchBarDTD SYSTEM "chrome://communicator/locale/search/searchbar.dtd">
+ %searchBarDTD;
+ <!ENTITY % textcontextDTD SYSTEM "chrome://communicator/locale/utilityOverlay.dtd">
+ %textcontextDTD;
+ <!ENTITY % navigatorDTD SYSTEM "chrome://navigator/locale/navigator.dtd">
+ %navigatorDTD;
+]>
+
+<bindings id="SearchBindings"
+ xmlns="http://www.mozilla.org/xbl"
+ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:xbl="http://www.mozilla.org/xbl">
+
+ <binding id="searchbar">
+ <resources>
+ <stylesheet src="chrome://communicator/content/search/searchbarBindings.css"/>
+ <stylesheet src="chrome://communicator/skin/search/searchbar.css"/>
+ </resources>
+ <content>
+ <xul:stringbundle src="chrome://communicator/locale/search/search.properties"
+ anonid="searchbar-stringbundle"/>
+ <!--
+ There is a dependency between "maxrows" attribute and
+ "SuggestAutoComplete._historyLimit" (nsSearchSuggestions.js). Changing
+ one of them requires changing the other one.
+ -->
+ <xul:textbox class="searchbar-textbox"
+ anonid="searchbar-textbox"
+ type="autocomplete"
+ inputtype="search"
+ flex="1"
+ autocompletepopup="_child"
+ autocompletesearch="search-autocomplete"
+ autocompletesearchparam="searchbar-history"
+ maxrows="10"
+ completeselectedindex="true"
+ showcommentcolumn="true"
+ tabscrolling="true"
+ xbl:inherits="disabled">
+ <xul:box>
+ <xul:toolbarbutton class="plain searchbar-engine-button"
+ type="menu"
+ anonid="searchbar-engine-button"
+ xbl:inherits="image">
+ <xul:menupopup class="searchbar-popup"
+ anonid="searchbar-popup">
+ <xul:menuseparator/>
+ <xul:menuitem class="open-engine-manager"
+ anonid="open-engine-manager"
+ label="&cmd_engineManager.label;"
+ oncommand="OpenSearchEngineManager();"/>
+ </xul:menupopup>
+ </xul:toolbarbutton>
+ </xul:box>
+ <xul:hbox class="search-go-container">
+ <xul:image class="search-go-button"
+ anonid="search-go-button"
+ onclick="handleSearchCommand(event);"
+ tooltiptext="&searchEndCap.label;"/>
+ </xul:hbox>
+ <xul:panel anonid="searchPopupAutoComplete"
+ type="autocomplete"
+ noautofocus="true"/>
+ </xul:textbox>
+ </content>
+
+ <implementation implements="nsIObserver, nsIBrowserSearchInitObserver, nsISearchInstallCallback">
+ <constructor><![CDATA[
+ if (this.parentNode.parentNode.localName == "toolbarpaletteitem")
+ return;
+
+ if (this.usePrivateBrowsing)
+ this._textbox.searchParam += "|private";
+
+ Services.obs.addObserver(this, "browser-search-engine-modified");
+ Services.obs.addObserver(this, "browser-search-service");
+ this._initialized = true;
+
+ Services.search.init(this);
+ ]]></constructor>
+
+ <destructor><![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)
+ this._textbox.mController.input = null;
+ ]]></destructor>
+
+ <field name="_stringBundle">document.getAnonymousElementByAttribute(this,
+ "anonid", "searchbar-stringbundle");</field>
+ <field name="_textboxInitialized">false</field>
+ <field name="_textbox">document.getAnonymousElementByAttribute(this,
+ "anonid", "searchbar-textbox");</field>
+ <field name="_popup">document.getAnonymousElementByAttribute(this,
+ "anonid", "searchbar-popup");</field>
+ <field name="searchButton">document.getAnonymousElementByAttribute(this,
+ "anonid", "searchbar-engine-button");</field>
+ <field name="usePrivateBrowsing" readonly="true">
+ window.QueryInterface(Ci.nsIInterfaceRequestor)
+ .getInterface(Ci.nsIWebNavigation)
+ .QueryInterface(Ci.nsILoadContext)
+ .usePrivateBrowsing
+ </field>
+ <field name="_initialized">false</field>
+ <field name="_engines">null</field>
+ <field name="_needToBuildPopup">true</field>
+ <field name="FormHistory" readonly="true"><![CDATA[
+ (ChromeUtils.import("resource://gre/modules/FormHistory.jsm", {}))
+ .FormHistory;
+ ]]>
+ </field>
+ <property name="engines" readonly="true">
+ <getter><![CDATA[
+ if (!this._engines)
+ this._engines = Services.search.getVisibleEngines();
+ return this._engines;
+ ]]></getter>
+ </property>
+
+ <property name="currentEngine">
+ <setter><![CDATA[
+ Services.search.currentEngine = val;
+ Services.obs.notifyObservers(null, "browser-search-engine-modified",
+ "engine-current");
+ return val;
+ ]]></setter>
+ <getter><![CDATA[
+ var currentEngine = Services.search.currentEngine;
+ // Return a dummy engine if there is no currentEngine
+ return currentEngine || {name: "", uri: null};
+ ]]></getter>
+ </property>
+
+ <!-- textbox is used by sanitize.js to clear the undo history when
+ clearing form information. -->
+ <property name="textbox" readonly="true"
+ onget="return this._textbox;"/>
+
+ <property name="value" onget="return this._textbox.value;"
+ onset="return this._textbox.value = val;"/>
+
+ <method name="focus">
+ <body><![CDATA[
+ this._textbox.focus();
+ ]]></body>
+ </method>
+
+ <method name="select">
+ <body><![CDATA[
+ this._textbox.select();
+ ]]></body>
+ </method>
+
+ <method name="onInitComplete">
+ <parameter name="aStatus"/>
+ <body><![CDATA[
+ if (!this._initialized)
+ return;
+ if (Components.isSuccessCode(aStatus)) {
+ // Refresh the display (updating icon, etc)
+ this.updateDisplay();
+ } else {
+ Cu.reportError("Cannot initialize search service, bailing out: " + aStatus);
+ }
+ ]]></body>
+ </method>
+
+ <method name="onSuccess">
+ <parameter name="aEngine"/>
+ <body><![CDATA[
+ this.currentEngine = aEngine;
+ ]]></body>
+ </method>
+
+ <method name="onError">
+ <parameter name="aErrorCode"/>
+ <body><![CDATA[
+ ]]></body>
+ </method>
+
+ <method name="observe">
+ <parameter name="aEngine"/>
+ <parameter name="aTopic"/>
+ <parameter name="aVerb"/>
+ <body><![CDATA[
+ if (aTopic == "browser-search-engine-modified" ||
+ (aTopic == "browser-search-service" && aVerb == "init-complete")) {
+ switch (aVerb) {
+ case "engine-removed":
+ this.offerNewEngine(aEngine);
+ break;
+ case "engine-added":
+ this.hideNewEngine(aEngine);
+ break;
+ case "engine-current":
+ // The current engine was changed. Rebuilding the menu appears to
+ // confuse its idea of whether it should be open when it's just
+ // been clicked, so we force it to close now.
+ this._popup.hidePopup();
+ break;
+ case "engine-changed":
+ // An engine was removed (or hidden) or added, or an icon was
+ // changed. Do nothing special.
+ }
+
+ // Make sure the engine list is refetched next time it's needed
+ this._engines = null;
+
+ // Rebuild the popup and update the display after any modification.
+ this.rebuildPopup();
+ this.updateDisplay();
+ }
+ ]]></body>
+ </method>
+
+ <!-- There are two seaprate lists of search engines, whose uses intersect
+ in this file. The search service (nsIBrowserSearchService and
+ nsSearchService.js) maintains a list of Engine objects which is used to
+ populate the searchbox list of available engines and to perform queries.
+ That list is accessed here via this.SearchService, and it's that sort of
+ Engine that is passed to this binding's observer as aEngine.
+
+ In addition, navigator.js fills two lists of autodetected search engines
+ (browser.engines and browser.hiddenEngines) as properties of
+ mCurrentBrowser. Those lists contain unnamed JS objects of the form
+ { uri:, title:, icon: }, and that's what the searchbar uses to determine
+ whether to show any "Add <EngineName>" menu items in the drop-down.
+
+ The two types of engines are currently related by their identifying
+ titles (the Engine object's 'name'), although that may change; see bug
+ 335102. -->
+
+ <!-- If the engine that was just removed from the searchbox list was
+ autodetected on this page, move it to each browser's active list so it
+ will be offered to be added again. -->
+ <method name="offerNewEngine">
+ <parameter name="aEngine"/>
+ <body><![CDATA[
+ for (var browser of getBrowser().browsers) {
+ if (browser.hiddenEngines) {
+ // XXX This will need to be changed when engines are identified by
+ // URL rather than title; see bug 335102.
+ var removeTitle = aEngine.wrappedJSObject.name;
+ for (var i = 0; i < browser.hiddenEngines.length; i++) {
+ if (browser.hiddenEngines[i].title == removeTitle) {
+ if (!browser.engines)
+ browser.engines = [];
+ browser.engines.push(browser.hiddenEngines[i]);
+ browser.hiddenEngines.splice(i, 1);
+ break;
+ }
+ }
+ }
+ }
+ this.updateSearchButton();
+ ]]></body>
+ </method>
+
+ <!-- If the engine that was just added to the searchbox list was
+ autodetected on this page, move it to each browser's hidden list so it is
+ no longer offered to be added. -->
+ <method name="hideNewEngine">
+ <parameter name="aEngine"/>
+ <body><![CDATA[
+ for (var browser of getBrowser().browsers) {
+ if (browser.engines) {
+ // XXX This will need to be changed when engines are identified by
+ // URL rather than title; see bug 335102.
+ var removeTitle = aEngine.wrappedJSObject.name;
+ for (var i = 0; i < browser.engines.length; i++) {
+ if (browser.engines[i].title == removeTitle) {
+ if (!browser.hiddenEngines)
+ browser.hiddenEngines = [];
+ browser.hiddenEngines.push(browser.engines[i]);
+ browser.engines.splice(i, 1);
+ break;
+ }
+ }
+ }
+ }
+ this.updateSearchButton();
+ ]]></body>
+ </method>
+
+ <method name="updateSearchButton">
+ <body><![CDATA[
+ var engines = getBrowser().mCurrentBrowser.engines;
+ if (engines && engines.length)
+ this.searchButton.setAttribute("addengines", "true");
+ else
+ this.searchButton.removeAttribute("addengines");
+ ]]></body>
+ </method>
+
+ <method name="updateDisplay">
+ <body><![CDATA[
+ var uri = this.currentEngine.iconURI;
+ this.setAttribute("image", uri ? uri.spec : "");
+
+ var name = this.currentEngine.name;
+ var text = this._stringBundle.getFormattedString("searchtip", [name]);
+ this._textbox.placeholder = name;
+ this._textbox.tooltipText = text;
+ ]]></body>
+ </method>
+
+ <!-- Rebuilds the dynamic portion of the popup menu (i.e., the menu items
+ for new search engines that can be added to the available list). This
+ is called each time the popup is shown.
+ -->
+ <method name="rebuildPopupDynamic">
+ <body><![CDATA[
+ // We might not have added the main popup items yet, do that first
+ // if needed.
+ if (this._needToBuildPopup)
+ this.rebuildPopup();
+
+ var popup = this._popup;
+ // Clear any addengine menuitems, including addengine-item entries and
+ // the addengine-separator. Work backward to avoid invalidating the
+ // indexes as items are removed.
+ var items = popup.childNodes;
+ for (var i = items.length - 1; i >= 0; i--) {
+ if (items[i].classList.contains("addengine-item") ||
+ items[i].classList.contains("addengine-separator"))
+ items[i].remove();
+ }
+
+ var addengines = getBrowser().mCurrentBrowser.engines;
+ if (addengines && addengines.length > 0) {
+ const kXULNS =
+ "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+ // Find the (first) separator in the remaining menu, or the first item
+ // if no separators are present.
+ var insertLocation = popup.firstChild;
+ while (insertLocation.nextSibling &&
+ insertLocation.localName != "menuseparator") {
+ insertLocation = insertLocation.nextSibling;
+ }
+ if (insertLocation.localName != "menuseparator")
+ insertLocation = popup.firstChild;
+
+ var separator = document.createElementNS(kXULNS, "menuseparator");
+ separator.setAttribute("class", "addengine-separator");
+ popup.insertBefore(separator, insertLocation);
+
+ // Insert the "add this engine" items.
+ for (var i = 0; i < addengines.length; i++) {
+ var engineInfo = addengines[i];
+ var labelStr =
+ this._stringBundle.getFormattedString("cmd_addFoundEngine",
+ [engineInfo.title]);
+ var menuitem = document.createElementNS(kXULNS, "menuitem");
+ menuitem.setAttribute("class", "menuitem-iconic addengine-item");
+ menuitem.setAttribute("label", labelStr);
+ menuitem.setAttribute("tooltiptext", engineInfo.uri);
+ menuitem.setAttribute("uri", engineInfo.uri);
+ if (engineInfo.icon)
+ menuitem.setAttribute("image", engineInfo.icon);
+ menuitem.setAttribute("title", engineInfo.title);
+ popup.insertBefore(menuitem, insertLocation);
+ }
+ }
+ ]]></body>
+ </method>
+
+ <!-- Rebuilds the list of visible search engines in the menu. Does not remove
+ or update any dynamic entries (i.e., "Add this engine" items) nor the
+ Manage Engines item. This is called by the observer when the list of
+ visible engines, or the currently selected engine, has changed.
+ -->
+ <method name="rebuildPopup">
+ <body><![CDATA[
+ var popup = this._popup;
+
+ // Clear the popup, down to the first separator
+ while (popup.firstChild && popup.firstChild.localName != "menuseparator")
+ popup.firstChild.remove();
+
+ const kXULNS =
+ "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+ var engines = this.engines;
+ for (var i = engines.length - 1; i >= 0; --i) {
+ var menuitem = document.createElementNS(kXULNS, "menuitem");
+ var name = engines[i].name;
+ menuitem.setAttribute("label", name);
+ menuitem.setAttribute("class", "menuitem-iconic searchbar-engine-menuitem menuitem-with-favicon");
+ // Since this menu is rebuilt by the observer method whenever a new
+ // engine is selected, the "selected" attribute does not need to be
+ // explicitly cleared anywhere.
+ if (engines[i] == this.currentEngine)
+ menuitem.setAttribute("selected", "true");
+ var tooltip = this._stringBundle.getFormattedString("searchtip", [name]);
+ menuitem.setAttribute("tooltiptext", tooltip);
+ if (engines[i].iconURI)
+ menuitem.setAttribute("image", engines[i].iconURI.spec);
+ popup.insertBefore(menuitem, popup.firstChild);
+ menuitem.engine = engines[i];
+ }
+
+ this._needToBuildPopup = false;
+ ]]></body>
+ </method>
+
+ <method name="selectEngine">
+ <parameter name="aEvent"/>
+ <parameter name="isNextEngine"/>
+ <body><![CDATA[
+ // Find the new index
+ var newIndex = this.engines.indexOf(this.currentEngine);
+ newIndex += isNextEngine ? 1 : -1;
+
+ if (newIndex >= 0 && newIndex < this.engines.length)
+ this.currentEngine = this.engines[newIndex];
+
+ aEvent.preventDefault();
+ aEvent.stopPropagation();
+ ]]></body>
+ </method>
+
+ <method name="handleSearchCommand">
+ <parameter name="aEvent"/>
+ <body><![CDATA[
+ var textBox = this._textbox;
+ var textValue = textBox.value;
+
+ var where = "current";
+ if (aEvent && aEvent.originalTarget.getAttribute("anonid") == "search-go-button") {
+ if (aEvent.button == 2)
+ return;
+ where = whereToOpenLink(aEvent, false, true);
+ }
+ else {
+ var newTabPref = Services.prefs.getBoolPref("browser.search.openintab");
+ if ((aEvent && aEvent.altKey) ^ newTabPref)
+ where = "tabfocused";
+ }
+
+ this.doSearch(textValue, where);
+ ]]></body>
+ </method>
+
+ <method name="doSearch">
+ <parameter name="aData"/>
+ <parameter name="aWhere"/>
+ <body><![CDATA[
+ var textBox = this._textbox;
+
+ // Save the current value in the form history.
+ if (aData && !this.usePrivateBrowsing && this.FormHistory.enabled) {
+ this.FormHistory.update(
+ { op: "bump",
+ fieldname: textBox.getAttribute("autocompletesearchparam"),
+ value: aData },
+ { handleError(aError) {
+ Cu.reportError("Saving search to form history failed: " + aError.message);
+ }});
+ }
+
+ // null parameter below specifies HTML response for search
+ var submission = this.currentEngine.getSubmission(aData);
+ openUILinkIn(submission.uri.spec, aWhere, null, submission.postData);
+ ]]></body>
+ </method>
+ </implementation>
+
+ <handlers>
+ <handler event="command"><![CDATA[
+ const target = event.originalTarget;
+ if (target.engine) {
+ this.currentEngine = target.engine;
+ } else if (target.classList.contains("addengine-item")) {
+ // We only detect OpenSearch files
+ var type = Ci.nsISearchEngine.DATA_XML;
+ // Select the installed engine if the installation succeeds
+ Services.search.addEngine(target.getAttribute("uri"), type,
+ target.getAttribute("image"), false,
+ this);
+ }
+ else
+ return;
+
+ this.focus();
+ this.select();
+ ]]></handler>
+
+ <handler event="popupshowing" action="this.rebuildPopupDynamic();"/>
+
+ <handler event="DOMMouseScroll"
+ phase="capturing"
+ modifiers="accel"
+ action="this.selectEngine(event, (event.detail > 0));"/>
+
+ <handler event="focus"><![CDATA[
+ // Speculatively connect to the current engine's search URI (and
+ // suggest URI, if different) to reduce request latency.
+ this.currentEngine.speculativeConnect({window: window});
+ ]]></handler>
+ </handlers>
+ </binding>
+
+ <binding id="search-textbox"
+ extends="chrome://global/content/bindings/autocomplete.xml#autocomplete">
+ <implementation implements="nsIObserver">
+ <constructor><![CDATA[
+ var bindingParent = document.getBindingParent(this);
+ if (bindingParent && bindingParent.parentNode.parentNode.localName ==
+ "toolbarpaletteitem")
+ return;
+
+ if (Services.prefs.getBoolPref("browser.urlbar.clickSelectsAll"))
+ this.setAttribute("clickSelectsAll", true);
+
+ // Add items to context menu and attach controller to handle them
+ this.controllers.appendController(this.searchbarController);
+ // bindingParent is not set in the sidebar because there is no
+ // searchbar created in it.
+ if (bindingParent) {
+ bindingParent._textboxInitialized = true;
+ }
+
+ // Add observer for suggest preference
+ Services.prefs.addObserver("browser.search.suggest.enabled", this);
+
+ this._inputBox.setAttribute("suggestchecked", this._suggestEnabled);
+ ]]></constructor>
+
+ <destructor><![CDATA[
+ Services.prefs.removeObserver("browser.search.suggest.enabled", this);
+
+ // Because XBL and the customize toolbar code interacts poorly,
+ // there may not be anything to remove here
+ try {
+ this.controllers.removeController(this.searchbarController);
+ } catch (ex) { }
+ ]]></destructor>
+ <field name="_inputBox">
+ document.getAnonymousElementByAttribute(this, "anonid", "textbox-input-box");
+ </field>
+ <field name="_suggestEnabled">
+ Services.prefs.getBoolPref("browser.search.suggest.enabled");
+ </field>
+
+ <method name="observe">
+ <parameter name="aSubject"/>
+ <parameter name="aTopic"/>
+ <parameter name="aData"/>
+ <body><![CDATA[
+ if (aTopic == "nsPref:changed") {
+ this._suggestEnabled =
+ Services.prefs.getBoolPref("browser.search.suggest.enabled");
+ this._inputBox.setAttribute("suggestchecked", this._suggestEnabled);
+ }
+ ]]></body>
+ </method>
+
+ <field name="FormHistory" readonly="true"><![CDATA[
+ (ChromeUtils.import("resource://gre/modules/FormHistory.jsm", {}))
+ .FormHistory;
+ ]]>
+ </field>
+
+ <!-- nsIController -->
+ <field name="searchbarController" readonly="true"><![CDATA[({
+ supportsCommand: function(aCommand) {
+ switch (aCommand) {
+ case "cmd_pasteAndSearch":
+ case "cmd_clearhistory":
+ case "cmd_togglesuggest":
+ return true;
+ }
+ return false;
+ },
+
+ isCommandEnabled: function(aCommand) {
+ switch (aCommand) {
+ case "cmd_pasteAndSearch":
+ return document.commandDispatcher
+ .getControllerForCommand("cmd_paste")
+ .isCommandEnabled("cmd_paste");
+ case "cmd_clearhistory":
+ case "cmd_togglesuggest":
+ return true;
+ }
+ return false;
+ },
+
+ doCommand: function (aCommand) {
+ switch (aCommand) {
+ case "cmd_pasteAndSearch":
+ this.select();
+ goDoCommand("cmd_paste");
+ this.onTextEntered();
+ break;
+ case "cmd_clearhistory":
+ this.FormHistory.update(
+ { op : "remove", fieldname : "searchbar-history" },
+ null);
+ this.value = "";
+ break;
+ case "cmd_togglesuggest":
+ // The pref observer will update _suggestEnabled and the menu
+ // checkmark.
+ Services.prefs.setBoolPref("browser.search.suggest.enabled",
+ !this._suggestEnabled);
+ break;
+ default:
+ // do nothing with unrecognized command
+ }
+ }.bind(this)
+ })]]></field>
+ </implementation>
+
+ <handlers>
+ <handler event="dragover">
+ <![CDATA[
+ var types = event.dataTransfer.types;
+ if (types.includes("text/plain") || types.includes("text/x-moz-text-internal"))
+ event.preventDefault();
+ ]]>
+ </handler>
+
+ <handler event="drop">
+ <![CDATA[
+ var dataTransfer = event.dataTransfer;
+ var data = dataTransfer.getData("text/plain");
+ if (!data)
+ data = dataTransfer.getData("text/x-moz-text-internal");
+ if (data) {
+ event.preventDefault();
+ this.value = data;
+ this.onTextEntered();
+ }
+ ]]>
+ </handler>
+ </handlers>
+ </binding>
+
+ <binding id="searchbar-textbox"
+ extends="chrome://communicator/content/search/search.xml#search-textbox">
+ <implementation>
+ <method name="openSearch">
+ <body>
+ <![CDATA[
+ // Don't open search popup if history popup is open
+ if (!this.popupOpen) {
+ document.getBindingParent(this).searchButton.open = true;
+ return false;
+ }
+ return true;
+ ]]>
+ </body>
+ </method>
+
+ <!-- override |onTextEntered| in autocomplete.xml -->
+ <method name="onTextEntered">
+ <parameter name="aEvent"/>
+ <body><![CDATA[
+ var evt = aEvent || this.mEnterEvent;
+ document.getBindingParent(this).handleSearchCommand(evt);
+ this.mEnterEvent = null;
+ ]]></body>
+ </method>
+ </implementation>
+
+ <handlers>
+ <handler event="keypress" keycode="VK_UP" modifiers="accel"
+ phase="capturing"
+ action="document.getBindingParent(this).selectEngine(event, false);"/>
+
+ <handler event="keypress" keycode="VK_DOWN" modifiers="accel"
+ phase="capturing"
+ action="document.getBindingParent(this).selectEngine(event, true);"/>
+
+ <handler event="keypress" keycode="VK_DOWN" modifiers="alt"
+ phase="capturing"
+ action="return this.openSearch();"/>
+
+ <handler event="keypress" keycode="VK_UP" modifiers="alt"
+ phase="capturing"
+ action="return this.openSearch();"/>
+
+ <handler event="keypress" keycode="VK_F4" phase="capturing">
+ <![CDATA[
+ return (AppConstants.platform == "macosx") || this.openSearch()
+ ]]></handler>
+ </handlers>
+ </binding>
+
+ <binding id="input-box-search" extends="chrome://global/content/bindings/textbox.xml#input-box">
+ <content context="_child">
+ <children/>
+ <xul:menupopup anonid="input-box-contextmenu"
+ class="textbox-contextmenu"
+ onpopupshowing="var input =
+ this.parentNode.getElementsByAttribute('anonid', 'input')[0];
+ if (document.commandDispatcher.focusedElement != input)
+ input.focus();
+ this.parentNode._doPopupItemEnabling(this);"
+ oncommand="var cmd = event.originalTarget.getAttribute('cmd'); if (cmd) { this.parentNode.doCommand(cmd); event.stopPropagation(); }">
+ <xul:menuitem label="&undoCmd.label;" accesskey="&undoCmd.accesskey;" cmd="cmd_undo"/>
+ <xul:menuseparator/>
+ <xul:menuitem label="&cutCmd.label;" accesskey="&cutCmd.accesskey;" cmd="cmd_cut"/>
+ <xul:menuitem label="&copyCmd.label;" accesskey="&copyCmd.accesskey;" cmd="cmd_copy"/>
+ <xul:menuitem label="&pasteCmd.label;" accesskey="&pasteCmd.accesskey;" cmd="cmd_paste"/>
+ <xul:menuitem label="&pasteSearchCmd.label;" accesskey="&pasteSearchCmd.accesskey;" cmd="cmd_pasteAndSearch"/>
+ <xul:menuitem label="&deleteCmd.label;" accesskey="&deleteCmd.accesskey;" cmd="cmd_delete"/>
+ <xul:menuseparator/>
+ <xul:menuitem label="&selectAllCmd.label;" accesskey="&selectAllCmd.accesskey;" cmd="cmd_selectAll"/>
+ <xul:menuseparator/>
+ <xul:menuitem label="&clearHistoryCmd.label;" accesskey="&clearHistoryCmd.accesskey;" cmd="cmd_clearhistory"/>
+ <xul:menuitem label="&showSuggestionsCmd.label;"
+ accesskey="&showSuggestionsCmd.accesskey;"
+ anonid="toggle-suggest-item"
+ type="checkbox"
+ autocheck="false"
+ xbl:inherits="checked=suggestchecked"
+ cmd="cmd_togglesuggest"/>
+ </xul:menupopup>
+ </content>
+ </binding>
+</bindings>
diff --git a/comm/suite/components/search/content/searchbarBindings.css b/comm/suite/components/search/content/searchbarBindings.css
new file mode 100644
index 0000000000..3fefc9365a
--- /dev/null
+++ b/comm/suite/components/search/content/searchbarBindings.css
@@ -0,0 +1,21 @@
+/* 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/. */
+
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+.search-textbox {
+ -moz-binding: url("chrome://communicator/content/search/search.xml#search-textbox");
+}
+
+.searchbar-textbox {
+ -moz-binding: url("chrome://communicator/content/search/search.xml#searchbar-textbox");
+}
+
+.textbox-input-box {
+ -moz-binding: url("chrome://communicator/content/search/search.xml#input-box-search");
+}
+
+.autocomplete-history-dropmarker {
+ display: none;
+}
diff --git a/comm/suite/components/search/jar.mn b/comm/suite/components/search/jar.mn
new file mode 100644
index 0000000000..d6ec19c78e
--- /dev/null
+++ b/comm/suite/components/search/jar.mn
@@ -0,0 +1,16 @@
+# 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/.
+
+comm.jar:
+% content communicator %content/communicator/ contentaccessible=yes
+ content/communicator/search/engineManager.js (content/engineManager.js)
+ content/communicator/search/engineManager.xul (content/engineManager.xul)
+ content/communicator/search/search.xml (content/search.xml)
+ content/communicator/search/searchbarBindings.css (content/searchbarBindings.css)
+ content/communicator/search/search-panel.js (content/search-panel.js)
+ content/communicator/search/search-panel.xul (content/search-panel.xul)
+
+ searchplugins/ (searchplugins/**)
+
+% resource search-plugins %searchplugins/
diff --git a/comm/suite/components/search/moz.build b/comm/suite/components/search/moz.build
new file mode 100644
index 0000000000..d988c0ff9b
--- /dev/null
+++ b/comm/suite/components/search/moz.build
@@ -0,0 +1,7 @@
+# -*- 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"]
diff --git a/comm/suite/components/search/searchplugins/allegro-pl.xml b/comm/suite/components/search/searchplugins/allegro-pl.xml
new file mode 100644
index 0000000000..e6a9f97b4e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/allegro-pl.xml
@@ -0,0 +1,18 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Allegro</ShortName>
+<Description>Wyszukiwanie w aukcjach Allegro</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAFr/OgBa/zkAWv84AFr/OABa/zgAWv85AFr/PABa/wn///8A////AP///wD///8A////AABa/xYAWv+4AFr//wBa//8AWv//AFr//wBa//8AWv//AFr//wBa//8AWv+H////AP///wD///8A////AP///wAAWv/wAFr//wBa//8AWv//AFr//wBa//8AWv//AFr//wBa//8AWv//AFr/gv///wD///8A////AP///wAAWv9MAFr//wBa//8AWv//AFr/ewBa/zUAWv82AFr/NABa/2YAWv//AFr//wBa/4H///8A////AP///wD///8AAFr/gwBa//8AWv//AFr/if///wD///8A////AP///wAAWv8yAFr//wBa//8AWv+A////AP///wD///8A////AABa/4MAWv//AFr//wBa/8L///8A////AP///wD///8AAFr/MQBa//8AWv//AFr/gP///wD///8A////AP///wAAWv8oAFr//wBa//8AWv//AFr/xABa/34AWv9/AFr/fQBa/5sAWv//AFr//wBa/4D///8A////AP///wD///8A////AABa/5QAWv//AFr//wBa//8AWv//AFr//wBa//8AWv//AFr//wBa//8AWv+A////AP///wD///8A////AP///wD///8AAFr/NwBa/7UAWv//AFr//wBa//8AWv//AFr//wBa//8AWv//AFr/gf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AABa/2IAWv//AFr//wBa/4L///8A////AP///wD///8A////AP///wAAWv/RAFr/ywBa/0b///8A////AABa/woAWv/mAFr//wBa//8AWv85////AP///wD///8A////AP///wD///8AAFr//wBa//8AWv//AFr//wBa//8AWv//AFr//wBa//8AWv/v////AP///wD///8A////AP///wD///8A////AABa/5gAWv//AFr//wBa//8AWv//AFr//wBa//8AWv//AFr/J////wD///8A////AP///wD///8A////AP///wD///8AAFr/FgBa/14AWv+CAFr/gQBa/4IAWv9eAFr/BP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AADwAwAA4AMAAOPjAADD4wAAw+MAAOHDAADgAwAA+AMAAP/jAADzxwAA8AcAAPAPAAD+PwAA//8AAA==</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://allegro.pl/listing/listing.php"
+ resultdomain="allegro.pl">
+ <Param name="string" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://allegro.pl/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-br.xml b/comm/suite/components/search/searchplugins/amazon-br.xml
new file mode 100644
index 0000000000..4eb17f368d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-br.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.com.br</ShortName>
+<Description>Pesquisa Amazon.com.br</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.com.br/exec/obidos/external-search/"
+ resultdomain="amazon.com.br">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.com.br/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-de.xml b/comm/suite/components/search/searchplugins/amazon-de.xml
new file mode 100644
index 0000000000..b25a056ced
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-de.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.de</ShortName>
+<Description>Amazon.de Suche</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.de/exec/obidos/external-search/"
+ resultdomain="amazon.de">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.de/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-en-GB.xml b/comm/suite/components/search/searchplugins/amazon-en-GB.xml
new file mode 100644
index 0000000000..30f57ff346
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-en-GB.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.co.uk</ShortName>
+<Description>Amazon.co.uk Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.co.uk/exec/obidos/external-search/"
+ resultdomain="amazon.co.uk">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.co.uk/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-es.xml b/comm/suite/components/search/searchplugins/amazon-es.xml
new file mode 100644
index 0000000000..641a44948a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-es.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.es</ShortName>
+<Description>Amazon.es Buscar</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.es/exec/obidos/external-search/"
+ resultdomain="amazon.es">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.es/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-fr.xml b/comm/suite/components/search/searchplugins/amazon-fr.xml
new file mode 100644
index 0000000000..9e3176f067
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-fr.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.fr</ShortName>
+<Description>Recherche Amazon.fr</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.fr/exec/obidos/external-search/"
+ resultdomain="amazon.fr">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.fr/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-it.xml b/comm/suite/components/search/searchplugins/amazon-it.xml
new file mode 100644
index 0000000000..488a41583d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-it.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.it</ShortName>
+<Description>Ricerca Amazon.it</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.it/exec/obidos/external-search/"
+ resultdomain="amazon.it">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.it/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-jp.xml b/comm/suite/components/search/searchplugins/amazon-jp.xml
new file mode 100644
index 0000000000..a1725d74c0
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-jp.xml
@@ -0,0 +1,32 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.co.jp</ShortName>
+<Description>Amazon.co.jp Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.co.jp/exec/obidos/external-search/"
+ resultdomain="amazon.co.jp">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="mode" value="blended"/>
+ <!--
+ <Param name="mode" value="books-jp"/>
+ <Param name="mode" value="books-us"/>
+ -->
+ <Param name="sourceid" value="Mozilla-search"/>
+ <!--
+ <Param name="sz" value="25"/>
+ <Param name="rank" value="+salesrank"/>
+ <Param name="rank" value="+pricerank"/>
+ <Param name="rank" value="+inverse-pricerank"/>
+ <Param name="rank" value="+daterank"/>
+ <Param name="rank" value="+titlerank"/>
+ <Param name="rank" value="-titlerank"/>
+ -->
+</Url>
+<SearchForm>https://www.amazon.co.jp/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon-zh-CN.xml b/comm/suite/components/search/searchplugins/amazon-zh-CN.xml
new file mode 100644
index 0000000000..bdf814bf71
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon-zh-CN.xml
@@ -0,0 +1,23 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>亚马逊</ShortName>
+<Description>亚马逊搜索</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.cn/mn/searchApp"
+ resultdomain="amazon.cn">
+ <Param name="keywords" value="{searchTerms}"/>
+ <Param name="ix" value="sunray"/>
+ <Param name="pageletid" value="headsearch"/>
+ <Param name="searchType" value=""/>
+ <Param name="Go.x" value="0"/>
+ <Param name="Go.y" value="0"/>
+ <Param name="bestSaleNum" value="0"/>
+</Url>
+<SearchForm>https://www.amazon.cn/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/amazon.xml b/comm/suite/components/search/searchplugins/amazon.xml
new file mode 100644
index 0000000000..b84e74a584
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/amazon.xml
@@ -0,0 +1,27 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Amazon.com</ShortName>
+<Description>Amazon.com Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/amazon.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://completion.amazon.com/search/complete">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="search-alias" value="aps"/>
+ <Param name="mkt" value="1"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.amazon.com/exec/obidos/external-search/"
+ resultdomain="amazon.com">
+ <Param name="field-keywords" value="{searchTerms}"/>
+ <Param name="ie" value="{inputEncoding}"/>
+ <Param name="mode" value="blended"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.amazon.com/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/atlas-sk.xml b/comm/suite/components/search/searchplugins/atlas-sk.xml
new file mode 100644
index 0000000000..4caaf67811
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/atlas-sk.xml
@@ -0,0 +1,14 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Atlas</ShortName>
+<Description>Internetovy portal - Atlas.sk</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALESURBVHjaYvz//z8DMvj7nuHXY4YfLxiA4hziDJzyDIyCyPIAAcSCYP55w/Bi7deHW188e/H5B/tfRg5mVnZuAWEJVXteWR8GVjGIKoAAYoTa8P3mz0tVj27f+8rrIazmxSkgx8TM+v/fr6/vH768vZ+L7aOKZTI7vw5QIUAAAW3+///7ve8H3W+sCHh+59zf/+jgz5//j64fO7e16fPrG0AuQAAxAI35e7n4xVr3L68f/8cNnt27fOXQit+/vgMEEOP/z5d+HMn+r97Eqehw/9Wf5Ue+/vrDyMLCxMLIyMTMKMzDbKPBqi7FBHTMz+/f2Dg4AAKIheH9JUYuTTYZK6DQ07d/Zu36+O0HIzs7MzMTEysrMycH26Zzv0t9OW3Umdk5uYBqAAKI5e+394y8mkysbECOhjRLTzTX9x9/mZiY/v//t+/0g1MvJO+/5t989pe5CicrM8jPAAHExMDE85+ZCxJkInwsqrJ8Pxk43nxl+vybjY2V9d+fn3/+Mjx88+/nb2h0AQQQCxOPIsvvuxDOhpPfGtd8fvWJgY0V6KL/zMyKzBwM//7++/2PCR67AAHExCigwcDMzvDn8/ffDGtOfHvwhoH970c7yftxhi9Nuc/+/vjk9z/mv38Z4dELEEAsDJxijJL2DEws//8w/GdgYmX+//c/44GTDw7/+/Lr509maTEmBsa///4zwKwACCBg0mD8zyPz689v5v8/HDUZTt399+OPMLO8x39GBjZGRqDCn7///vqDSEEAAcQCTBk/vn9/9+79t29fjcV/ZZp9P3Pv7/effxkY/nNyccnJyvAL8EkJMLGxQF0FEEDA+GFgZWVhYWUFJoGvX75JsT4zFXzz7t2nX7//crNwG4rquTiYcnKywm0ACCBGePL+8/fvn99/fv768+Pn71+//gDjAehadnY2QX4eNjZmuAaAAAMA9HBNfsA2E5MAAAAASUVORK5CYII=</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.atlas.sk/search.php"
+ resultdomain="atlas.sk">
+ <Param name="phrase" value="{searchTerms}"/>
+ <Param name="sourceid" value="firefox"/>
+</Url>
+<SearchForm>https://www.atlas.sk/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/azet-sk.xml b/comm/suite/components/search/searchplugins/azet-sk.xml
new file mode 100644
index 0000000000..49b04cf57e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/azet-sk.xml
@@ -0,0 +1,15 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Azet</ShortName>
+<Description>Azet - portal, kde je vzdy najviac ludi</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANinbf/GdRz/xnUc/8qDNv/Yp23/68+u/9inbf/Yp23/2Kdt/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqDNv/GdRz/xnUc/8Z1HP/Kgzb/xnUc/8Z1HP/GdRz/xnUc/8qDNv8AAAAAAAAAAAAAAAAAAAAAAAAAAOvPrv/GdRz/xnUc/8qDNv8AAAAAAAAAAAAAAADYp23/xnUc/8Z1HP/Kgzb/AAAAAAAAAAAAAAAAAAAAAAAAAADrz67/xnUc/8Z1HP/Yp23/AAAAAAAAAAAAAAAA68+u/8Z1HP/GdRz/yoM2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMqDNv/GdRz/xnUc/9inbf/rz67/68+u/+vPrv/GdRz/xnUc/8qDNv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Kdt/8qDNv/GdRz/xnUc/8Z1HP/GdRz/xnUc/8Z1HP/Kgzb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrz67/2Kdt/8Z1HP/GdRz/yoM2//qu2f/uR5n/7keZ/+5Hmf/uR5n/AAAAAMqDNv/Kgzb/yoM2/wAAAAAAAAAAAAAAAOvPrv/GdRz/xnUc/8qDNv/uR5n/7keZ/+5Hmf/uR5n/7keZ/wAAAADYp23/xnUc/8Z1HP/Kgzb/68+u/+vPrv/Kgzb/xnUc/8Z1HP/Yp23/7keZ/+5Hmf/uR5n/7keZ//qu2f8AAAAAAAAAANinbf/GdRz/xnUc/8Z1HP/GdRz/xnUc/8Z1HP/Yp23/AAAAAAAAAAD6rtn/AAAAAOvPrv/Kgzb/vXsA/9inbf8AAAAAAAAAAOvPrv/rz67/68+u/+vPrv8AAAAAAAAAAAAAAAAAAAAAAAAAAOvPrv/Bfwz/vXsA/717AP/Yp23/AAAAAFnCg/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKgzb/vXsA/717AP/Kgzb/AAAAAFnCg/9ZwoP/WcKD/wAAAAATof//E6H//wAAAAAAAAAAAAAAAAAAAAAAAAAA68+u/8F/DP/Bfwz/68+u/wAAAABZwoP/WcKD/1nCg/8AAAAAE6H//xOh//8Tof//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZwoP/WcKD/1nCg/9ZwoP/AAAAABOh//8Tof//E6H//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFnCg/9ZwoP/AAAAAAAAAAATof//E6H//xOh//8AAAAAAAAAAP4AAAD8AAAA+HAAAPhwAAD8AAAA/gAAAP/gAAAEcAAABAAAAAYBAAChhwAAwX8AAMInAADCIwAA/CMAAP5jAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAATCwAAEwsAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAAABgIAAAv///wDMZgAFtGQUM7VnEkW1ZxJFs2YSRrNnE0OzZxYvs2YaCv///wD///8Av2AgCLhmFBm1ahUYtWoVGK1mFBmuaBcW1YAABv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8As2YSRrVnE7m0ZxTyvm0V/75tFf+/bRX/u2sU/7NnE+6zZxO9s2YTa79AAAS0ZxNqs2cU2LNnFMy0ZxTLs2cT17RnE665XRcL////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/gAAC////ALNoFFuzZxT2wG0V/7VnFP+zZxP9tGcT+7NmE/m0ZxP7tGcU/7trFP+3aRT/s2cTubNnFNC+bRX/uWoU/7lqFP/CbxX/s2YTr////wD/AAAB////AP///wD///8A////AP///wD///8A////AP///wD///8AqlUAA////wC0aBEstGYT7bpqFP+0ZxP6tGYT/rNmFP+4aRT/wm8V/71sFf+9bBX/vmwV/7dpFP+5ahT/tGcU/7RnE/y0ZxP8s2cT/bZoFP+zZxN5////AICAAAL///8A////AP///wD///8A////AP///wD///8A////AP///wCAgAAC////ALRnE3fBbhX/tGcT+rRnFP+0ZhP+t2kU/7RnFMu0ZxNqs2cSVLVoElO1ZhR/s2YT4bdpFP+0ZhP+tGcU/7NmFP+zZxT/uGkU/7NoE3b///8A/4AAAv///wD///8A////AP///wD///8A////AP///wD///8A/wAAAf///wCqVQADs2YTorxrFP+zZxP9s2cT/bpqFP+zZhTbuGoVJP///wD///8A////AP///wCyZRIrs2cU2LlqFP+zZxP9s2YU/7NnFP+4aRT/tGcTd////wCqVQAD////AP///wD///8A////AP///wD///8A////AP///wD//wAB////ALZtJAezZhOvu2sU/7NnE/20ZxP7wG4V/7NnFLP///8AqnEcCapVAAaZZgAFqlUAA////wCzZhNstmgU/7RnFP+0ZhP+s2cU/7hpFP+0ZxN3////AP//AAH///8A////AP///wD///8A////AP///wD///8A////AP8AAAH///8A////ALNnFJe+bRX/s2YT/LRnE/y7axT/s2cT07tmEQ////8A////AICAAALVgAAG////ALNmEyizZxTzt2kU/7NnE/2zZxT/uGkU/7RnE3f///8A//8AAf///wD///8A////AP///wD///8A////AP///wD///8A////AKpVAAP///8AtGcUZr5sFf+0ZxP7tGYT/rRmE/64aRT/tGcTq7RkFDOxYhQN////AP///wD///8As2YaCrRmE++4aRT/s2cT/bNnFP+4aRT/tGcTd////wD//wAB////AP///wD///8A////AP///wD///8A////AP///wD///8AgIAAAv///wCuaw0TtGcUzMFuFf+zZxT/tGcT+7RmE/y7axT/s2cU9rNnE720ZxScs2YTh7NlFFuzZxI5s2cT7rhpFP+zZxP9s2cU/7hpFP+0ZxN3////AP//AAH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AgIAAAv///wC3aRYutGcUv7VnFP++bRX/u2sU/7VoFP+1ZxT/uWoU/79tFf+/bRX/s2cT/bRnFOezZhP8tGcU/7RmE/6zZxT/uGkU/7RnE3f///8A//8AAf///wD///8A////AAAAAAH/AP8BgACAAoAAgAKAAIACgACAAv8AAAH///8AgIAAAv///wCqgAAGsmgTYLRnE66zZhTRs2cU67RnFP/AbhX/vWwV/7prFP+6ahT/uGkU/7RnFP+zZxT/s2YU/7NnFP+4aRT/tGcTd////wD//wAB////AP///wCAAIACAAAAAf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ALhjDhKzZhQys2cVSrRlFFi1ZhR1tGcUmbNmFNG3aBT/tGcU/7NnFP+zZhT/s2cU/7hpFP+0ZxN3////AP//AAH///8AgACAAv///wD///8AiTtiDYgzZg+SN20OkjdtDogzZg+LLnQL////AJlmAAW7ZhEPu2YRD7RpDxGvYBAQtm0kB////wD///8A////AP///wD/AAABtm0SDrJnFH6zZhT/tGcU/7RmE/6zZxT/uGkU/7JnE3f///8A//8AAYAAgAL///8AizdpLo01bZSMNWu6jTZrvow2bL2MNWu8jDVrxo02a40AAP8Cs2cAJbRnFLC1ZhTAtGcTvLRnE7yzZhPKsmUVSf///wC5dBcLv4AABKpVAAP///8Av2oVDLRmE/C4aRT/s2cT/bNnFP+4aRT/tGcTd////wD//wAB////AI84aimMNWvYmTp1/5I4cP+SOHD/kjhw/5E3b/+XOnT/jDZr1XYAiQ3JeQATtGYW38JvFf+5ahT/uWoU/8ZxFv+0ZxOu////AP///wD///8A////AP///wCzZhJGtGcT+rZoFP+zZxP9s2cU/7dpFP+zZhN2////AP//AAH///8AjDVsh5g6dP+MNWz5jTZr/Iw1bP2MNWz9jDZs+402a/yNNWz4jTlqOv///wCzZheevWwV/7RnFPizZhP8s2YT/LdoFP+zZhOdsmUTNbFpFi63aRYutGYUS7NnE9O4aRT/tGYT/rRmE/6zZxT/tmgU/7RoEkf///8AgIAAAv///wCMNWyVlzp0/4w1a/qNNmz/jDZs/402a/yMNmz/kjdw/5M4cP+NOGpg////ALBmHC2zZxTivWwV/7NmE/y0ZhP8tGcU/7trFP+0ZhP+s2cU67RnE/C4aRT/uWkU/7RmE/6zZxP9tGcT+r1sFf+0ZxPSuGMOEv///wCAgAAC////AIs2a3WXOXT/jDVs/Yw2bPuMNmv8kjhw/5A3bv+NNmvKhy50QoAAgAaqcRwJ////ALZoE0K0ZhPgvWwV/7prFP+0ZhP+tGYT+rNnE/20ZxT/tGcU/7RnE/u0ZxP6tGYT/rhpFP+/bRX/tGcT5LZoFjv///8AgIAAAv///wD///8AkjFtFY02a7WVOXL/lTlz/5U5cv+MNmvcijNtaf///wDmmQAKtGgKhLRnFLexYxUk////ALFpFCeyaBaVsmgV2LZoFP/BbhX/vm0V/75sFP++bBT/vm0U/8FuFf+5ahT/s2cT4rRnFKa0ZBQz////AP8AAAH///8A////AP8A/wH///8AkjdtDow0a12NNWuGjDdsZnAAjxD///8AtGgNYrNnFt28axX/v20V/7VmFNG2ZhJG////AP///wDZQAAUsmUVSbJqGGq0ZhWEs2cihrJoJoexaCeJsWcrcrJnGk+0ZBMp////AP///wCAgAAC////AP///wD///8A////AIAAgAL///8A////AP///wD///8AumwANLNnF8e3aRX/u2sU/7NmE/y0ZhP6wG4V/7NnFcb/AAABQrVaHwDJaxP///8A////AP///wD///8A////AP///wD///8A////AP///wD/AAABgIAAAv///wD///8A////AP///wD///8A////AIAAgAKZM2YF////ALFmG0GzZhXyvWwU/7RnFP+zZhP8tGYU/rRnFP+zaBX/uV0ATQDXeRM6tF3bObRc1T20XZ9As1tXAAD/ASSC8z8khPBVJYLyYCyD7mlxcaoJ////AAAA/wH///8A////AP///wD///8A////AP///wD///8AAAAAAf///wD///8As2YUor1sFf+zZxP7tGYT/rRnFP+zZhP8vW0V/7NnFKT///8ANbZeiz2/Y/85uF//Psho/zm2WsAkbf8HJILzviWJ/f8lhvj/JYv//ySE81X///8AAKr/A////wD///8A////AP///wD///8A////AP///wD/AAAB////AP///wC0ZxS3uGkU/7NmE/yzZxT/s2YT/LdpFP+zZxXyyEUAJQDFZTA7tFz7ObZe/zi1Xfo6umH/ObVaryuA/wYjg/O/JYv//yOE8/gkh/r/I4Py0iCA7xD///8AAID/Av///wD///8A////AP///wD///8A////AP///wD///8A////ALRnE4jBbhX/tGcU/7NnE/21ZxT/v20V/7RmEYT///8AO7Rduzu+Yv84tV38OLRd/Tq8Yv84tVqyK4D/BiOC874liv//JIPz+yOD8/0liv//JIPzgP///wAA//8B////AP///wD///8A////AP///wD///8A////AICAAAL///8As2YRHrRmE8W2aBT/uGkU/7ZoFP+zaBa4/wAAAiu3YFg6tl7/OLZe/zi1Xf44tF39Orxi/zi2WbErgP8GI4LzviWL//8jg/P8I4Py/iSF9/8kg/LtJIbzKv///wAAgP8C////AP///wD///8A////AP///wD///8A////AP8AAAH///8AsWIUDbVnEmG1ZxODtGcTXJ+AIAj///8AObNdsjzBZP84tV37OLVd/zi0Xf06vGL/ObVZtCRt/wcjgvO+JYr//yOD8/wjg/P/I4Pz/SWJ/v8jhPN8////AAAA/wH///8A////AP///wD///8A////AP///wD///8A////AP8AAAH///8A////AP///wD///8A////AP///wA5tV2wPMBj/zi1Xfo4tV3/OLRd/Dq8Yv84tVqfAED/BCOD88Iliv//JIPz+yOD8/8jg/P9JIf6/ySD8o7///8A////AAAA/wH///8A////AP///wD///8A////AP///wD///8A////AP8AAAGqVQADqlUAA/+AAAKAv0AE////ADm1Xm87v2P/Obhf/zi1Xfs5uV//O71i/za1ZFn///8AJIXxlCaO//8jg/P8I4Pz/COD8v8liv//IoPyYf///wAAgIAC////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAH///8AM7NmCjm2XY84tV33PMBj/zi1XvA5tFyCJLaSB////wAkie0cI4PzvSWL//8lif7/JYj8/yOD9KEagOYK////AAD//wH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAD/AAH///8A////ADm2XjE5tVxIObVbLf///wD///8AAKqqA////wAiiO4PIoL0WiSE9Hgig/FKK4D/Bv///wAA//8B////AP///wD///8A////AP/kAwH/+AAB/9AAAv+gAAL/oAAC/0A8Av9AQgL/YDIC/6AOAv+gAAL/0AAC4CgAAs//AAKwIHgCQAAiAoAAPgKAEAACgBAAAoAIAAWAhAALQQMAN7wAf8/IAABf2AQAX9gAAC/4CAAv6AAAF/QQABf78AAb/BAQF//QEBf/7Ggv</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.azet.sk/katalog/vyhladavanie/firmy/"
+ resultdomain="azet.sk"
+ rel="searchform">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="k" value=""/>
+</Url>
+<SearchForm>https://www.azet.sk/katalog/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/bing.xml b/comm/suite/components/search/searchplugins/bing.xml
new file mode 100644
index 0000000000..bb093f4bb5
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/bing.xml
@@ -0,0 +1,22 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Bing</ShortName>
+<Description>Bing. Search by Microsoft.</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,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</Image>
+<Url type="application/x-suggestions+json"
+ template="https://www.bing.com/osjson.aspx">
+ <Param name="query" value="{searchTerms}"/>
+ <Param name="form" value="OSDJAS"/>
+ <Param name="language" value="{moz:locale}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.bing.com/search"
+ rel="searchform">
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/bolcom-nl.xml b/comm/suite/components/search/searchplugins/bolcom-nl.xml
new file mode 100644
index 0000000000..4cbfa4ba1c
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/bolcom-nl.xml
@@ -0,0 +1,16 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>bol.com</ShortName>
+<Description>Zoeken bij bol.com</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAABMLAAATCwAAAAEAAAAAAAAAAAAA////ANJtQADot6AA3JJvAPXc0ADkpYYA7sq5ANiAVgD77egAzmMxAO3CqwDmr5IA4Jp8ANR4SgDcimMA+eTeAPHSwwD99/UA0Gk5APPWygD34NYA1nxQAOKggADos5gA7MaxAOCYdQD98+8A6r2oANRzRgDcjGkA2oheAP37+QDOZzUA5rWcAPvx6gD56OAA0nFCANZ4TgD12swA7si1AOq7pADkp4oA89TGAOCefQDiooQA0G09ANZ+VADYimAA3pZzAOrBrADtvacA//39AP359wDOZTMA/fXxANBnNwD78+wA0Gs7ANR1SAD34tgA9d7SANiCWAD12MoA3IxlANyOZwDuxrMA3ph3AOq/qgDquaIA6LWeAOazmgDvyLcA78q1AO/IswDswa0A4Jx7AOKkhgDOZTEA0Gc1APvv6ADQazkA+ejeANJxRADUdkoA1HhMANZ6TgDWflAA89jKANZ8UgDWflIA89bIANyMYwDuxrUA6LWcAOKgggDms5gA4qKCAOaxkgDkp4gA5q2SAOzBqwDrwKoA1HZIANR3SgDgnn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQESP0IoPSABAQEBAQEBATljLgoKCk47AyABAQEBARBVCkxFAz42CgpcNwEBASMOCkwtJh5EMAoKCkEgAQFpCgpfTAoKCgoKCgoKCwFQOAoKOiclCgoKCgoKClk0SQoKCgoPBVMKCgoKCgo2JF4KNl5dZBoMAmUHKk8KCltHCkYfIUMFViIdNgZINgorSQoDPmAKOhkxEwoKMhY2UglPWlsYYh0cFzwvIV5oVjQBDQpNZhcpBAoISlgsCjMBAVBnCmEUVwoKCgoKCkAgAQEBFVQKVgoKCgoKCh8jAQEBAQEjX1EKCgoKJV41AQEBAQEBAQEbEURLJzUBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.bol.com/nl/s/algemeen/zoekresultaten/Ntt/{searchTerms}/Ntk/media_all/Nty/1/suggestedFor/{searchTerms}/N/0/Ne/0/search/true/searchType/qck/index.html"
+ resultdomain="bol.com">
+</Url>
+<SearchForm>https://www.bol.com/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/chambers-en-GB.xml b/comm/suite/components/search/searchplugins/chambers-en-GB.xml
new file mode 100644
index 0000000000..c0f4617a57
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/chambers-en-GB.xml
@@ -0,0 +1,19 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Chambers (UK)</ShortName>
+<Description>Chambers 21st Century Dictionary Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAICAAAAEAIAAsAwAAJgAAABAQAAABACAAPwIAAFIDAACJUE5HDQoaCgAAAA1JSERSAAAAIAAAACAIBgAAAHN6evQAAALzSURBVFiF7ddNqBVlHMfxz5nqHpN8y7DyqjTYG2RwQWKCW5uiRRD2CkGbIl1IOxdBGFKgQRgkWC2iRUG1bBG0iUyCopgKJSyNskYjKiz0Kr1crzanxfMYc+fOOZ5z4tQi/6vhef7z/L4zz8v/9/B/j9agL+RJmuAiLMHF8fk3HMWvOJ6VxalKfgttzGRlUQ4NkCfpJbgFt+J6LMeCOPjJKD6Fb7APu7EHV2MLHs/K4ouBAfIknY97sRFrMYaf8DE+ww9YEaHWRrAEJ5Cjg5uxLiuLXfXxzz+L+DiexAOYH7/0ZezEl1lZnKzkjuHKmLsBl+K22N3BqiaNrgB5kq7E87gjftEMnsXTWVmcqOdnZTGD/XmSPoH38AwmYnerm1bSRXwxtlfE4U1sbxKvgfwZf/V6fF7purwvgLjKN+KeSv9RPJeVxVQv8RrIHjyGI7FpvC8ArIkAY5W2D/Bpv+KVeBuvoMSKPEnbPQHi1z9o9oLpYFdWFn8Mqp6VxWm8hINYink9AYQtdLvZ23Ma+wcVr8S3eEc4tBacDeAGrK61TeH7YdXj6fcCNuHnen99a9xo9twTtt/0sAAR4gAONPX9/Qfi/F/2T4SGieoUtLHyvwTodlq1ceG/AdDBqYacRUKxGTnANL5ryJmHa0YOkJVFB4caclq4KU/SC0YKEOMj/N6QN2nu+TASgL2a9+s47oz2aqQAv+AtoXjU8x425FrIk7SVJ+lknqRX9ASI6+B1fN0wzlXYHL3CoDEpOKm7egLEOIgd5q6FFu7HtjxJl/WjmifpWJ6k6/Ci4B3fqOc0zmk0ok/hEXNrw2m8i634JFqxpvcn8JBgaA9hQ1YWe/sCiIMsxOYIMaeMCk5nt2BWvoptqwQbPiE45CV4H5uaxHsCRIg27sOjglM6ryGtI7hlwrF9ZsxjeE3wkV3LeT/3gpZQpO4WfOJ1WNwFZgY/Cn/mVXxYte5DAdRgFgoH0rVCjViOZcKtqBAW2j4crl7PzkWv+AufXtBu3nNrKQAAAABJRU5ErkJggolQTkcNChoKAAAADUlIRFIAAAAQAAAAEAgGAAAAH/P/YQAAAgZJREFUOI2Nk7FrU1EUxn/n3PdSFYOCowX7koY4FAdbkUKFig5OIojF1UVwFbcKxsH/QF3sII4RRJwEhSpoadJYHSpYrEYDIlSDUCvSJu8eh7ynaQziN9zpnu9+3+/eC10ykDI4/k/ye0mHBQxgkWhfSzkpWM6QQLB1RJcs3nhohIUMwbuDrHwxEO0drmp0eVNZwuyEiCya2GMPP73ZNTSzrCr3Nmnn+6ao6NDNuhasqtH13rzPKGbnJXr0WvNWIToCUAanZVCAqsud24W7sEr7g3qZBqgxGhpojdFwguXvmDu9jm+YkwLAmdR9jsHtFY1evdVhq2h0O3XvTlBjNOykzF2s6NCVdE/QYRAeAkY2MAwa/ZCP8aIFYF5nMrR2AkyBDwBCZ7nA1FnnPtpb4nWpA3tlDVhL2FkngbEtJSmwG+BuHwMBsz/kDRKAJnyOMTwGJgeSBL5flV4pQBDryxhrtjvW48/JjwjYLJNBTwUnYMnpAqAGOsb7Bsj9AYQQ2RGqTQMc5Um7DM6SgwTiOQb3LrjoPGmFq6m7d6Uf+HoGQbGz8xrdeEMxOwWxJHWqQe6Yk+COh28AJVBJoqmAXyAqesfMgMlEFqVJ/BXjqSFqYvsFAi9cGo/rD0qgJfDdn0kFvDEZ1NzHU97kOGbDCHswVk1sVnzr1mE+NdO9fxFNu/5LvS/0F8COyR9a0q7OAAAAAElFTkSuQmCC</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.chambers.co.uk/search/"
+ resultdomain="chambers.co.uk">
+ <Param name="query" value="{searchTerms}"/>
+ <Param name="title" value="21st"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.chambers.co.uk/search/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/cnrtl-tlfi-fr.xml b/comm/suite/components/search/searchplugins/cnrtl-tlfi-fr.xml
new file mode 100644
index 0000000000..0379fe0f9a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/cnrtl-tlfi-fr.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Portail Lexical - CNRTL</ShortName>
+<Description>Centre National de Ressources Textuelles et Lexicales</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgbUWgbUWfa0SZZECVXzyUXTuUXTuUXTuUXTuUXTuUXTuUXTuUXTuUXTuXYT6eakOgbUWfbESXYD2PVTiMUjiLUTeMUTeMUTeMUTeMUTeMUTeMUTeMUTeLUTePVTebZkGgbUWcaUPAmoTawbTZwbXZwbXZwbXZwbXZwbXZwbXZwbXZwbXZwbXPuKyaaE6aZUCgbUW8kXP639D94dL+4tP+4tP+4tP+4tP+4tP+4tP+4tP+4tP+4tPt08WhcFWbZ0KgbUXXs5z+49T+49T+5df+5tn+5tn+5tn+5tn+5tn+5tn+5tn+5tn74tSvgWGfbESgbUXat6D+49Ty1MS0h2qtflutf1utf1utf1utf1utf1utf1utf1utf1qjcUqgbUWgbUXat6H53tC3i3SXYT6gbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUXat6H12syrfmeXYT6gbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWhbkbat6H02suoe2SSWjmcZ0KdakOdakOdakOdakOdakOdakOdakOdakOea0SgbUWhbkbat6H12syrgW6JTC+OVDWQVzeQVzeQVzeQVzeQVzeQVzeQVzeQVzeUXTudaUOhbkbbuKH74NLXvrGhdmSZaVSaalWaalWaalWaalWaalV3TFNgOUtgOUt9STmaZUChbkbUsZn+5NX739Du08boz8Hoz8Hoz8HozsHozsHozsGFesdCQsxBQchtRVOaZkGgbUWzhmT85dj+5NX+49X+49X+49X+49X+49T+49T+49SPg9BDRNJCQ85yTFidaUOgbUWgbUW8knPnyrft0L/t0L/t0L/t0L/s0L/s0L/s0L+fjLpqYLtoXrqFXV6gbUWgbUWgbkagbUWgbUWhbkahbkahbkahbkagbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUWgbkagbUWgbUWhbkahbkahbkahbkagbUWgbUWgbUWgbUWgbUWgbUWgbUWgbUUAAH9fAADP/gAAz/4AAPr/AADC/gAAwP4AAE5eAAD//wAA//8AAMb+AAD//wAAwP4AAE5eAAD//wAA//8AAMz+</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://www.cnrtl.fr/utilities/OPEN">
+ <Param name="query" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.cnrtl.fr/lexicographie/{searchTerms}">
+</Url>
+<SearchForm>https://www.cnrtl.fr/lexicographie/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/drae.xml b/comm/suite/components/search/searchplugins/drae.xml
new file mode 100644
index 0000000000..504628fbf0
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/drae.xml
@@ -0,0 +1,16 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Diccionario RAE</ShortName>
+<Description>Real Academia Española. Diccionario Usual.</Description>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA////AP///wDP8eMAw83LAKyLlgCshYMAqpKMSIc/QsyeYl2PmVZPPZlpbgB1enQApru/AL/V2wD///8A////AP///wD///8Az/HjAMHJxgCzn6oAmlZUSIk5NrWjgoOhoWRfwH0jINKAKiefi315GMDc4gDL6fEA////AP///wD///8A////AOj//wDCvrkAjEdOTYkvMv2bYWCYoH+CP59wcUSrgX2Ahiwk/5xBRMGTkpIAfYuJAP///wD///8A////AP///wCOqqMAnpCMOZRFQ9WRW164p4KAfpRmYXaGNTWNnnNxa5dZWbKLIij/gVhVbzI0LQD///8A////AP///wD///8AZ0xMH3hGRoiiZ2eNoGNkrJdjYbqeb22Jk01Lo5xlY66bZGWinGBfx7KNjaF+bm1B////AP///wD///8A////ALB7fE+bVlqzhUJCgZRfYIOfZmipjlhXep58d0WbY2XDoXp6cJZWVG+EMDPTkTU6iP///wD///8A////AP///wClYGJjn2BmtotNS7SCRECnooeJTax9fIibV1OeoHl0ZZlobYKVT1Fvjk9Qs38vM4b///8A////AP///wD///8AS0g/CYA+NoqeR0XfmGhno66ZmG6woKFxiFZXsKmHhGujcXCNjT0+6pNUU7ikgnk4////AP///wD///8A////AKPHvwCdoZ8mhykw3Y9MTbW3o6BlmndyT3hRTlq1nJmJmm1xkZ5TVtWAQD+Td2BXAP///wD///8A////AP///wDg2+YAu6qtJIA5MraJOjXTkmBfY4lRVIiVV1eds5uYL49XV52FJCb3q25qY6V3eAH///8A////AP///wD///8AwtzIAKSjmiiDR0x7ml5fzX4iJuiXVFZynGtvaYUeIuGQPDzem1has4JWVEOeYWQA////AP///wD///8A////AM7/6wCgwLcAjFNRK8XEwwCffXyKhigozZRDSa11MSu9oWBfQJJ+fEBle3YAg316AP///wD///8A////AP///wDAz8cAuL65AMCyqwCpiIQLl2RkbY0+P9GHHBn9gkxKfIx3cQByfHQAYIiAAF+DewD///8A////AP///wD///8AmnN0AJ57egCikI4AlGRkrZE/Q+qWTEivi0BArJU2Pv6VbmuKi3p1AJF3cwCQd3MA////AP///wD///8A////AKmcngCpnJ4App6iALeemiqndW1jiU9Pm55ueZefXFlkv7OxItr6/wDT5u0A0+btAP///wD///8A////AP///wCxq7AAsauwAK6stADBrKcAsZWHAJyAg0ewpqVAtIN3ALmrqgDH9f8AxOTsAMTk7AD///8A////APw/AAD4DwAA8A8AAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOADAADgBwAA9A8AAPg/AAD4HwAA+B8AAP5/AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wDO8OQAy+HSALmopQDC2vIAs6GoAJ9gXgClcGgAro2IAMTc2SeHRkqQjU5TiaiOkC6MRTxF08K4I2hWTQBTFR0Az5SYAGRdWQB+Zl0A0fP2AL/c3gC/3N4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AM7w5ADL4dIAuailAMLa8gCzoagAn2BeAKd1bQCxkI0AqIKCi3EIBv+HQ0TinG5qg4g1LLm9hnyAZ1ZMAFMXHwDRlpsAZl9cAH5lXADR8/YAv9zeAL/c3gD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AzvDkAMvh0gC5qKUAwtnyALKhpwCgYWAAr4iBD5NUUG2JLibvk1RWxaRybZyTQj7RkE5O1H8MCv9mDQu+eTc+V8qanC5lYVoFfmVdANDz9gC/3N4Av9zeAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDO8OQAyuDQALutqwDG5P0AtKOpA5xcX0eYUE2eexES0Z12dpbI6e4RrJGPepZMSrqvko1UmG9wn5A4MOuRMirkkkNB2Gw+Om6ahHoA0P//ANb3+QDX+PoA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AM7w5ADM5dYAtZuWAMHP5gC2qK85jTs1x4MoK/GUQ0HRmGhmYaeUlzOSZnJelmdlQ65wYmmwiY1un398hYgnFtp2Dw//m09TtLKHhWS0x8wEjaKjAIqhogD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A0/frANP36gCugHUAlWJtAZVaX5p6AAD+mGFlm6J0dYaYUEqgn1ZWlZldZICOUFByll1dcJpcX6CWU0qipYCBfZRQT8SAGxfnoVBVqZNtaQYAAQAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDQ9egAzevfCqh9eUF+JiOrfBwZ/513fJyXWGGZlltbnKyJf5aQcWwjhGJhUaFWT6xWVFcAooOKVZpiWaWfdnSPlkhHtHMICvmAFiHxkGBdlVJIQh1cU0oA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAHBgBfYWIeuIOLxpNJQtaMSkvQs724VpJVT6aPTU/Nu7e3X5JxdWBzLy2ilk1FwXszLZKea3J2qIyGdpVPR8N/HibFiEpTwoo4MtCXUlXgvaGeZ5GEeAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAGFTTjOhamWgnpGRLKVwcnKYVFWuhTk+36aAgI2phH9/o3Boo6Fuco6lcHJRfQUA/4g/Otqsi4dlpXt+loo0O9uje3aYn3FzoLORlIC0rrBDKScmHv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAuNzYAqnFumWkYGcJyODpZoVRXoZ1OUrKaXmCrnHV3kJVYVsWPQTO8rY6GYbCDh2qVTkqhjUpD4qR+hZGrjpBrjURBz5ZaVai1mJNloXB1hppoZLOtkItm////AP///wD///8A////AP///wD///8A////AP///wD///8A////AJh6eR6ea3OSj0BBupxQTYWhbWlxll5bl49KT7KjcXKFlmlroXoaIfmRam1ehnx7MbCAel6bam+2nmputKp8dlucZF2ihjg41JFFRsuLNTbvjkZD0o5NVWn///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Au5OQQZ5gY5aRTk2gt4mJa3FBPz9vLTOmsI2Lfa+ZlVybYWmXnVBNoZuIhD+WoJ0ApFpXjpNWUdaPX1+1nXqAa6Jzc1+tfnhDgTM2a3oyOXOQOTm5fBkeiv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wCYU1NXjkVMxJRbZrOSYGivhD8/spA3NMqWZ2mBgU1Pe6+RkGS3mpNVoFNPqJxGQLCQR0OdsIqAWJVcYYSOdHucoHJ6bZtYVDyXXVptj1NfZ4Y7Od5uFB6a////AP///wD///8A////AP///wD///8A////AP///wD///8A////AK5ycV+cW1+gmGBfhY9VVZ+XXVe4jTMr6IFWV3ZzU1p1t5efVp9zb4eba2qyllhVw5hkZH6wj4k3oXRwdp1tZ2CcXmOjhyov345CQ7OfZGOPj1pXyH9JS33///8A////AP///wD///8A////AP///wD///8A////AP///wD///8ASkdGFKyIhHeYPj6ofh0a2aSCf5OISEO9pnVtorSPi3+oiopss5+dXKiXoH+YYmqrmllQnJ18fX2rmJJ2t5CJU4M3Pc2TVVbLm11YnIxHR7GmfHmQr3htU////wD///8A////AP///wD///8A////AP///wD///8A////AP///wAfKCIAgGpbFJA/O6qCGBj/om1qp5ZkZ5+MU1SysqOeWqiLjJTI4+ARq4B/h41BSNmZZ1+jl2JguqJ7hnKph4hzj0hGyaF4cYyMNjXUhiAl+ZhqZpOcfnMN////AP///wD///8A////AP///wD///8A////AP///wD///8A////AFJtXABab10CmW1qjKZdYrmLNTLJmFpgiIpESsOujo2HsI2Ne6R6doy0k4RMNTIzFnNnbEi1i4e3s5GMZJ1jZqGTXmGnpoCFdIk3Pem1bHCxRyEnSgAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8P//AOz//wylrKooh1Zla30OEv9/KiLjlmZrhayGh4W2iX5WqYJ8WJNSVIhkJihskktGgr6spVqvoJ9/iDw+05NeYJ+nfoOGiCor4rV7d7JfQjg/DRMKAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDI1eAA09zoCItzdSN0MzGklkpO64c9NMKqeXGIgn56FoZWWIyzioxtc1lZK6Jub5a/kohiq5SQY7S2r0WRYGVmhTY0zYk9N89zBQbtnWFhiLeIghu/gX4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AK6HiQCmfYI1p3NwZptoWGaWWFSxjzs5vZFLSruLYV5mjkxMhYs6PLKCVFSYjllgn5JMUZWMP0OMuKGaEKeIhEl9FxryhC0w1ZBNUZ+eWFdzrn+BUKpzdwX///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AyujVAMXk0gu1komOdERFUppsaVKKNDLsgS4264UoJe2IMDizizw+c6BkYZGZcG20hDEyq5BJUaqVSk6Jijw8wZJNSNeaYnCdllxblb91bapoTEc0BQ0IAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDQ/+cA4v//AIyWlw1uPkl/oV5lgZhpZ4+lhISkjkhHyHcLEv+HLC7DpGtvDbWenwyNQEGZhCUq93EAAP+ENDfwmV1bn6FeX3OucnGhWk1KUgkCAwAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AM383wDk//kAdISFAGhgYQCsd3GBnWZncMbi6hayv78giDUxwIQpJPifc3BlpXaATIowO7OFKSX1qmxivplaVn2RRkuXgSklrJSMjUVFX2MAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Azv/iAOX//AB0hYYAYlJVALeZjAKlcWoIxMnEAMbX0AKOREPHdwkH9IczNdyVSlDWdAAA/3suLtx5e3cPkkM+AKNcYSGhnJUwd5KMBEVYWgAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDP/OEA4//3AIKVkwBza2sAwKufAMC6tQCvl4YAk05PVYg9Od2WUlR8iDk51YozMLGaTUKqdSAl5VdIQA5LPTYAp46PALi4swCOm5cATlRVAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AMixuADIsbgAybK5AMmzugDGr7gAwb69DJpuZWSRXGR0qYmFYpRTVpePT0rAjj4+t4wtLrKIKCnXmFBShZmekx9JW1sAHSAgAC8/PgAZJCYAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8Aa05YAGpNVwBtUVsAa1BaAG1RXgCfgIJvkVNWt5NXWKyfYmSejTU3vo07N8eUTVC2iDAvwZhZW52JLzvetGln0lxFPyoQAAAAJQsIAC4SDQA9HhUAORsTAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAACQ8MAJBpYo2NNTLojkBEypRDQ9B3BgL5k0tDp5xzcYaCLTHnjkZTu5BLTraWZWC3wJuYVc2mogDIoZ0AyKGdAMihnQDIoZ0A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAGBQQAr6erI7yak2qtj4xpsJGQg5E5PK2niotkm2txa4koL7GfYGCcpWdkeqp/e2nE4Ocbz/j/AMzv/ADM7/wAzO/8AMzv/AD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAUAAAC0usQA0MnFAMWijwKXgn8yhlZTcqBsb6yleoCbpI6WcLSXkz+3eGoMqHFqAMTf4gDR9P8Azez2AM3s9gDN7PYAzez2AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAABQEAALK1vgDJu7cA1KqXAHhhYABcbnAAh1NWlLCMjm686/oAxL+2ALV3aQCmbmkAw93hAM/y/gDM6vQAzOr0AMzq9ADM6vQA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAFAQAAsrW+AMm8twDSqpcAa1JRAISuugDFs7VJq6aYMb7i4gDBt7EAtHZnAKZuagDD3eEAz/L+AMzq9ADM6vQAzOr0AMzq9AD///8A////AP///wD///8A////AP/4H///+B///+AB//+AAf//gAB//wAAf/wAQD/8AAA//AAAH/wAAB/4AAAf+ACAH/gAAB/4AAAf+AAAH/wAAB/8AAA//AAAP/wAAD/8AAAf/AAAP/4AAH//gAD//5AI///wD///wAf//8AD///AA///wAP///AP///+f////n//</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://dle.rae.es/"
+ resultdomain="dle.rae.es"
+ rel="searchform">
+ <Param name="w" value="{searchTerms}"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-cs-CZ.xml b/comm/suite/components/search/searchplugins/duckduckgo-cs-CZ.xml
new file mode 100644
index 0000000000..115c842201
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-cs-CZ.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo nabízí vyhledávání na webu s respektem k vašemu soukromí</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="cz-cs"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="cz-cs"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-de-DE.xml b/comm/suite/components/search/searchplugins/duckduckgo-de-DE.xml
new file mode 100644
index 0000000000..12fb8984a6
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-de-DE.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="de-de"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="de-de"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-el-GR.xml b/comm/suite/components/search/searchplugins/duckduckgo-el-GR.xml
new file mode 100644
index 0000000000..cf8b2bfc9d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-el-GR.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="gr-el"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="gr-el"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-en-GB.xml b/comm/suite/components/search/searchplugins/duckduckgo-en-GB.xml
new file mode 100644
index 0000000000..fd7675f76a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-en-GB.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="uk-en"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="uk-en"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-en-US.xml b/comm/suite/components/search/searchplugins/duckduckgo-en-US.xml
new file mode 100644
index 0000000000..6248bee092
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-en-US.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="us-en"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="us-en"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-es-AR.xml b/comm/suite/components/search/searchplugins/duckduckgo-es-AR.xml
new file mode 100644
index 0000000000..b81bc494bf
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-es-AR.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="ar-es"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="ar-es"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-es-ES.xml b/comm/suite/components/search/searchplugins/duckduckgo-es-ES.xml
new file mode 100644
index 0000000000..1ad4d18187
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-es-ES.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="es-es"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="es-es"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-fi-FI.xml b/comm/suite/components/search/searchplugins/duckduckgo-fi-FI.xml
new file mode 100644
index 0000000000..13464cca94
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-fi-FI.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="fi-fi"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="fi-fi"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-fr-FR.xml b/comm/suite/components/search/searchplugins/duckduckgo-fr-FR.xml
new file mode 100644
index 0000000000..1246d22c7c
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-fr-FR.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="fr-fr"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="fr-fr"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-hu-HU.xml b/comm/suite/components/search/searchplugins/duckduckgo-hu-HU.xml
new file mode 100644
index 0000000000..f9687933c3
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-hu-HU.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="hu-hu"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="hu-hu"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-it-IT.xml b/comm/suite/components/search/searchplugins/duckduckgo-it-IT.xml
new file mode 100644
index 0000000000..c11e0535e6
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-it-IT.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="it-it"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="it-it"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-ja-JP.xml b/comm/suite/components/search/searchplugins/duckduckgo-ja-JP.xml
new file mode 100644
index 0000000000..efdd4ce471
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-ja-JP.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="jp-jp"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="jp-jp"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-nb-NO.xml b/comm/suite/components/search/searchplugins/duckduckgo-nb-NO.xml
new file mode 100644
index 0000000000..73178f134b
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-nb-NO.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="no-no"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="no-no"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-nl-NL.xml b/comm/suite/components/search/searchplugins/duckduckgo-nl-NL.xml
new file mode 100644
index 0000000000..d96adc43c9
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-nl-NL.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="nl-nl"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="nl-nl"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-pl-PL.xml b/comm/suite/components/search/searchplugins/duckduckgo-pl-PL.xml
new file mode 100644
index 0000000000..bb254d7093
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-pl-PL.xml
@@ -0,0 +1,27 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>Wyszukiwarka DuckDuckGo</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="pl-pl"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kd" value="-1"/>
+ <Param name="kg" value="p"/>
+ <Param name="kl" value="pl-pl"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-pt-BR.xml b/comm/suite/components/search/searchplugins/duckduckgo-pt-BR.xml
new file mode 100644
index 0000000000..c59346f866
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-pt-BR.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="br-pt"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="br-pt"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-pt-PT.xml b/comm/suite/components/search/searchplugins/duckduckgo-pt-PT.xml
new file mode 100644
index 0000000000..ffef17a097
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-pt-PT.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="pt-pt"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="pt-pt"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-ru-RU.xml b/comm/suite/components/search/searchplugins/duckduckgo-ru-RU.xml
new file mode 100644
index 0000000000..ed09b6d693
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-ru-RU.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>Поиск через DuckDuckGo</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="ru-ru"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="ru-ru"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-sk-SK.xml b/comm/suite/components/search/searchplugins/duckduckgo-sk-SK.xml
new file mode 100644
index 0000000000..1645037fd0
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-sk-SK.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="sk-sk"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="sk-sk"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-sv-SE.xml b/comm/suite/components/search/searchplugins/duckduckgo-sv-SE.xml
new file mode 100644
index 0000000000..39ad76cb1f
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-sv-SE.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="se-sv"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="se-sv"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-zh-CN.xml b/comm/suite/components/search/searchplugins/duckduckgo-zh-CN.xml
new file mode 100644
index 0000000000..4e5ce956da
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-zh-CN.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="cn-zh"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="cn-zh"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo-zh-TW.xml b/comm/suite/components/search/searchplugins/duckduckgo-zh-TW.xml
new file mode 100644
index 0000000000..f4ff8417fc
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo-zh-TW.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="kl" value="tw-tzh"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="kl" value="tw-tzh"/>
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/duckduckgo.xml b/comm/suite/components/search/searchplugins/duckduckgo.xml
new file mode 100644
index 0000000000..f06dd8d852
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/duckduckgo.xml
@@ -0,0 +1,23 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>DuckDuckGo (Global)</ShortName>
+<Description>DuckDuckGo provides a privacy-aware search engine for the web</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/duckduckgo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ac.duckduckgo.com/ac/">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="type" value="list"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://duckduckgo.com/"
+ rel="searchform">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="t" value="seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-de.xml b/comm/suite/components/search/searchplugins/ebay-de.xml
new file mode 100644
index 0000000000..330fc3fbff
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-de.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (de)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/707-53477-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.de/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.de/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-en-GB.xml b/comm/suite/components/search/searchplugins/ebay-en-GB.xml
new file mode 100644
index 0000000000..2c1a3869eb
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-en-GB.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (uk)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/710-53481-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.co.uk/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.co.uk/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-es.xml b/comm/suite/components/search/searchplugins/ebay-es.xml
new file mode 100644
index 0000000000..3ed7b9cd9a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-es.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (es)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/1185-53479-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.es/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.es/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-fr.xml b/comm/suite/components/search/searchplugins/ebay-fr.xml
new file mode 100644
index 0000000000..43035ee7fe
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-fr.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (fr)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/709-53476-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.fr/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.fr/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-it.xml b/comm/suite/components/search/searchplugins/ebay-it.xml
new file mode 100644
index 0000000000..b8a946f4ff
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-it.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (it)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/724-53478-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.it/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.it/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay-nl.xml b/comm/suite/components/search/searchplugins/ebay-nl.xml
new file mode 100644
index 0000000000..8222538b76
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay-nl.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay (nl)</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/1346-53482-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.nl/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.nl/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/ebay.xml b/comm/suite/components/search/searchplugins/ebay.xml
new file mode 100644
index 0000000000..9aae3d2923
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/ebay.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>eBay</ShortName>
+<Description>eBay - Online auctions</Description>
+<Image width="16" height="16">resource://search-plugins/images/ebay.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://rover.ebay.com/rover/1/711-53200-19255-0/1"
+ resultdomain="ebay.com">
+ <Param name="ff3" value="4"/>
+ <Param name="toolid" value="20004"/>
+ <Param name="campid" value="5338192028"/>
+ <Param name="customid" value=""/>
+ <Param name="mpre" value="https://www.ebay.com/sch/{searchTerms}" />
+</Url>
+<SearchForm>https://www.ebay.com/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/google-jp.xml b/comm/suite/components/search/searchplugins/google-jp.xml
new file mode 100644
index 0000000000..29e5083514
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/google-jp.xml
@@ -0,0 +1,31 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Google</ShortName>
+<Description>Google Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/google.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://www.google.com/complete/search">
+ <Param name="client" value="firefox"/>
+ <Param name="hl" value="=ja"/>
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.google.com/search">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="ie" value="utf-8"/>
+ <Param name="oe" value="utf-8"/>
+ <Param name="aq" value="t"/>
+ <Param name="hl" value="ja"/>
+ <MozParam name="client"
+ condition="defaultEngine"
+ trueValue="seamonkey-a"
+ falseValue="seamonkey"/>
+</Url>
+<SearchForm>https://www.google.co.jp/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/google.xml b/comm/suite/components/search/searchplugins/google.xml
new file mode 100644
index 0000000000..758b5ee482
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/google.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Google</ShortName>
+<Description>Google Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/google.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://www.google.com/complete/search">
+ <Param name="client" value="firefox"/>
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.google.com/search"
+ rel="searchform">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="ie" value="utf-8"/>
+ <Param name="oe" value="utf-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/heureka-cz.xml b/comm/suite/components/search/searchplugins/heureka-cz.xml
new file mode 100644
index 0000000000..1db516b89f
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/heureka-cz.xml
@@ -0,0 +1,22 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Heureka</ShortName>
+<Description>Vyhledávání na Heureka.cz</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAATCwAAEwsAAAAAAAAAAAAA9fX13/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX13/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//769f/59/X/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/+/y9f8mjP7/lMP5//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/09fX//fn1/6XM+P97t/r/ir/6/9jm9v8ahf7/AHb//7fV+P/19fX/9fX1//X19f/19fX/9fX1//X19f/09fX/0eL2/w1///8AdP//NZP9/wJ5//8AdP//A3n//7HT+P/39vX/9fX1//X19f/19fX/9fX1//X19f/19fX/9PT1/w5///8wkf3/8vP1//Dz9f///vT/gbr6/wBy///I3vf/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/5fF+f8Ad///+ff1/8rf9/8Ab///nMj4///79f85lf3/TZ/8//r49f/19fX/9fX1//X19f/19fX/9fX1//X19f98t/r/N5T9//n39f8Nfv//HIb+/wR6///y9PX/g7v6/xOC////+/T/9fX1//X19f/19fX/9fX1//X19f/19fX/grr6/xqF/v/y9PX/Xqj7//359f8bhv7/W6b8/3Cx+v8pjf3//vr1//X19f/19fX/9fX1//X19f/19fX/9fX1/9fm9v8AcP//mcb5//759f/09fX/wdv3/wBz//8Lfv//g7v6//b19f/19fX/9fX1//X19f/19fX/9fX1//X19f/59/X/eLX6/wBw//9Ypfz/nsn5/3W0+v8Ge///LY/9//r49f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//z59f+s0Pj/MpH9/xOC//8giP7/f7n6//r49f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//359f//+/T///r1//b29f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX13/X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX13wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA9fX1gPX19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19YD19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/5vH+f9Amf3/bbD7//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f+bx/n/BHr//wR6//8Eev//9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/m8f5/wR6//8Eev//BHr//xOC/v/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/X5vb/bbD7/zGR/f8Eev//BHr//wR6//9Amf3/m8f5/4y/+f8Eev//BHr//wR6//8Tgv7/yN73//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/bbD7/wR6//8Eev//BHr//wR6//8Eev//BHr//wR6//8Eev//BHr//wR6//8Eev//E4L+/8je9//19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/zGR/f8Eev//BHr//wR6//8iif7/Xqj7/324+v9Amf3/BHr//wR6//8Eev//BHr//xOC/v/I3vf/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f9tsPv/BHr//wR6//8Tgv7/m8f5//X19f/19fX/9fX1//X19f/m7fb/bbD7/wR6//8Eev//BHr//8je9//19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/udb4/wR6//8Eev//E4L+/8je9//19fX/9fX1/9fm9v+51vj/9fX1//X19f/19fX/m8f5/wR6//8Eev//QJn9//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f9eqPv/BHr//wR6//+51vj/9fX1//X19f/X5vb/E4L+/wR6//99uPr/9fX1//X19f/19fX/QJn9/wR6//8Eev//yN73//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/xOC/v8Eev//MZH9//X19f/19fX/9fX1/zGR/f8Eev//BHr//xOC/v/X5vb/9fX1//X19f+51vj/BHr//wR6//99uPr/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/BHr//wR6//9tsPv/9fX1//X19f9tsPv/BHr//wR6//8Eev//BHr//0+g/P/19fX/9fX1//X19f8Eev//BHr//0CZ/f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f8Eev//BHr//324+v/19fX/udb4/wR6//8Eev//MZH9/0+g/P8Eev//BHr//6rP+P/19fX/9fX1/xOC/v8Eev//QJn9//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/wR6//8Eev//bbD7//X19f+bx/n/BHr//xOC/v/I3vf/1+b2/xOC/v8Eev//Ion+/+bt9v/19fX/BHr//wR6//9PoPz/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/Ion+/wR6//8iif7/9fX1//X19f/I3vf/1+b2//X19f/19fX/jL/5/wR6//8Eev//bbD7/6rP+P8Eev//BHr//324+v/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f9tsPv/BHr//wR6//+Mv/n/9fX1//X19f/19fX/9fX1//X19f/19fX/MZH9/wR6//8Eev//MZH9/wR6//8Eev//1+b2//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/9fm9v8Eev//BHr//xOC/v+51vj/9fX1//X19f/19fX/9fX1//X19f+51vj/BHr//wR6//8Eev//BHr//0CZ/f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/4y/+f8Eev//BHr//wR6//99uPr/5u32//X19f/19fX/9fX1/7nW+P8iif7/BHr//wR6//8Tgv7/1+b2//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/16o+/8Eev//BHr//wR6//8Eev//MZH9/0CZ/f8Tgv7/BHr//wR6//8Eev//E4L+/8je9//19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/6rP+P8Tgv7/BHr//wR6//8Eev//BHr//wR6//8Eev//BHr//0CZ/f/X5vb/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1/+bt9v+bx/n/T6D8/0CZ/f9Amf3/QJn9/22w+//I3vf/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fWA9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1//X19f/19fX/9fX1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://www.heureka.cz/direct/firefox/autocompleter.php">
+ <Param name="query" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.heureka.cz/"
+ resultdomain="heureka.cz">
+ <Param name="h[fraze]" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://www.heureka.cz/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/hoepli.xml b/comm/suite/components/search/searchplugins/hoepli.xml
new file mode 100644
index 0000000000..3d26499bc4
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/hoepli.xml
@@ -0,0 +1,20 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Hoepli</ShortName>
+<Description>Dizionario della lingua italiana Hoepli</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/png;base64,
+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</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.grandidizionari.it/Dizionario_Italiano/cerca.aspx"
+ resultdomain="hoepli.it">
+ <Param name="idD" value="1"/>
+ <Param name="utm_source" value="mozilla-firefox"/>
+ <Param name="query" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://www.grandidizionari.it/Dizionario_Italiano.aspx?idD=1</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/huuto-fi.xml b/comm/suite/components/search/searchplugins/huuto-fi.xml
new file mode 100644
index 0000000000..c20966b761
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/huuto-fi.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Huuto.net</ShortName>
+<Description>Hakukone Huuto.nettiin, suomalaiseen nettihuutokauppaan.</Description>
+<InputEncoding>ISO-8859-1</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQABMTEwAfHx8AISEhACkpKQAyMjIAPj4+AElJSQBVVVUAWVlZAGFhYQBubm4AfHx8AICAgACJiYkAmZmZAKSkpACsrKwAtbW1AL+/vwDExMQAy8vLANPT0wDc3NwA4uLiAO7u7gDw8PAA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAABkAAAAAAAAAAAAAAAAZEgwJDRUAAAAAAAAAAAAAFQYAAAkREhYAAAAAAAAAGA0AAAUPEhQXFQAAAAAAABMEAAQKDxIUGxcXAAAAABcKAAMKDQ8XGhscEBUAABkQAQcIDRARGRwaGhkLFgAXBwcKDRATFRcaFxESDw8YDQYKDREUGBsYEBANCRIIEwcKDREUGRscGwwDBgYJCAsKDBEVFxscHBwXAwABAgkJDREVGRscHBwcHBMDAQILDxMYGxscHBwbGhocEgYDDhcaGxsbHBsaGRkYFxcVExccHBoZGBYVFxgZABkZAAAAExMWGBgYGQAAAAAAAAAAAP7////wP///8A///+AH///gA///wAH//4AA//+AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//ACf//wH///8=</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.huuto.net/fi/showlist.php3">
+ <Param name="tits" value="{searchTerms}"/>
+ <Param name="status" value="N"/>
+ <Param name="sellstyle" value="k"/>
+ <Param name="order" value="R"/>
+ <Param name="cat" value="%25"/>
+ <Param name="lcat" value="X"/>
+ <Param name="start" value="0"/>
+ <Param name="num" value="50"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+<SearchForm>https://www.huuto.net/fi/search_index.php3</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/images/amazon.ico b/comm/suite/components/search/searchplugins/images/amazon.ico
new file mode 100644
index 0000000000..1c39eaf8fe
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/amazon.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/duckduckgo.ico b/comm/suite/components/search/searchplugins/images/duckduckgo.ico
new file mode 100644
index 0000000000..dda80dfd88
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/duckduckgo.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/ebay.ico b/comm/suite/components/search/searchplugins/images/ebay.ico
new file mode 100644
index 0000000000..3af7a36484
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/ebay.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/google.ico b/comm/suite/components/search/searchplugins/images/google.ico
new file mode 100644
index 0000000000..82339b3b1d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/google.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/startpage.ico b/comm/suite/components/search/searchplugins/images/startpage.ico
new file mode 100644
index 0000000000..19991e7478
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/startpage.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/wikipedia.ico b/comm/suite/components/search/searchplugins/images/wikipedia.ico
new file mode 100644
index 0000000000..4314071e24
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/wikipedia.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/images/yahoo.ico b/comm/suite/components/search/searchplugins/images/yahoo.ico
new file mode 100644
index 0000000000..9bd1d9f7c0
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/images/yahoo.ico
Binary files differ
diff --git a/comm/suite/components/search/searchplugins/list.json b/comm/suite/components/search/searchplugins/list.json
new file mode 100644
index 0000000000..f08601f7de
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/list.json
@@ -0,0 +1,217 @@
+{
+ "default": {
+ "searchDefault": "DuckDuckGo",
+ "searchOrder": ["DuckDuckGo", "Startpage", "Google", "Yahoo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "google", "startpage", "wikipedia", "yahoo"
+ ]
+ },
+ "regionOverrides": {},
+ "locales": {
+ "en-US": {
+ "default": {
+ "visibleDefaultEngines": [
+ "amazon", "duckduckgo", "duckduckgo-en-US", "ebay", "google", "startpage", "wikipedia", "yahoo"
+ ]
+ }
+ },
+ "cs": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "Seznam", "DuckDuckGo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-cs-CZ", "google", "heureka-cz", "mapy-cz", "seznam-cz", "startpage", "wikipedia-cz"
+ ]
+ }
+ },
+ "de": {
+ "default": {
+ "visibleDefaultEngines": [
+ "amazon-de", "duckduckgo", "duckduckgo-de-DE", "ebay-de", "google", "startpage", "wikipedia-de", "yahoo-de"
+ ]
+ }
+ },
+ "el": {
+ "default": {
+ "searchOrder": ["DuckDuckGo", "Startpage", "Google"],
+ "visibleDefaultEngines": [
+ "amazon-en-GB", "duckduckgo", "duckduckgo-el-GR", "google", "startpage", "wikipedia-el"
+ ]
+ }
+ },
+ "en-GB": {
+ "default": {
+ "searchOrder": ["DuckDuckGo", "Startpage", "Google", "Yahoo.co.uk"],
+ "visibleDefaultEngines": [
+ "amazon-en-GB", "chambers-en-GB", "duckduckgo", "duckduckgo-en-GB", "ebay-en-GB", "google", "startpage", "wikipedia", "yahoo-en-GB"
+ ]
+ }
+ },
+ "es-AR": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo Argentina"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-es-AR", "google", "startpage", "wikipedia-es", "yahoo-ar"
+ ]
+ }
+ },
+ "es-ES": {
+ "default": {
+ "visibleDefaultEngines": [
+ "amazon-es", "drae", "duckduckgo", "duckduckgo-es-ES", "ebay-es", "google", "startpage", "wikipedia-es", "yahoo-es"
+ ]
+ }
+ },
+ "fi": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-fi-FI", "google", "huuto-fi", "startpage", "wikipedia-fi", "yahoo-fi"
+ ]
+ }
+ },
+ "fr": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Startpage", "Yahoo"],
+ "visibleDefaultEngines": [
+ "amazon-fr", "cnrtl-tlfi-fr", "duckduckgo", "duckduckgo-fr-FR", "ebay-fr", "google", "startpage", "wikipedia-fr", "yahoo-fr"
+ ]
+ }
+ },
+ "hu": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-hu-HU", "google", "startpage", "vatera", "wikipedia-hu"
+ ]
+ }
+ },
+ "it": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo"],
+ "visibleDefaultEngines": [
+ "amazon-it", "bing", "duckduckgo", "duckduckgo-it-IT", "ebay-it", "google", "hoepli", "startpage", "wikipedia-it", "yahoo-it"
+ ]
+ }
+ },
+ "ja-JP-macos": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo! JAPAN"],
+ "visibleDefaultEngines": [
+ "amazon-jp", "duckduckgo", "duckduckgo-ja-JP", "google-jp", "startpage", "wikipedia-ja", "yahoo-jp"
+ ]
+ }
+ },
+ "ja": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo! JAPAN"],
+ "visibleDefaultEngines": [
+ "amazon-jp", "duckduckgo", "duckduckgo-ja-JP", "google-jp", "startpage", "wikipedia-ja", "yahoo-jp"
+ ]
+ }
+ },
+ "ka": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo (Global)"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "google", "startpage", "wikipedia-ka"
+ ]
+ }
+ },
+ "nb-NO": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Startpage", "Yahoo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-nb-NO", "google", "startpage", "wikipedia-NO", "yahoo-NO"
+ ]
+ }
+ },
+ "nl": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Startpage", "Yahoo"],
+ "visibleDefaultEngines": [
+ "bolcom-nl", "duckduckgo", "duckduckgo-nl-NL", "ebay-nl", "google", "marktplaats-nl", "startpage", "wikipedia-nl", "yahoo-nl"
+ ]
+ }
+ },
+ "pl": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "Startpage", "DuckDuckGo"],
+ "visibleDefaultEngines": [
+ "allegro-pl", "duckduckgo", "duckduckgo-pl-PL", "google", "pwn-pl", "startpage-pl", "wikipedia-pl", "wolnelektury-pl"
+ ]
+ }
+ },
+ "pt-BR": {
+ "default": {
+ "searchDefault": "Google",
+ "visibleDefaultEngines": [
+ "amazon-br", "bing", "duckduckgo", "duckduckgo-pt-BR", "google", "startpage", "yahoo-br", "wikipedia-pt"
+ ]
+ }
+ },
+ "pt-PT": {
+ "default": {
+ "searchOrder": ["DuckDuckGo", "Startpage", "Google", "SAPO", "Priberam", "Wikipedia (pt)"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-pt-PT", "google", "priberam", "sapo", "startpage", "wikipedia-pt"
+ ]
+ }
+ },
+ "ru": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-ru-RU", "google", "startpage", "wikipedia-ru"
+ ]
+ }
+ },
+ "sk": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "Azet", "DuckDuckGo"],
+ "visibleDefaultEngines": [
+ "atlas-sk", "azet-sk", "duckduckgo", "duckduckgo-sk-SK", "google", "startpage", "wikipedia-sk", "zoznam-sk"
+ ]
+ }
+ },
+ "sv-SE": {
+ "default": {
+ "searchOrder": ["DuckDuckGo", "Startpage", "Google", "Bing"],
+ "visibleDefaultEngines": [
+ "bing", "duckduckgo", "duckduckgo-sv-SE", "google", "prisjakt-sv-SE", "startpage", "tyda-sv-SE", "wikipedia-sv-SE", "yahoo-sv-SE"
+ ]
+ }
+ },
+ "zh-CN": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo!"],
+ "visibleDefaultEngines": [
+ "amazon-zh-CN", "duckduckgo", "duckduckgo-zh-CN", "google", "startpage", "wikipedia-zh-CN", "yahoo-zh-CN"
+ ]
+ }
+ },
+ "zh-TW": {
+ "default": {
+ "searchDefault": "Google",
+ "searchOrder": ["Google", "DuckDuckGo", "Yahoo!"],
+ "visibleDefaultEngines": [
+ "duckduckgo", "duckduckgo-zh-TW", "google", "startpage", "wikipedia-zh-TW", "yahoo-bid-zh-TW", "yahoo-zh-TW"
+ ]
+ }
+ }
+ }
+}
diff --git a/comm/suite/components/search/searchplugins/mapy-cz.xml b/comm/suite/components/search/searchplugins/mapy-cz.xml
new file mode 100644
index 0000000000..7d2fb59615
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/mapy-cz.xml
@@ -0,0 +1,18 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Mapy.cz</ShortName>
+<Description>Vyhledávání na Mapy.cz</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,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</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.mapy.cz/"
+ resultdomain="mapy.cz">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="sourceid" value="Searchmodule_3"/>
+</Url>
+<SearchForm>https://www.mapy.cz/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/marktplaats-nl.xml b/comm/suite/components/search/searchplugins/marktplaats-nl.xml
new file mode 100644
index 0000000000..16ef62c52a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/marktplaats-nl.xml
@@ -0,0 +1,17 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Marktplaats.nl</ShortName>
+<Description>Zoeken in alle categorieën op Marktplaats.nl</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKTWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/sl0p8zAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAABC0lEQVR42rSSoU7DUBSGv42FNKHiBtMrEE2KwnRysoIwP4UZ6SOQ9AW2B5hFN+BRCDZVSQKi9WtSeVFUVCwEgehdb0p2xQTHnfz/d3POf+6gyhYcU0OOrBGQpBSV7lcxod9zFBVJChBIZhOGrWk61rKq/z75mAFIwfKW6Xg/0s0eeH6j2Rm3qnXrCaTo7yAFUlAqSmWAp6zX9gBP4AmAh1cjr3PuIntKrVYq1rl2S8GZYwcCSSABPmuATc484lLaAdfRcptMUZn0rIebTXAdgOvFAfcBoJsKmEd2YKtodjryVWyC7k7ZqSf3cZSkvHzw1fC+5eqCcxcg9Al9kpRNzvePVk9HDP79t/4OALMxUpBz00CfAAAAAElFTkSuQmCC</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.marktplaats.nl/z.html"
+ resultdomain="marktplaats.nl">
+ <Param name="query" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://www.marktplaats.nl</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/priberam.xml b/comm/suite/components/search/searchplugins/priberam.xml
new file mode 100644
index 0000000000..edc2922690
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/priberam.xml
@@ -0,0 +1,16 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Priberam</ShortName>
+<Description>Dicionário Priberam</Description>
+<InputEncoding>ISO-8859-15</InputEncoding>
+<Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKoSURBVHjaYvz7+dv3r98Y/n7+7u/jCxBAjH8/fmVgYGBat23T1+/fAQKI8e+X7wz//xeVlykqKjB8fP4qJj4GqHzR3LkAAQRV9+zlCylxCSYGJkYgunXnNohx78qNv5++fXn9Dkgy/Prw5YVwLQsLyy2hSoAAYgRaATTt4ZPHX799+fTh06Mnj4P9g5iZmZgYGBmASExEZPfevdHJCbdu3548c+rd+3eZGMCAk5Mz7b/Zg4cP33x8X5Cd+2vHbcaf7z4dOXbUwdaOARUABBDUXUDw79+/L9++MTIx8nJxA53FwsDI+Ofvn2vXr/Fy85y7fOnvnz9hQSEga4Ee+vPpK5D8+eGzqpLy8wePbpy7CPQ4C8g4Rsblq1ZIiEncvnd36vTpvLw8xaqFDECPyUhJA0kgkpeTB5K/P3wBeQ5oCAjdexuiYsvEzARkvz11++f91yzfvn27dv36rvDepcXtC7gvGttarbAq+asuzbh/yw4zU1MODg5UXzACBBg45P/9h4uAfPPly+9fv779+M7EzHzt5g0JMXFdLW2oNBMjOKjAwfjh44cLFy98+faVh49XWFRk3qIF2iaGl65cPnv+7NUb1yBqQFoYgKaDkQC/gIG+AR8P77nz58urq46fPPX/37/TZ86EBoW8ffcut6jg/qOHIB1AJ0E8ePX0ufrK6o3r1v/6+BkYdNaWlnp6ekDG7UtXwoNDLp89B1IGdD9Iw6dvpw4e2bBi9a8PnyEBdvPqVSkpKaBxU/snQkSg6Mt3aAKB+/hj+a6fM/dfZfslvDu+rreN+R9Dfnbu5YuXzk/a/PvZ28qwPMbbV65NmTFDVETk04cPMioKroY2CtxibLICDGzMwGA4cPSwvZWNoIAgw6+/fx99YFYUZPz39cd/pGDFD4CJBwBLx4gNwqkZawAAAABJRU5ErkJggg==</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.priberam.pt/dlpo/firefox.aspx">
+ <Param name="pal" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://www.priberam.pt/dlpo/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/prisjakt-sv-SE.xml b/comm/suite/components/search/searchplugins/prisjakt-sv-SE.xml
new file mode 100644
index 0000000000..ef9a339196
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/prisjakt-sv-SE.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Prisjakt</ShortName>
+<Description>Prisjakt - jämför priser och produkter</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKieMACommAAqJaMAKyauAC0prwBMSLsAZF%2FFAH16zQBwa9EAi4nTALu55QCxrvYA7Ov4AP%2F%2F%2FwBwADIAaQBjAG8AAADAHiQAfO8SAEwAAAAoJYAAjAAAAOS%2F9QBxGuYAjAAAAJgFAgAA8BIAGAAAAHDvEgDI7xIA4xq%2BAIwAAACYBQIAAPASABgAAAAAAAAA2T7GABg%2FxgDkCQUAVAAAAGDyEgChUcYA5AkFAFQAAABg8hIAAAAAAMzyEgBghgcAHjvnAPc65wDg8hIAWAcXAKzvEgCw7xIAgP4SAAlI6QBYMOgA%2F%2F%2F%2FAB475wAbrQEAYIYHAODyEgBYBxcABACkAAAApAD%2F%2F%2F8AsAgAAAAAQAAEAKQAZAAAAGIAbQBwADIAaQBjAG8ALgBlAHgAZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAAAAAAAAAAAAAAACAAAAXPESALgLpADoC8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AvCAAAAAAAAAAAAAAAAAP%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAX6bnAAAAAAAAAAAAAAAAAAAAAAAoLxQAAAAAAAkOAgACDgIADQAAAADw%2FQAA4P0AAg4CAAkOAgAAAAAA9gvCAODyEgBSAAAAAAAAACTVpAAAAAAA%2F%2F%2F%2FAFzxEgBq8RIAXPESAMzx5wAEwPUARPESAAAAFACoRPkARQAAAHgTFAAAABQAoCAUABzxEgAg8RIAZPMSAPCI%2BgBSAAAAAAAAAJDWpAAAAAAAOor1AAAAAAAA7P0AAAAAAAAAAABwADIAaQBjAG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDO8YApTbGAM0JAQAPAIUAAAAAAJDWpADNCQEAAQAAAAAAAAAAAAAAFTbGAM0JAQAAAAEAwU1BAM0JAQAAAwAABMD1AFik5wB0AAAAAAAAAOjyEgB0AAAAAAAAAAAAAAD%2F%2F%2F8AAAAAAAAAAAAAAAAAAAAAAP%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAKC8UAAAAAABkxfUAqfHnAIwAAAAAAAAAAAAAAAAAAAB88hIAAADdAAADAAAAAAAAyfHnAAADAAAAAN0AjAAAAAAAAAAAAwAAAQAYAAAAAABw8hIAAAAAAKqb9QCzm%2FUA4PUSACQAAgAA7P0AEW5AAAUAAAAkAAIAAPD9AJzyEgACAAAAQKP1AJACAgD5m%2FUA4En8ACOj9QAro%2FUAAAAAAAgCAACgIBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAACwgGFQYICwAAAAAAAAANCgUEBAEEBAUKDQAAAAAACgQEBwwCBAQEBAoAAAAACwUEBAQOAwQEBAQFCwAAAAgEBAwODg4OCQQEBAgAAAAGBAQEBAQEBA4EBAQGAAAVFQECAwwODg4MAwIBFRUAAAYEBAQOBAMEBAQEBAYAAAAIBAQECQ4ODg4MBAQIAAAACwUEBAQEAw4EBAQFCwAAAAAKBAQEBAIMBwQECgAAAAAADQoFBAQBBAQFCg0AAAAAAAAACwgGFQYICwAAAAAAAAAAAAAAABUAAAAAAAAAAP%2F%2FRgD%2B%2FwAA8B8AAMAHAADABwAAgAMAFYADAACAAwAAAAEAAIADBhWAAwsAgAMAAMAHDQrABwQB8B8FCv7%2FAAA%3D</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://www.prisjakt.nu/plugins/opensearch/suggestions.php">
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://www.prisjakt.nu/supersearch.php"
+ resultdomain="prisjakt.nu">
+ <Param name="s" value="{searchTerms}"/>
+ <Param name="r" value="1"/>
+ <Param name="e" value="utf8"/>
+ <Param name="ref" value="155"/>
+</Url>
+<SearchForm>https://www.prisjakt.nu/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/pwn-pl.xml b/comm/suite/components/search/searchplugins/pwn-pl.xml
new file mode 100644
index 0000000000..b1b2ff6ff6
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/pwn-pl.xml
@@ -0,0 +1,14 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Encyklopedia PWN</ShortName>
+<Description>Wyszukiwanie w Encyklopedii PWN</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAI9UExURQAAAB9YryBWrgmU3SBWrh9YryBWriBWriBWri0zkwmU3Q2L1hCBzg2L1hCBzhR3xiNOqB9YsBxitydFoRhsvxR3xhxitxhsvyNOqB9YsCdEoCo7mi01lSs6mSBWriBWri00lCBWrgqT3CBWriBWrgmU3Ss6mQqR2g2L1iNOqCdEoC0zkyBWriBWridEoCBXryBWris6mSBWri0zlA2K1RCBzh9YsB9YryNOqC0zlCBWrhR3xhCBzhxitxhsvyBWriBWrh9YsBR3xhxitxhsvyBWri0zkyBWriBWriBWriwykx9YryBWriwykyBWriBWriBWri0zkyBXryBWrh9YryBWriBWriBWrisykyBWriBWriBWriBWriBWriBWriBWrh9YryBWriBWriBWriBWriBWriBWriBWriBWriBWriBWriBWrgmU3Q2L1idEoBCBziJNpwWS3Cs6mW6UzBR2xiNOqB9YrxVrvhphtxCAzgyL1hd4xyFZsEWJzD96whl6yBSP1w1/zQiT3Ehrtg6AzguK1SVCn8XQ6B1Xr3eq2hJ1xmiQynmi1D2Z2F2q3hB0xSSX2l605TNbru31+93l8nmKw5XC5io6mBltv4W/5mi553uy3yhFoRdfthp6yODn87LO6svh8iZputTc7is6mFyFxTh0v4Kp1+rv+Ojv+EqNzTuCyLHN6Xyk1YK34ZLD55il0Z3A44an1mKLyBlgthZrvs/U6S08mtrg8DJAnLe/3jNBnGd6vCw7mTZEnjWei8gAAABsdFJOUwBNVQgHMwpZVGO9vQgIvQgICAgICL29vb29u4AO+w0uT3y1kwz+VRX4/VUhCZf9LR/9hWNK/f1gVWQyVVVVVV4gVf39/QhifaW+Y1OvZJK0lWRiMUKef3NlTZSZerKsFimuImocX3IVYkMpUosemJAAAAEISURBVBjTY2BQV1LNaSoszAEBLmYGBgYTjdzWCbMmNlTl5uZy8wIFbExbemeun9zXWJmfz8cDFLB26pq2bt7C2f311SWi/EABO5etGxesWrN6RmdtubgIUMDWecvylWuXzV3UU1chJgQUcDTrWLqieNPm7uKaMklBoICFZsGkxfN3TGlvLiiVEAAKaOnlzdmwa8+2qW15eVLCQAE1w6IlO3fv3bd9epGsNJDPoG1s6eblyxkRyMmpIAMS0Ddn9GZkDWFICGJlkGcBCrAbWXn6RIbGs0f5O3DIgQR0mdzDwuOSM5liAuxVQALKBq7BsWmJKRzp0R46QAEORQYGtoykVJZsliw/NgYAqJdNo4WkE2YAAAAASUVORK5CYII=</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://encyklopedia.pwn.pl/szukaj/{searchTerms}"/>
+<SearchForm>https://encyklopedia.pwn.pl/szukaj/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/sapo.xml b/comm/suite/components/search/searchplugins/sapo.xml
new file mode 100644
index 0000000000..a45e47b84a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/sapo.xml
@@ -0,0 +1,22 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>SAPO</ShortName>
+<Description>Pesquisa SAPO</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXmHT/EnM8/wd6L/8EdRj/BHUY/wd6L/8Sczz/WJh0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACt+UP8FaTL/B4I8/wmoTv8JO03/Ew62/xMOtv8JME7/CahO/weCPP8GajL/K35Q/wAAAAAAAAAAAAAAABJzPP8Hgjz/Cq5P/wm6Vv8BIwj/DAB8/xcG3v8ZB+b/DACA/wEUBf8JtVT/CahO/weCPP8Sczz/AAAAAECTZP8IkEP/Ca5Q/wquT/8CHA3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AhwN/wmuUP8Krk//CJBD/0OUZv8IkEP/CahO/wquT/8FYCz/CJBD/wd3N/8DIA//AQwE/wEMBP8CHA3/BWAs/wiQQ/8FYCz/CahO/wquT/8HjkL/CahO/wSIPP8Hdzf/BqQ+/wakPv8GpD7/BqQ+/wakPv8GpD7/BqQ+/wakPv8GpD7/BqQ+/wN9N/8DfTf/CahO/1fAhv8Vm0//Ao82/wOmR/8Pok//BqQ+/wSeNP8Dpkf/A6ZH/wSeNP8GpD7/D6JP/wOmR/8Cjzb/FZtP/13Ejf8AAAAAa8eW/13Ejf8TqFP/AZgu/x2Zfv8xxdP/D6JP/w+iT/8xxdP/HZl+/wGXLP8Sp1L/aMiV/3fLof8AAAAAAAAAAAAAAACc1rv/u+rN/3G0nP8E8Pf/A/D3/xfNz/8Xzc//A/D3/wPw9/9ws5v/wezS/5zWu/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGQkH/BPD3/wAkJv8D8Pf/A/D3/wAsLv8D8Pf/RkJA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkJB/0vw9v8E8Pf/NrjA/zi1vf8D8Pf/SPH3/0ZCQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGQkH/etfY/0ZCQf9GQkH/edbY/0ZCQP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZCQf8AAAAAAAAAAEZCQf9+fHz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////wD///wAP//4AB//8AAP//AAD//wAA//8AAP//gAH//8AD///wD///8A////gf///9n////////w==</Image>
+<!-- Suggestions disabled as SSL is not available as at 23 Apr 2020
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://pesquisa.sapo.pt/livesapo">
+ <Param name="q" value="{searchTerms}"/>
+</Url> -->
+<Url type="text/html"
+ method="GET"
+ template="https://pesquisa.sapo.pt/FF2">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="enc" value="utf-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/seznam-cz.xml b/comm/suite/components/search/searchplugins/seznam-cz.xml
new file mode 100644
index 0000000000..e5c5bd27d7
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/seznam-cz.xml
@@ -0,0 +1,22 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Seznam</ShortName>
+<Description>Vyhledávání na Seznam.cz</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,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</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://suggest.seznam.cz/fulltext_ff">
+ <Param name="phrase" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://search.seznam.cz/"
+ resultdomain="seznam.cz"
+ rel="searchform">
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/startpage-pl.xml b/comm/suite/components/search/searchplugins/startpage-pl.xml
new file mode 100644
index 0000000000..c59e4cf512
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/startpage-pl.xml
@@ -0,0 +1,17 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Startpage</ShortName>
+<Description>Prywatne wyszukiwanie za pomocą Startpage.com</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/startpage.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.startpage.com/do/search"
+ resultDomain="startpage.com">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="segment" value="startpage.seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/startpage.xml b/comm/suite/components/search/searchplugins/startpage.xml
new file mode 100644
index 0000000000..52a33cf061
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/startpage.xml
@@ -0,0 +1,17 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Startpage</ShortName>
+<Description>Private search with Startpage.com</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/startpage.ico</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.startpage.com/do/search"
+ resultDomain="startpage.com">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="segment" value="startpage.seamonkey"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/tyda-sv-SE.xml b/comm/suite/components/search/searchplugins/tyda-sv-SE.xml
new file mode 100644
index 0000000000..3c0ab2429c
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/tyda-sv-SE.xml
@@ -0,0 +1,17 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Tyda.se</ShortName>
+<Description>Tyda.se, lexikon, ordlista och översättning.</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABQklEQVR42mO8fv3GxvVbdu/ay0AcYBYRkrhx4+aXL1+I1cDCxE68agYGBiY4y93Dtbe/Q1lFiVgN4uJi+gZ6PDw8xGrQN9BlYGBwc3eWkJQIDgmIi4+GiEtISsTFR+vp6WDYICHOwMCgoqLMzc2lpKwYlxANcV5gkF9cQjQvHy+6hl079jAwMEybOuvunXvr1m5kYGBwc3dhYGCwtrF88eLlo4eP0TUgg7t37t29c8/dw1VZRUlCQvzokeOfPn/Gp4GBgWHd2o08PNyNzbUMDAzr1236+OEjAQ1Hjxz78uWrhIT4xQuXXjx/gSWU0MCXL1+PHjnGwMCwaydKqmGBsxYtXLpo4VJkOQkJcbg2wjaIioroG+hBHIaiwcbWWkJSAlNDQlIsAwPDzu270WM6IipERUUZU4OEhPjv37+fI3kXAgDUBm6U4URcZQAAAABJRU5ErkJggg==</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://tyda.se/"
+ resultdomain="tyda.se">
+ <Param name="w" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://tyda.se/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/vatera.xml b/comm/suite/components/search/searchplugins/vatera.xml
new file mode 100644
index 0000000000..189e53ff33
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/vatera.xml
@@ -0,0 +1,18 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Vatera</ShortName>
+<Description>Keresés a Vatera.hu piacterén</Description>
+<InputEncoding>ISO-8859-2</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,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</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.vatera.hu/listings/index.php">
+ <Param name="q" value="{searchTerms}"/>
+ <Param name="c" value="0"/>
+ <Param name="td" value="on"/>
+</Url>
+<SearchForm>https://www.vatera.hu/</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-NO.xml b/comm/suite/components/search/searchplugins/wikipedia-NO.xml
new file mode 100644
index 0000000000..2449202447
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-NO.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (no)</ShortName>
+<Description>Wikipedia, den frie encyklopedi</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://no.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://no.wikipedia.org/wiki/Spesial:Søk"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-cz.xml b/comm/suite/components/search/searchplugins/wikipedia-cz.xml
new file mode 100644
index 0000000000..0c6672105a
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-cz.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedie (cs)</ShortName>
+<Description>Wikipedia, svobodná encyclopedie</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://cs.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://cs.wikipedia.org/wiki/Speciální:Hledání"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-de.xml b/comm/suite/components/search/searchplugins/wikipedia-de.xml
new file mode 100644
index 0000000000..d9e46f4a5c
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-de.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (de)</ShortName>
+<Description>Wikipedia, die freie Enzyklopädie</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://de.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://de.wikipedia.org/wiki/Spezial:Suche"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-el.xml b/comm/suite/components/search/searchplugins/wikipedia-el.xml
new file mode 100644
index 0000000000..1c73c65c53
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-el.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (el)</ShortName>
+<Description>Βικιπαίδεια, η ελεύθερη εγκυκλοπαίδεια</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://el.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://el.wikipedia.org/wiki/Ειδικό:Αναζήτηση"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-es.xml b/comm/suite/components/search/searchplugins/wikipedia-es.xml
new file mode 100644
index 0000000000..dc1f798fd3
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-es.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (es)</ShortName>
+<Description>Wikipedia, la enciclopedia libre</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://es.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://es.wikipedia.org/wiki/Especial:Buscar"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-fi.xml b/comm/suite/components/search/searchplugins/wikipedia-fi.xml
new file mode 100644
index 0000000000..27ff04653d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-fi.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (fi)</ShortName>
+<Description>Wikipedia (fi), vapaa tietosanakirja</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://fi.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://fi.wikipedia.org/wiki/Toiminnot:Haku"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search" />
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-fr.xml b/comm/suite/components/search/searchplugins/wikipedia-fr.xml
new file mode 100644
index 0000000000..8d999262bb
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-fr.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipédia (fr)</ShortName>
+<Description>Wikipédia, l'encyclopédie libre</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://fr.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://fr.wikipedia.org/wiki/Spécial:Recherche"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-hu.xml b/comm/suite/components/search/searchplugins/wikipedia-hu.xml
new file mode 100644
index 0000000000..d2888bfe7e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-hu.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipédia (hu)</ShortName>
+<Description>Wikipedia, the free encyclopedia</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://hu.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://hu.wikipedia.org/wiki/Speciális:Keresés"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-it.xml b/comm/suite/components/search/searchplugins/wikipedia-it.xml
new file mode 100644
index 0000000000..47040f6f6d
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-it.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (it)</ShortName>
+<Description>Wikipedia, l'enciclopedia libera</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://it.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://it.wikipedia.org/wiki/Speciale:Ricerca"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-ja.xml b/comm/suite/components/search/searchplugins/wikipedia-ja.xml
new file mode 100644
index 0000000000..3f516ff96e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-ja.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (ja)</ShortName>
+<Description>Wikipedia - フリー百科事典</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ja.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://ja.wikipedia.org/wiki/特別:検索"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-ka.xml b/comm/suite/components/search/searchplugins/wikipedia-ka.xml
new file mode 100644
index 0000000000..7d90efd508
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-ka.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>ვიკიპედია (ka)</ShortName>
+<Description>ვიკიპედია, თავისუფალი ენციკლოპედია</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ka.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://ka.wikipedia.org/wiki/სპეციალური:ძიება"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-nl.xml b/comm/suite/components/search/searchplugins/wikipedia-nl.xml
new file mode 100644
index 0000000000..0999f48b17
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-nl.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (nl)</ShortName>
+<Description>De vrije encyclopedie</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://nl.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://nl.wikipedia.org/wiki/Speciaal:Zoeken"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-pl.xml b/comm/suite/components/search/searchplugins/wikipedia-pl.xml
new file mode 100644
index 0000000000..3d4f26e5f9
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-pl.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (pl)</ShortName>
+<Description>Wikipedia, wolna encyklopedia</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://pl.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://pl.wikipedia.org/wiki/Specjalna:Szukaj"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-pt.xml b/comm/suite/components/search/searchplugins/wikipedia-pt.xml
new file mode 100644
index 0000000000..4745e920a8
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-pt.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (pt)</ShortName>
+<Description>Wikipédia, a enciclopédia livre</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://pt.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://pt.wikipedia.org/wiki/Especial:Pesquisar"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-ru.xml b/comm/suite/components/search/searchplugins/wikipedia-ru.xml
new file mode 100644
index 0000000000..4710887074
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-ru.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Википедия (ru)</ShortName>
+<Description>Википедия, свободная энциклопедия</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ru.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://ru.wikipedia.org/wiki/Служебная:Поиск"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-sk.xml b/comm/suite/components/search/searchplugins/wikipedia-sk.xml
new file mode 100644
index 0000000000..3fc19e7f61
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-sk.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipédia (sk)</ShortName>
+<Description>Wikipédia, slobodná a otvorená encyklopédia</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://sk.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://sk.wikipedia.org/wiki/Špeciálne:Hľadanie"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-sv-SE.xml b/comm/suite/components/search/searchplugins/wikipedia-sv-SE.xml
new file mode 100644
index 0000000000..224e43242e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-sv-SE.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (sv)</ShortName>
+<Description>Wikipedia, den fria encyklopedin</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://sv.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://sv.wikipedia.org/wiki/Special:Sök"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-zh-CN.xml b/comm/suite/components/search/searchplugins/wikipedia-zh-CN.xml
new file mode 100644
index 0000000000..a852639c18
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-zh-CN.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>维基百科</ShortName>
+<Description>维基百科,自由的百科全书</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://zh.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://zh.wikipedia.org/wiki/Special:搜索"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia-zh-TW.xml b/comm/suite/components/search/searchplugins/wikipedia-zh-TW.xml
new file mode 100644
index 0000000000..57357e10df
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia-zh-TW.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (zh)</ShortName>
+<Description>維基百科,自由的百科全書</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://zh.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://zh.wikipedia.org/wiki/Special:搜索"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+ <Param name="variant" value="zh-tw"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wikipedia.xml b/comm/suite/components/search/searchplugins/wikipedia.xml
new file mode 100644
index 0000000000..3daf9a2724
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wikipedia.xml
@@ -0,0 +1,24 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wikipedia (en)</ShortName>
+<Description>Wikipedia, the Free Encyclopedia</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/wikipedia.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://en.wikipedia.org/w/api.php">
+ <Param name="action" value="opensearch"/>
+ <Param name="search" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://en.wikipedia.org/wiki/Special:Search"
+ resultdomain="wikipedia.org"
+ rel="searchform">
+ <Param name="search" value="{searchTerms}"/>
+ <Param name="sourceid" value="Mozilla-search"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/wolnelektury-pl.xml b/comm/suite/components/search/searchplugins/wolnelektury-pl.xml
new file mode 100644
index 0000000000..b2d4e649a3
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/wolnelektury-pl.xml
@@ -0,0 +1,22 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Wolne Lektury</ShortName>
+<Description>Biblioteka internetowa WolneLektury.pl</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image height="16" width="16" type="image/png">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAZlBMVEWauyuauiubuiubuyqauyqbvCrHuBfHuBfsvADrvgDsvgDsvQDrvgDsvQCbuyvsvgC4ABy8ABy+ABm+ABq/ABq/ABm+ABk9YW4+YW49YW49YnA9Y3E4Y3E4Y3G/ABo+Ym+/ABm4ABw5ZyQ5AAAAInRSTlPbyaSAWzYSADZbgKTJ2///EjZbf6TJ28+kgFs2EgD//4AA+LFVUAAAAFdJREFUeAGdzsEKgDAMA9CklzlwQy/+/zeKoCAuspVdvAx8hwYCpSXoIKNLqC7Elo8RjaxnL/i7KAxyqc1ChkgHuiWjOm3qfwyv5G9xjFa4SfMurbhV4QWhBzKL2hdUYQAAAABJRU5ErkJggg==</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://wolnelektury.pl/katalog/jtags/">
+ <Param name="mozhint" value="1"/>
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://wolnelektury.pl/szukaj/">
+ <Param name="q" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://wolnelektury.pl</SearchForm>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-NO.xml b/comm/suite/components/search/searchplugins/yahoo-NO.xml
new file mode 100644
index 0000000000..fc2a299577
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-NO.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Søk</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://no.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://no.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-ar.xml b/comm/suite/components/search/searchplugins/yahoo-ar.xml
new file mode 100644
index 0000000000..e7729d1998
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-ar.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo Argentina</ShortName>
+<Description>Buscar en Yahoo Argentina</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://ar.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://ar.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-bid-zh-TW.xml b/comm/suite/components/search/searchplugins/yahoo-bid-zh-TW.xml
new file mode 100644
index 0000000000..b06761db8b
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-bid-zh-TW.xml
@@ -0,0 +1,18 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo!奇摩拍賣</ShortName>
+<Description>Yahoo!奇摩拍賣</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/gif;base64,R0lGODlhEAAQAMQfAP+7Q4aWvf2QBaKtx//MS+6OLI1MMf/XYv+sKkpalEZNepyUa4KOo2ttjpx4Tdh1ALdrI9lSAHhaVWNSa+Z7Ge9zAPdrALVaIR4/ie9rAOZrELXB0Gtzc/9zCJg+Hf///yH5BAEAAB8ALAAAAAAQABAAAAWM4CeO3xAEA6mKw3IQDrOSAUEAiBPMpXsciIdk1XAUfkCBwKBiAG4IAED5UKg4iGxFWfFgNk0lF+KJWBqribgCwUgKlsRok0hMHvj2YNKJfzYMBxcXE4UTEQkbChlxDT9SBZEUGogBiwkSBFE4khoGcgEJAw0GEBSRBRQUF580CQawsbAJO64Kt7i0KiEAOw==</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://tw.search.bid.yahoo.com/search/ac"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-br.xml b/comm/suite/components/search/searchplugins/yahoo-br.xml
new file mode 100644
index 0000000000..7504947fb6
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-br.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Pesquisa Yahoo</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://br.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://br.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-de.xml b/comm/suite/components/search/searchplugins/yahoo-de.xml
new file mode 100644
index 0000000000..1ffafd0799
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-de.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Suche</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://de.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://de.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-en-GB.xml b/comm/suite/components/search/searchplugins/yahoo-en-GB.xml
new file mode 100644
index 0000000000..0e3f0a37e2
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-en-GB.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo.co.uk</ShortName>
+<Description>Yahoo UK &amp; Ireland Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://uk.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://uk.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-es.xml b/comm/suite/components/search/searchplugins/yahoo-es.xml
new file mode 100644
index 0000000000..721153e384
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-es.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Buscar</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://es.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://es.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-fi.xml b/comm/suite/components/search/searchplugins/yahoo-fi.xml
new file mode 100644
index 0000000000..739e6207fe
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-fi.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo-haku</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://fi.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://fi.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-fr.xml b/comm/suite/components/search/searchplugins/yahoo-fr.xml
new file mode 100644
index 0000000000..12da5c09f1
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-fr.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Recherche Yahoo</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://fr.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://fr.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-it.xml b/comm/suite/components/search/searchplugins/yahoo-it.xml
new file mode 100644
index 0000000000..950ca8a1f4
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-it.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://it.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://it.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-jp.xml b/comm/suite/components/search/searchplugins/yahoo-jp.xml
new file mode 100644
index 0000000000..0545a54949
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-jp.xml
@@ -0,0 +1,18 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo! JAPAN</ShortName>
+<Description>Yahoo Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMA/24zAP//MwD//zMA//8zAP//MwD//wAAAAAAAAAAMwD/7TMA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkI//8zAP//MwD/bwAAAAAAAAAAAAAAADEA/zQyAP8pNwD/FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5CP//MwD//zIA/3AAAAAAAAAAAAAAAAAAAAAAMgD/wDIA/6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AP8sMwD/9zMA//8zAP//NwD/FwAAAAAAAAAAAAAAADQA/3EzAP//MQD/PgAAAAAAAAAAAAAAAAAAAAA3AP8OMwD/2DMA//80AP9PMwD/WjMA//8xAP8qAAAAAAAAAAAyAP8kMwD//zMA/9EAAAAIAAAAAAAAAAAAAAADMwD/tDMA//8yAP+JAAAAAAAAAAAxAP85MwD//zQA/1gAAAAAAAAAADMA/9UzAP//MwD/qQAAAAAAAAAAMgD/kzMA//8zAP/EAAAABAAAAAAAAAAAMwD//zMA//8zAP//MwD//zMA/30xAP8+MwD/+TEA/z4yAP+sMwD//zMA//8zAP//MwD//zMA/5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AADgZwAA+OMAAPjzAADwcQAA4DAAAMMYAADDAAAAA/8AAP//AAD//wAA//8AAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwD//zMA//8zAP//MwD//zMA//8zAP//MwD//zMA//8zAP//MwD//zMA//8zAP//AAAAAAAAAAAAAAAAMQD/HzQA/2MyAP+iAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAP+dMwD/9jMA//8zAP//MwD//zMA//8zAP//MwD//zMA//8zAP//MwD//zMA/3gAAAAAAAAAAAAAAAAzAP+/MwD//zMA//80AP9UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAD/JzQA/4ozAP//MwD//zMA//8zAP/nMwD/NzQA/ycxAP8VAAAABAAAAAAAAAAAAAAAADMA/1AzAP//MwD/zjMA/18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMA//8zAP//MwD//zMA/98AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjAA/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwD//zMA//8zAP//MwD/3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUA/yIzAP9zMwD/UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAP//MwD//zMA//8zAP/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAD/njMA//8zAP/pMwD/DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAD/TzMA//8zAP//MwD//zMA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAP9QMwD//zMA//80AP+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg0AP+UMwD//zMA//8zAP//MwD//jIA/1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4A/wszAP/2MwD//zMA//sxAP8qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwD/lzMA//8zAP//MwD//zMA/84zAP/5MwD/+TIA/1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMA/7MzAP//MwD//zQA/7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIA/1szAP//MwD//zMA//8zAP/fOQD/EjMA/0EzAP/tMwD//DQA/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgD/ZTMA//8zAP//MwD//zIA/1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxAP8vMwD/9TMA//8zAP//MwD/+DEA/zQAAAAAAAAAADUA/yIzAP/UMwD//zMA/5YAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAzAP8ZMwD//TMA//8zAP//MwD/3wAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgD/FjMA/98zAP//MwD//zMA//8yAP9mAAAAAAAAAAAAAAAAAAAAADMA/w8zAP+4MwD//zMA/8MzAP8ZAAAAAAAAAAAAAAAAAAAAAAAAAAAzAP/IMwD//zMA//8zAP//MgD/fwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYzAP/DMwD//zMA//8zAP//MgD/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYzAP+zMwD//zMA/+k0AP9JAAAAAAAAAAAAAAAAAAAAADMA/3kzAP//MwD//zMA//8zAP/2MAD/IAAAAAAAAAAAAAAAAAAAAAAAAAABMwD/pDMA//8zAP//MwD//zMA/9YuAP8LAAAAAAAAAAAAAAAAAAAAAAAAAAA1AP8/NAD/YjMA/5ozAP//MwD//zMA//8zAP+/MwD/gzIA/00wAP8QNQD/KzMA//8zAP//MwD//zMA//8zAP+zAAAAAAAAAAAAAAAAAAAAADMA/40zAP//MwD//zMA//8zAP/3MwD/LQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMA/98zAP/fMwD/3zMA/98zAP/fMwD/3zMA/98zAP/fMwD/3zMA/58AAAAAMwD/3TMA//8zAP/fMwD/kTEA/0MzAP88MgD/YDMA/4IzAP+6MwD//zMA//8zAP//MwD//zMA/7oyAP9HNAD/NjAA/yUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AP9FMgD/LgAAAAAAAAAAAAAAADMA//YzAP//MwD//zMA//8zAP//MwD//zMA//8zAP//MwD//zMA//8zAP//MwD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////////////////////////////////+ABw//gAcP/+AHD//4fz//+H/H//h/w//wf8P/4D/B/+Af4f/AD+D/gYPgfwPB8H4H4PA8B8AAPA/ACAAD//nAA//////////////////////////////////////////////</Image>
+<Url type="text/html" method="GET"
+ template="https://search.yahoo.co.jp/search"
+ resultdomain="yahoo.co.jp"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+ <Param name="fr" value="mozff" />
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-nl.xml b/comm/suite/components/search/searchplugins/yahoo-nl.xml
new file mode 100644
index 0000000000..8d9323b744
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-nl.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Zoeken</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://nl.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://nl.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-sv-SE.xml b/comm/suite/components/search/searchplugins/yahoo-sv-SE.xml
new file mode 100644
index 0000000000..4646c3404c
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-sv-SE.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Sök</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://se.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://se.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-zh-CN.xml b/comm/suite/components/search/searchplugins/yahoo-zh-CN.xml
new file mode 100644
index 0000000000..99a6b6f220
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-zh-CN.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo!</ShortName>
+<Description>Yahoo!奇摩搜尋</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://zh.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://zh.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo-zh-TW.xml b/comm/suite/components/search/searchplugins/yahoo-zh-TW.xml
new file mode 100644
index 0000000000..8045260d8e
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo-zh-TW.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo!</ShortName>
+<Description>Yahoo!奇摩搜尋</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://tw.search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://tw.search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/yahoo.xml b/comm/suite/components/search/searchplugins/yahoo.xml
new file mode 100644
index 0000000000..4359b9c481
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/yahoo.xml
@@ -0,0 +1,25 @@
+<!-- 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/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo</ShortName>
+<Description>Yahoo Search</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">resource://search-plugins/images/yahoo.ico</Image>
+<Url type="application/x-suggestions+json"
+ method="GET"
+ template="https://search.yahoo.com/sugg/ff">
+ <Param name="output" value="fxjson"/>
+ <Param name="appid" value="smd"/>
+ <Param name="command" value="{searchTerms}"/>
+</Url>
+<Url type="text/html"
+ method="GET"
+ template="https://search.yahoo.com/search"
+ resultdomain="yahoo.com"
+ rel="searchform">
+ <Param name="p" value="{searchTerms}"/>
+ <Param name="ei" value="UTF-8"/>
+</Url>
+</SearchPlugin>
diff --git a/comm/suite/components/search/searchplugins/zoznam-sk.xml b/comm/suite/components/search/searchplugins/zoznam-sk.xml
new file mode 100644
index 0000000000..37ac6b8678
--- /dev/null
+++ b/comm/suite/components/search/searchplugins/zoznam-sk.xml
@@ -0,0 +1,13 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<ShortName>Zoznam</ShortName>
+<Description>Zoznam slovenskeho internetu</Description>
+<InputEncoding>WINDOWS-1250</InputEncoding>
+<Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApUlEQVQ4jWNggIJ/DAz//zEw/D+tKv3/dqT3fwYiASNMMy4FZ1WlGRg4OBgEdDQYVJdvZcRpEswFhPBmTu7/p1Wl4RYyohtCrNMZGBgYmBgYGHE7CYsL0TVjuIBUzUQZgE8zQQMIacZrADGacRpArGasBpCiGcMAUjWjGECOZqg67ABXUl5ta/x/d2o0aoo9bKqNO+3rGv+/7Gr8/3BmNknJnGgAAJxPXsbphIDfAAAAAElFTkSuQmCC</Image>
+<Url type="text/html"
+ method="GET"
+ template="https://www.zoznam.sk/hladaj.fcgi">
+ <Param name="co" value="odkazy"/>
+ <Param name="s" value="{searchTerms}"/>
+</Url>
+<SearchForm>https://www.zoznam.sk/</SearchForm>
+</SearchPlugin>