| <!DOCTYPE html><!-- webkit-test-runner [ BroadcastChannelOriginPartitioningEnabled=true ] --> |
| <html> |
| <body> |
| <script src="/js-test-resources/js-test.js"></script> |
| <script> |
| description("Tests that BroadcastChannel is partioning based on top origin / frame origin."); |
| jsTestIsAsync = true; |
| |
| let bc = new BroadcastChannel("broadcastchannel-partitioning"); |
| |
| let gotMessageFromSameOriginPopup = false; |
| let gotMessageFromSameOriginIframeUnderSameOriginPopup = false; |
| bc.onmessage = (message) => { |
| if (message.data == "same-origin-popup") { |
| testPassed("Received message from same-origin popup"); |
| shouldBeFalse("gotMessageFromSameOriginPopup"); |
| gotMessageFromSameOriginPopup = true; |
| } else if (message.data == "same-origin-iframe-under-same-origin-popup") { |
| testPassed("Received message from same-origin iframe under same-origin popup"); |
| shouldBeFalse("gotMessageFromSameOriginIframeUnderSameOriginPopup"); |
| gotMessageFromSameOriginIframeUnderSameOriginPopup = true; |
| } else { |
| testFailed("Received unexpected message: " + message.data); |
| } |
| |
| if (gotMessageFromSameOriginPopup && gotMessageFromSameOriginIframeUnderSameOriginPopup) |
| setTimeout(finishJSTest, 1000); |
| }; |
| |
| onload = () => { |
| open("http://localhost:8000/messaging/resources/broadcastchannel-partitioning-popup.html"); |
| open("resources/broadcastchannel-partitioning-popup.html", "same-origin-popup", "noopener"); |
| }; |
| </script> |
| </body> |
| </html> |