<!DOCTYPE html>
<title>Test '_unfencedTop' navigation from a default-mode fenced frame</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="resources/utils.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/common/get-host-info.sub.js"></script>

<body>
<script>

// This is not our actual test file; instead, this file performs an
// unfenced top navigation to resources/unfenced-top-target.html, which
// contains the actual promise_test. The test should automatically pass if the
// navigation succeeds. See ./automatic-beacon-unfenced-top.https.html for
// another example of this pattern.
async function init() {
  let fencedframe = await attachFencedFrameContext();

  await fencedframe.execute(() => {
    window.onclick = () => {
      let opened_url = new URL('unfenced-top-target.html', location.href);
      window.open(opened_url, '_unfencedTop');
    }
  });

  await multiClick(10, 10, fencedframe.element);
};

init();

</script>
</body>