<!DOCTYPE html>
<title>Element.requestFullscreen() for top element in fullscreen element stack</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../trusted-click.js"></script>
<div id="log"></div>
<div id="top"></div>
<script>
async_test(function(t)
{
    var top = document.getElementById("top");
    trusted_request(top);
    document.onfullscreenchange = t.step_func(function()
    {
        assert_equals(document.fullscreenElement, top);
        document.onfullscreenchange = t.unreached_func("fullscreenchange event");
        trusted_click(t.step_func(function()
        {
            top.requestFullscreen();
            // A fullscreenerror event would be fired after an async section
            // and an animation frame task, so wait until after that.
            t.step_timeout(function()
            {
                requestAnimationFrame(t.step_func_done());
            }, 0);
        }), top);
    });
    document.onfullscreenerror = t.unreached_func("fullscreenerror event");
});
</script>