Title: [182084] trunk/Source/WebKit2
- Revision
- 182084
- Author
- [email protected]
- Date
- 2015-03-27 15:01:54 -0700 (Fri, 27 Mar 2015)
Log Message
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:
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (182083 => 182084)
--- trunk/Source/WebKit2/ChangeLog 2015-03-27 21:56:35 UTC (rev 182083)
+++ trunk/Source/WebKit2/ChangeLog 2015-03-27 22:01:54 UTC (rev 182084)
@@ -1,3 +1,28 @@
+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-03-27 Simon Fraser <[email protected]>
Use the correct timebase to log scrollperf blank pixel counts on iOS
Modified: trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp (182083 => 182084)
--- trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp 2015-03-27 21:56:35 UTC (rev 182083)
+++ trunk/Source/WebKit2/UIProcess/WebBackForwardList.cpp 2015-03-27 22:01:54 UTC (rev 182084)
@@ -436,7 +436,6 @@
void WebBackForwardList::didRemoveItem(WebBackForwardListItem& backForwardListItem)
{
- // FIXME: This should really also delete the item from the map.
m_page->backForwardRemovedItem(backForwardListItem.itemID());
#if PLATFORM(COCOA)
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (182083 => 182084)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-03-27 21:56:35 UTC (rev 182083)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-03-27 22:01:54 UTC (rev 182084)
@@ -5125,6 +5125,7 @@
void WebPageProxy::backForwardRemovedItem(uint64_t itemID)
{
+ m_process->removeBackForwardItem(itemID);
m_process->send(Messages::WebPage::DidRemoveBackForwardItem(itemID), m_pageID);
}
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (182083 => 182084)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-03-27 21:56:35 UTC (rev 182083)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-03-27 22:01:54 UTC (rev 182084)
@@ -292,6 +292,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: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (182083 => 182084)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-03-27 21:56:35 UTC (rev 182083)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-03-27 22:01:54 UTC (rev 182084)
@@ -107,6 +107,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