diff --git a/mozilla/browser/components/bookmarks/src/nsBookmarksService.cpp b/mozilla/browser/components/bookmarks/src/nsBookmarksService.cpp index 287bee33a87..43a4b9480e5 100644 --- a/mozilla/browser/components/bookmarks/src/nsBookmarksService.cpp +++ b/mozilla/browser/components/bookmarks/src/nsBookmarksService.cpp @@ -4381,13 +4381,16 @@ nsBookmarksService::GetBookmarksFile(nsIFile* *aResult) nsCOMPtr prefServ(do_GetService(kPrefCID, &rv)); if (NS_SUCCEEDED(rv)) { - nsXPIDLCString prefVal; - rv = prefServ->CopyCharPref("browser.bookmarks.file", - getter_Copies(prefVal)); + nsCOMPtr prefVal; + rv = prefServ->GetComplexValue("browser.bookmarks.file", + NS_GET_IID(nsISupportsString), + getter_AddRefs(prefVal)); if (NS_SUCCEEDED(rv)) { - rv = NS_NewNativeLocalFile(prefVal, PR_TRUE, - (nsILocalFile**)(nsIFile**) getter_AddRefs(bookmarksFile)); + nsXPIDLString bookmarkPath; + prefVal->ToString(getter_Copies(bookmarkPath)); + rv = NS_NewLocalFile(bookmarkPath, PR_TRUE, + (nsILocalFile**)(nsIFile**) getter_AddRefs(bookmarksFile)); if (NS_SUCCEEDED(rv)) { diff --git a/mozilla/xpfe/components/bookmarks/resources/bookmarksManager.js b/mozilla/xpfe/components/bookmarks/resources/bookmarksManager.js index 29f16e87bae..4ce72c8387b 100644 --- a/mozilla/xpfe/components/bookmarks/resources/bookmarksManager.js +++ b/mozilla/xpfe/components/bookmarks/resources/bookmarksManager.js @@ -143,6 +143,11 @@ function OpenBookmarksFile() var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); fp.init(window, BookmarksUtils.getLocaleString("SelectOpen"), nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterHTML); - if (fp.show() == nsIFilePicker.returnOK) - PREF.setCharPref("browser.bookmarks.file", fp.file.path); + if (fp.show() == nsIFilePicker.returnOK) { + var path = Components.classes["@mozilla.org/supports-string;1"] + .createInstance(Components.interfaces.nsISupportsString); + path.data = fp.file.path; + PREF.setComplexValue("browser.bookmarks.file", + Components.interfaces.nsISupportsString, path); + } } diff --git a/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp b/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp index f52d7378a7c..92e214a7be1 100644 --- a/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp +++ b/mozilla/xpfe/components/bookmarks/src/nsBookmarksService.cpp @@ -4988,12 +4988,16 @@ nsBookmarksService::EnsureBookmarksFile() nsCOMPtr prefBranch(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv)); if (NS_SUCCEEDED(rv)) { - nsXPIDLCString prefVal; - rv = prefBranch->GetCharPref("browser.bookmarks.file", - getter_Copies(prefVal)); + nsCOMPtr prefVal; + rv = prefBranch->GetComplexValue("browser.bookmarks.file", + NS_GET_IID(nsISupportsString), + getter_AddRefs(prefVal)); if (NS_SUCCEEDED(rv)) { - rv = NS_NewNativeLocalFile(prefVal, PR_TRUE, getter_AddRefs(mBookmarksFile)); + nsXPIDLString bookmarksFile; + prefVal->ToString(getter_Copies(bookmarksFile)); + rv = NS_NewLocalFile(bookmarksFile, PR_TRUE, + getter_AddRefs(mBookmarksFile)); if (NS_SUCCEEDED(rv)) {