Title: [164031] trunk/Source/WebKit2
- Revision
- 164031
- Author
- [email protected]
- Date
- 2014-02-13 09:30:18 -0800 (Thu, 13 Feb 2014)
Log Message
Disable XPC for plug-ins that need executable heap
https://bugs.webkit.org/show_bug.cgi?id=128744
<rdar://problem/15962958>
Reviewed by Dan Bernstein.
When switching to XPC for plug-ins, we accidentally broke the "feature"
where plug-ins can ask for the heap to be executable.
This breaks Silverlight, so just disable XPC for any plug-ins that need this.
<rdar://problem/16059483> tracks fixing this in the XPC service.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
Only return true for 32-bit plug-ins, since we don't know any 64-bit plug-ins
that require this feature.
(WebKit::PluginProcessProxy::platformGetLaunchOptions):
Set launchOptions.useXPC to false if launchOptions.executableHeap is true.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (164030 => 164031)
--- trunk/Source/WebKit2/ChangeLog 2014-02-13 17:24:32 UTC (rev 164030)
+++ trunk/Source/WebKit2/ChangeLog 2014-02-13 17:30:18 UTC (rev 164031)
@@ -1,3 +1,25 @@
+2014-02-13 Anders Carlsson <[email protected]>
+
+ Disable XPC for plug-ins that need executable heap
+ https://bugs.webkit.org/show_bug.cgi?id=128744
+ <rdar://problem/15962958>
+
+ Reviewed by Dan Bernstein.
+
+ When switching to XPC for plug-ins, we accidentally broke the "feature"
+ where plug-ins can ask for the heap to be executable.
+
+ This breaks Silverlight, so just disable XPC for any plug-ins that need this.
+ <rdar://problem/16059483> tracks fixing this in the XPC service.
+
+ * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+ (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
+ Only return true for 32-bit plug-ins, since we don't know any 64-bit plug-ins
+ that require this feature.
+
+ (WebKit::PluginProcessProxy::platformGetLaunchOptions):
+ Set launchOptions.useXPC to false if launchOptions.executableHeap is true.
+
2014-02-12 Antti Koivisto <[email protected]>
Return immediately from DestroyPlugin IPC call
Modified: trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (164030 => 164031)
--- trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-02-13 17:24:32 UTC (rev 164030)
+++ trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-02-13 17:30:18 UTC (rev 164031)
@@ -67,8 +67,12 @@
if (pluginInfo.bundleIdentifier == "com.apple.QuickTime Plugin.plugin")
return false;
-
- return true;
+
+ // We only allow 32-bit plug-ins to have the heap marked executable.
+ if (pluginInfo.pluginArchitecture == CPU_TYPE_X86)
+ return true;
+
+ return false;
}
bool PluginProcessProxy::createPropertyListFile(const PluginModuleInfo& plugin)
@@ -143,7 +147,8 @@
if (pluginProcessAttributes.sandboxPolicy == PluginProcessSandboxPolicyUnsandboxed)
launchOptions.extraInitializationData.add("disable-sandbox", "1");
- launchOptions.useXPC = shouldUseXPC();
+ // FIXME: We should still use XPC for plug-ins that want the heap to be executable, see <rdar://problem/16059483>.
+ launchOptions.useXPC = shouldUseXPC() && !launchOptions.executableHeap;
}
void PluginProcessProxy::platformInitializePluginProcess(PluginProcessCreationParameters& parameters)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes