<p>This test forces a plugin to snapshot immediately, then tries to restart it.</p>
<div id="result">FAIL</div>
<script>
if (window.testRunner) {
    internals.settings.setPlugInSnapshottingEnabled(true);
    internals.settings.setMaximumPlugInSnapshotAttempts(0);
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    setTimeout(function () {
        var embed = document.getElementById("plugin");
        var rect = embed.getBoundingClientRect();
        eventSender.mouseMoveTo(rect.left + 10, rect.top + 10);
        eventSender.mouseDown();
        eventSender.mouseUp();
        setTimeout(function () {
            var result = document.getElementById("result");
            var embed = document.getElementById("plugin");
            if (!internals.isPluginSnapshotted(embed))
                result.innerHTML = "PASS";
            testRunner.notifyDone();
        }, 1000);
    }, 1000);
}
</script>
<embed id="plugin" src="../resources/orange.mov"></embed>
