Changeset 170970 in webkit


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

Pass sandbox extension for GL cache over to webprocess
https://bugs.webkit.org/show_bug.cgi?id=134806

Reviewed by Anders Carlsson.

Add additional WebProcess parameters to pass an extension
that allows access to the opengl cache directory in the
host application's container.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::openGLCacheDirectory):

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

(WebKit::WebContext::platformDefaultOpenGLCacheDirectory):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Location:
trunk/Source/WebKit2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r170969 r170970  
     12014-07-10  Oliver Hunt  <oliver@apple.com>
     2
     3        Pass sandbox extension for GL cache over to webprocess
     4        https://bugs.webkit.org/show_bug.cgi?id=134806
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Add additional WebProcess parameters to pass an extension
     9        that allows access to the opengl cache directory in the
     10        host application's container.
     11
     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::openGLCacheDirectory):
     19        * UIProcess/WebContext.h:
     20        * UIProcess/mac/WebContextMac.mm:
     21        (WebKit::WebContext::platformDefaultOpenGLCacheDirectory):
     22        * WebProcess/cocoa/WebProcessCocoa.mm:
     23        (WebKit::WebProcess::platformInitializeWebProcess):
     24
    1252014-07-10  Dan Bernstein  <mitz@apple.com>
    226
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp

    r169236 r170970  
    6868    encoder << cookieStorageDirectory;
    6969    encoder << cookieStorageDirectoryExtensionHandle;
     70    encoder << openGLCacheDirectory;
     71    encoder << openGLCacheDirectoryExtensionHandle;
    7072    encoder << shouldUseTestingNetworkSession;
    7173    encoder << urlSchemesRegistererdAsEmptyDocument;
     
    161163    if (!decoder.decode(parameters.cookieStorageDirectoryExtensionHandle))
    162164        return false;
     165    if (!decoder.decode(parameters.openGLCacheDirectory))
     166        return false;
     167    if (!decoder.decode(parameters.openGLCacheDirectoryExtensionHandle))
     168        return false;
    163169    if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
    164170        return false;
  • trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h

    r169236 r170970  
    7373    String cookieStorageDirectory;
    7474    SandboxExtension::Handle cookieStorageDirectoryExtensionHandle;
     75    String openGLCacheDirectory;
     76    SandboxExtension::Handle openGLCacheDirectoryExtensionHandle;
    7577
    7678    bool shouldUseTestingNetworkSession;
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r170774 r170970  
    591591        SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
    592592
     593    parameters.openGLCacheDirectory = openGLCacheDirectory();
     594    if (!parameters.openGLCacheDirectory.isEmpty())
     595        SandboxExtension::createHandleForReadWriteDirectory(parameters.openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
     596
    593597    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
    594598
     
    11761180}
    11771181
     1182String WebContext::openGLCacheDirectory() const
     1183{
     1184    if (!m_overrideOpenGLCacheDirectory.isEmpty())
     1185        return m_overrideOpenGLCacheDirectory;
     1186
     1187    return platformDefaultOpenGLCacheDirectory();
     1188}
     1189
    11781190void WebContext::useTestingNetworkSession()
    11791191{
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r170156 r170970  
    424424    String platformDefaultCookieStorageDirectory() const;
    425425
     426    String openGLCacheDirectory() const;
     427    String platformDefaultOpenGLCacheDirectory() const;
     428
    426429#if PLATFORM(COCOA)
    427430    void registerNotificationObservers();
     
    519522    String m_overrideDiskCacheDirectory;
    520523    String m_overrideCookieStorageDirectory;
     524    String m_overrideOpenGLCacheDirectory;
    521525
    522526    String m_webSQLDatabaseDirectory;
  • trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm

    r170733 r170970  
    284284}
    285285
     286String WebContext::platformDefaultOpenGLCacheDirectory() const
     287{
     288#if PLATFORM(IOS)
     289    String path = pathForProcessContainer();
     290    if (path.isEmpty())
     291        path = NSHomeDirectory();
     292
     293    path = path + "/Library/Caches/com.apple.WebKit.WebContent/com.apple.opengl/";
     294    return stringByResolvingSymlinksInPath(path);
     295#else
     296    notImplemented();
     297    return [@"" stringByStandardizingPath];
     298#endif
     299}
     300
    286301String WebContext::platformDefaultWebSQLDatabaseDirectory()
    287302{
  • trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm

    r170733 r170970  
    169169    SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle);
    170170    SandboxExtension::consumePermanently(parameters.cookieStorageDirectoryExtensionHandle);
     171    SandboxExtension::consumePermanently(parameters.openGLCacheDirectoryExtensionHandle);
    171172#endif
    172173
Note: See TracChangeset for help on using the changeset viewer.