OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="../../../resources/js-test.js"></script> | 3 <script src="../../../resources/js-test.js"></script> |
4 </head> | 4 </head> |
5 <body> | 5 <body> |
6 <script> | 6 <script> |
7 description("Test window.postMessage() argument handling."); | 7 description("Test window.postMessage() argument handling."); |
8 | 8 |
9 self.jsTestIsAsync = true; | 9 self.jsTestIsAsync = true; |
10 | 10 |
(...skipping 30 matching lines...) Expand all Loading... |
41 testFailed("Posting message ('" + first + "', " + third + ")" + reason); | 41 testFailed("Posting message ('" + first + "', " + third + ")" + reason); |
42 } | 42 } |
43 | 43 |
44 function tryPostMessage(first, second, third, shouldFail) { | 44 function tryPostMessage(first, second, third, shouldFail) { |
45 tryPostMessageFunction(window.postMessage, first, second, third, shouldFail)
; | 45 tryPostMessageFunction(window.postMessage, first, second, third, shouldFail)
; |
46 } | 46 } |
47 | 47 |
48 document.getElementById("description").innerHTML = "Test that the second argumen
t of window.postMessage is ignored or triggers an error if it is not a message p
ort. You should see PASS message '1' through '7', followed by 'done', with messa
ges 4-7 received below.<br><br>"; | 48 document.getElementById("description").innerHTML = "Test that the second argumen
t of window.postMessage is ignored or triggers an error if it is not a message p
ort. You should see PASS message '1' through '7', followed by 'done', with messa
ges 4-7 received below.<br><br>"; |
49 | 49 |
50 tryPostMessage('1', '*', 1, true); | 50 tryPostMessage('1', '*', 1, true); |
51 tryPostMessage('2', '*', 'c', true); | 51 tryPostMessage('2', '*', 'c', true); // Legacy overload resolution will consider
3rd argument to be the (string) origin. |
52 tryPostMessage('3', '*', { x: 1 }, true); | 52 tryPostMessage('3', '*', { x: 1 }, true); |
| 53 tryPostMessage('3a', { x: 1 }, '*', true); // Legacy argument order. |
53 tryPostMessage('4', '*', window); // Passes because window has a "length" attri
bute of value '0', so it looks like an array | 54 tryPostMessage('4', '*', window); // Passes because window has a "length" attri
bute of value '0', so it looks like an array |
| 55 tryPostMessage('4a', window, '*'); // Legacy argument order. |
54 tryPostMessage('5', '*', undefined); | 56 tryPostMessage('5', '*', undefined); |
55 tryPostMessage('5a', '*', null, true); | 57 tryPostMessage('5a', '*', null, true); |
56 tryPostMessage('6', '*', void 0); | 58 tryPostMessage('6', '*', void 0); |
57 var channel1 = new MessageChannel; | 59 var channel1 = new MessageChannel; |
58 tryPostMessageFunction(window.postMessage, '7', '*', [channel1.port1, channel1.p
ort2]); | 60 tryPostMessageFunction(window.postMessage, '7', '*', [channel1.port1, channel1.p
ort2]); |
| 61 var channel1a = new MessageChannel; |
| 62 tryPostMessageFunction(window.postMessage, '7a', [channel1a.port1, channel1a.por
t2], '*'); |
59 var channel2 = new MessageChannel; | 63 var channel2 = new MessageChannel; |
60 tryPostMessageFunction(window.postMessage, '7', '*', [channel2.port1, channel2.p
ort2]); | 64 tryPostMessageFunction(window.postMessage, '7', '*', [channel2.port1, channel2.p
ort2]); |
61 var channel3 = new MessageChannel; | 65 var channel3 = new MessageChannel; |
62 tryPostMessage(2147483648, '*', undefined); | 66 tryPostMessage(2147483648, '*', undefined); |
63 tryPostMessage(2147483648, '*', null, true); | 67 tryPostMessage(2147483648, '*', null, true); |
64 tryPostMessageFunction(window.postMessage, channel3.port1, '*', [channel3.port1,
channel3.port2]); | 68 tryPostMessageFunction(window.postMessage, channel3.port1, '*', [channel3.port1,
channel3.port2]); |
65 var channel4 = new MessageChannel; | 69 var channel4 = new MessageChannel; |
66 tryPostMessageFunction(window.postMessage, channel4.port1, '*', [channel4.port1,
channel4.port2]); | 70 tryPostMessageFunction(window.postMessage, channel4.port1, '*', [channel4.port1,
channel4.port2]); |
67 var channel5 = new MessageChannel; | 71 var channel5 = new MessageChannel; |
68 tryPostMessageFunction(window.postMessage, [channel5.port1, channel5.port2], '*'
, [channel5.port1, channel5.port2]); | 72 tryPostMessageFunction(window.postMessage, [channel5.port1, channel5.port2], '*'
, [channel5.port1, channel5.port2]); |
(...skipping 23 matching lines...) Expand all Loading... |
92 tryPostMessageFunction(window.postMessage, 'data', '*', [1,,2], true); | 96 tryPostMessageFunction(window.postMessage, 'data', '*', [1,,2], true); |
93 tryPostMessageFunction(window.postMessage, 'data', '*', [null, window.postMessag
e], true); | 97 tryPostMessageFunction(window.postMessage, 'data', '*', [null, window.postMessag
e], true); |
94 | 98 |
95 shouldThrow("window.postMessage()"); | 99 shouldThrow("window.postMessage()"); |
96 shouldThrow("window.postMessage('a')"); | 100 shouldThrow("window.postMessage('a')"); |
97 | 101 |
98 tryPostMessageFunction(window.postMessage, 'done', '*'); | 102 tryPostMessageFunction(window.postMessage, 'done', '*'); |
99 </script> | 103 </script> |
100 </body> | 104 </body> |
101 </html> | 105 </html> |
OLD | NEW |