Title: [204011] trunk/Source/WebKit2
Revision
204011
Author
[email protected]
Date
2016-08-01 22:40:01 -0700 (Mon, 01 Aug 2016)

Log Message

Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160398

Reviewed by Brady Eidson.

Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.

* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::handleGetResult):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
* UIProcess/Databases/DatabaseProcessProxy.cpp:
* UIProcess/Databases/DatabaseProcessProxy.h:
* UIProcess/Databases/DatabaseProcessProxy.messages.in:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (204010 => 204011)


--- trunk/Source/WebKit2/ChangeLog	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/ChangeLog	2016-08-02 05:40:01 UTC (rev 204011)
@@ -1,3 +1,25 @@
+2016-08-01  Carlos Garcia Campos  <[email protected]>
+
+        Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
+        https://bugs.webkit.org/show_bug.cgi?id=160398
+
+        Reviewed by Brady Eidson.
+
+        Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.
+
+        * DatabaseProcess/DatabaseProcess.cpp:
+        * DatabaseProcess/DatabaseProcess.h:
+        * DatabaseProcess/DatabaseProcess.messages.in:
+        * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
+        (WebKit::WebIDBConnectionToClient::handleGetResult):
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):
+        * UIProcess/Databases/DatabaseProcessProxy.cpp:
+        * UIProcess/Databases/DatabaseProcessProxy.h:
+        * UIProcess/Databases/DatabaseProcessProxy.messages.in:
+        * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
+        (WebKit::preregisterSandboxExtensionsIfNecessary):
+
 2016-08-01  Alex Christensen  <[email protected]>
 
         _WKDownloadDelegate.didReceiveResponse should be called before decideDestinationWithSuggestedFilename

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp (204010 => 204011)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.cpp	2016-08-02 05:40:01 UTC (rev 204011)
@@ -286,6 +286,7 @@
 
 #endif
 
+#if ENABLE(SANDBOX_EXTENSIONS)
 void DatabaseProcess::getSandboxExtensionsForBlobFiles(const Vector<String>& filenames, std::function<void (SandboxExtension::HandleArray&&)> completionHandler)
 {
     static uint64_t lastRequestID;
@@ -300,6 +301,7 @@
     if (auto handler = m_sandboxExtensionForBlobsCompletionHandlers.take(requestID))
         handler(WTFMove(handles));
 }
+#endif
 
 #if !PLATFORM(COCOA)
 void DatabaseProcess::initializeProcess(const ChildProcessInitializationParameters&)

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h (204010 => 204011)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.h	2016-08-02 05:40:01 UTC (rev 204011)
@@ -76,7 +76,9 @@
     void accessToTemporaryFileComplete(const String& path) final;
 #endif
 
+#if ENABLE(SANDBOX_EXTENSIONS)
     void getSandboxExtensionsForBlobFiles(const Vector<String>& filenames, std::function<void (SandboxExtension::HandleArray&&)> completionHandler);
+#endif
 
 private:
     DatabaseProcess();
@@ -105,10 +107,9 @@
     void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet<WebsiteDataType> websiteDataTypes, const Vector<WebCore::SecurityOriginData>& origins, uint64_t callbackID);
 #if ENABLE(SANDBOX_EXTENSIONS)
     void grantSandboxExtensionsForBlobs(const Vector<String>& paths, const SandboxExtension::HandleArray&);
+    void didGetSandboxExtensionsForBlobFiles(uint64_t requestID, SandboxExtension::HandleArray&&);
 #endif
 
-    void didGetSandboxExtensionsForBlobFiles(uint64_t requestID, SandboxExtension::HandleArray&&);
-
 #if ENABLE(INDEXED_DATABASE)
     Vector<RefPtr<WebCore::SecurityOrigin>> indexedDatabaseOrigins();
 #endif

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in (204010 => 204011)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseProcess.messages.in	2016-08-02 05:40:01 UTC (rev 204011)
@@ -34,9 +34,8 @@
     DeleteWebsiteDataForOrigins(WebCore::SessionID sessionID, OptionSet<WebKit::WebsiteDataType> websiteDataTypes, Vector<WebCore::SecurityOriginData> origins, uint64_t callbackID)
 #if ENABLE(SANDBOX_EXTENSIONS)
     GrantSandboxExtensionsForBlobs(Vector<String> paths, WebKit::SandboxExtension::HandleArray extensions)
+    DidGetSandboxExtensionsForBlobFiles(uint64_t requestID, WebKit::SandboxExtension::HandleArray extensions)
 #endif
-
-    DidGetSandboxExtensionsForBlobFiles(uint64_t requestID, WebKit::SandboxExtension::HandleArray extensions)
 }
 
 #endif // ENABLE(DATABASE_PROCESS)

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp (204010 => 204011)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp	2016-08-02 05:40:01 UTC (rev 204011)
@@ -139,10 +139,14 @@
         return;
     }
 
+#if ENABLE(SANDBOX_EXTENSIONS)
     RefPtr<WebIDBConnectionToClient> protector(this);
     DatabaseProcess::singleton().getSandboxExtensionsForBlobFiles(blobFilePaths, [protector, this, resultData](SandboxExtension::HandleArray&& handles) {
         send(MessageType({ resultData, WTFMove(handles) }));
     });
+#else
+    send(MessageType(resultData));
+#endif
 }
 
 void WebIDBConnectionToClient::didGetRecord(const WebCore::IDBResultData& resultData)

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp (204010 => 204011)


--- trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2016-08-02 05:40:01 UTC (rev 204011)
@@ -274,10 +274,15 @@
 
 void NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob(const Vector<String>& filePaths, const SandboxExtension::HandleArray& handles)
 {
+#if ENABLE(SANDBOX_EXTENSIONS)
     ASSERT(filePaths.size() == handles.size());
 
     for (size_t i = 0; i < filePaths.size(); ++i)
         m_blobDataFileReferences.add(filePaths[i], BlobDataFileReferenceWithSandboxExtension::create(filePaths[i], SandboxExtension::create(handles[i])));
+#else
+    for (size_t i = 0; i < filePaths.size(); ++i)
+        m_blobDataFileReferences.add(filePaths[i], BlobDataFileReferenceWithSandboxExtension::create(filePaths[i], nullptr));
+#endif
 }
 
 RefPtr<WebCore::BlobDataFileReference> NetworkConnectionToWebProcess::getBlobDataFileReferenceForPath(const String& path)

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp (204010 => 204011)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp	2016-08-02 05:40:01 UTC (rev 204011)
@@ -196,6 +196,7 @@
     callback();
 }
 
+#if ENABLE(SANDBOX_EXTENSIONS)
 void DatabaseProcessProxy::getSandboxExtensionsForBlobFiles(uint64_t requestID, const Vector<String>& paths)
 {
     SandboxExtension::HandleArray extensions;
@@ -207,6 +208,7 @@
 
     send(Messages::DatabaseProcess::DidGetSandboxExtensionsForBlobFiles(requestID, extensions), 0);
 }
+#endif
 
 void DatabaseProcessProxy::didFinishLaunching(ProcessLauncher* launcher, IPC::Connection::Identifier connectionIdentifier)
 {

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h (204010 => 204011)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h	2016-08-02 05:40:01 UTC (rev 204011)
@@ -76,7 +76,9 @@
     void didFetchWebsiteData(uint64_t callbackID, const WebsiteData&);
     void didDeleteWebsiteData(uint64_t callbackID);
     void didDeleteWebsiteDataForOrigins(uint64_t callbackID);
+#if ENABLE(SANDBOX_EXTENSIONS)
     void getSandboxExtensionsForBlobFiles(uint64_t requestID, const Vector<String>& paths);
+#endif
 
     // ProcessLauncher::Client
     void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) override;

Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in (204010 => 204011)


--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.messages.in	2016-08-02 05:40:01 UTC (rev 204011)
@@ -29,7 +29,9 @@
     DidDeleteWebsiteData(uint64_t callbackID)
     DidDeleteWebsiteDataForOrigins(uint64_t callbackID)
 
+#if ENABLE(SANDBOX_EXTENSIONS)
     GetSandboxExtensionsForBlobFiles(uint64_t requestID, Vector<String> paths)
+#endif
 }
 
 #endif // ENABLE(DATABASE_PROCESS)

Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp (204010 => 204011)


--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp	2016-08-02 05:38:58 UTC (rev 204010)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp	2016-08-02 05:40:01 UTC (rev 204011)
@@ -258,7 +258,9 @@
 
     const auto& filePaths = result.resultData().getResult().value().blobFilePaths();
 
+#if ENABLE(SANDBOX_EXTENSIONS)
     ASSERT(filePaths.size() == result.handles().size());
+#endif
 
     if (!filePaths.isEmpty())
         WebProcess::singleton().networkConnection().connection().send(Messages::NetworkConnectionToWebProcess::PreregisterSandboxExtensionsForOptionallyFileBackedBlob(filePaths, result.handles()), 0);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to