<style>
::-webkit-scrollbar-corner {
    color: Red;
}
</style>
<p>Focus on the input and hit Escape and see if the browser crashes.</p>
<input placeholder="foo" id=i>
<div id=console></div>
<script>
document.getElementById('i').addEventListener("keydown", function() {
    this.style.display = "none";
    document.getElementById('console').innerText = 'PASS (not crashed)';
    if (window.testRunner)
        testRunner.notifyDone();
});

if (window.testRunner && window.eventSender) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    setTimeout(function() {
        document.getElementById('i').focus();
        eventSender.keyDown('a');
    }, 0);
}

</script>
