Title: [183144] branches/safari-600.7-branch/Source/WebKit2

Diff

Modified: branches/safari-600.7-branch/Source/WebKit2/ChangeLog (183143 => 183144)


--- branches/safari-600.7-branch/Source/WebKit2/ChangeLog	2015-04-22 22:34:36 UTC (rev 183143)
+++ branches/safari-600.7-branch/Source/WebKit2/ChangeLog	2015-04-22 22:41:23 UTC (rev 183144)
@@ -1,5 +1,34 @@
 2015-04-22  Matthew Hanson  <[email protected]>
 
+        Merge r182084. rdar://problem/20557359
+
+    2015-03-27  Andreas Kling  <[email protected]>
+
+            WebProcessProxy should not retain WebBackForwardListItems forever.
+            <https://webkit.org/b/143152>
+            <rdar://problem/19925709>
+
+            Reviewed by Anders Carlsson.
+
+            Have WebProcessProxy actually forget about a WebBackForwardListItem after it's removed from
+            the WebBackForwardList.
+
+            This ensures that we don't accumulate too many of these objects, which can get quite large
+            due to the session state encoded in them.
+
+            We already have graceful handling of the case where an incoming IPC message references
+            a removed back/forward list item.
+
+            * UIProcess/WebBackForwardList.cpp:
+            (WebKit::WebBackForwardList::didRemoveItem):
+            * UIProcess/WebPageProxy.cpp:
+            (WebKit::WebPageProxy::backForwardRemovedItem):
+            * UIProcess/WebProcessProxy.cpp:
+            (WebKit::WebProcessProxy::removeBackForwardItem):
+            * UIProcess/WebProcessProxy.h:
+
+2015-04-22  Matthew Hanson  <[email protected]>
+
         Merge r181991. rdar://problem/20545332
 
     2015-03-25  Chris Dumez  <[email protected]>

Modified: branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebBackForwardList.cpp (183143 => 183144)


--- branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebBackForwardList.cpp	2015-04-22 22:34:36 UTC (rev 183143)
+++ branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebBackForwardList.cpp	2015-04-22 22:41:23 UTC (rev 183144)
@@ -432,7 +432,6 @@
 
 void WebBackForwardList::didRemoveItem(WebBackForwardListItem& backForwardListItem)
 {
-    // FIXME: This should really also delete the item from the map.
     m_page->backForwardRemovedItem(backForwardListItem.itemID());
 
     backForwardListItem.setSnapshot(nullptr);

Modified: branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp (183143 => 183144)


--- branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-04-22 22:34:36 UTC (rev 183143)
+++ branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp	2015-04-22 22:41:23 UTC (rev 183144)
@@ -4852,6 +4852,7 @@
 
 void WebPageProxy::backForwardRemovedItem(uint64_t itemID)
 {
+    m_process->removeBackForwardItem(itemID);
     m_process->send(Messages::WebPage::DidRemoveBackForwardItem(itemID), m_pageID);
 }
 

Modified: branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp (183143 => 183144)


--- branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2015-04-22 22:34:36 UTC (rev 183143)
+++ branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp	2015-04-22 22:41:23 UTC (rev 183144)
@@ -281,6 +281,11 @@
     m_backForwardListItemMap.set(item->itemID(), item);
 }
 
+void WebProcessProxy::removeBackForwardItem(uint64_t itemID)
+{
+    m_backForwardListItemMap.remove(itemID);
+}
+
 void WebProcessProxy::assumeReadAccessToBaseURL(const String& urlString)
 {
     URL url(URL(), urlString);

Modified: branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.h (183143 => 183144)


--- branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.h	2015-04-22 22:34:36 UTC (rev 183143)
+++ branches/safari-600.7-branch/Source/WebKit2/UIProcess/WebProcessProxy.h	2015-04-22 22:41:23 UTC (rev 183144)
@@ -108,6 +108,7 @@
     void updateTextCheckerState();
 
     void registerNewWebBackForwardListItem(WebBackForwardListItem*);
+    void removeBackForwardItem(uint64_t);
 
     void willAcquireUniversalFileReadSandboxExtension() { m_mayHaveUniversalFileReadSandboxExtension = true; }
     void assumeReadAccessToBaseURL(const String&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to