Title: [137617] branches/safari-536.28-branch

Diff

Modified: branches/safari-536.28-branch/LayoutTests/ChangeLog (137616 => 137617)


--- branches/safari-536.28-branch/LayoutTests/ChangeLog	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/LayoutTests/ChangeLog	2012-12-13 18:55:49 UTC (rev 137617)
@@ -1,3 +1,7 @@
+2012-12-13  Lucas Forschler  <[email protected]>
+
+    Rollout r134991
+
 2012-12-12  Lucas Forschler  <[email protected]>
 
         Merge r137393

Deleted: branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization-expected.txt (137616 => 137617)


--- branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization-expected.txt	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization-expected.txt	2012-12-13 18:55:49 UTC (rev 137617)
@@ -1,8 +0,0 @@
-
-Tests that accessing the script object of a plug-in that hasn't been initialized fails instead of waiting for initialization to finish.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS Accessing the property took less than 550ms, meaning the plug-in had not finished initializing after our call to the plug-in script object returned.
-

Deleted: branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization.html (137616 => 137617)


--- branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization.html	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/LayoutTests/platform/mac-wk2/plugins/script-object-access-fails-during-slow-initialization.html	2012-12-13 18:55:49 UTC (rev 137617)
@@ -1,47 +0,0 @@
-<head>
-<script src=""
-<script>
-
-var startTime = new Date;
-
-if (window.testRunner) {
-    testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabled", "1");
-    testRunner.overridePreference("WebKit2AsynchronousPluginInitializationEnabledForAllPlugins", "1");
-    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");
-    var testProperty = pluginElement.fooBar;
-    
-    if (testProperty)
-        testFailed("testProperty should not have returned anything, but it returned " + testProperty);
-
-    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.");
-    else
-        testPassed("Accessing the property took less than 550ms, meaning the plug-in had not finished initializing after our call to the plug-in script object returned.");
-
-    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 accessing the script object of a plug-in that hasn't been initialized fails instead of waiting for initialization to finish.");
-var unused = document.body.offsetTop;
-</script>

Modified: branches/safari-536.28-branch/Source/WebKit2/ChangeLog (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/ChangeLog	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/ChangeLog	2012-12-13 18:55:49 UTC (rev 137617)
@@ -1,3 +1,7 @@
+2012-12-13  Lucas Forschler  <[email protected]>
+
+    Rollout r134991
+
 2012-12-06  Anders Carlsson  <[email protected]>
 
         <rdar://problem/12828185> "Invalid message" crash reporter data should also include last sent sync message

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2012-12-13 18:55:49 UTC (rev 137617)
@@ -53,6 +53,7 @@
     static PassRefPtr<NetscapePlugin> fromNPP(NPP);
 
     // In-process NetscapePlugins don't support asynchronous initialization.
+    virtual void waitForAsynchronousInitialization() { }
     virtual bool isBeingAsynchronouslyInitialized() const { return false; }
 
 #if PLATFORM(MAC)

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h	2012-12-13 18:55:49 UTC (rev 137617)
@@ -51,6 +51,7 @@
     static WebCore::PluginInfo pluginInfo();
 
     // In-process PDFViews don't support asynchronous initialization.
+    virtual void waitForAsynchronousInitialization() { }
     virtual bool isBeingAsynchronouslyInitialized() const { return false; }
 
 private:

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Plugin.h (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Plugin.h	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/Plugin.h	2012-12-13 18:55:49 UTC (rev 137617)
@@ -83,6 +83,8 @@
     // Sets the active plug-in controller and initializes the plug-in.
     bool initialize(PluginController*, const Parameters&);
 
+    // Forces synchronous initialization of a plugin previously initialized asynchronously.
+    virtual void waitForAsynchronousInitialization() = 0;
     virtual bool isBeingAsynchronouslyInitialized() const = 0;
 
     // Destroys the plug-in.

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.cpp	2012-12-13 18:55:49 UTC (rev 137617)
@@ -123,6 +123,14 @@
     return controller()->asynchronousPluginInitializationEnabled() && (m_connection->supportsAsynchronousPluginInitialization() || controller()->asynchronousPluginInitializationEnabledForAllPlugins());
 }
 
+void PluginProxy::waitForAsynchronousInitialization()
+{
+    ASSERT(!m_isStarted);
+    ASSERT(m_waitingOnAsynchronousInitialization);
+
+    initializeSynchronously();
+}
+
 bool PluginProxy::initializeSynchronously()
 {
     ASSERT(m_pendingPluginCreationParameters);

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.h (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.h	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginProxy.h	2012-12-13 18:55:49 UTC (rev 137617)
@@ -71,6 +71,7 @@
     virtual bool initialize(const Parameters&);
     bool initializeSynchronously();
 
+    virtual void waitForAsynchronousInitialization();
     virtual void destroy();
     virtual void paint(WebCore::GraphicsContext*, const WebCore::IntRect& dirtyRect);
     virtual PassRefPtr<ShareableBitmap> snapshot();

Modified: branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (137616 => 137617)


--- branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2012-12-13 18:55:49 UTC (rev 137617)
@@ -545,8 +545,19 @@
     if (m_isWaitingForSynchronousInitialization)
         return 0;
 
-    // We might not have started initialization of the plug-in yet, the plug-in might be in the middle
-    // of being initializing asynchronously, or initialization might have previously failed.
+    // The plug-in can be null here if it failed to initialize previously.
+    if (!m_plugin)
+        return 0;
+
+    // If the plug-in exists but is not initialized then we're still initializing asynchronously.
+    // We need to wait here until initialization has either succeeded or failed.
+    if (m_plugin->isBeingAsynchronouslyInitialized()) {
+        m_isWaitingForSynchronousInitialization = true;
+        m_plugin->waitForAsynchronousInitialization();
+        m_isWaitingForSynchronousInitialization = false;
+    }
+
+    // The plug-in can be null here if it still failed to initialize.
     if (!m_isInitialized || !m_plugin)
         return 0;
 

Modified: branches/safari-536.28-branch/Tools/ChangeLog (137616 => 137617)


--- branches/safari-536.28-branch/Tools/ChangeLog	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Tools/ChangeLog	2012-12-13 18:55:49 UTC (rev 137617)
@@ -1,3 +1,7 @@
+2012-12-13  Lucas Forschler  <[email protected]>
+
+    Rollout r134991
+
 2012-11-26  Lucas Forschler  <[email protected]>
 
         Merge r132713

Modified: branches/safari-536.28-branch/Tools/DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp (137616 => 137617)


--- branches/safari-536.28-branch/Tools/DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp	2012-12-13 18:52:58 UTC (rev 137616)
+++ branches/safari-536.28-branch/Tools/DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp	2012-12-13 18:55:49 UTC (rev 137617)
@@ -37,46 +37,7 @@
     }
     
 private:
-    class PluginObject : public Object<PluginObject> {
-    public:
-        PluginObject()
-        {
-        }
-
-        ~PluginObject()
-        {
-        }
-
-        bool hasProperty(NPIdentifier propertyName)
-        {
-            return true;
-        }
-
-        bool getProperty(NPIdentifier propertyName, NPVariant* result)
-        {
-            static const char* message = "My name is ";
-            char* propertyString = pluginTest()->NPN_UTF8FromIdentifier(propertyName);
-            
-            int bufferLength = strlen(propertyString) + strlen(message) + 1;
-            char* resultBuffer = static_cast<char*>(pluginTest()->NPN_MemAlloc(bufferLength));
-            snprintf(resultBuffer, bufferLength, "%s%s", message, propertyString);
-            
-            STRINGZ_TO_NPVARIANT(resultBuffer, *result);
-
-            return true;
-        }
-    };
     
-    virtual NPError NPP_GetValue(NPPVariable variable, void *value)
-    {
-        if (variable != NPPVpluginScriptableNPObject)
-            return NPERR_GENERIC_ERROR;
-        
-        *(NPObject**)value = PluginObject::create(this);
-        
-        return NPERR_NO_ERROR;
-    }
-
     virtual NPError NPP_New(NPMIMEType pluginType, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData *saved)
     {
         usleep(550000);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to