From 91c2dcfe29c08b226a967ac613d7f6ce2cd57500 Mon Sep 17 00:00:00 2001 From: "gavin%gavinsharp.com" Date: Tue, 31 Oct 2006 15:32:43 +0000 Subject: [PATCH] Bug 358891: Firefox doesn't remember the search engine with non-ascii characters as its selected engine, patch by Kohei Yoshino , r=me git-svn-id: svn://10.0.0.236/trunk@214466 18797224-902f-48f8-a5cc-f745e15eee43 --- .../components/search/nsSearchService.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mozilla/browser/components/search/nsSearchService.js b/mozilla/browser/components/search/nsSearchService.js index b96ae5b289c..f8094df3314 100755 --- a/mozilla/browser/components/search/nsSearchService.js +++ b/mozilla/browser/components/search/nsSearchService.js @@ -627,6 +627,23 @@ function getLocalizedPref(aPrefName, aDefault) { return aDefault; } +/** + * Wrapper for nsIPrefBranch::setComplexValue. + * @param aPrefName + * The name of the pref to set. + */ +function setLocalizedPref(aPrefName, aValue) { + var prefB = Cc["@mozilla.org/preferences-service;1"]. + getService(Ci.nsIPrefBranch); + const nsIPLS = Ci.nsIPrefLocalizedString; + try { + var pls = Components.classes["@mozilla.org/pref-localizedstring;1"] + .createInstance(Ci.nsIPrefLocalizedString); + pls.data = aValue; + prefB.setComplexValue(aPrefName, nsIPLS, pls); + } catch (ex) {} +} + /** * Wrapper for nsIPrefBranch::getBoolPref. * @param aPrefName @@ -2774,7 +2791,7 @@ SearchService.prototype = { prefB.clearUserPref(currentEnginePref); } else { - prefB.setCharPref(currentEnginePref, this._currentEngine.name); + setLocalizedPref(currentEnginePref, this._currentEngine.name); } notifyAction(this._currentEngine, SEARCH_ENGINE_CURRENT);