|
1 <!DOCTYPE html> |
|
2 <html> |
|
3 <!-- |
|
4 http://sub1.test1.example.org/tests/dom/tests/mochitest/whatwg/postMessage_joined_helper.html |
|
5 --> |
|
6 <head> |
|
7 <title>postMessage joined domains, inner frame</title> |
|
8 <script type="application/javascript" src="browserFu.js"></script> |
|
9 <script type="application/javascript"> |
|
10 function receiveMessage(evt) |
|
11 { |
|
12 var response, target, providedOrigin; |
|
13 var data = evt.data; |
|
14 if (data === "subframe-test-finished") |
|
15 { |
|
16 target = window.parent; |
|
17 providedOrigin = "http://mochi.test:8888"; |
|
18 response = "test-passed"; |
|
19 } |
|
20 else if (data === "start-test") |
|
21 { |
|
22 target = window.frames.innermost; |
|
23 providedOrigin = "http://example.org"; |
|
24 response = "start-test"; |
|
25 } |
|
26 else |
|
27 { |
|
28 target = window.parent; |
|
29 providedOrigin = "http://mochi.test:8888"; |
|
30 response = "not reached"; |
|
31 } |
|
32 |
|
33 if (evt.lastEventId !== "") |
|
34 response += " wrong-lastEventId(" + evt.lastEventId + ")"; |
|
35 |
|
36 if (evt.type !== "message") |
|
37 response += " wrong-type(" + evt.type + ")"; |
|
38 |
|
39 if (evt.target !== window) |
|
40 { |
|
41 response += " wrong-target(" + evt.target + ")"; |
|
42 response += " location(" + window.location.href + ")"; |
|
43 } |
|
44 |
|
45 if (isMozilla && evt.isTrusted === true) |
|
46 { |
|
47 response += " unexpected-trusted-event"; |
|
48 } |
|
49 |
|
50 var origin; |
|
51 if (data == "subframe-test-finished") |
|
52 origin = "http://example.org"; |
|
53 else if (data === "start-test") |
|
54 origin = "http://mochi.test:8888"; |
|
55 else |
|
56 origin = "unreached"; |
|
57 |
|
58 if (evt.origin !== origin) |
|
59 { |
|
60 response += " wrong-origin(" + evt.origin + ")"; |
|
61 response += " location(" + window.location.href + ")"; |
|
62 } |
|
63 |
|
64 target.postMessage(response, providedOrigin); |
|
65 } |
|
66 |
|
67 function setup() |
|
68 { |
|
69 var oldDomain = document.domain; |
|
70 var newDomain = "example.org"; |
|
71 |
|
72 document.domain = newDomain; |
|
73 |
|
74 var target = document.getElementById("location"); |
|
75 target.textContent = "Location: " + oldDomain + |
|
76 ", effective domain: " + newDomain; |
|
77 |
|
78 window.addEventListener("message", receiveMessage, false); |
|
79 } |
|
80 |
|
81 window.addEventListener("load", setup, false); |
|
82 </script> |
|
83 </head> |
|
84 <body> |
|
85 <p id="location">No location!</p> |
|
86 |
|
87 <iframe src="http://example.org/tests/dom/tests/mochitest/whatwg/postMessage_joined_helper2.html" |
|
88 name="innermost"></iframe> |
|
89 |
|
90 </body> |
|
91 </html> |