2009-03-12 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Mar 2009 19:36:15 +0000 (19:36 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 12 Mar 2009 19:36:15 +0000 (19:36 +0000)
        Reviewed by Geoffrey Garen.

        WebKit side of <rdar://problem/6607801>

        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
        (WebKit::NetscapePluginInstanceProxy::destroy):
        Pass a requestID to _WKPCDestroyPluginInstance and wait until we get a reply back.

        * Plugins/Hosted/WebKitPluginHost.defs:
        Add requestID parameter.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41641 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/mac/ChangeLog
WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
WebKit/mac/Plugins/Hosted/WebKitPluginHost.defs

index 2f5f994238ccf063bdc7a513eb4021b5c09aa57f..67a3c34ce0c585bced8f27b2ca6efc9f2393638c 100644 (file)
@@ -1,3 +1,16 @@
+2009-03-12  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Geoffrey Garen.
+
+        WebKit side of <rdar://problem/6607801>
+        
+        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
+        (WebKit::NetscapePluginInstanceProxy::destroy):
+        Pass a requestID to _WKPCDestroyPluginInstance and wait until we get a reply back.
+        
+        * Plugins/Hosted/WebKitPluginHost.defs:
+        Add requestID parameter.
+
 2009-03-12  Kevin Decker  <kdecker@apple.com>
 
         Reviewed by Anders Carlsson.
index b44ac922f771f6cc19312b3d579de949e272ba7a..593aee0d471b7d2eb27e8521450f0a3ed16b4f6c 100644 (file)
@@ -166,7 +166,12 @@ void NetscapePluginInstanceProxy::invalidate()
 
 void NetscapePluginInstanceProxy::destroy()
 {
-    _WKPHDestroyPluginInstance(m_pluginHostProxy->port(), m_pluginID);
+    uint32_t requestID = nextRequestID();
+    
+    _WKPHDestroyPluginInstance(m_pluginHostProxy->port(), m_pluginID, requestID);
+    
+    // We don't care about the reply here - we just want to block until the plug-in instance has been torn down.
+    waitForReply<NetscapePluginInstanceProxy::BooleanReply>(requestID);
 
     cleanup();
     invalidate();
index c89f8485394c2dae4163d05356579a0818f12d10..c6c38aa06b8e51f9349f1f12564822548073411e 100644 (file)
@@ -107,7 +107,8 @@ simpleroutine PHPluginInstancePrint(pluginHostPort :mach_port_t;
                                     height :uint32_t);
 
 simpleroutine PHDestroyPluginInstance(pluginHostPort :mach_port_t;
-                                    pluginID :uint32_t);
+                                    pluginID :uint32_t;
+                                    requestID :uint32_t);
 
 
 // Streams