>Index: browser/components/search/nsSearchService.js >+ case "updateInterval": >+ if (!isNaN(Number(childtextContent))) >+ this._updateInterval = Number(child.textContent); Use parseInt here instead? >- var sherlockLines, searchSection, sourceTextEncoding; >+ var sherlockLines, searchSection, sourceTextEncoding, browserSection; > try { > sherlockLines = sherlockBytesToLines(this._data); > searchSection = getSection(sherlockLines, "search"); >+ browserSection = getSection(sherlockLines, "browser"); >+ > sourceTextEncoding = parseInt(searchSection["sourcetextencoding"]); > if (sourceTextEncoding) { > // Re-convert the bytes using the found sourceTextEncoding > sherlockLines = sherlockBytesToLines(this._data, sourceTextEncoding); > searchSection = getSection(sherlockLines, "search"); > } Looks like you need to re-get browserSection here, again. This code needs refactoring, I think (though not in this patch). >+var engineUpdateService = { >+ try { >+ interval = prefB.getIntPref(BROWSER_SEARCH_PREF+"updateinterval"); >+ } catch (ex) { >+ interval = 1; >+ } Why fall back to 1 if the default pref is 6? No need for the try/catch, we can assume the pref will exist since we're adding it to the default pref file. >+ LOG("adding engine to update service:"+aEngine.updateURL+','+aEngine.updateIcon); Add spaces around operators (+)? this happens elsewhere, too.