Changeset 164031 in webkit


Ignore:
Timestamp:
Feb 13, 2014 9:30:18 AM (10 years ago)
Author:
andersca@apple.com
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.

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r164015 r164031  
     12014-02-13  Anders Carlsson  <andersca@apple.com>
     2
     3        Disable XPC for plug-ins that need executable heap
     4        https://bugs.webkit.org/show_bug.cgi?id=128744
     5        <rdar://problem/15962958>
     6
     7        Reviewed by Dan Bernstein.
     8
     9        When switching to XPC for plug-ins, we accidentally broke the "feature"
     10        where plug-ins can ask for the heap to be executable.
     11       
     12        This breaks Silverlight, so just disable XPC for any plug-ins that need this.
     13        <rdar://problem/16059483> tracks fixing this in the XPC service.
     14
     15        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
     16        (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
     17        Only return true for 32-bit plug-ins, since we don't know any 64-bit plug-ins
     18        that require this feature.
     19
     20        (WebKit::PluginProcessProxy::platformGetLaunchOptions):
     21        Set launchOptions.useXPC to false if launchOptions.executableHeap is true.
     22
    1232014-02-12  Antti Koivisto  <antti@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm

    r163099 r164031  
    6868    if (pluginInfo.bundleIdentifier == "com.apple.QuickTime Plugin.plugin")
    6969        return false;
    70    
    71     return true;
     70
     71    // We only allow 32-bit plug-ins to have the heap marked executable.
     72    if (pluginInfo.pluginArchitecture == CPU_TYPE_X86)
     73        return true;
     74
     75    return false;
    7276}
    7377
     
    144148        launchOptions.extraInitializationData.add("disable-sandbox", "1");
    145149
    146     launchOptions.useXPC = shouldUseXPC();
     150    // FIXME: We should still use XPC for plug-ins that want the heap to be executable, see <rdar://problem/16059483>.
     151    launchOptions.useXPC = shouldUseXPC() && !launchOptions.executableHeap;
    147152}
    148153
Note: See TracChangeset for help on using the changeset viewer.