Title: [244638] branches/safari-607.2.6.0-branch/Source/WebCore
- Revision
- 244638
- Author
- [email protected]
- Date
- 2019-04-24 23:42:36 -0700 (Wed, 24 Apr 2019)
Log Message
Cherry-pick r244120. rdar://problem/50132675
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
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-607-branch@244120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-607.2.6.0-branch/Source/WebCore/ChangeLog (244637 => 244638)
--- branches/safari-607.2.6.0-branch/Source/WebCore/ChangeLog 2019-04-25 06:42:33 UTC (rev 244637)
+++ branches/safari-607.2.6.0-branch/Source/WebCore/ChangeLog 2019-04-25 06:42:36 UTC (rev 244638)
@@ -1,5 +1,87 @@
2019-04-24 Babak Shafiei <[email protected]>
+ Cherry-pick r244120. rdar://problem/50132675
+
+ 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
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-607-branch@244120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2019-04-09 Alan Coon <[email protected]>
+
+ 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
+
+ 2019-03-18 Chris Dumez <[email protected]>
+
+ 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):
+
+2019-04-24 Babak Shafiei <[email protected]>
+
Cherry-pick r244174. rdar://problem/28160396
Cherry-pick r243841. rdar://problem/49725678
Modified: branches/safari-607.2.6.0-branch/Source/WebCore/page/DOMWindow.cpp (244637 => 244638)
--- branches/safari-607.2.6.0-branch/Source/WebCore/page/DOMWindow.cpp 2019-04-25 06:42:33 UTC (rev 244637)
+++ branches/safari-607.2.6.0-branch/Source/WebCore/page/DOMWindow.cpp 2019-04-25 06:42:36 UTC (rev 244638)
@@ -488,6 +488,9 @@
if (m_performance)
m_performance->clearResourceTimings();
+
+ JSDOMWindowBase::fireFrameClearedWatchpointsForWindow(this);
+ InspectorInstrumentation::frameWindowDiscarded(*frame(), this);
}
#if ENABLE(GAMEPAD)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes