summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
commit3749d61e1f7a59f5ec5067e560af1eb610c82015 (patch)
tree73dc228333948738bbe02976cacca8cd382bc978 /Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
parentb32b4dcd9a51ab8de6afc53d9e17f8707e1f7a5e (diff)
downloadqtwebkit-3749d61e1f7a59f5ec5067e560af1eb610c82015.tar.gz
Imported WebKit commit a77350243e054f3460d1137301d8b3faee3d2052 (http://svn.webkit.org/repository/webkit/trunk@125365)
New snapshot with build fixes for latest API changes in Qt and all WK1 Win MSVC fixes upstream
Diffstat (limited to 'Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp')
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
index 43fa2f4cb..12abf6dc2 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp
@@ -67,6 +67,9 @@ PluginProcessProxy::PluginProcessProxy(PluginProcessManager* PluginProcessManage
#if PLATFORM(MAC)
launchOptions.architecture = pluginInfo.pluginArchitecture;
launchOptions.executableHeap = PluginProcessProxy::pluginNeedsExecutableHeap(pluginInfo);
+#if HAVE(XPC)
+ launchOptions.useXPC = false;
+#endif
#endif
m_processLauncher = ProcessLauncher::create(this, launchOptions);
@@ -137,9 +140,9 @@ void PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch()
RefPtr<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply> reply = m_pendingConnectionReplies.takeFirst();
#if PLATFORM(MAC)
- reply->send(CoreIPC::Attachment(0, MACH_MSG_TYPE_MOVE_SEND));
+ reply->send(CoreIPC::Attachment(0, MACH_MSG_TYPE_MOVE_SEND), false);
#elif USE(UNIX_DOMAIN_SOCKETS)
- reply->send(CoreIPC::Attachment());
+ reply->send(CoreIPC::Attachment(), false);
#else
notImplemented();
#endif
@@ -190,14 +193,16 @@ void PluginProcessProxy::didFinishLaunching(ProcessLauncher*, CoreIPC::Connectio
{
ASSERT(!m_connection);
- if (!connectionIdentifier) {
+ if (CoreIPC::Connection::identifierIsNull(connectionIdentifier)) {
pluginProcessCrashedOrFailedToLaunch();
return;
}
-
+
m_connection = CoreIPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main());
#if PLATFORM(MAC)
m_connection->setShouldCloseConnectionOnMachExceptions();
+#elif PLATFORM(QT)
+ m_connection->setShouldCloseConnectionOnProcessTermination(m_processLauncher->processIdentifier());
#endif
m_connection->open();
@@ -228,7 +233,7 @@ void PluginProcessProxy::didFinishLaunching(ProcessLauncher*, CoreIPC::Connectio
m_numPendingConnectionRequests = 0;
}
-void PluginProcessProxy::didCreateWebProcessConnection(const CoreIPC::Attachment& connectionIdentifier)
+void PluginProcessProxy::didCreateWebProcessConnection(const CoreIPC::Attachment& connectionIdentifier, bool supportsAsynchronousPluginInitialization)
{
ASSERT(!m_pendingConnectionReplies.isEmpty());
@@ -236,9 +241,9 @@ void PluginProcessProxy::didCreateWebProcessConnection(const CoreIPC::Attachment
RefPtr<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply> reply = m_pendingConnectionReplies.takeFirst();
#if PLATFORM(MAC)
- reply->send(CoreIPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND));
+ reply->send(CoreIPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND), supportsAsynchronousPluginInitialization);
#elif USE(UNIX_DOMAIN_SOCKETS)
- reply->send(connectionIdentifier);
+ reply->send(connectionIdentifier, supportsAsynchronousPluginInitialization);
#else
notImplemented();
#endif