Title: [171943] trunk/Source/WebKit2
Revision
171943
Author
[email protected]
Date
2014-08-01 12:19:22 -0700 (Fri, 01 Aug 2014)

Log Message

Various frameworks may want to use the container temp directory, so our current restrictions are too tight
https://bugs.webkit.org/show_bug.cgi?id=135518
<rdar://17869279>

Reviewed by Anders Carlsson.

We don't (and can't) have complete knowledge of what different frameworks
will want to use the container temporary directory for, and so our
current attempt to heavily restrict access is simply too tight.

This patch recognises this by simply giving read-write access to the
entire NSTemporary() directory (e.g. $container/tmp in the general case),
rather than the single sub directory we wishfully thought that we would
be able to get away with.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::mediaCacheDirectory): Deleted.
* UIProcess/WebContext.h:
* UIProcess/efl/WebContextEfl.cpp:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
* UIProcess/gtk/WebContextGtk.cpp:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::containerTemporaryDirectory):
(WebKit::WebContext::platformMediaCacheDirectory): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (171942 => 171943)


--- trunk/Source/WebKit2/ChangeLog	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/ChangeLog	2014-08-01 19:19:22 UTC (rev 171943)
@@ -1,3 +1,40 @@
+2014-08-01  Oliver Hunt  <[email protected]>
+
+        Various frameworks may want to use the container temp directory, so our current restrictions are too tight
+        https://bugs.webkit.org/show_bug.cgi?id=135518
+        <rdar://17869279>
+
+        Reviewed by Anders Carlsson.
+
+        We don't (and can't) have complete knowledge of what different frameworks
+        will want to use the container temporary directory for, and so our
+        current attempt to heavily restrict access is simply too tight.
+
+        This patch recognises this by simply giving read-write access to the
+        entire NSTemporary() directory (e.g. $container/tmp in the general case),
+        rather than the single sub directory we wishfully thought that we would
+        be able to get away with.
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::createNewWebProcess):
+        (WebKit::WebContext::mediaCacheDirectory): Deleted.
+        * UIProcess/WebContext.h:
+        * UIProcess/efl/WebContextEfl.cpp:
+        (WebKit::WebContext::containerTemporaryDirectory):
+        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
+        * UIProcess/gtk/WebContextGtk.cpp:
+        (WebKit::WebContext::containerTemporaryDirectory):
+        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
+        * UIProcess/mac/WebContextMac.mm:
+        (WebKit::WebContext::containerTemporaryDirectory):
+        (WebKit::WebContext::platformMediaCacheDirectory): Deleted.
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
 2014-08-01  Dan Bernstein  <[email protected]>
 
         <rdar://problem/17862013> REGRESSION (r169357): Disabling "allow plug-ins" doesn't stick on quit/relaunch

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (171942 => 171943)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2014-08-01 19:19:22 UTC (rev 171943)
@@ -69,8 +69,8 @@
     encoder << cookieStorageDirectoryExtensionHandle;
     encoder << openGLCacheDirectory;
     encoder << openGLCacheDirectoryExtensionHandle;
-    encoder << mediaCacheDirectory;
-    encoder << mediaCacheDirectoryExtensionHandle;
+    encoder << containerTemporaryDirectory;
+    encoder << containerTemporaryDirectoryExtensionHandle;
     encoder << shouldUseTestingNetworkSession;
     encoder << urlSchemesRegistererdAsEmptyDocument;
     encoder << urlSchemesRegisteredAsSecure;
@@ -168,9 +168,9 @@
         return false;
     if (!decoder.decode(parameters.openGLCacheDirectoryExtensionHandle))
         return false;
-    if (!decoder.decode(parameters.mediaCacheDirectory))
+    if (!decoder.decode(parameters.containerTemporaryDirectory))
         return false;
-    if (!decoder.decode(parameters.mediaCacheDirectoryExtensionHandle))
+    if (!decoder.decode(parameters.containerTemporaryDirectoryExtensionHandle))
         return false;
     if (!decoder.decode(parameters.shouldUseTestingNetworkSession))
         return false;

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (171942 => 171943)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2014-08-01 19:19:22 UTC (rev 171943)
@@ -74,8 +74,8 @@
     SandboxExtension::Handle cookieStorageDirectoryExtensionHandle;
     String openGLCacheDirectory;
     SandboxExtension::Handle openGLCacheDirectoryExtensionHandle;
-    String mediaCacheDirectory;
-    SandboxExtension::Handle mediaCacheDirectoryExtensionHandle;
+    String containerTemporaryDirectory;
+    SandboxExtension::Handle containerTemporaryDirectoryExtensionHandle;
 
     bool shouldUseTestingNetworkSession;
 

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (171942 => 171943)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2014-08-01 19:19:22 UTC (rev 171943)
@@ -621,9 +621,9 @@
     if (!parameters.openGLCacheDirectory.isEmpty())
         SandboxExtension::createHandleForReadWriteDirectory(parameters.openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
 
-    parameters.mediaCacheDirectory = mediaCacheDirectory();
-    if (!parameters.mediaCacheDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaCacheDirectory, parameters.mediaCacheDirectoryExtensionHandle);
+    parameters.containerTemporaryDirectory = containerTemporaryDirectory();
+    if (!parameters.containerTemporaryDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.containerTemporaryDirectory, parameters.containerTemporaryDirectoryExtensionHandle);
 
     parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
 
@@ -1223,14 +1223,6 @@
     return platformDefaultNetworkingHSTSDatabasePath();
 }
 
-String WebContext::mediaCacheDirectory() const
-{
-    if (!m_overrideMediaCacheDirectory.isEmpty())
-        return m_overrideMediaCacheDirectory;
-
-    return platformMediaCacheDirectory();
-}
-
 void WebContext::useTestingNetworkSession()
 {
     ASSERT(m_processes.isEmpty());

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (171942 => 171943)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2014-08-01 19:19:22 UTC (rev 171943)
@@ -433,8 +433,7 @@
     String networkingHSTSDatabasePath() const;
     String platformDefaultNetworkingHSTSDatabasePath() const;
 
-    String mediaCacheDirectory() const;
-    String platformMediaCacheDirectory() const;
+    String containerTemporaryDirectory() const;
 
 #if PLATFORM(COCOA)
     void registerNotificationObservers();
@@ -532,7 +531,6 @@
     String m_overrideDiskCacheDirectory;
     String m_overrideCookieStorageDirectory;
     String m_overrideOpenGLCacheDirectory;
-    String m_overrideMediaCacheDirectory;
 
     String m_webSQLDatabaseDirectory;
     String m_indexedDBDatabaseDirectory;

Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp (171942 => 171943)


--- trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp	2014-08-01 19:19:22 UTC (rev 171943)
@@ -138,7 +138,7 @@
     return String();
 }
 
-String WebContext::platformMediaCacheDirectory() const
+String WebContext::containerTemporaryDirectory() const
 {
     notImplemented();
     return String();

Modified: trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp (171942 => 171943)


--- trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp	2014-08-01 19:19:22 UTC (rev 171943)
@@ -154,7 +154,7 @@
     return String();
 }
 
-String WebContext::platformMediaCacheDirectory() const
+String WebContext::containerTemporaryDirectory() const
 {
     notImplemented();
     return String();

Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm (171942 => 171943)


--- trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm	2014-08-01 19:19:22 UTC (rev 171943)
@@ -323,16 +323,10 @@
 #endif
 }
 
-String WebContext::platformMediaCacheDirectory() const
+String WebContext::containerTemporaryDirectory() const
 {
-#if PLATFORM(IOS)
     String path = NSTemporaryDirectory();
-    path = path + "/MediaCache";
     return stringByResolvingSymlinksInPath(path);
-#else
-    notImplemented();
-    return [@"" stringByStandardizingPath];
-#endif
 }
 
 String WebContext::platformDefaultWebSQLDatabaseDirectory()

Modified: trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm (171942 => 171943)


--- trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm	2014-08-01 19:19:14 UTC (rev 171942)
+++ trunk/Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm	2014-08-01 19:19:22 UTC (rev 171943)
@@ -169,7 +169,7 @@
     SandboxExtension::consumePermanently(parameters.diskCacheDirectoryExtensionHandle);
     SandboxExtension::consumePermanently(parameters.cookieStorageDirectoryExtensionHandle);
     SandboxExtension::consumePermanently(parameters.openGLCacheDirectoryExtensionHandle);
-    SandboxExtension::consumePermanently(parameters.mediaCacheDirectoryExtensionHandle);
+    SandboxExtension::consumePermanently(parameters.containerTemporaryDirectoryExtensionHandle);
 #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

Reply via email to