| <!DOCTYPE html> | |
| <title>Test location.ancestorOrigins</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/common/get-host-info.sub.js"></script> | |
| <script src="/common/utils.js"></script> | |
| <script src="resources/utils.js"></script> | |
| <body> | |
| <script> | |
| promise_test(async () => { | |
| const location_ao_key = token(); | |
| const location_ao_ack_key = token(); | |
| // We load the top-level fenced frame in a cross-origin, so that we can | |
| // more-completely verify the important cross-origin | |
| // `location.ancestorOrigins` case. | |
| const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; | |
| const cross_origin_fenced_frame = getRemoteOriginURL(generateURL( | |
| 'resources/location-ancestorOrigins-inner.https.html', | |
| [location_ao_key, location_ao_ack_key] | |
| ), https=true); | |
| attachFencedFrame(cross_origin_fenced_frame); | |
| // Get the result for the top-level fenced frame. | |
| const fenced_frame_result = await nextValueFromServer(location_ao_key); | |
| assert_equals(fenced_frame_result, "", "The top-level fenced frame has the " + | |
| "right ancestor origins"); | |
| // Write an ACK, so that the fenced frame knows it can send message over the | |
| // `window_parent_key` channel again. | |
| writeValueToServer(location_ao_ack_key, "ACK"); | |
| // Get the result for the iframe inside the fenced frame. | |
| const iframe_in_fenced_frame_result = await nextValueFromServer(location_ao_key); | |
| assert_equals(iframe_in_fenced_frame_result, cross_origin, "The iframe " + | |
| "inside the top-level fenced frame has the right " + | |
| "ancestor origins"); | |
| writeValueToServer(location_ao_ack_key, "ACK"); | |
| // Get the result for the nested fenced frame. | |
| const nested_fenced_frame_result = await nextValueFromServer(location_ao_key); | |
| assert_equals(nested_fenced_frame_result, "", "The nested fenced frame " + | |
| "inside the top-level fenced frame has the right ancestor " + | |
| "origins"); | |
| }, "location.ancestorOrigins"); | |
| </script> | |
| </body> |