Title: [243568] releases/WebKitGTK/webkit-2.24/Source/WebCore
Revision
243568
Author
ape...@igalia.com
Date
2019-03-27 16:32:34 -0700 (Wed, 27 Mar 2019)

Log Message

Merged r243104 - 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):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog (243567 => 243568)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-03-27 23:09:51 UTC (rev 243567)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog	2019-03-27 23:32:34 UTC (rev 243568)
@@ -1,3 +1,26 @@
+2019-03-18  Chris Dumez  <cdu...@apple.com>
+
+        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-03-12  Philippe Normand  <pnorm...@igalia.com>
 
         [GStreamer][v4l2] Synchronous video texture flushing support

Modified: releases/WebKitGTK/webkit-2.24/Source/WebCore/page/DOMWindow.cpp (243567 => 243568)


--- releases/WebKitGTK/webkit-2.24/Source/WebCore/page/DOMWindow.cpp	2019-03-27 23:09:51 UTC (rev 243567)
+++ releases/WebKitGTK/webkit-2.24/Source/WebCore/page/DOMWindow.cpp	2019-03-27 23:32:34 UTC (rev 243568)
@@ -486,6 +486,9 @@
 
     if (m_performance)
         m_performance->clearResourceTimings();
+
+    JSDOMWindowBase::fireFrameClearedWatchpointsForWindow(this);
+    InspectorInstrumentation::frameWindowDiscarded(*frame(), this);
 }
 
 #if ENABLE(GAMEPAD)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to