| <!doctype html> |
| <title>opener and embedded documents; using window.open()</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <div id=log></div> |
| <iframe name=matchesastring></iframe> |
| <script> |
| async_test(t => { |
| const frame = document.querySelector("iframe"); |
| frame.onload = t.step_func(() => { |
| // Firefox and Chrome/Safari load differently |
| if (frame.contentWindow.location.href === "about:blank") { |
| return; |
| } |
| |
| // Test bits |
| assert_equals(frame.contentWindow.opener, window, "opener before setting it to null"); |
| |
| const openerDesc = Object.getOwnPropertyDescriptor(frame.contentWindow, "opener"), |
| openerGet = openerDesc.get; |
| |
| assert_equals(openerGet(), window, "opener before setting it to null via directly invoking the getter"); |
| frame.contentWindow.opener = null; |
| frame.contentWindow.opener = "immaterial"; |
| assert_equals(openerGet(), null, "opener after setting it to null via directly invoking the getter"); |
| assert_equals(frame.contentWindow.opener, "immaterial"); |
| |
| t.done(); |
| }); |
| window.open("/common/blank.html", "matchesastring"); |
| }); |
| </script> |