summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp')
-rw-r--r--Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp
index bd8af4b22..cbc4f0e3e 100644
--- a/Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp
+++ b/Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.cpp
@@ -28,23 +28,23 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
-#include "ArgumentDecoder.h"
-#include "ArgumentEncoder.h"
+#include "Decoder.h"
+#include "Encoder.h"
#include "PluginProcessConnection.h"
#include "PluginProcessConnectionManagerMessages.h"
#include "WebCoreArgumentCoders.h"
#include "WebProcess.h"
#include "WebProcessProxyMessages.h"
-#if PLATFORM(MAC)
+#if OS(DARWIN) && !USE(UNIX_DOMAIN_SOCKETS)
#include "MachPort.h"
#endif
namespace WebKit {
-PassRefPtr<PluginProcessConnectionManager> PluginProcessConnectionManager::create()
+Ref<PluginProcessConnectionManager> PluginProcessConnectionManager::create()
{
- return adoptRef(new PluginProcessConnectionManager);
+ return adoptRef(*new PluginProcessConnectionManager);
}
PluginProcessConnectionManager::PluginProcessConnectionManager()
@@ -70,25 +70,23 @@ PluginProcessConnection* PluginProcessConnectionManager::getPluginProcessConnect
IPC::Attachment encodedConnectionIdentifier;
bool supportsAsynchronousInitialization;
- if (!WebProcess::shared().parentProcessConnection()->sendSync(Messages::WebProcessProxy::GetPluginProcessConnection(pluginProcessToken),
+ if (!WebProcess::singleton().parentProcessConnection()->sendSync(Messages::WebProcessProxy::GetPluginProcessConnection(pluginProcessToken),
Messages::WebProcessProxy::GetPluginProcessConnection::Reply(encodedConnectionIdentifier, supportsAsynchronousInitialization), 0))
return 0;
-#if PLATFORM(MAC)
+#if USE(UNIX_DOMAIN_SOCKETS)
+ IPC::Connection::Identifier connectionIdentifier = encodedConnectionIdentifier.releaseFileDescriptor();
+#elif OS(DARWIN)
IPC::Connection::Identifier connectionIdentifier(encodedConnectionIdentifier.port());
- if (IPC::Connection::identifierIsNull(connectionIdentifier))
- return 0;
-#elif USE(UNIX_DOMAIN_SOCKETS)
- IPC::Connection::Identifier connectionIdentifier = encodedConnectionIdentifier.fileDescriptor();
- if (connectionIdentifier == -1)
- return 0;
#endif
+ if (IPC::Connection::identifierIsNull(connectionIdentifier))
+ return nullptr;
RefPtr<PluginProcessConnection> pluginProcessConnection = PluginProcessConnection::create(this, pluginProcessToken, connectionIdentifier, supportsAsynchronousInitialization);
m_pluginProcessConnections.append(pluginProcessConnection);
{
- MutexLocker locker(m_tokensAndConnectionsMutex);
+ LockHolder locker(m_tokensAndConnectionsMutex);
ASSERT(!m_tokensAndConnections.contains(pluginProcessToken));
m_tokensAndConnections.set(pluginProcessToken, pluginProcessConnection->connection());
@@ -103,7 +101,7 @@ void PluginProcessConnectionManager::removePluginProcessConnection(PluginProcess
ASSERT(vectorIndex != notFound);
{
- MutexLocker locker(m_tokensAndConnectionsMutex);
+ LockHolder locker(m_tokensAndConnectionsMutex);
ASSERT(m_tokensAndConnections.contains(pluginProcessConnection->pluginProcessToken()));
m_tokensAndConnections.remove(pluginProcessConnection->pluginProcessToken());
@@ -114,7 +112,7 @@ void PluginProcessConnectionManager::removePluginProcessConnection(PluginProcess
void PluginProcessConnectionManager::pluginProcessCrashed(uint64_t pluginProcessToken)
{
- MutexLocker locker(m_tokensAndConnectionsMutex);
+ LockHolder locker(m_tokensAndConnectionsMutex);
IPC::Connection* connection = m_tokensAndConnections.get(pluginProcessToken);
// It's OK for connection to be null here; it will happen if this web process doesn't know