Title: [170970] trunk/Source/WebKit2
- Revision
- 170970
- Author
- [email protected]
- Date
- 2014-07-10 11:33:39 -0700 (Thu, 10 Jul 2014)
Log 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):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (170969 => 170970)
--- trunk/Source/WebKit2/ChangeLog 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/ChangeLog 2014-07-10 18:33:39 UTC (rev 170970)
@@ -1,3 +1,27 @@
+2014-07-10 Oliver Hunt <[email protected]>
+
+ 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):
+
2014-07-10 Dan Bernstein <[email protected]>
iOS build fix.
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (170969 => 170970)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2014-07-10 18:33:39 UTC (rev 170970)
@@ -67,6 +67,8 @@
encoder << diskCacheDirectoryExtensionHandle;
encoder << cookieStorageDirectory;
encoder << cookieStorageDirectoryExtensionHandle;
+ encoder << openGLCacheDirectory;
+ encoder << openGLCacheDirectoryExtensionHandle;
encoder << shouldUseTestingNetworkSession;
encoder << urlSchemesRegistererdAsEmptyDocument;
encoder << urlSchemesRegisteredAsSecure;
@@ -160,6 +162,10 @@
return false;
if (!decoder.decode(parameters.cookieStorageDirectoryExtensionHandle))
return false;
+ if (!decoder.decode(parameters.openGLCacheDirectory))
+ return false;
+ if (!decoder.decode(parameters.openGLCacheDirectoryExtensionHandle))
+ return false;
if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
return false;
if (!decoder.decode(parameters.urlSchemesRegistererdAsEmptyDocument))
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (170969 => 170970)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2014-07-10 18:33:39 UTC (rev 170970)
@@ -72,6 +72,8 @@
SandboxExtension::Handle diskCacheDirectoryExtensionHandle;
String cookieStorageDirectory;
SandboxExtension::Handle cookieStorageDirectoryExtensionHandle;
+ String openGLCacheDirectory;
+ SandboxExtension::Handle openGLCacheDirectoryExtensionHandle;
bool shouldUseTestingNetworkSession;
Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (170969 => 170970)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2014-07-10 18:33:39 UTC (rev 170970)
@@ -590,6 +590,10 @@
if (!parameters.cookieStorageDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
+ parameters.openGLCacheDirectory = openGLCacheDirectory();
+ if (!parameters.openGLCacheDirectory.isEmpty())
+ SandboxExtension::createHandleForReadWriteDirectory(parameters.openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
+
parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
parameters.cacheModel = m_cacheModel;
@@ -1175,6 +1179,14 @@
return platformDefaultCookieStorageDirectory();
}
+String WebContext::openGLCacheDirectory() const
+{
+ if (!m_overrideOpenGLCacheDirectory.isEmpty())
+ return m_overrideOpenGLCacheDirectory;
+
+ return platformDefaultOpenGLCacheDirectory();
+}
+
void WebContext::useTestingNetworkSession()
{
ASSERT(m_processes.isEmpty());
Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (170969 => 170970)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2014-07-10 18:33:39 UTC (rev 170970)
@@ -423,6 +423,9 @@
String cookieStorageDirectory() const;
String platformDefaultCookieStorageDirectory() const;
+ String openGLCacheDirectory() const;
+ String platformDefaultOpenGLCacheDirectory() const;
+
#if PLATFORM(COCOA)
void registerNotificationObservers();
void unregisterNotificationObservers();
@@ -518,6 +521,7 @@
String m_overrideIconDatabasePath;
String m_overrideDiskCacheDirectory;
String m_overrideCookieStorageDirectory;
+ String m_overrideOpenGLCacheDirectory;
String m_webSQLDatabaseDirectory;
String m_indexedDBDatabaseDirectory;
Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm (170969 => 170970)
--- trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm 2014-07-10 18:33:39 UTC (rev 170970)
@@ -283,6 +283,21 @@
#endif
}
+String WebContext::platformDefaultOpenGLCacheDirectory() const
+{
+#if PLATFORM(IOS)
+ String path = pathForProcessContainer();
+ if (path.isEmpty())
+ path = NSHomeDirectory();
+
+ path = path + "/Library/Caches/com.apple.WebKit.WebContent/com.apple.opengl/";
+ return stringByResolvingSymlinksInPath(path);
+#else
+ notImplemented();
+ return [@"" stringByStandardizingPath];
+#endif
+}
+
String WebContext::platformDefaultWebSQLDatabaseDirectory()
{
NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
Modified: trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm (170969 => 170970)
--- trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm 2014-07-10 18:24:23 UTC (rev 170969)
+++ trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm 2014-07-10 18:33:39 UTC (rev 170970)
@@ -168,6 +168,7 @@
SandboxExtension::consumePermanently(parameters.applicationCacheDirectoryExtensionHandle);
SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle);
SandboxExtension::consumePermanently(parameters.cookieStorageDirectoryExtensionHandle);
+ SandboxExtension::consumePermanently(parameters.openGLCacheDirectoryExtensionHandle);
#endif
// When the network process is enabled, each web process wants a stand-alone
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes