<!DOCTYPE html>
<html>
<head>
  <link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#activation-triggering-input-event">
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="/resources/testdriver.js"></script>
  <script src="/resources/testdriver-vendor.js"></script>
  <script src="resources/utils.js"></script>
</head>
<body>
  <h1>Test for keyboard activation trigger for ESCAPE key</h1>
  <p>Tests missing user activation from a ESCAPE keyboard event.</p>
  <input type="text" autofocus />
  <ol id="instructions">
    <li>Press ESCAPE key.
  </ol>
  <script>
    promise_test(async () => {
        const ESCAPE_KEY = '\uE00C';
        test_driver.send_keys(document.body, ESCAPE_KEY);

        let keydown_event = getEvent('keydown');
        let keyup_event = getEvent('keyup');

        await keydown_event;
        let consumed = await consumeTransientActivation();
        assert_false(consumed,
                    "ESCAPE keydown event should not result in activation");

        await keyup_event;
        consumed = await consumeTransientActivation();
        assert_false(consumed,
                     "ESCAPE keyup should have no activation after keydown consumption");
    }, "Activation through ESCAPE keyboard event");
  </script>
</body>
</html>
