<head>
<script src="../../../resources/js-test-pre.js"></script>
<script>

var startTime = new Date;

if (window.testRunner) {
    testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabled", "1");
    testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabledForAllPlugins", "1");
    window.internals.settings.setCanStartMedia(false);
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function runTest() 
{
    if (!window.testRunner) {
        debug("This test can only run from within DumpRenderTree because it requires test runner internals.\n");
        return;
    }
	
	var pluginElement = document.getElementById("TestElement");
	pluginElement.parentNode.removeChild(pluginElement);

    testPassed("Removing the plug-in element did not crash.");

	var endTime = new Date;
	if (endTime - startTime > 549)
		testFailed("This test took over 549ms meaning the plug-in with a 550ms startup delay was actually initialized.  It never should've been initialized.");

    testRunner.notifyDone();
}
</script>

</head>
<body onload="setTimeout('runTest()', 0)">
<embed id="TestElement" type="application/x-webkit-test-netscape" test="slow-npp-new"></embed>
<p id="description"></p>
<div id="console"></div>
</body>

<script>
description("Tests that when media/plugin playback is disabled (such as when in a background tab), removing a plug-in element that was never initialized does not crash.");
var unused = document.body.offsetTop;
</script>
