<!DOCTYPE html>
<title>Navigate ancestor helper from nested fenced frame</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="utils.js"></script>
<body>
<script>
(async () => {
// This document is loaded into a fenced frame by
// `navigate-ancestor-test-runner.https.html`. It creates a nested iframe and
// navigates it to `navigate-ancestor-helper.https.html`.
// navigate_ancestor_from_nested_key sent by us to our embedder to
// indicate that an message was sent from the nested iframe when it failed to
// navigate the ancestor (this) frame.
const [navigate_ancestor_key, navigate_ancestor_from_nested_key,
ancestor_type] = parseKeylist();
// An message should be sent from the iframe.
window.addEventListener('message', (e) => {
window.onbeforeunload = null;
writeValueToServer(
navigate_ancestor_from_nested_key,
`PASS: [${ancestor_type}] ${e.data}`);
});
// When the iframe tries to navigate its ancestor frame, it should not
// navigate *this* frame, because the sandboxed navigation browsing context
// flag [1] must be set in fenced frame trees.
// [1] https://html.spec.whatwg.org/multipage/origin.html#sandboxed-navigation-browsing-context-flag
const iframe = document.createElement('iframe');
iframe.src = generateURL(`navigate-ancestor-helper.https.html`,
[navigate_ancestor_key, ancestor_type]);
document.body.append(iframe);
})();
</script>
</body>