Diff
Modified: trunk/Source/WebKit2/ChangeLog (196498 => 196499)
--- trunk/Source/WebKit2/ChangeLog 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/ChangeLog 2016-02-12 21:11:28 UTC (rev 196499)
@@ -1,3 +1,25 @@
+2016-02-12 Anders Carlsson <ander...@apple.com>
+
+ Use different process types for 32-bit and 64-bit plug-ins
+ https://bugs.webkit.org/show_bug.cgi?id=154186
+
+ Reviewed by Tim Horton.
+
+ * UIProcess/Databases/DatabaseProcessProxy.cpp:
+ (WebKit::DatabaseProcessProxy::getLaunchOptions):
+ * UIProcess/Launcher/ProcessLauncher.h:
+ * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+ (WebKit::serviceName):
+ (WebKit::shouldLeakBoost):
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::getLaunchOptions):
+ * UIProcess/Plugins/PluginProcessProxy.cpp:
+ (WebKit::PluginProcessProxy::getLaunchOptions): Deleted.
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::platformGetLaunchOptions):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::getLaunchOptions):
+
2016-02-12 Beth Dakin <bda...@apple.com>
Re-name isClickableElement in InteractionInformationAtPosition to isElement
Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp 2016-02-12 21:11:28 UTC (rev 196499)
@@ -66,7 +66,7 @@
void DatabaseProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
- launchOptions.processType = ProcessLauncher::DatabaseProcess;
+ launchOptions.processType = ProcessLauncher::ProcessType::Database;
ChildProcessProxy::getLaunchOptions(launchOptions);
platformGetLaunchOptions(launchOptions);
}
Modified: trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.h 2016-02-12 21:11:28 UTC (rev 196499)
@@ -45,14 +45,15 @@
virtual void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) = 0;
};
- enum ProcessType {
- WebProcess,
+ enum class ProcessType {
+ Web,
#if ENABLE(NETSCAPE_PLUGIN_API)
- PluginProcess,
+ Plugin32,
+ Plugin64,
#endif
- NetworkProcess,
+ Network,
#if ENABLE(DATABASE_PROCESS)
- DatabaseProcess,
+ Database,
#endif
};
Modified: trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm 2016-02-12 21:11:28 UTC (rev 196499)
@@ -84,24 +84,19 @@
static const char* serviceName(const ProcessLauncher::LaunchOptions& launchOptions)
{
switch (launchOptions.processType) {
- case ProcessLauncher::WebProcess:
+ case ProcessLauncher::ProcessType::Web:
return "com.apple.WebKit.WebContent" WK_XPC_SERVICE_SUFFIX;
- case ProcessLauncher::NetworkProcess:
+ case ProcessLauncher::ProcessType::Network:
return "com.apple.WebKit.Networking" WK_XPC_SERVICE_SUFFIX;
#if ENABLE(DATABASE_PROCESS)
- case ProcessLauncher::DatabaseProcess:
+ case ProcessLauncher::ProcessType::Database:
return "com.apple.WebKit.Databases" WK_XPC_SERVICE_SUFFIX;
#endif
#if ENABLE(NETSCAPE_PLUGIN_API)
- case ProcessLauncher::PluginProcess:
- // FIXME: Support plugins that require an executable heap.
- if (launchOptions.architecture == CPU_TYPE_X86)
- return "com.apple.WebKit.Plugin.32" WK_XPC_SERVICE_SUFFIX;
- if (launchOptions.architecture == CPU_TYPE_X86_64)
- return "com.apple.WebKit.Plugin.64" WK_XPC_SERVICE_SUFFIX;
-
- ASSERT_NOT_REACHED();
- return 0;
+ case ProcessLauncher::ProcessType::Plugin32:
+ return "com.apple.WebKit.Plugin.32" WK_XPC_SERVICE_SUFFIX;
+ case ProcessLauncher::ProcessType::Plugin64:
+ return "com.apple.WebKit.Plugin.64" WK_XPC_SERVICE_SUFFIX;
#endif
}
}
@@ -114,7 +109,7 @@
return true;
#else
// On Mac, leak a boost onto the NetworkProcess.
- return launchOptions.processType == ProcessLauncher::NetworkProcess;
+ return launchOptions.processType == ProcessLauncher::ProcessType::Network;
#endif
}
Modified: trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp 2016-02-12 21:11:28 UTC (rev 196499)
@@ -80,7 +80,7 @@
void NetworkProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
- launchOptions.processType = ProcessLauncher::NetworkProcess;
+ launchOptions.processType = ProcessLauncher::ProcessType::Network;
ChildProcessProxy::getLaunchOptions(launchOptions);
platformGetLaunchOptions(launchOptions);
}
Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp 2016-02-12 21:11:28 UTC (rev 196499)
@@ -84,7 +84,6 @@
void PluginProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
- launchOptions.processType = ProcessLauncher::PluginProcess;
ChildProcessProxy::getLaunchOptions(launchOptions);
platformGetLaunchOptions(launchOptions, m_pluginProcessAttributes);
}
Modified: trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2016-02-12 21:11:28 UTC (rev 196499)
@@ -113,6 +113,11 @@
void PluginProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions, const PluginProcessAttributes& pluginProcessAttributes)
{
+ if (pluginProcessAttributes.moduleInfo.pluginArchitecture == CPU_TYPE_X86)
+ launchOptions.processType = ProcessLauncher::ProcessType::Plugin32;
+ else
+ launchOptions.processType = ProcessLauncher::ProcessType::Plugin64;
+
launchOptions.architecture = pluginProcessAttributes.moduleInfo.pluginArchitecture;
launchOptions.executableHeap = PluginProcessProxy::pluginNeedsExecutableHeap(pluginProcessAttributes.moduleInfo);
launchOptions.extraInitializationData.add("plugin-path", pluginProcessAttributes.moduleInfo.path);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (196498 => 196499)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-02-12 20:46:30 UTC (rev 196498)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2016-02-12 21:11:28 UTC (rev 196499)
@@ -129,7 +129,7 @@
void WebProcessProxy::getLaunchOptions(ProcessLauncher::LaunchOptions& launchOptions)
{
- launchOptions.processType = ProcessLauncher::WebProcess;
+ launchOptions.processType = ProcessLauncher::ProcessType::Web;
ChildProcessProxy::getLaunchOptions(launchOptions);