Title: [195275] releases/WebKitGTK/webkit-2.10
Revision
195275
Author
[email protected]
Date
2016-01-19 01:39:14 -0800 (Tue, 19 Jan 2016)

Log Message

Merge r195146 - ASSERTION FAILED: canHaveChildren() || canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal
https://bugs.webkit.org/show_bug.cgi?id=123331

Reviewed by Darin Adler.

Do not set named flow fragment bit on the flow until after the renderer is attached. Setting/resetting it too early
could affect the attach/detach process itself (This is similar to attaching a multi column flow thread).

Source/WebCore:

Test: fast/regions/input-box-with-region-assert.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):

LayoutTests:

* fast/regions/input-box-with-region-assert-expected.txt: Added.
* fast/regions/input-box-with-region-assert.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog (195274 => 195275)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2016-01-19 09:37:58 UTC (rev 195274)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/ChangeLog	2016-01-19 09:39:14 UTC (rev 195275)
@@ -1,3 +1,16 @@
+2016-01-15  Zalan Bujtas  <[email protected]>
+
+        ASSERTION FAILED: canHaveChildren() || canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal
+        https://bugs.webkit.org/show_bug.cgi?id=123331
+
+        Reviewed by Darin Adler.
+
+        Do not set named flow fragment bit on the flow until after the renderer is attached. Setting/resetting it too early
+        could affect the attach/detach process itself (This is similar to attaching a multi column flow thread).
+
+        * fast/regions/input-box-with-region-assert-expected.txt: Added.
+        * fast/regions/input-box-with-region-assert.html: Added.
+
 2016-01-15  Youenn Fablet  <[email protected]>
 
         CORS: Fix the handling of redirected request containing Origin null.

Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert-expected.txt (0 => 195275)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert-expected.txt	2016-01-19 09:39:14 UTC (rev 195275)
@@ -0,0 +1 @@
+Pass if no crash or assert in debug. 

Added: releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert.html (0 => 195275)


--- releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.10/LayoutTests/fast/regions/input-box-with-region-assert.html	2016-01-19 09:39:14 UTC (rev 195275)
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that flow child can be added to an input element.</title>
+</head>
+<body>
+Pass if no crash or assert in debug.
+<input style="-webkit-flow-from: thread">
+</body>
+<script>
+    if (window.testRunner)
+      testRunner.dumpAsText();
+</script>
+</html>
\ No newline at end of file

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (195274 => 195275)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-01-19 09:37:58 UTC (rev 195274)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-01-19 09:39:14 UTC (rev 195275)
@@ -1,3 +1,20 @@
+2016-01-15  Zalan Bujtas  <[email protected]>
+
+        ASSERTION FAILED: canHaveChildren() || canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal
+        https://bugs.webkit.org/show_bug.cgi?id=123331
+
+        Reviewed by Darin Adler.
+
+        Do not set named flow fragment bit on the flow until after the renderer is attached. Setting/resetting it too early
+        could affect the attach/detach process itself (This is similar to attaching a multi column flow thread).
+
+        Test: fast/regions/input-box-with-region-assert.html
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::willBeDestroyed):
+        (WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
+        (WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
+
 2016-01-15  Youenn Fablet  <[email protected]>
 
         CORS: Fix the handling of redirected request containing Origin null.

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockFlow.cpp (195274 => 195275)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockFlow.cpp	2016-01-19 09:37:58 UTC (rev 195274)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderBlockFlow.cpp	2016-01-19 09:39:14 UTC (rev 195275)
@@ -144,7 +144,7 @@
 void RenderBlockFlow::willBeDestroyed()
 {
     if (renderNamedFlowFragment())
-        setRenderNamedFlowFragment(0);
+        setRenderNamedFlowFragment(nullptr);
 
     // Make sure to destroy anonymous children first while they are still connected to the rest of the tree, so that they will
     // properly dirty line boxes that they are removed from. Effects that do :before/:after only on hover could crash otherwise.
@@ -3140,8 +3140,8 @@
     if (style().isDisplayRegionType() && style().hasFlowFrom() && !style().specifiesColumns()) {
         RenderNamedFlowFragment* flowFragment = new RenderNamedFlowFragment(document(), RenderNamedFlowFragment::createStyle(style()));
         flowFragment->initializeStyle();
+        addChild(flowFragment);
         setRenderNamedFlowFragment(flowFragment);
-        addChild(renderNamedFlowFragment());
     }
 }
 
@@ -3187,8 +3187,8 @@
 void RenderBlockFlow::setRenderNamedFlowFragment(RenderNamedFlowFragment* flowFragment)
 {
     RenderBlockFlowRareData& rareData = ensureRareBlockFlowData();
-    if (rareData.m_renderNamedFlowFragment)
-        rareData.m_renderNamedFlowFragment->destroy();
+    if (auto* flowFragmentOnFlow = std::exchange(rareData.m_renderNamedFlowFragment, nullptr))
+        flowFragmentOnFlow->destroy();
     rareData.m_renderNamedFlowFragment = flowFragment;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to