Title: [187863] releases/WebKitGTK/webkit-2.8/Source/WebKit2
Revision
187863
Author
carlo...@webkit.org
Date
2015-08-04 06:54:28 -0700 (Tue, 04 Aug 2015)

Log Message

Merge r187364 - Networking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToDownload while attempting to download a blob
https://bugs.webkit.org/show_bug.cgi?id=147276
rdar://problem/21423353

Reviewed by Andreas Kling.

We currently don't support downloading blobs, so for now just bail if we encounter a null loader inside
convertMainResourceLoadToDownload (which happens when trying to download a blob URL).

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
Rewrite the assertion to be more clear - it's fine to do an extra hash lookup in debug builds.

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
Bail if loader is null.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog (187862 => 187863)


--- releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog	2015-08-04 13:51:03 UTC (rev 187862)
+++ releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog	2015-08-04 13:54:28 UTC (rev 187863)
@@ -1,3 +1,21 @@
+2015-07-24  Anders Carlsson  <ander...@apple.com>
+
+        Networking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToDownload while attempting to download a blob
+        https://bugs.webkit.org/show_bug.cgi?id=147276
+        rdar://problem/21423353
+
+        Reviewed by Andreas Kling.
+
+        We currently don't support downloading blobs, so for now just bail if we encounter a null loader inside
+        convertMainResourceLoadToDownload (which happens when trying to download a blob URL).
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader):
+        Rewrite the assertion to be more clear - it's fine to do an extra hash lookup in debug builds.
+
+        (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
+        Bail if loader is null.
+
 2015-07-24  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [GStreamer] Crashes during plugin installation

Modified: releases/WebKitGTK/webkit-2.8/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp (187862 => 187863)


--- releases/WebKitGTK/webkit-2.8/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2015-08-04 13:51:03 UTC (rev 187862)
+++ releases/WebKitGTK/webkit-2.8/Source/WebKit2/NetworkProcess/NetworkConnectionToWebProcess.cpp	2015-08-04 13:54:28 UTC (rev 187863)
@@ -65,8 +65,9 @@
 
 void NetworkConnectionToWebProcess::didCleanupResourceLoader(NetworkResourceLoader& loader)
 {
-    RefPtr<NetworkResourceLoader> removedLoader = m_networkResourceLoaders.take(loader.identifier());
-    ASSERT(removedLoader == &loader);
+    ASSERT(m_networkResourceLoaders.get(loader.identifier()) == &loader);
+
+    m_networkResourceLoaders.remove(loader.identifier());
 }
     
 void NetworkConnectionToWebProcess::didReceiveMessage(IPC::Connection& connection, IPC::MessageDecoder& decoder)
@@ -188,6 +189,11 @@
     }
 
     NetworkResourceLoader* loader = m_networkResourceLoaders.get(mainResourceLoadIdentifier);
+    if (!loader) {
+        // If we're trying to download a blob here loader can be null.
+        return;
+    }
+
     networkProcess.downloadManager().convertHandleToDownload(downloadID, loader->handle(), request, response);
 
     // Unblock the URL connection operation queue.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to