<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="help" href="https://html.spec.whatwg.org/C/#update-the-rendering">

<body>
<script>
'use strict';

async_test(t => {
  t.events = [];

  let iframe = document.createElement('iframe');
  iframe.addEventListener('load', t.step_func(() => {
    let w = iframe.contentWindow;
    w.requestAnimationFrame(t.step_func(() => {
      t.events.push('animationFrame');
      w.requestAnimationFrame(t.step_func(() => {
        t.events.push('animationFrame-should-not-be-recorded');
      }));
    }));
    let element = w.document.createElement('input');
    element.autofocus = true;
    element.addEventListener('focus', t.step_func(() => {
      t.events.push('autofocus');
      iframe.style.width = '71px';
    }));

    w.addEventListener('resize', t.step_func_done(() => {
      t.events.push('resize');
      assert_array_equals(t.events, ['animationFrame', 'autofocus', 'resize']);
    }));

    w.document.body.appendChild(element);
  }));
  document.body.appendChild(iframe);
}, '"Flush autofocus candidates" should be happen after the first animation ' +
    'frame callbacks, and before a resize event in the next iteration of ' +
    'window event loop.');
</script>
</body>
