Title: [86967] trunk/Source/WebKit2
Revision
86967
Author
[email protected]
Date
2011-05-20 11:18:37 -0700 (Fri, 20 May 2011)

Log Message

2011-05-20  Sam Weinig  <[email protected]>

        Reviewed by Anders Carlsson.

        WebKit2: Media files cannot be saved in the Application Cache due to a sandbox violation
        https://bugs.webkit.org/show_bug.cgi?id=61199

        Instead of using a sandbox extension to give permission to the application cache directory,
        initialize the sandbox with access to it like we do for other databases.

        * Shared/WebProcessCreationParameters.cpp:
        (WebKit::WebProcessCreationParameters::encode):
        (WebKit::WebProcessCreationParameters::decode):
        * Shared/WebProcessCreationParameters.h:
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::ensureWebProcess):
        * WebProcess/WebProcess.cpp:
        (WebKit::WebProcess::initializeWebProcess):
        * WebProcess/com.apple.WebProcess.sb:
        * WebProcess/mac/WebProcessMac.mm:
        (WebKit::initializeSandbox):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (86966 => 86967)


--- trunk/Source/WebKit2/ChangeLog	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/ChangeLog	2011-05-20 18:18:37 UTC (rev 86967)
@@ -1,3 +1,25 @@
+2011-05-20  Sam Weinig  <[email protected]>
+
+        Reviewed by Anders Carlsson.
+
+        WebKit2: Media files cannot be saved in the Application Cache due to a sandbox violation
+        https://bugs.webkit.org/show_bug.cgi?id=61199
+
+        Instead of using a sandbox extension to give permission to the application cache directory,
+        initialize the sandbox with access to it like we do for other databases.
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::ensureWebProcess):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeWebProcess):
+        * WebProcess/com.apple.WebProcess.sb:
+        * WebProcess/mac/WebProcessMac.mm:
+        (WebKit::initializeSandbox):
+
 2011-05-20  Jer Noble  <[email protected]>
 
         Reviewed by Maciej Stachowiak.

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (86966 => 86967)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp	2011-05-20 18:18:37 UTC (rev 86967)
@@ -51,7 +51,6 @@
     encoder->encode(injectedBundlePath);
     encoder->encode(injectedBundlePathExtensionHandle);
     encoder->encode(applicationCacheDirectory);
-    encoder->encode(applicationCacheDirectoryExtensionHandle);
     encoder->encode(databaseDirectory);
     encoder->encode(localStorageDirectory);
     encoder->encode(urlSchemesRegistererdAsEmptyDocument);
@@ -99,8 +98,6 @@
         return false;
     if (!decoder->decode(parameters.applicationCacheDirectory))
         return false;
-    if (!decoder->decode(parameters.applicationCacheDirectoryExtensionHandle))
-        return false;
     if (!decoder->decode(parameters.databaseDirectory))
         return false;
     if (!decoder->decode(parameters.localStorageDirectory))

Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (86966 => 86967)


--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h	2011-05-20 18:18:37 UTC (rev 86967)
@@ -53,9 +53,7 @@
     String injectedBundlePath;
     SandboxExtension::Handle injectedBundlePathExtensionHandle;
 
-    String applicationCacheDirectory;
-    SandboxExtension::Handle applicationCacheDirectoryExtensionHandle;
-    
+    String applicationCacheDirectory;    
     String databaseDirectory;
     String localStorageDirectory;
     Vector<String> urlSchemesRegistererdAsEmptyDocument;

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (86966 => 86967)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2011-05-20 18:18:37 UTC (rev 86967)
@@ -221,13 +221,8 @@
 
     WebProcessCreationParameters parameters;
 
-    parameters.applicationCacheDirectory = applicationCacheDirectory();
-    if (!parameters.applicationCacheDirectory.isEmpty())
-        SandboxExtension::createHandle(parameters.applicationCacheDirectory, SandboxExtension::ReadWrite, parameters.applicationCacheDirectoryExtensionHandle);
-
     if (!injectedBundlePath().isEmpty()) {
         parameters.injectedBundlePath = injectedBundlePath();
-
         SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
     }
 
@@ -240,7 +235,7 @@
 #if PLATFORM(MAC)
     parameters.presenterApplicationPid = getpid();
 #endif
-    
+
     copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
     copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
     copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);

Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (86966 => 86967)


--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp	2011-05-20 18:18:37 UTC (rev 86967)
@@ -194,12 +194,8 @@
 #endif
     
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
-    if (!parameters.applicationCacheDirectory.isEmpty()) {
-        m_applicationCachePathExtension = SandboxExtension::create(parameters.applicationCacheDirectoryExtensionHandle);
-        m_applicationCachePathExtension->consume();
-
+    if (!parameters.applicationCacheDirectory.isEmpty())
         cacheStorage().setCacheDirectory(parameters.applicationCacheDirectory);
-    }
 #endif
 
     setShouldTrackVisitedLinks(parameters.shouldTrackVisitedLinks);

Modified: trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb (86966 => 86967)


--- trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb	2011-05-20 18:18:37 UTC (rev 86967)
@@ -105,14 +105,18 @@
 (if (positive? (string-length (param "DARWIN_USER_TEMP_DIR")))
     (allow file* (subpath (param "DARWIN_USER_TEMP_DIR"))))
 
-;; Database dir
+;; Database directory.
 (if (positive? (string-length (param "WEBKIT_DATABASE_DIR")))
     (allow file* (subpath (param "WEBKIT_DATABASE_DIR"))))
 
-;; LocalStorage dir
+;; LocalStorage directory.
 (if (positive? (string-length (param "WEBKIT_LOCALSTORAGE_DIR")))
     (allow file* (subpath (param "WEBKIT_LOCALSTORAGE_DIR"))))
 
+;; ApplicationCache directory.
+(if (positive? (string-length (param "WEBKIT_APPLICATION_CACHE_DIR")))
+    (allow file* (subpath (param "WEBKIT_APPLICATION_CACHE_DIR"))))
+
 ;; The NSURLCache directory.
 (if (positive? (string-length (param "NSURL_CACHE_DIR")))
     (allow file* (subpath (param "NSURL_CACHE_DIR"))))

Modified: trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm (86966 => 86967)


--- trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm	2011-05-20 17:45:18 UTC (rev 86966)
+++ trunk/Source/WebKit2/WebProcess/mac/WebProcessMac.mm	2011-05-20 18:18:37 UTC (rev 86967)
@@ -187,6 +187,7 @@
     appendReadwriteSandboxDirectory(sandboxParameters, "HOME_DIR", NSHomeDirectory());
     appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_DATABASE_DIR", parameters.databaseDirectory);
     appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_LOCALSTORAGE_DIR", parameters.localStorageDirectory);
+    appendReadwriteSandboxDirectory(sandboxParameters, "WEBKIT_APPLICATION_CACHE_DIR", parameters.applicationCacheDirectory);
     appendReadwriteSandboxDirectory(sandboxParameters, "NSURL_CACHE_DIR", parameters.nsURLCachePath);
 
     sandboxParameters.append(static_cast<const char*>(0));
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to