| author | Mike Hommey <mh+mozilla@glandium.org> |
| Thu, 06 May 2010 09:31:36 +0200 | |
| changeset 41962 | b723f72611ea |
| parent 41961 | 7a6a20da79ae |
| child 41963 | 41c2eb76d3a4 |
| push id | 13160 |
| push user | mh@glandium.org |
| push date | 2010-05-06 08:17 +0000 |
| treeherder | mozilla-central@41c2eb76d3a4 [default view] [failures only] |
| perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
| reviewers | dwitte |
| bugs | 506224 |
| milestone | 1.9.3a5pre |
| first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
| last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
|
| modules/libpref/src/prefapi.cpp | file | annotate | diff | comparison | revisions | |
| modules/libpref/test/unit/test_bug506224.js | file | annotate | diff | comparison | revisions |
--- a/modules/libpref/src/prefapi.cpp +++ b/modules/libpref/src/prefapi.cpp @@ -327,18 +327,16 @@ pref_savePref(PLDHashTable *table, PLDHa // where we're getting our pref from PrefValue* sourcePref; if (PREF_HAS_USER_VALUE(pref) && pref_ValueChanged(pref->defaultPref, pref->userPref, (PrefType) PREF_TYPE(pref))) sourcePref = &pref->userPref; - else if (PREF_IS_LOCKED(pref)) - sourcePref = &pref->defaultPref; else // do not save default prefs that haven't changed return PL_DHASH_NEXT; // strings are in quotes! if (pref->flags & PREF_STRING) { prefValue = '\"'; str_escape(sourcePref->stringVal, prefValue);
new file mode 100644 --- /dev/null +++ b/modules/libpref/test/unit/test_bug506224.js @@ -0,0 +1,29 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ */ + +function run_test() { + const Cc = Components.classes; + const Ci = Components.interfaces; + const PREF_NAME = "testPref"; + + var ps = Cc["@mozilla.org/preferences-service;1"] + .getService(Ci.nsIPrefService); + var prefs = ps.getDefaultBranch(null); + var userprefs = ps.getBranch(null); + + prefs.setCharPref(PREF_NAME, "test0"); + prefs.lockPref(PREF_NAME); + do_check_eq("test0", userprefs.getCharPref(PREF_NAME)); + do_check_eq(false, userprefs.prefHasUserValue(PREF_NAME)); + + var file = do_get_profile(); + file.append("prefs.js"); + ps.savePrefFile(file); + + prefs.unlockPref(PREF_NAME); + prefs.setCharPref(PREF_NAME, "test1"); + ps.readUserPrefs(file); + + do_check_eq("test1", userprefs.getCharPref(PREF_NAME)); + do_check_eq(false, userprefs.prefHasUserValue(PREF_NAME)); +}