<html>
<script>
function clickElement(element) {
    if (window.eventSender) {
        var centerX = element.offsetLeft + element.offsetWidth / 2;
        var centerY = element.offsetTop + element.offsetHeight / 2;
        eventSender.mouseMoveTo(centerX, centerY);
        eventSender.mouseDown();
    }
}

function crash() {
    var x = document.getElementById('x');
    x.setAttribute('data', x.data);
    clickElement(x);
    document.body.innerHTML = "PASS";

    if (window.layoutTestController)
        layoutTestController.notifyDone();
}

function load() {
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
    }
    setTimeout(crash, 0);
}
</script>
<body onload="load()">
    <object id="x" data="x" border="1" type="application/x-webkit-test-netscape">
        <param name="wmode" value="transparent">
    </object>
</body>
</html>
