<head>
<script>
window.onload = function () {
    if (window.testRunner)
        testRunner.dumpAsText(); 

    var abe = document.getElementById("abe");
    var dragTarget = document.getElementById("dragTarget");

    eventSender.mouseMoveTo(abe.offsetLeft + 50, abe.offsetTop + 50);
    eventSender.mouseDown();
    eventSender.leapForward(500);
    eventSender.mouseMoveTo(dragTarget.offsetLeft + 10, dragTarget.offsetTop + 10);
    eventSender.mouseUp();
}
</script>
</head>

<p>This page tests that we don't crash if we drag something to an iframe that has an invalid source.</p>
<img id="abe" src="http://127.0.0.1:8000/security/resources/abe.png">
<div>SUCCESS - didn't crash</div>
<iframe id="dragTarget" src="file:"></iframe> 
