2008-12-01 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Dec 2008 00:51:04 +0000 (00:51 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Dec 2008 00:51:04 +0000 (00:51 +0000)
        Reviewed by Dan Bernstein.

        Move instantiatePlugin to NetscapePluginHostManager.

        * Plugins/Hosted/NetscapePluginHostManager.h:
        * Plugins/Hosted/NetscapePluginHostManager.mm:
        (WebKit::NetscapePluginHostManager::instantiatePlugin):
        * Plugins/Hosted/NetscapePluginHostProxy.h:
        * Plugins/Hosted/NetscapePluginHostProxy.mm:
        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
        (-[WebHostedNetscapePluginView createPlugin]):

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

WebKit/mac/ChangeLog
WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h
WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.mm
WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.h
WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm
WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm

index fdc4789..543a71c 100644 (file)
@@ -2,6 +2,20 @@
 
         Reviewed by Dan Bernstein.
 
+        Move instantiatePlugin to NetscapePluginHostManager.
+        
+        * Plugins/Hosted/NetscapePluginHostManager.h:
+        * Plugins/Hosted/NetscapePluginHostManager.mm:
+        (WebKit::NetscapePluginHostManager::instantiatePlugin):
+        * Plugins/Hosted/NetscapePluginHostProxy.h:
+        * Plugins/Hosted/NetscapePluginHostProxy.mm:
+        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
+        (-[WebHostedNetscapePluginView createPlugin]):
+
+2008-12-01  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Dan Bernstein.
+
         Pass the plug-in host port directly to the instance proxy.
         
         * Plugins/Hosted/NetscapePluginHostProxy.mm:
index 89c545c..0aef7eb 100644 (file)
 #define NetscapePluginHostManager_h
 
 #import <wtf/HashMap.h>
+#import <wtf/PassRefPtr.h>
 #import <wtf/RefPtr.h>
 
 @class WebNetscapePluginPackage;
 
 namespace WebKit {
 
+class NetscapePluginInstanceProxy;
 class NetscapePluginHostProxy;
 
 class NetscapePluginHostManager {
 public:
     static NetscapePluginHostManager& shared();
     
-    NetscapePluginHostProxy* hostForPackage(WebNetscapePluginPackage *);
-    
+    PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(WebNetscapePluginPackage *, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL);
+
 private:
+    NetscapePluginHostProxy* hostForPackage(WebNetscapePluginPackage *);
+
     NetscapePluginHostManager();
     ~NetscapePluginHostManager();
     
index 6338528..8956564 100644 (file)
@@ -28,6 +28,7 @@
 #import "NetscapePluginHostManager.h"
 
 #import "NetscapePluginHostProxy.h"
+#import "NetscapePluginInstanceProxy.h"
 #import "WebKitSystemInterface.h"
 #import "WebNetscapePluginPackage.h"
 #import <mach/mach_port.h>
@@ -107,7 +108,7 @@ bool NetscapePluginHostManager::spawnPluginHost(WebNetscapePluginPackage *packag
 
     [launchProperties release];
 
-    kern_return_t kr = _WKPASpawnPluginHost(m_pluginVendorPort, (uint8_t*)[data bytes], [data length], &pluginHostPort);
+    kern_return_t kr = _WKPASpawnPluginHost(m_pluginVendorPort, reinterpret_cast<uint8_t*>(const_cast<void*>([data bytes])), [data length], &pluginHostPort);
 
     if (kr != KERN_SUCCESS) {
         // FIXME: Check for invalid dest and try to re-spawn the plug-in agent.
@@ -158,6 +159,40 @@ bool NetscapePluginHostManager::initializeVendorPort()
     return true;
 }
 
+PassRefPtr<NetscapePluginInstanceProxy> NetscapePluginHostManager::instantiatePlugin(WebNetscapePluginPackage *pluginPackage, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL)
+{
+    NetscapePluginHostProxy* hostProxy = hostForPackage(pluginPackage);
+
+    RetainPtr<NSMutableDictionary> properties(AdoptNS, [[NSMutableDictionary alloc] init]);
+    
+    if (mimeType)
+        [properties.get() setObject:mimeType forKey:@"mimeType"];
+
+    ASSERT_ARG(userAgent, userAgent);
+    [properties.get() setObject:userAgent forKey:@"userAgent"];
+    
+    ASSERT_ARG(attributeKeys, attributeKeys);
+    [properties.get() setObject:attributeKeys forKey:@"attributeKeys"];
+    
+    ASSERT_ARG(attributeValues, attributeValues);
+    [properties.get() setObject:attributeValues forKey:@"attributeValues"];
+
+    if (sourceURL)
+        [properties.get() setObject:[sourceURL absoluteString] forKey:@"sourceURL"];
+    
+    NSData *data = [NSPropertyListSerialization dataFromPropertyList:properties.get() format:NSPropertyListBinaryFormat_v1_0 errorDescription:nil];
+    ASSERT(data);
+    
+    uint32_t pluginID;
+    uint32_t renderContextID;
+    boolean_t useSoftwareRenderer;
+    
+    if (_WKPHInstantiatePlugin(hostProxy->port(), (uint8_t*)[data bytes], [data length], &pluginID, &renderContextID, &useSoftwareRenderer) != KERN_SUCCESS)
+        return 0;
+
+    return NetscapePluginInstanceProxy::create(hostProxy->port(), pluginID, renderContextID, useSoftwareRenderer);
+}
+    
 } // namespace WebKit
 
 #endif // USE(PLUGIN_HOST_PROCESS)
index 837b768..34586c0 100644 (file)
@@ -42,8 +42,6 @@ public:
         return adoptRef(new NetscapePluginHostProxy(pluginHostPort));
     }
     
-    PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL);
-    
     mach_port_t port() const { return m_pluginHostPort; }
 
 private:
index 0767054..d655b93 100644 (file)
@@ -38,39 +38,6 @@ NetscapePluginHostProxy::NetscapePluginHostProxy(mach_port_t pluginHostPort)
 {
 }
 
-
-PassRefPtr<NetscapePluginInstanceProxy> NetscapePluginHostProxy::instantiatePlugin(NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL)
-{
-    RetainPtr<NSMutableDictionary> properties(AdoptNS, [[NSMutableDictionary alloc] init]);
-    
-    if (mimeType)
-        [properties.get() setObject:mimeType forKey:@"mimeType"];
-
-    ASSERT_ARG(userAgent, userAgent);
-    [properties.get() setObject:userAgent forKey:@"userAgent"];
-    
-    ASSERT_ARG(attributeKeys, attributeKeys);
-    [properties.get() setObject:attributeKeys forKey:@"attributeKeys"];
-    
-    ASSERT_ARG(attributeValues, attributeValues);
-    [properties.get() setObject:attributeValues forKey:@"attributeValues"];
-
-    if (sourceURL)
-        [properties.get() setObject:[sourceURL absoluteString] forKey:@"sourceURL"];
-    
-    NSData *data = [NSPropertyListSerialization dataFromPropertyList:properties.get() format:NSPropertyListBinaryFormat_v1_0 errorDescription:nil];
-    ASSERT(data);
-    
-    uint32_t pluginID;
-    uint32_t renderContextID;
-    boolean_t useSoftwareRenderer;
-    
-    if (_WKPHInstantiatePlugin(m_pluginHostPort, (uint8_t*)[data bytes], [data length], &pluginID, &renderContextID, &useSoftwareRenderer) != KERN_SUCCESS)
-        return 0;
-
-    return NetscapePluginInstanceProxy::create(m_pluginHostPort, pluginID, renderContextID, useSoftwareRenderer);
-}
-
 } // namespace WebKit
 
 #endif // USE(PLUGIN_HOST_PROCESS)
index 81d4c76..d11131c 100644 (file)
@@ -88,14 +88,9 @@ extern "C" {
 {
     ASSERT(!_proxy);
 
-    NetscapePluginHostProxy* pluginHost = NetscapePluginHostManager::shared().hostForPackage(_pluginPackage.get());
-    
-    if (!pluginHost)
-        return NO;
-
     NSString *userAgent = [[self webView] userAgentForURL:_baseURL.get()];
 
-    _proxy = pluginHost->instantiatePlugin(_MIMEType.get(), _attributeKeys.get(), _attributeValues.get(), userAgent, _sourceURL.get());
+    _proxy = NetscapePluginHostManager::shared().instantiatePlugin(_pluginPackage.get(), _MIMEType.get(), _attributeKeys.get(), _attributeValues.get(), userAgent, _sourceURL.get());
     if (!_proxy) 
         return NO;