From 02a451dc6e31e48c011c97618d609083f1f52508 Mon Sep 17 00:00:00 2001 From: Michael Kaply Date: Wed, 9 May 2018 23:29:34 -0700 Subject: [PATCH] Bug 1460190 - Handle search regions with default but no enginelist. r=adw MozReview-Commit-ID: FJM1Q9DLXWR --HG-- extra : rebase_source : 7b22a5e40982280a858f7147edd00fc83c0fe52b --- toolkit/components/search/nsSearchService.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/toolkit/components/search/nsSearchService.js b/toolkit/components/search/nsSearchService.js index 06ff2cd5a301..004cfe565456 100644 --- a/toolkit/components/search/nsSearchService.js +++ b/toolkit/components/search/nsSearchService.js @@ -3500,13 +3500,15 @@ SearchService.prototype = { if (Services.prefs.prefHasUserValue("browser.search.region")) { searchRegion = Services.prefs.getCharPref("browser.search.region"); } - if (!searchRegion || !(searchRegion in searchSettings)) { - searchRegion = "default"; - } // Fallback to building a list based on the regions in the JSON if (!engineNames || !engineNames.length) { - engineNames = searchSettings[searchRegion].visibleDefaultEngines; + if (searchRegion && searchRegion in searchSettings && + "visibleDefaultEngines" in searchSettings[searchRegion]) { + engineNames = searchSettings[searchRegion].visibleDefaultEngines; + } else { + engineNames = searchSettings.default.visibleDefaultEngines; + } } // Remove any engine names that are supposed to be ignored. @@ -3530,7 +3532,8 @@ SearchService.prototype = { // Store this so that it can be used while writing the cache file. this._visibleDefaultEngines = engineNames; - if ("searchDefault" in searchSettings[searchRegion]) { + if (searchRegion && searchRegion in searchSettings && + "searchDefault" in searchSettings[searchRegion]) { this._searchDefault = searchSettings[searchRegion].searchDefault; } else { this._searchDefault = searchSettings.default.searchDefault;