[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 13:42:54 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 7682887784ed3f645acb195d0bae4b5ab95ec24d
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Sep 23 22:20:53 2010 +0000
Implement handlers for the GetPluginProcessConnection message
https://bugs.webkit.org/show_bug.cgi?id=46415
Reviewed by Darin Adler.
* Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
Add GetPluginProcessConnection message kind
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
Add missing constructor.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPluginProcessConnection):
Ask the plug-in process manager for a connection.
(WebKit::WebProcessProxy::didReceiveSyncMessage):
Call getPluginProcessConnection.
* UIProcess/WebProcessProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
Send the GetPluginProcessConnection message.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68205 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 101b638..a6cccb6 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,29 @@
+2010-09-23 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Darin Adler.
+
+ Implement handlers for the GetPluginProcessConnection message
+ https://bugs.webkit.org/show_bug.cgi?id=46415
+
+ * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h:
+ Add GetPluginProcessConnection message kind
+
+ * UIProcess/Plugins/PluginProcessManager.cpp:
+ (WebKit::PluginProcessManager::PluginProcessManager):
+ Add missing constructor.
+
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::getPluginProcessConnection):
+ Ask the plug-in process manager for a connection.
+
+ (WebKit::WebProcessProxy::didReceiveSyncMessage):
+ Call getPluginProcessConnection.
+
+ * UIProcess/WebProcessProxy.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::createPlugin):
+ Send the GetPluginProcessConnection message.
+
2010-09-23 Matthew Delaney <mdelaney at apple.com>
Reviewed by Simon Fraser.
diff --git a/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h b/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
index 5d04802..70e694c 100644
--- a/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
+++ b/WebKit2/Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h
@@ -41,6 +41,9 @@ enum Kind {
DidUpdateHistoryTitle,
DidDestroyFrame,
GetPluginPath,
+#if ENABLE(PLUGIN_PROCESS)
+ GetPluginProcessConnection,
+#endif
GetPlugins
};
diff --git a/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp b/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
index 98aacf7..aef0da6 100644
--- a/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
+++ b/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp
@@ -41,6 +41,10 @@ PluginProcessManager& PluginProcessManager::shared()
return pluginProcessManager;
}
+PluginProcessManager::PluginProcessManager()
+{
+}
+
void PluginProcessManager::getPluginProcessConnection(const String& pluginPath, WebProcessProxy* webProcessProxy, CoreIPC::ArgumentEncoder* reply)
{
ASSERT(!pluginPath.isNull());
diff --git a/WebKit2/UIProcess/WebProcessProxy.cpp b/WebKit2/UIProcess/WebProcessProxy.cpp
index 8d8e5da..e12f102 100644
--- a/WebKit2/UIProcess/WebProcessProxy.cpp
+++ b/WebKit2/UIProcess/WebProcessProxy.cpp
@@ -26,6 +26,7 @@
#include "WebProcessProxy.h"
#include "PluginInfoStore.h"
+#include "PluginProcessManager.h"
#include "WebBackForwardListItem.h"
#include "WebContext.h"
#include "WebNavigationDataStore.h"
@@ -212,6 +213,13 @@ void WebProcessProxy::getPlugins(bool refresh, Vector<PluginInfo>& plugins)
m_context->pluginInfoStore()->getPlugins(plugins);
}
+#if ENABLE(PLUGIN_PROCESS)
+void WebProcessProxy::getPluginProcessConnection(const String& pluginPath, CoreIPC::ArgumentEncoder* reply)
+{
+ PluginProcessManager::shared().getPluginProcessConnection(pluginPath, this, reply);
+}
+#endif
+
void WebProcessProxy::getPluginPath(const String& mimeType, const KURL& url, String& pluginPath)
{
String newMimeType = mimeType.lower();
@@ -323,6 +331,9 @@ void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC
// These are synchronous messages and should never be handled here.
case WebProcessProxyMessage::GetPlugins:
case WebProcessProxyMessage::GetPluginPath:
+#if ENABLE(PLUGIN_PROCESS)
+ case WebProcessProxyMessage::GetPluginProcessConnection:
+#endif
ASSERT_NOT_REACHED();
break;
}
@@ -370,10 +381,23 @@ CoreIPC::SyncReplyMode WebProcessProxy::didReceiveSyncMessage(CoreIPC::Connectio
String pluginPath;
getPluginPath(mimeType, KURL(ParsedURLString, urlString), pluginPath);
+
reply->encode(CoreIPC::In(pluginPath));
return CoreIPC::AutomaticReply;
}
+#if ENABLE(PLUGIN_PROCESS)
+ case WebProcessProxyMessage::GetPluginProcessConnection: {
+ String pluginPath;
+
+ if (!arguments->decode(CoreIPC::Out(pluginPath)))
+ return CoreIPC::AutomaticReply;
+
+ getPluginProcessConnection(pluginPath, reply);
+ return CoreIPC::ManualReply;
+ }
+#endif
+
// These are asynchronous messages and should never be handled here.
case WebProcessProxyMessage::DidNavigateWithNavigationData:
case WebProcessProxyMessage::DidPerformClientRedirect:
diff --git a/WebKit2/UIProcess/WebProcessProxy.h b/WebKit2/UIProcess/WebProcessProxy.h
index 81c52b0..41987be 100644
--- a/WebKit2/UIProcess/WebProcessProxy.h
+++ b/WebKit2/UIProcess/WebProcessProxy.h
@@ -107,8 +107,11 @@ private:
bool sendMessage(CoreIPC::MessageID, PassOwnPtr<CoreIPC::ArgumentEncoder>);
- void getPlugins(bool refresh, Vector<WebCore::PluginInfo>&);
+#if ENABLE(PLUGIN_PROCESS)
+ void getPluginProcessConnection(const String& pluginPath, CoreIPC::ArgumentEncoder* reply);
+#endif
void getPluginPath(const String& mimeType, const WebCore::KURL& url, String& pluginPath);
+ void getPlugins(bool refresh, Vector<WebCore::PluginInfo>&);
void addOrUpdateBackForwardListItem(uint64_t itemID, const String& originalURLString, const String& urlString, const String& title);
void addVisitedLink(WebCore::LinkHash);
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index 6eb3610..988fb31 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -63,6 +63,11 @@
#include <runtime/JSLock.h>
#include <runtime/JSValue.h>
+#if ENABLE(PLUGIN_PROCESS)
+// FIXME: This is currently mac specific!
+#include "MachPort.h"
+#endif
+
#ifndef NDEBUG
#include <wtf/RefCountedLeakCounter.h>
#endif
@@ -182,11 +187,24 @@ PassRefPtr<Plugin> WebPage::createPlugin(const Plugin::Parameters& parameters)
if (pluginPath.isNull())
return 0;
+#if ENABLE(PLUGIN_PROCESS)
+ // FIXME: This is currently Mac specific.
+ CoreIPC::MachPort connectionMachPort;
+
+ if (!WebProcess::shared().connection()->sendSync(WebProcessProxyMessage::GetPluginProcessConnection, 0,
+ CoreIPC::In(pluginPath),
+ CoreIPC::Out(connectionMachPort),
+ CoreIPC::Connection::NoTimeout))
+ return 0;
+
+ return 0;
+#else
RefPtr<NetscapePluginModule> pluginModule = NetscapePluginModule::getOrCreate(pluginPath);
if (!pluginModule)
return 0;
return NetscapePlugin::create(pluginModule.release());
+#endif
}
String WebPage::renderTreeExternalRepresentation() const
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list