OLD | NEW |
1 <html> | 1 <html> |
2 | 2 |
3 <head><title>Post message tests</title> | 3 <head><title>Post message tests</title> |
4 <script> | 4 <script> |
5 // Send a message to our opener, and it will reply. | 5 // Send a message to our opener, and it will reply. |
6 function postToOpener(msg, origin) { | 6 function postToOpener(msg, origin) { |
7 window.opener.postMessage(msg, origin); | 7 window.opener.postMessage(msg, origin); |
8 return true; | 8 return true; |
9 } | 9 } |
10 | 10 |
11 // Send a message to a window named "foo". | 11 // Send a message to a window named "foo". |
12 function postToFoo(msg) { | 12 function postToFoo(msg) { |
13 var w = window.open("", "foo"); | 13 var w = window.open("", "foo"); |
14 w.postMessage(msg, "*"); | 14 w.postMessage(msg, "*"); |
15 return true; | 15 return true; |
16 } | 16 } |
17 | 17 |
| 18 // Send a message to parent. |
| 19 function postToParent(msg) { |
| 20 parent.postMessage(msg, "*"); |
| 21 return true; |
| 22 } |
| 23 |
| 24 // Send a message to sibling. |
| 25 function postToSibling(msg, sibling) { |
| 26 parent.frames[sibling].postMessage(msg, "*"); |
| 27 return true; |
| 28 } |
| 29 |
18 // Send a message to a subframe of window named "foo". | 30 // Send a message to a subframe of window named "foo". |
19 function postToFooFrame(msg) { | 31 function postToFooFrame(msg) { |
20 var w = window.open("", "foo"); | 32 var w = window.open("", "foo"); |
21 w.frames[0][0].postMessage(msg, "*"); | 33 w.frames[0][0].postMessage(msg, "*"); |
22 return true; | 34 return true; |
23 } | 35 } |
24 | 36 |
25 // Listen to incoming messages. | 37 // Listen to incoming messages. |
26 var receivedMessages = 0; | 38 var receivedMessages = 0; |
27 var receivedMessagesWithPort = 0; | 39 var receivedMessagesWithPort = 0; |
28 window.addEventListener("message", messageReceived, false); | 40 window.addEventListener("message", messageReceived, false); |
29 function messageReceived(event) { | 41 function messageReceived(event) { |
30 receivedMessages++; | 42 receivedMessages++; |
31 if (event.data === "2-1-reply") { | 43 if (event.data === "2-1-reply") { |
32 event.source.postMessage("msg4", "*"); | 44 event.source.postMessage("msg4", "*"); |
| 45 } else if (event.data === "subframe-msg") { |
| 46 event.source.postMessage("subframe-msg-reply", "*"); |
| 47 } else if (event.data === "subframe-msg-reply") { |
| 48 domAutomationController.setAutomationId(0); |
| 49 domAutomationController.send("done-" + window.name); |
33 } | 50 } |
34 if (event.ports.length > 0) { | 51 if (event.ports.length > 0) { |
35 receivedMessagesWithPort++; | 52 receivedMessagesWithPort++; |
36 var port = event.ports[0]; | 53 var port = event.ports[0]; |
37 port.start(); | 54 port.start(); |
38 port.postMessage("msg-back-via-port"); | 55 port.postMessage("msg-back-via-port"); |
39 // Change the title to generate a notification. | 56 // Change the title to generate a notification. |
40 document.title = event.data.message; | 57 document.title = event.data.message; |
41 } else { | 58 } else { |
42 document.title = event.data; | 59 document.title = event.data; |
43 } | 60 } |
44 } | 61 } |
45 </script> | 62 </script> |
46 </head> | 63 </head> |
47 | 64 |
48 </html> | 65 </html> |
OLD | NEW |