Title: [187603] branches/safari-601.1-branch/Source/WebKit2
Revision
187603
Author
matthew_han...@apple.com
Date
2015-07-30 13:23:53 -0700 (Thu, 30 Jul 2015)

Log Message

Merge r187478. rdar://problem/21838764

Modified Paths

Diff

Modified: branches/safari-601.1-branch/Source/WebKit2/ChangeLog (187602 => 187603)


--- branches/safari-601.1-branch/Source/WebKit2/ChangeLog	2015-07-30 20:20:55 UTC (rev 187602)
+++ branches/safari-601.1-branch/Source/WebKit2/ChangeLog	2015-07-30 20:23:53 UTC (rev 187603)
@@ -1,3 +1,25 @@
+2015-07-30  Matthew Hanson  <matthew_han...@apple.com>
+
+        Merge r187478. rdar://problem/21838764
+
+    2015-07-27  Andreas Kling  <akl...@apple.com>
+
+            WebsiteDataStore should clean up its storage in the network process when destroyed.
+            <https://webkit.org/b/147349>
+            <rdar://problem/21838764>
+
+            Reviewed by Darin Adler.
+
+            Have ~WebsiteDataStore() send a DestroyPrivateBrowsingSession message to all networking processes
+            for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large
+            CFNetwork object graph.
+
+            This complements r187115 which did the same for network process storage owned by
+            API::Session objects.
+
+            * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+            (WebKit::WebsiteDataStore::~WebsiteDataStore):
+
 2015-07-27  Babak Shafiei  <bshaf...@apple.com>
 
         Roll out r187376.

Modified: branches/safari-601.1-branch/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (187602 => 187603)


--- branches/safari-601.1-branch/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp	2015-07-30 20:20:55 UTC (rev 187602)
+++ branches/safari-601.1-branch/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp	2015-07-30 20:23:53 UTC (rev 187603)
@@ -28,6 +28,7 @@
 
 #include "APIProcessPoolConfiguration.h"
 #include "APIWebsiteDataRecord.h"
+#include "NetworkProcessMessages.h"
 #include "StorageManager.h"
 #include "WebProcessPool.h"
 #include "WebsiteData.h"
@@ -92,6 +93,13 @@
 WebsiteDataStore::~WebsiteDataStore()
 {
     platformDestroy();
+
+#if ENABLE(NETWORK_PROCESS)
+    if (m_sessionID.isEphemeral()) {
+        for (auto& processPool : WebProcessPool::allProcessPools())
+            processPool->sendToNetworkingProcess(Messages::NetworkProcess::DestroyPrivateBrowsingSession(m_sessionID));
+    }
+#endif
 }
 
 void WebsiteDataStore::cloneSessionData(WebPageProxy& sourcePage, WebPageProxy& newPage)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to