Bug 1371367 - Treat langpack search engines as default. r?florian draft
authorMichael Kaply <mozilla@kaply.com>
Wed, 14 Feb 2018 10:34:25 -0600
changeset 755639 9529c64550d28bfdb68f297dc07559ba3364c793
parent 754870 e293877d13a5236119adb706c97c55ea9e11868b
push id99227
push usermozilla@kaply.com
push dateThu, 15 Feb 2018 16:20:11 +0000
reviewersflorian
bugs1371367
milestone60.0a1
Bug 1371367 - Treat langpack search engines as default. r?florian MozReview-Commit-ID: AVYhWRk2Alk
docshell/test/unit/test_nsDefaultURIFixup_info.js
docshell/test/unit/test_nsDefaultURIFixup_search.js
toolkit/components/search/nsSearchService.js
--- a/docshell/test/unit/test_nsDefaultURIFixup_info.js
+++ b/docshell/test/unit/test_nsDefaultURIFixup_info.js
@@ -9,16 +9,21 @@ for (let pref of prefList) {
   Services.prefs.setBoolPref(pref, true);
 }
 
 const kSearchEngineID = "test_urifixup_search_engine";
 const kSearchEngineURL = "http://www.example.org/?search={searchTerms}";
 Services.search.addEngineWithDetails(kSearchEngineID, "", "", "", "get",
                                      kSearchEngineURL);
 
+Services.io.getProtocolHandler("resource")
+        .QueryInterface(Ci.nsIResProtocolHandler)
+        .setSubstitution("search-plugins",
+                         Services.io.newURI("chrome://mozapps/locale/searchplugins/"));
+
 var oldDefaultEngine = Services.search.defaultEngine;
 Services.search.defaultEngine = Services.search.getEngineByName(kSearchEngineID);
 
 var selectedName = Services.search.defaultEngine.name;
 Assert.equal(selectedName, kSearchEngineID);
 
 const kForceHostLookup = "browser.fixup.dns_first_for_single_words";
 registerCleanupFunction(function() {
--- a/docshell/test/unit/test_nsDefaultURIFixup_search.js
+++ b/docshell/test/unit/test_nsDefaultURIFixup_search.js
@@ -5,16 +5,21 @@ ChromeUtils.import("resource://gre/modul
 
 Services.prefs.setBoolPref("keyword.enabled", true);
 
 const kSearchEngineID = "test_urifixup_search_engine";
 const kSearchEngineURL = "http://www.example.org/?search={searchTerms}";
 Services.search.addEngineWithDetails(kSearchEngineID, "", "", "", "get",
                                      kSearchEngineURL);
 
+Services.io.getProtocolHandler("resource")
+        .QueryInterface(Ci.nsIResProtocolHandler)
+        .setSubstitution("search-plugins",
+                         Services.io.newURI("chrome://mozapps/locale/searchplugins/"));
+
 var oldDefaultEngine = Services.search.defaultEngine;
 Services.search.defaultEngine = Services.search.getEngineByName(kSearchEngineID);
 
 var selectedName = Services.search.defaultEngine.name;
 Assert.equal(selectedName, kSearchEngineID);
 
 registerCleanupFunction(function() {
   if (oldDefaultEngine) {
--- a/toolkit/components/search/nsSearchService.js
+++ b/toolkit/components/search/nsSearchService.js
@@ -2252,31 +2252,16 @@ Engine.prototype = {
     if (!this._shortName)
       return false;
 
     // An engine is a default one if we initially loaded it from the application
     // or distribution directory.
     if (/^(?:jar:)?(?:\[app\]|\[distribution\])/.test(this._loadPath))
       return true;
 
-    // If we are using a non-default locale or in the xpcshell test case,
-    // we'll accept as a 'default' engine anything that has been registered at
-    // resource://search-plugins/ even if the file doesn't come from the
-    // application folder.  If not, skip costly additional checks.
-    if (Services.locale.defaultLocale == Services.locale.getRequestedLocale() &&
-        !gEnvironment.get("XPCSHELL_TEST_PROFILE_DIR"))
-      return false;
-
-    // Some xpcshell tests use the search service without registering
-    // resource://search-plugins/.
-    if (!Services.io.getProtocolHandler("resource")
-                 .QueryInterface(Ci.nsIResProtocolHandler)
-                 .hasSubstitution("search-plugins"))
-      return false;
-
     let uri = makeURI(APP_SEARCH_PREFIX + this._shortName + ".xml");
     if (this.getAnonymizedLoadPath(null, uri) == this._loadPath) {
       // This isn't a real default engine, but it's very close.
       LOG("_isDefault, pretending " + this._loadPath + " is a default engine");
       return true;
     }
 
     return false;