diff --git a/dom/indexedDB/ipc/test_ipc.html b/dom/indexedDB/ipc/test_ipc.html index 99cc5ad1e7c1..8bda507cb182 100644 --- a/dom/indexedDB/ipc/test_ipc.html +++ b/dom/indexedDB/ipc/test_ipc.html @@ -30,6 +30,11 @@ } function iframeScriptSecond() { + let isMainProcess = content.wrappedJSObject.SpecialPowers.isMainProcess(); + + sendAsyncMessage("test:indexedDB:ipcProcessType", + { isMainProcess: isMainProcess }); + let TestRunner = content.wrappedJSObject.TestRunner; let oldComplete = TestRunner.onComplete; @@ -37,29 +42,32 @@ TestRunner.onComplete = function() { TestRunner.onComplete = oldComplete; - sendAsyncMessage("test:indexedDB:ipcTestComplete", { - result: JSON.stringify(TestRunner._failedTests) - }); + sendAsyncMessage("test:indexedDB:ipcTestComplete"); if (oldComplete) { oldComplete(); } }; - let oldLog = TestRunner.log; - TestRunner.log = function(msg) { + function sendTestMessage(msg) { sendAsyncMessage("test:indexedDB:ipcTestMessage", { msg: msg }); } + + TestRunner.log = sendTestMessage; + TestRunner.error = sendTestMessage; } let regexString = "^(TEST-PASS|TEST-UNEXPECTED-PASS|TEST-KNOWN-FAIL|TEST-UNEXPECTED-FAIL" + - "|TEST-DEBUG-INFO) \\| ([^\\|]+) \\|(.*)"; + "|TEST-DEBUG-INFO|TEST-INFO) \\| ([^\\|]+) \\|(.*)"; let regex = new RegExp(regexString); + let seenTestMessage = false; + function onTestMessage(data) { - let message = SpecialPowers.wrap(data).json.msg; + seenTestMessage = true; + let message = SpecialPowers.wrap(data).data.msg; let match = regex.exec(message); if (match) { let state = match[1]; @@ -76,6 +84,7 @@ ok(false, details); break; + case "TEST-INFO": case "TEST-DEBUG-INFO": default: info(details); @@ -83,8 +92,17 @@ } } + let usingChildProcess = false; + + function onProcessType(data) { + let isMainProcess = SpecialPowers.wrap(data).data.isMainProcess; + usingChildProcess = !isMainProcess; + } + function onTestComplete() { - ok(true, "Got test complete message"); + is(usingChildProcess, true, "Expecting to run in child process"); + is(seenTestMessage, true, "Expecting to receive messages from child"); + SpecialPowers.removePermission("browser", window.location.href); SimpleTest.executeSoon(function () { SimpleTest.finish(); }); } @@ -123,6 +141,7 @@ mm.addMessageListener("SPPermissionManager", spObserver); mm.addMessageListener("test:indexedDB:ipcTestMessage", onTestMessage); + mm.addMessageListener("test:indexedDB:ipcProcessType", onProcessType); mm.addMessageListener("test:indexedDB:ipcTestComplete", onTestComplete); let specialPowersBase = "chrome://specialpowers/content/"; @@ -146,22 +165,11 @@ } addEventListener("load", function() { - let whitelist; - try { - whitelist = - SpecialPowers.getCharPref("dom.mozBrowserFramesWhitelist") + ", "; - } catch (e) { - whitelist = ""; - } - - whitelist += window.location.protocol + "//" + window.location.host; - + SpecialPowers.addPermission("browser", true, document); SpecialPowers.pushPrefEnv({ "set": [ ["dom.ipc.browser_frames.oop_by_default", true], - ["dom.mozBrowserFramesEnabled", true], - ["dom.mozBrowserFramesWhitelist", whitelist], - ["browser.pageThumbs.enabled", false] + ["dom.mozBrowserFramesEnabled", true] ] }, runTests); });