Changeset 188659 in webkit


Ignore:
Timestamp:
Aug 19, 2015 4:06:03 PM (9 years ago)
Author:
Brent Fulgham
Message:

Scrollable area container is not properly cleared when page is going into the PageCache
https://bugs.webkit.org/show_bug.cgi?id=148182
<rdar://problem/21969170>

Reviewed by Dean Jackson.

Must be tested manually going back and forth in history several times.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame): Clear the cached ScrollableAreas from the FrameView.

  • page/FrameView.cpp:

(WebCore::FrameView::clearScrollableAreas): Added.

  • page/FrameView.h:
Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r188658 r188659  
     12015-08-19  Brent Fulgham  <bfulgham@apple.com>
     2
     3        Scrollable area container is not properly cleared when page is going into the PageCache
     4        https://bugs.webkit.org/show_bug.cgi?id=148182
     5        <rdar://problem/21969170>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Must be tested manually going back and forth in history several times.
     10
     11        * history/CachedFrame.cpp:
     12        (WebCore::CachedFrame::CachedFrame): Clear the cached ScrollableAreas from the FrameView.
     13        * page/FrameView.cpp:
     14        (WebCore::FrameView::clearScrollableAreas): Added.
     15        * page/FrameView.h:
     16
    1172015-08-19  Zalan Bujtas  <zalan@apple.com>
    218
  • trunk/Source/WebCore/history/CachedFrame.cpp

    r184888 r188659  
    178178        frame.view()->clearBackingStores();
    179179
     180    frame.view()->clearScrollableAreas();
     181
    180182    // documentWillSuspendForPageCache() can set up a layout timer on the FrameView, so clear timers after that.
    181183    frame.clearTimers();
  • trunk/Source/WebCore/page/FrameView.cpp

    r188433 r188659  
    45204520}
    45214521
     4522void FrameView::clearScrollableAreas()
     4523{
     4524    if (m_scrollableAreas)
     4525        m_scrollableAreas->clear();
     4526}
     4527
    45224528void FrameView::scrollableAreaSetChanged()
    45234529{
  • trunk/Source/WebCore/page/FrameView.h

    r188305 r188659  
    459459    bool containsScrollableArea(ScrollableArea*) const;
    460460    const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas.get(); }
     461    void clearScrollableAreas();
    461462
    462463    virtual void removeChild(Widget&) override;
Note: See TracChangeset for help on using the changeset viewer.