⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 244120 in webkit


Ignore:
Timestamp:
Apr 10, 2019, 10:10:56 AM (7 years ago)
Author:
Alan Coon
Message:

Cherry-pick r243104. rdar://problem/49725692

REGRESSION(r236862): early frame decoupling leaves JSC ArrayBuffer objects lingering
https://bugs.webkit.org/show_bug.cgi?id=195322

Reviewed by Ryosuke Niwa.

Since r236862, DOMWindow objects get disconnected from their Frame object as soon as
their iframe element gets removed from the document. Previously, DOMWindow was a
FrameDestructionObserver and would stay connected to its frame until the frame died.

This means that some of the work that we were doing in DOMWindow::frameDestroyed() and
Document::willDetachPage() no longer happens for subframe windows because they get
disconnected from their frame because they get a chance to get such notifications.
To address this issue, we now also do this work in DOMWindow::willDetachDocumentFromFrame()
which gets called when the iframe gets removed from the document and the document / window
get disconnected from the Frame element.

No new tests, verified locally that the leak is gone on JetStream.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::willDetachDocumentFromFrame):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243104 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-607-branch/Source/WebCore
Files:
2 edited

Legend:

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

    r244118 r244120  
     12019-04-09  Alan Coon  <alancoon@apple.com>
     2
     3        Cherry-pick r243104. rdar://problem/49725692
     4
     5    REGRESSION(r236862): early frame decoupling leaves JSC ArrayBuffer objects lingering
     6    https://bugs.webkit.org/show_bug.cgi?id=195322
     7   
     8    Reviewed by Ryosuke Niwa.
     9   
     10    Since r236862, DOMWindow objects get disconnected from their Frame object as soon as
     11    their iframe element gets removed from the document. Previously, DOMWindow was a
     12    FrameDestructionObserver and would stay connected to its frame until the frame died.
     13   
     14    This means that some of the work that we were doing in DOMWindow::frameDestroyed() and
     15    Document::willDetachPage() no longer happens for subframe windows because they get
     16    disconnected from their frame because they get a chance to get such notifications.
     17    To address this issue, we now also do this work in DOMWindow::willDetachDocumentFromFrame()
     18    which gets called when the iframe gets removed from the document and the document / window
     19    get disconnected from the Frame element.
     20   
     21    No new tests, verified locally that the leak is gone on JetStream.
     22   
     23    * page/DOMWindow.cpp:
     24    (WebCore::DOMWindow::willDetachDocumentFromFrame):
     25   
     26   
     27    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     28
     29    2019-03-18  Chris Dumez  <cdumez@apple.com>
     30
     31            REGRESSION(r236862): early frame decoupling leaves JSC ArrayBuffer objects lingering
     32            https://bugs.webkit.org/show_bug.cgi?id=195322
     33
     34            Reviewed by Ryosuke Niwa.
     35
     36            Since r236862, DOMWindow objects get disconnected from their Frame object as soon as
     37            their iframe element gets removed from the document. Previously, DOMWindow was a
     38            FrameDestructionObserver and would stay connected to its frame until the frame died.
     39
     40            This means that some of the work that we were doing in DOMWindow::frameDestroyed() and
     41            Document::willDetachPage() no longer happens for subframe windows because they get
     42            disconnected from their frame because they get a chance to get such notifications.
     43            To address this issue, we now also do this work in DOMWindow::willDetachDocumentFromFrame()
     44            which gets called when the iframe gets removed from the document and the document / window
     45            get disconnected from the Frame element.
     46
     47            No new tests, verified locally that the leak is gone on JetStream.
     48
     49            * page/DOMWindow.cpp:
     50            (WebCore::DOMWindow::willDetachDocumentFromFrame):
     51
    1522019-04-09  Alan Coon  <alancoon@apple.com>
    253
  • branches/safari-607-branch/Source/WebCore/page/DOMWindow.cpp

    r242140 r244120  
    489489    if (m_performance)
    490490        m_performance->clearResourceTimings();
     491
     492    JSDOMWindowBase::fireFrameClearedWatchpointsForWindow(this);
     493    InspectorInstrumentation::frameWindowDiscarded(*frame(), this);
    491494}
    492495
Note: See TracChangeset for help on using the changeset viewer.