michael@0: const Ci = Components.interfaces; michael@0: const Cc = Components.classes; michael@0: michael@0: function isParentProcess() { michael@0: let appInfo = Cc["@mozilla.org/xre/app-info;1"]; michael@0: return (!appInfo || appInfo.getService(Ci.nsIXULRuntime).processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT); michael@0: } michael@0: michael@0: function run_test() { michael@0: if (isParentProcess()) { michael@0: michael@0: do_load_child_test_harness(); michael@0: michael@0: var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); michael@0: michael@0: // these prefs are set after the child has been created. michael@0: pb.setBoolPref("Test.IPC.bool.new", true); michael@0: pb.setIntPref("Test.IPC.int.new", 23); michael@0: pb.setCharPref("Test.IPC.char.new", "hey"); michael@0: michael@0: run_test_in_child("test_observed_prefs.js", testPrefClear); michael@0: } michael@0: } michael@0: michael@0: function testPrefClear() { michael@0: var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); michael@0: pb.clearUserPref("Test.IPC.bool.new"); michael@0: michael@0: sendCommand( michael@0: 'var pb = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);\n'+ michael@0: 'pb.prefHasUserValue("Test.IPC.bool.new");\n', michael@0: checkWasCleared); michael@0: } michael@0: michael@0: function checkWasCleared(existsStr) { michael@0: do_check_eq(existsStr, "false"); michael@0: do_test_finished(); michael@0: }