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

Reply via email to