| <!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> |