| <!DOCTYPE html> |
| <title>Tests that portal don't navigate to non-http schemes.</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| async_test(t => { |
| assert_implements("HTMLPortalElement" in self); |
| var portal = document.createElement("portal"); |
| portal.src = "data:text/html,empty portal"; |
| portal.onload = t.unreached_func("Portal loaded data URL."); |
| document.body.appendChild(portal); |
| t.step_timeout(() => { portal.remove(); t.done(); }, 3000); |
| }, "Tests that a portal can't navigate to a data URL."); |
| |
| async_test(t => { |
| assert_implements("HTMLPortalElement" in self); |
| var portal = document.createElement("portal"); |
| portal.src = "about:blank"; |
| portal.onload = t.unreached_func("Portal loaded about:blank."); |
| document.body.appendChild(portal); |
| t.step_timeout(() => { portal.remove(); t.done(); }, 3000); |
| }, "Tests that a portal can't navigate to about:blank."); |
| |
| async_test(t => { |
| assert_implements("HTMLPortalElement" in self); |
| var portal = document.createElement("portal"); |
| portal.src = "resources/simple-portal.html"; |
| portal.onload = t.step_func(() => { |
| portal.onmessage = t.unreached_func("Portal execute javascript."); |
| portal.src = "javascript:window.portalHost.postMessage('executed', '*')"; |
| t.step_timeout(() => { portal.remove(); t.done(); }, 3000); |
| }); |
| document.body.appendChild(portal); |
| }, "Tests that a portal can't navigate to javascript URLs."); |
| </script> |
| </body> |