| <!DOCTYPE html> |
| <p>Tests that properties of MessageEvents initialized with initMessageEvent() are cloned when accessed in isolated worlds.</p> |
| <div id="main"></div> |
| <div id="isolated"></div> |
| <script> |
| testRunner.dumpAsText(); |
| |
| function addListener(worldType) { |
| document.getElementById(worldType).addEventListener("MessageEvent", function(event) { |
| console.log("MessageEvent received in " + worldType + " world"); |
| console.log("detail was " + JSON.stringify(event.data)); |
| }); |
| } |
| |
| function sendCloneableObject(targetWorldType) { |
| var newEvent = document.createEvent("MessageEvent"); |
| newEvent.initMessageEvent("MessageEvent", false, false, { foo: 5, bar: 'hello', targetWorld: targetWorldType }); |
| document.getElementById(targetWorldType).dispatchEvent(newEvent); |
| } |
| |
| var sendScript = "(" + sendCloneableObject.toString() + ")('main');"; |
| addListener("main"); |
| testRunner.evaluateScriptInIsolatedWorld(1, sendScript); |
| var receiveScript = "(" + addListener.toString() + ")('isolated');"; |
| testRunner.evaluateScriptInIsolatedWorld(1, receiveScript); |
| sendCloneableObject("isolated"); |
| </script> |