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); // Legacy overload resolution will consider
3rd argument to be the (string) origin. | 51 tryPostMessage('2', '*', 'c', true); |
52 tryPostMessage('3', '*', { x: 1 }, true); | 52 tryPostMessage('3', '*', { x: 1 }, true); |
53 tryPostMessage('3a', { x: 1 }, '*', true); // Legacy argument order. | |
54 tryPostMessage('4', '*', window); // Passes because window has a "length" attri
bute of value '0', so it looks like an array | 53 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. | |
56 tryPostMessage('5', '*', undefined); | 54 tryPostMessage('5', '*', undefined); |
57 tryPostMessage('5a', '*', null, true); | 55 tryPostMessage('5a', '*', null, true); |
58 tryPostMessage('6', '*', void 0); | 56 tryPostMessage('6', '*', void 0); |
59 var channel1 = new MessageChannel; | 57 var channel1 = new MessageChannel; |
60 tryPostMessageFunction(window.postMessage, '7', '*', [channel1.port1, channel1.p
ort2]); | 58 tryPostMessageFunction(window.postMessage, '7', '*', [channel1.port1, channel1.p
ort2]); |
61 var channel1a = new MessageChannel; | |
62 tryPostMessageFunction(window.postMessage, '7a', [channel1a.port1, channel1a.por
t2], '*'); | |
63 var channel2 = new MessageChannel; | 59 var channel2 = new MessageChannel; |
64 tryPostMessageFunction(window.postMessage, '7', '*', [channel2.port1, channel2.p
ort2]); | 60 tryPostMessageFunction(window.postMessage, '7', '*', [channel2.port1, channel2.p
ort2]); |
65 var channel3 = new MessageChannel; | 61 var channel3 = new MessageChannel; |
66 tryPostMessage(2147483648, '*', undefined); | 62 tryPostMessage(2147483648, '*', undefined); |
67 tryPostMessage(2147483648, '*', null, true); | 63 tryPostMessage(2147483648, '*', null, true); |
68 tryPostMessageFunction(window.postMessage, channel3.port1, '*', [channel3.port1,
channel3.port2]); | 64 tryPostMessageFunction(window.postMessage, channel3.port1, '*', [channel3.port1,
channel3.port2]); |
69 var channel4 = new MessageChannel; | 65 var channel4 = new MessageChannel; |
70 tryPostMessageFunction(window.postMessage, channel4.port1, '*', [channel4.port1,
channel4.port2]); | 66 tryPostMessageFunction(window.postMessage, channel4.port1, '*', [channel4.port1,
channel4.port2]); |
71 var channel5 = new MessageChannel; | 67 var channel5 = new MessageChannel; |
72 tryPostMessageFunction(window.postMessage, [channel5.port1, channel5.port2], '*'
, [channel5.port1, channel5.port2]); | 68 tryPostMessageFunction(window.postMessage, [channel5.port1, channel5.port2], '*'
, [channel5.port1, channel5.port2]); |
(...skipping 23 matching lines...) Expand all Loading... |
96 tryPostMessageFunction(window.postMessage, 'data', '*', [1,,2], true); | 92 tryPostMessageFunction(window.postMessage, 'data', '*', [1,,2], true); |
97 tryPostMessageFunction(window.postMessage, 'data', '*', [null, window.postMessag
e], true); | 93 tryPostMessageFunction(window.postMessage, 'data', '*', [null, window.postMessag
e], true); |
98 | 94 |
99 shouldThrow("window.postMessage()"); | 95 shouldThrow("window.postMessage()"); |
100 shouldThrow("window.postMessage('a')"); | 96 shouldThrow("window.postMessage('a')"); |
101 | 97 |
102 tryPostMessageFunction(window.postMessage, 'done', '*'); | 98 tryPostMessageFunction(window.postMessage, 'done', '*'); |
103 </script> | 99 </script> |
104 </body> | 100 </body> |
105 </html> | 101 </html> |
OLD | NEW |