<html>
<head>
<script>
function runTest() {
    frameDocument = document.getElementById('frame').contentWindow.document;
    frameDocument.body.innerHTML = "<textarea id=textarea cols=50 rows=5 onblur='this.style.backgroundColor=\"green\"'></textarea>";
    var textarea = frameDocument.getElementById('textarea');
    textarea.focus();

    if (!window.testRunner) {
        output.textContent = "Click on the plugin (the blue rectangle); if the text field turns green the test has passed, otherwise it has failed.";
    } else {
        eventSender.mouseMoveTo(60, 60);
        eventSender.mouseDown();
        eventSender.mouseUp();

        if (frameDocument.activeElement != textarea) {
          document.getElementById('output').textContent = "PASSED";
        }
        testRunner.dumpAsText();
    }
}
</script>
</head>
<body onload="runTest();">
<embed type="application/x-webkit-test-netscape" width="100" height="100"></embed><br>
<iframe id="frame" width="640"></iframe>
<div id="output">FAILED</div>
</body>
</html>
