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);