Changeset 171024 in webkit


Ignore:
Timestamp:
Jul 12, 2014 11:33:43 AM (10 years ago)
Author:
oliver@apple.com
Message:

Extend WebContent sandbox to allow some extra access for frameworks
https://bugs.webkit.org/show_bug.cgi?id=134844

Reviewed by Sam Weinig.

Open up the webcontent sandbox a bit so that some external frameworks
can work correctly.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::mediaCacheDirectory):

  • UIProcess/WebContext.h:
  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformMediaCacheDirectory):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Location:
trunk/Source/WebKit2
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r171023 r171024  
     12014-07-12  Oliver Hunt  <oliver@apple.com>
     2
     3        Extend WebContent sandbox to allow some extra access for frameworks
     4        https://bugs.webkit.org/show_bug.cgi?id=134844
     5
     6        Reviewed by Sam Weinig.
     7
     8        Open up the webcontent sandbox a bit so that some external frameworks
     9        can work correctly.
     10
     11        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
     12        * Shared/WebProcessCreationParameters.cpp:
     13        (WebKit::WebProcessCreationParameters::encode):
     14        (WebKit::WebProcessCreationParameters::decode):
     15        * Shared/WebProcessCreationParameters.h:
     16        * UIProcess/WebContext.cpp:
     17        (WebKit::WebContext::createNewWebProcess):
     18        (WebKit::WebContext::mediaCacheDirectory):
     19        * UIProcess/WebContext.h:
     20        * UIProcess/mac/WebContextMac.mm:
     21        (WebKit::WebContext::platformMediaCacheDirectory):
     22        * WebProcess/cocoa/WebProcessCocoa.mm:
     23        (WebKit::WebProcess::platformInitializeWebProcess):
     24
    1252014-07-12  Oliver Hunt  <oliver@apple.com>
    226
  • trunk/Source/WebKit2/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb

    r171003 r171024  
    8686       (global-name "com.apple.webinspector"))
    8787
     88;; Various services required by CFNetwork and other frameworks
     89(allow mach-lookup
     90       (global-name "com.apple.PowerManagement.control"))
     91
    8892(deny file-write-create (vnode-type SYMLINK))
    8993(deny file-read-xattr file-write-xattr (xattr-regex #"^com\.apple\.security\.private\."))
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp

    r170970 r171024  
    7070    encoder << openGLCacheDirectory;
    7171    encoder << openGLCacheDirectoryExtensionHandle;
     72    encoder << mediaCacheDirectory;
     73    encoder << mediaCacheDirectoryExtensionHandle;
    7274    encoder << shouldUseTestingNetworkSession;
    7375    encoder << urlSchemesRegistererdAsEmptyDocument;
     
    167169    if (!decoder.decode(parameters.openGLCacheDirectoryExtensionHandle))
    168170        return false;
     171    if (!decoder.decode(parameters.mediaCacheDirectory))
     172        return false;
     173    if (!decoder.decode(parameters.mediaCacheDirectoryExtensionHandle))
     174        return false;
    169175    if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
    170176        return false;
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h

    r170970 r171024  
    7575    String openGLCacheDirectory;
    7676    SandboxExtension::Handle openGLCacheDirectoryExtensionHandle;
     77    String mediaCacheDirectory;
     78    SandboxExtension::Handle mediaCacheDirectoryExtensionHandle;
    7779
    7880    bool shouldUseTestingNetworkSession;
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r170970 r171024  
    595595        SandboxExtension::createHandleForReadWriteDirectory(parameters.openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
    596596
     597    parameters.mediaCacheDirectory = mediaCacheDirectory();
     598    if (!parameters.mediaCacheDirectory.isEmpty())
     599        SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaCacheDirectory, parameters.mediaCacheDirectoryExtensionHandle);
     600
    597601    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
    598602
     
    11881192}
    11891193
     1194String WebContext::mediaCacheDirectory() const
     1195{
     1196    if (!m_overrideMediaCacheDirectory.isEmpty())
     1197        return m_overrideMediaCacheDirectory;
     1198
     1199    return platformMediaCacheDirectory();
     1200}
     1201
    11901202void WebContext::useTestingNetworkSession()
    11911203{
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r170970 r171024  
    427427    String platformDefaultOpenGLCacheDirectory() const;
    428428
     429    String mediaCacheDirectory() const;
     430    String platformMediaCacheDirectory() const;
     431
    429432#if PLATFORM(COCOA)
    430433    void registerNotificationObservers();
     
    523526    String m_overrideCookieStorageDirectory;
    524527    String m_overrideOpenGLCacheDirectory;
     528    String m_overrideMediaCacheDirectory;
    525529
    526530    String m_webSQLDatabaseDirectory;
  • trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm

    r171023 r171024  
    304304}
    305305
     306String WebContext::platformMediaCacheDirectory() const
     307{
     308#if PLATFORM(IOS)
     309    String path = NSTemporaryDirectory();
     310    path = path + "/MediaCache";
     311    return stringByResolvingSymlinksInPath(path);
     312#else
     313    notImplemented();
     314    return [@"" stringByStandardizingPath];
     315#endif
     316}
     317
    306318String WebContext::platformDefaultWebSQLDatabaseDirectory()
    307319{
  • trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm

    r170970 r171024  
    170170    SandboxExtension::consumePermanently(parameters.cookieStorageDirectoryExtensionHandle);
    171171    SandboxExtension::consumePermanently(parameters.openGLCacheDirectoryExtensionHandle);
     172    SandboxExtension::consumePermanently(parameters.mediaCacheDirectoryExtensionHandle);
    172173#endif
    173174
Note: See TracChangeset for help on using the changeset viewer.