Title: [164045] tags/Safari-538.16.5/Source/WebKit2
- Revision
- 164045
- Author
- lforsch...@apple.com
- Date
- 2014-02-13 12:04:40 -0800 (Thu, 13 Feb 2014)
Log Message
Merged r164031.
Modified Paths
Diff
Modified: tags/Safari-538.16.5/Source/WebKit2/ChangeLog (164044 => 164045)
--- tags/Safari-538.16.5/Source/WebKit2/ChangeLog 2014-02-13 19:50:23 UTC (rev 164044)
+++ tags/Safari-538.16.5/Source/WebKit2/ChangeLog 2014-02-13 20:04:40 UTC (rev 164045)
@@ -1,3 +1,29 @@
+2014-02-13 Lucas Forschler <lforsch...@apple.com>
+
+ Merge r164031
+
+ 2014-02-13 Anders Carlsson <ander...@apple.com>
+
+ 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-07 Lucas Forschler <lforsch...@apple.com>
Merge r163674
Modified: tags/Safari-538.16.5/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm (164044 => 164045)
--- tags/Safari-538.16.5/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-02-13 19:50:23 UTC (rev 164044)
+++ tags/Safari-538.16.5/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm 2014-02-13 20:04:40 UTC (rev 164045)
@@ -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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes