Title: [200842] releases/WebKitGTK/webkit-2.12/Source/WebKit2
Revision
200842
Author
[email protected]
Date
2016-05-13 04:45:55 -0700 (Fri, 13 May 2016)

Log Message

Merge r200152 - Remove download message receiver when NetworkProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=157102
<rdar://problem/25550106>

Reviewed by Anders Carlsson.

* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::processDidClose):
When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
message receiver in the map.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog (200841 => 200842)


--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog	2016-05-13 11:43:30 UTC (rev 200841)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/ChangeLog	2016-05-13 11:45:55 UTC (rev 200842)
@@ -1,3 +1,17 @@
+2016-04-27  Alex Christensen  <[email protected]>
+
+        Remove download message receiver when NetworkProcess crashes
+        https://bugs.webkit.org/show_bug.cgi?id=157102
+        <rdar://problem/25550106>
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/Downloads/DownloadProxyMap.cpp:
+        (WebKit::DownloadProxyMap::processDidClose):
+        When the NetworkProcess crashes during a download, we want to remove the message receiver from the map
+        so we don't get an assertion in ~MessageReceiver in the UIProcess so we do not have a freed
+        message receiver in the map.
+
 2016-04-22  Zan Dobersek  <[email protected]>
 
         NetworkCacheIOChannelSoup: detach the newly-created IOChannel::readSync thread

Modified: releases/WebKitGTK/webkit-2.12/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp (200841 => 200842)


--- releases/WebKitGTK/webkit-2.12/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp	2016-05-13 11:43:30 UTC (rev 200841)
+++ releases/WebKitGTK/webkit-2.12/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp	2016-05-13 11:45:55 UTC (rev 200842)
@@ -68,13 +68,14 @@
 void DownloadProxyMap::processDidClose()
 {
     // Invalidate all outstanding downloads.
-    for (auto it = m_downloads.begin().values(), end = m_downloads.end().values(); it != end; ++it) {
-        (*it)->processDidClose();
-        (*it)->invalidate();
+    for (const auto& download : m_downloads.values()) {
+        download->processDidClose();
+        download->invalidate();
+        m_process->removeMessageReceiver(Messages::DownloadProxy::messageReceiverName(), download->downloadID().downloadID());
     }
 
     m_downloads.clear();
-    m_process = 0;
+    m_process = nullptr;
 }
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to