Title: [216361] releases/WebKitGTK/webkit-2.16/Source/WebCore
Revision
216361
Author
[email protected]
Date
2017-05-08 01:02:18 -0700 (Mon, 08 May 2017)

Log Message

Merge r215465 - Break Document::m_associatedFormControls reference cycle.
<https://webkit.org/b/170946>

Reviewed by Antti Koivisto.

There was a race between didAssociateFormControls() and didAssociateFormControlsTimerFired()
where detaching Document from its frame between the two would lead to an unbreakable reference
cycle between Document and its form elements.

Solve this by clearing the set of associated form elements in removedLastRef(), where we clear
all the other strong smart pointers to elements.

* dom/Document.cpp:
(WebCore::Document::removedLastRef):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (216360 => 216361)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-05-08 08:02:08 UTC (rev 216360)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-05-08 08:02:18 UTC (rev 216361)
@@ -1,3 +1,20 @@
+2017-04-18  Andreas Kling  <[email protected]>
+
+        Break Document::m_associatedFormControls reference cycle.
+        <https://webkit.org/b/170946>
+
+        Reviewed by Antti Koivisto.
+
+        There was a race between didAssociateFormControls() and didAssociateFormControlsTimerFired()
+        where detaching Document from its frame between the two would lead to an unbreakable reference
+        cycle between Document and its form elements.
+
+        Solve this by clearing the set of associated form elements in removedLastRef(), where we clear
+        all the other strong smart pointers to elements.
+
+        * dom/Document.cpp:
+        (WebCore::Document::removedLastRef):
+
 2017-04-16  Chris Dumez  <[email protected]>
 
         CMD+R / CMD+Q is considered as user interaction and beforeunload alert is shown

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/dom/Document.cpp (216360 => 216361)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/dom/Document.cpp	2017-05-08 08:02:08 UTC (rev 216360)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/dom/Document.cpp	2017-05-08 08:02:18 UTC (rev 216361)
@@ -683,6 +683,7 @@
         m_fullScreenElement = nullptr;
         m_fullScreenElementStack.clear();
 #endif
+        m_associatedFormControls.clear();
 
         detachParser();
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to