<!DOCTYPE html>
<html>
<body>
<video></video>
<p><a href="https://bugs.webkit.org/show_bug.cgi?id=89785">Bug 89785</a>: REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent</p>
<script src="full-screen-test.js"></script>
<script>
    if ("webkitRequestFullScreen" in Element.prototype) {
        if (!window.testRunner)
            consoleWrite("To manually test this bug, switch to fullscreen. It shouldn't crash.");

        video = document.getElementsByTagName("video")[0];
        var fullscreenChanged = function(event)
        {
            video.offsetLeft;
            video.offsetTop;
            consoleWrite("PASSED, the page didn't crash.");
            endTest();
        };
        document.addEventListener('webkitfullscreenchange', fullscreenChanged);

        runWithKeyDown(function () {
            video.webkitRequestFullScreen();
        });
    } else {
        consoleWrite("FAILED, couldn't find webkitRequestFullScreen.");
        endTest();
    }
</script>
</body>
</html>
