<!DOCTYPE html>
Pass if there is no crash.
<div></div>
<span></span>
Click anywhere to test manually.
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function requestFullscreen()
{
    document.querySelector("span").webkitRequestFullScreen();
}

document.addEventListener("webkitfullscreenchange", function()
{
    document.body.contentEditable = "true";
    var range = document.createRange();
    range.selectNode(document.body);
    document.getSelection().addRange(range);
    document.execCommand("hiliteColor", false, "#000");
    if (window.testRunner) {
        testRunner.notifyDone();
    }
});

document.addEventListener("click", requestFullscreen);

if (window.eventSender) {
    eventSender.mouseDown();
    eventSender.mouseUp();
}
</script>
