diff options
author | Matt A. Tobin <email@mattatobin.com> | 2019-04-23 14:44:40 -0400 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2019-04-23 14:44:40 -0400 |
commit | 63295d0087eb58a6eb34cad324c4c53d1b220491 (patch) | |
tree | bf5471c5eb5ac35cd81659a903bc33c3259136cb /toolkit/components/search/nsSidebar.js | |
parent | 0c84220a4f93a3e4f48d8d183aa0f5d8b15eb7ab (diff) | |
download | UXP-63295d0087eb58a6eb34cad324c4c53d1b220491.tar UXP-63295d0087eb58a6eb34cad324c4c53d1b220491.tar.gz UXP-63295d0087eb58a6eb34cad324c4c53d1b220491.tar.lz UXP-63295d0087eb58a6eb34cad324c4c53d1b220491.tar.xz UXP-63295d0087eb58a6eb34cad324c4c53d1b220491.zip |
Sort out search service
The ESR52 implementation is now Basilisk specific and the older implementation is the shared toolkit one
Diffstat (limited to 'toolkit/components/search/nsSidebar.js')
-rw-r--r-- | toolkit/components/search/nsSidebar.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/toolkit/components/search/nsSidebar.js b/toolkit/components/search/nsSidebar.js new file mode 100644 index 000000000..deb455734 --- /dev/null +++ b/toolkit/components/search/nsSidebar.js @@ -0,0 +1,57 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */ +/* 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/. */ + +const { interfaces: Ci, utils: Cu } = Components; + +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); + +// File extension for Sherlock search plugin description files +const SHERLOCK_FILE_EXT_REGEXP = /\.src$/i; + +function nsSidebar() { +} + +nsSidebar.prototype = { + init: function(window) { + this.window = window; + this.mm = window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIDocShell) + .QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIContentFrameMessageManager); + }, + + // Deprecated, only left here to avoid breaking old browser-detection scripts. + addSearchEngine: function(engineURL, iconURL, suggestedTitle, suggestedCategory) { + if (SHERLOCK_FILE_EXT_REGEXP.test(engineURL)) { + Cu.reportError("Installing Sherlock search plugins is no longer supported."); + return; + } + + this.AddSearchProvider(engineURL); + }, + + // This function implements window.external.AddSearchProvider(). + // The capitalization, although nonstandard here, is to match other browsers' + // APIs and is therefore important. + AddSearchProvider: function(engineURL) { + this.mm.sendAsyncMessage("Search:AddEngine", { + pageURL: this.window.document.documentURIObject.spec, + engineURL + }); + }, + + // This function exists to implement window.external.IsSearchProviderInstalled(), + // for compatibility with other browsers. The function has been deprecated + // and so will not be implemented. + IsSearchProviderInstalled: function(engineURL) { + return 0; + }, + + classID: Components.ID("{22117140-9c6e-11d3-aaf1-00805f8a4905}"), + QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, + Ci.nsIDOMGlobalPropertyInitializer]) +} + +this.NSGetFactory = XPCOMUtils.generateNSGetFactory([nsSidebar]); |