| <!DOCTYPE html> | |
| <title>Test popup created from a Fenced Frame Tree</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/utils.js"></script> | |
| <script src="/common/utils.js"></script> | |
| <body> | |
| <script> | |
| // This key is used by `resources/popup-noopener-destination.html` to let us know if a | |
| // a new popup window is correctly opened without an opener. | |
| const popup_noopener_key = token(); | |
| const kAssertion = "window.opener is null "; | |
| // This key is used by `resources/popup-noopener-inner.html` and | |
| // `resources/create-popup.html to let us know if a | |
| // a new popup window is correctly opened without an openee reference. | |
| const popup_openee_key = token(); | |
| const kAssertion_openee = "openee is null "; | |
| // This key is used by `resources/popup-noopener-destination.html` to let us know if a | |
| // a new popup window is correctly opened without a name. | |
| const popup_name_key = token(); | |
| const kAssertion_name = "window.name is empty string "; | |
| async function runTest(test_type) { | |
| const fenced_frame = | |
| attachFencedFrame(generateURL( | |
| `resources/popup-noopener-inner.html`, | |
| [popup_noopener_key, popup_openee_key, popup_name_key, test_type])); | |
| result = await nextValueFromServer(popup_openee_key); | |
| assert_equals(result, "PASS", kAssertion_openee + test_type); | |
| result = await nextValueFromServer(popup_noopener_key); | |
| assert_equals(result, "PASS", kAssertion + test_type); | |
| result = await nextValueFromServer(popup_name_key); | |
| assert_equals(result, "PASS", kAssertion + test_type); | |
| // Clean up the fenced frame | |
| document.body.removeChild(fenced_frame); | |
| } | |
| promise_test(async () => { | |
| return runTest("top-level fenced frame"); | |
| }, "Create popup from top-level fenced frame"); | |
| promise_test(async () => { | |
| return runTest("nested iframe"); | |
| }, "Create popup from iframe nested in a fenced frame"); | |
| promise_test(async () => { | |
| return runTest("nested fenced frame"); | |
| }, "Create popup from nested fenced frame"); | |
| </script> | |
| </body> |