Changeset 71081 in webkit
- Timestamp:
- Nov 1, 2010 5:12:48 PM (13 years ago)
- Location:
- trunk/WebKit2
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit2/ChangeLog
r71076 r71081 1 2010-11-01 Anders Carlsson <andersca@apple.com> 2 3 Reviewed by Oliver Hunt. 4 5 Make NPRemoteObjectMap a ref counted object 6 https://bugs.webkit.org/show_bug.cgi?id=48808 7 8 * PluginProcess/PluginControllerProxy.cpp: 9 (WebKit::PluginControllerProxy::windowScriptNPObject): 10 * PluginProcess/WebProcessConnection.cpp: 11 (WebKit::WebProcessConnection::WebProcessConnection): 12 (WebKit::WebProcessConnection::didReceiveSyncMessage): 13 * PluginProcess/WebProcessConnection.h: 14 (WebKit::WebProcessConnection::npRemoteObjectMap): 15 * Shared/Plugins/NPRemoteObjectMap.cpp: 16 (WebKit::NPRemoteObjectMap::create): 17 (WebKit::NPRemoteObjectMap::~NPRemoteObjectMap): 18 (WebKit::NPRemoteObjectMap::createNPObjectProxy): 19 * Shared/Plugins/NPRemoteObjectMap.h: 20 * WebProcess/Plugins/PluginProcessConnection.cpp: 21 (WebKit::PluginProcessConnection::PluginProcessConnection): 22 (WebKit::PluginProcessConnection::didReceiveSyncMessage): 23 * WebProcess/Plugins/PluginProcessConnection.h: 24 (WebKit::PluginProcessConnection::npRemoteObjectMap): 25 * WebProcess/Plugins/PluginProxy.cpp: 26 (WebKit::PluginProxy::getWindowScriptNPObject): 27 1 28 2010-11-01 Anders Carlsson <andersca@apple.com> 2 29 -
trunk/WebKit2/PluginProcess/PluginControllerProxy.cpp
r71054 r71081 30 30 #include "BackingStore.h" 31 31 #include "DataReference.h" 32 #include "NP ObjectProxy.h"32 #include "NPRemoteObjectMap.h" 33 33 #include "NetscapePlugin.h" 34 34 #include "NotImplemented.h" … … 171 171 return 0; 172 172 173 return m_connection->npRemoteObjectMap() .createNPObjectProxy(windowScriptNPObjectID);173 return m_connection->npRemoteObjectMap()->createNPObjectProxy(windowScriptNPObjectID); 174 174 } 175 175 -
trunk/WebKit2/PluginProcess/WebProcessConnection.cpp
r71075 r71081 28 28 #include "WebProcessConnection.h" 29 29 30 #include "NPRemoteObjectMap.h" 30 31 #include "PluginControllerProxy.h" 31 32 #include "PluginProcess.h" … … 45 46 46 47 WebProcessConnection::WebProcessConnection(CoreIPC::Connection::Identifier connectionIdentifier) 47 : m_connection(CoreIPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main()))48 , m_npRemoteObjectMap(m_connection.get())49 48 { 49 m_connection = CoreIPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main()); 50 m_npRemoteObjectMap = NPRemoteObjectMap::create(m_connection.get()); 51 50 52 m_connection->open(); 51 53 } … … 106 108 107 109 if (messageID.is<CoreIPC::MessageClassNPObjectMessageReceiver>()) 108 return m_npRemoteObjectMap .didReceiveSyncMessage(connection, messageID, arguments, reply);110 return m_npRemoteObjectMap->didReceiveSyncMessage(connection, messageID, arguments, reply); 109 111 110 112 if (PluginControllerProxy* pluginControllerProxy = m_pluginControllers.get(destinationID)) -
trunk/WebKit2/PluginProcess/WebProcessConnection.h
r71051 r71081 30 30 31 31 #include "Connection.h" 32 #include "NPRemoteObjectMap.h"33 32 #include "Plugin.h" 34 33 #include <wtf/RefCounted.h> … … 36 35 namespace WebKit { 37 36 37 class NPRemoteObjectMap; 38 38 class PluginControllerProxy; 39 39 … … 47 47 CoreIPC::Connection* connection() const { return m_connection.get(); } 48 48 49 NPRemoteObjectMap & npRemoteObjectMap() { return m_npRemoteObjectMap; }49 NPRemoteObjectMap* npRemoteObjectMap() const { return m_npRemoteObjectMap.get(); } 50 50 51 51 private: … … 71 71 72 72 HashMap<uint64_t, PluginControllerProxy*> m_pluginControllers; 73 NPRemoteObjectMapm_npRemoteObjectMap;73 RefPtr<NPRemoteObjectMap> m_npRemoteObjectMap; 74 74 }; 75 75 -
trunk/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp
r71075 r71081 39 39 return ++generateNPObjectID; 40 40 } 41 41 42 PassRefPtr<NPRemoteObjectMap> NPRemoteObjectMap::create(CoreIPC::Connection* connection) 43 { 44 return adoptRef(new NPRemoteObjectMap(connection)); 45 } 46 42 47 NPRemoteObjectMap::NPRemoteObjectMap(CoreIPC::Connection* connection) 43 48 : m_connection(connection) … … 45 50 } 46 51 47 NPObjectProxy* NPRemoteObjectMap::createNPObjectProxy(uint64_t remoteObjectID) 52 NPRemoteObjectMap::~NPRemoteObjectMap() 53 { 54 } 55 56 NPObject* NPRemoteObjectMap::createNPObjectProxy(uint64_t remoteObjectID) 48 57 { 49 58 return NPObjectProxy::create(this, remoteObjectID); -
trunk/WebKit2/Shared/Plugins/NPRemoteObjectMap.h
r71075 r71081 32 32 #include <WebCore/npruntime.h> 33 33 #include <wtf/HashMap.h> 34 #include <wtf/ Noncopyable.h>34 #include <wtf/RefCounted.h> 35 35 36 36 namespace WebKit { … … 39 39 class NPObjectProxy; 40 40 41 class NPRemoteObjectMap { 42 WTF_MAKE_NONCOPYABLE(NPRemoteObjectMap); 43 41 class NPRemoteObjectMap : public RefCounted<NPRemoteObjectMap> { 44 42 public: 45 explicit NPRemoteObjectMap(CoreIPC::Connection*); 43 static PassRefPtr<NPRemoteObjectMap> create(CoreIPC::Connection*); 44 ~NPRemoteObjectMap(); 46 45 47 46 // Creates an NPObjectProxy wrapper for the remote object with the given remote object ID. 48 NPObject Proxy* createNPObjectProxy(uint64_t remoteObjectID);47 NPObject* createNPObjectProxy(uint64_t remoteObjectID); 49 48 50 49 // Expose the given NPObject as a remote object. Returns the objectID. … … 56 55 57 56 private: 57 explicit NPRemoteObjectMap(CoreIPC::Connection*); 58 58 CoreIPC::Connection* m_connection; 59 59 -
trunk/WebKit2/WebProcess/Plugins/PluginProcessConnection.cpp
r71075 r71081 28 28 #include "PluginProcessConnection.h" 29 29 30 #include "NPRemoteObjectMap.h" 30 31 #include "PluginProcessConnectionManager.h" 31 32 #include "PluginProxy.h" … … 37 38 : m_pluginProcessConnectionManager(pluginProcessConnectionManager) 38 39 , m_pluginPath(pluginPath) 39 , m_connection(CoreIPC::Connection::createClientConnection(connectionIdentifier, this, WebProcess::shared().runLoop()))40 , m_npRemoteObjectMap(m_connection.get())41 40 { 41 m_connection = CoreIPC::Connection::createClientConnection(connectionIdentifier, this, WebProcess::shared().runLoop()); 42 m_npRemoteObjectMap = NPRemoteObjectMap::create(m_connection.get()); 43 42 44 m_connection->open(); 43 45 } … … 84 86 { 85 87 if (messageID.is<CoreIPC::MessageClassNPObjectMessageReceiver>()) 86 return m_npRemoteObjectMap .didReceiveSyncMessage(connection, messageID, arguments, reply);88 return m_npRemoteObjectMap->didReceiveSyncMessage(connection, messageID, arguments, reply); 87 89 88 90 if (PluginProxy* pluginProxy = m_plugins.get(arguments->destinationID())) -
trunk/WebKit2/WebProcess/Plugins/PluginProcessConnection.h
r71051 r71081 30 30 31 31 #include "Connection.h" 32 #include "NPRemoteObjectMap.h"33 32 #include "Plugin.h" 34 33 #include <wtf/RefCounted.h> … … 39 38 namespace WebKit { 40 39 40 class NPRemoteObjectMap; 41 41 class PluginProcessConnectionManager; 42 42 class PluginProxy; … … 57 57 void removePluginProxy(PluginProxy*); 58 58 59 NPRemoteObjectMap & npRemoteObjectMap() { return m_npRemoteObjectMap; }59 NPRemoteObjectMap* npRemoteObjectMap() const { return m_npRemoteObjectMap.get(); } 60 60 61 61 private: … … 77 77 HashMap<uint64_t, PluginProxy*> m_plugins; 78 78 79 NPRemoteObjectMapm_npRemoteObjectMap;79 RefPtr<NPRemoteObjectMap> m_npRemoteObjectMap; 80 80 }; 81 81 -
trunk/WebKit2/WebProcess/Plugins/PluginProxy.cpp
r71051 r71081 30 30 #include "BackingStore.h" 31 31 #include "DataReference.h" 32 #include "NPRemoteObjectMap.h" 32 33 #include "NPRuntimeUtilities.h" 33 34 #include "NotImplemented.h" … … 355 356 } 356 357 357 windowScriptNPObjectID = m_connection->npRemoteObjectMap() .registerNPObject(windowScriptNPObject);358 windowScriptNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(windowScriptNPObject); 358 359 releaseNPObject(windowScriptNPObject); 359 360 }
Note: See TracChangeset
for help on using the changeset viewer.