<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/utils.js"></script>
<title>Test that notifyEvent() in a nested fenced frame only notifies the immediate parent.</title>

<body>
  <script>
    promise_test(async (t) => {
      const fencedframe = await attachFencedFrameContext();
      let topmost_notified = false;
      fencedframe.element.addEventListener('fencedtreeclick', () => topmost_notified = true);

      await fencedframe.execute(async () => {
        const innerframe = await attachFencedFrameContext();
        window.parent_notified = false;
        innerframe.element.addEventListener('fencedtreeclick', () => window.parent_notified = true);

        await innerframe.execute(() => {
          document.addEventListener('click', (e) => {
            window.fence.notifyEvent(e);
          });
        });
      });

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

      await fencedframe.execute(() => {
        assert_true(window.parent_notified);
      });

      assert_false(topmost_notified);
    }, "Test that notifyEvent() in a nested fenced frame only notifies the immediate parent.");
  </script>
</body>
