Changeset 182688 in webkit


Ignore:
Timestamp:
Apr 13, 2015, 1:58:41 AM (10 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r182084 - 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:
Location:
releases/WebKitGTK/webkit-2.8/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.8/Source/WebKit2/ChangeLog

    r182682 r182688  
     12015-03-27  Andreas Kling  <akling@apple.com>
     2
     3        WebProcessProxy should not retain WebBackForwardListItems forever.
     4        <https://webkit.org/b/143152>
     5        <rdar://problem/19925709>
     6
     7        Reviewed by Anders Carlsson.
     8
     9        Have WebProcessProxy actually forget about a WebBackForwardListItem after it's removed from
     10        the WebBackForwardList.
     11
     12        This ensures that we don't accumulate too many of these objects, which can get quite large
     13        due to the session state encoded in them.
     14
     15        We already have graceful handling of the case where an incoming IPC message references
     16        a removed back/forward list item.
     17
     18        * UIProcess/WebBackForwardList.cpp:
     19        (WebKit::WebBackForwardList::didRemoveItem):
     20        * UIProcess/WebPageProxy.cpp:
     21        (WebKit::WebPageProxy::backForwardRemovedItem):
     22        * UIProcess/WebProcessProxy.cpp:
     23        (WebKit::WebProcessProxy::removeBackForwardItem):
     24        * UIProcess/WebProcessProxy.h:
     25
    1262015-03-26  Zan Dobersek  <zdobersek@igalia.com>
    227
  • releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/WebBackForwardList.cpp

    r176136 r182688  
    437437void WebBackForwardList::didRemoveItem(WebBackForwardListItem& backForwardListItem)
    438438{
    439     // FIXME: This should really also delete the item from the map.
    440439    m_page->backForwardRemovedItem(backForwardListItem.itemID());
    441440
  • releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r180826 r182688  
    51305130void WebPageProxy::backForwardRemovedItem(uint64_t itemID)
    51315131{
     5132    m_process->removeBackForwardItem(itemID);
    51325133    m_process->send(Messages::WebPage::DidRemoveBackForwardItem(itemID), m_pageID);
    51335134}
  • releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/WebProcessProxy.cpp

    r180204 r182688  
    269269}
    270270
     271void WebProcessProxy::removeBackForwardItem(uint64_t itemID)
     272{
     273    m_backForwardListItemMap.remove(itemID);
     274}
     275
    271276void WebProcessProxy::assumeReadAccessToBaseURL(const String& urlString)
    272277{
  • releases/WebKitGTK/webkit-2.8/Source/WebKit2/UIProcess/WebProcessProxy.h

    r180204 r182688  
    107107
    108108    void registerNewWebBackForwardListItem(WebBackForwardListItem*);
     109    void removeBackForwardItem(uint64_t);
    109110
    110111    void willAcquireUniversalFileReadSandboxExtension() { m_mayHaveUniversalFileReadSandboxExtension = true; }
Note: See TracChangeset for help on using the changeset viewer.