michael@0: var slaveLoadsPending = 1; michael@0: michael@0: var slaveOrigin = ""; michael@0: var slave = null; michael@0: michael@0: var failureRegExp = new RegExp("^FAILURE"); michael@0: const slavePath = "/tests/dom/tests/mochitest/localstorage/"; michael@0: michael@0: window.addEventListener("message", onMessageReceived, false); michael@0: michael@0: function onMessageReceived(event) michael@0: { michael@0: switch (event.data) michael@0: { michael@0: // Indication of the frame onload event michael@0: case "frame loaded": michael@0: if (--slaveLoadsPending) michael@0: break; michael@0: michael@0: // Just fall through... michael@0: michael@0: // Indication of successfully finished step of a test michael@0: case "perf": michael@0: if (event.data == "perf") michael@0: doStep(); michael@0: michael@0: slave.postMessage("step", slaveOrigin); michael@0: break; michael@0: michael@0: // Indication of all test parts finish (from any of the frames) michael@0: case "done": michael@0: localStorage.clear(); michael@0: slaveLoadsPending = 1; michael@0: doNextTest(); michael@0: break; michael@0: michael@0: // Any other message indicates error or succes message of a test michael@0: default: michael@0: SimpleTest.ok(!event.data.match(failureRegExp), event.data); michael@0: break; michael@0: } michael@0: }