<html>
<head>
    <script>
        if (window.testRunner) {
            window.testRunner.dumpAsText();
            window.testRunner.addUserScript("document.addEventListener('beforeload', function(event) { if (event.url.indexOf('swf') >= 0) event.preventDefault(); }, true);", true, true);
        }
    </script>
</head>
<body>
    This tests https://bugs.webkit.org/show_bug.cgi?id=46773 by having the load of the plugin
    inside the plugin document be cancelled. If there is no crash, the test passed.
    <iframe src="resources/simple_blank.swf"></iframe>
</body>
</html>
