<!DOCTYPE html>
<head>
<style>
.c3 { padding-top: 200px; }
.c3:focus { display: none; }
</style>
</head>
<body></body>
<script>
if (window.testRunner)
    testRunner.dumpAsText();
var iframe1;
function boom() {
    iframe1 = document.createElement('iframe');
    document.documentElement.appendChild(iframe1);
    document.documentElement.appendChild(document.createElement('li'));
    document.documentElement.appendChild(document.createElement('iframe'));
    iframe1.setAttribute('class', 'c3');
    eventSender.mouseMoveTo(1000, 100);
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseMoveTo(100, 100);
    eventSender.mouseDown();
    document.body.innerHTML = 'Test passes if it does not crash.'
}
window.onload = boom;
</script>
