| <head> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| </head> |
| <body onload="runTest()"> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| |
| function createTestPlugin(testName) |
| { |
| var plugin = document.createElement("embed"); |
| plugin.type = "application/x-webkit-test-netscape"; |
| plugin.setAttribute('test', testName); |
| |
| return plugin; |
| } |
| |
| function runTest() |
| { |
| if (!window.testRunner) { |
| debug("This test can only run from within DumpRenderTree because it requires TestNetscapePlugin.\n"); |
| return; |
| } |
| |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabled", "1"); |
| testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabledForAllPlugins", "1"); |
| |
| var beforeDate = new Date; |
| |
| plugin = createTestPlugin('slow-npp-new'); |
| document.body.appendChild(plugin); |
| // Try to force a layout so the plug-in instantiates |
| var foo = document.body.offsetTop; |
| |
| var afterDate = new Date; |
| |
| if (afterDate - beforeDate > 500) |
| testFailed("Appending plug-in element took over 500ms (" + (afterDate - beforeDate) + "ms) so the plug-in was probably being initialized synchronously"); |
| else |
| testPassed("Appending plug-in element took under 500ms, plug-in initializing asynchronously."); |
| |
| testRunner.notifyDone(); |
| } |
| |
| description("Test that loading a slow loading plug-in (550ms second sleep in NPP_new) doesn't block the WebProcess"); |
| |
| </script> |