Changeset 207203 in webkit


Ignore:
Timestamp:
Oct 12, 2016 1:41:21 AM (7 years ago)
Author:
matthew_hanson@apple.com
Message:

Merge r204631. rdar://problem/28481427

Location:
branches/safari-602-branch/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-602-branch/Source/WebCore/ChangeLog

    r207200 r207203  
     12016-10-12  Matthew Hanson  <matthew_hanson@apple.com>
     2
     3        Merge r204631. rdar://problem/28481427
     4
     5    2016-08-19  Chris Dumez  <cdumez@apple.com>
     6
     7            DumpRenderTree crashed in com.apple.WebCore: WebCore::DOMWindow::resetDOMWindowProperties + 607
     8            https://bugs.webkit.org/show_bug.cgi?id=160983
     9            <rdar://problem/26768524>
     10
     11            Reviewed by Brent Fulgham.
     12
     13            Update DOMWindow::frameDestroyed() to ref the window object as the crash
     14            traces seem to indicate it can get destroyed during the execution of this
     15            method. Also update the code in the ~Frame destructor to not iterate over
     16            the list of FrameDestructionObservers because observers remove themselves
     17            from the list when they get destroyed.
     18
     19            No new tests, do not know how to reproduce.
     20
     21            * page/DOMWindow.cpp:
     22            (WebCore::DOMWindow::frameDestroyed):
     23            * page/Frame.cpp:
     24            (WebCore::Frame::~Frame):
     25
    1262016-10-12  Matthew Hanson  <matthew_hanson@apple.com>
    227
  • branches/safari-602-branch/Source/WebCore/page/DOMWindow.cpp

    r203338 r207203  
    481481void DOMWindow::frameDestroyed()
    482482{
     483    Ref<DOMWindow> protectedThis(*this);
     484
    483485    willDestroyDocumentInFrame();
    484486    FrameDestructionObserver::frameDestroyed();
  • branches/safari-602-branch/Source/WebCore/page/Frame.cpp

    r203324 r207203  
    218218    disconnectOwnerElement();
    219219
    220     for (auto& observer : m_destructionObservers)
    221         observer->frameDestroyed();
     220    while (auto* destructionObserver = m_destructionObservers.takeAny())
     221        destructionObserver->frameDestroyed();
    222222
    223223    if (!isMainFrame())
Note: See TracChangeset for help on using the changeset viewer.