Title: [122502] trunk
Revision
122502
Author
jchaffr...@webkit.org
Date
2012-07-12 13:53:58 -0700 (Thu, 12 Jul 2012)

Log Message

ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
https://bugs.webkit.org/show_bug.cgi?id=91003

Reviewed by Abhishek Arya.

Source/WebCore:

Tests: fast/flexbox/assert-generated-deprecated-flexbox.html
       fast/flexbox/assert-generated-new-flexbox.html

The issue was that findBeforeAfterParent didn't return the right parent for the flex-box case. This would
make us update the wrong children (and not propagate the style updates properly).

* rendering/RenderObjectChildList.cpp:
(WebCore::findBeforeAfterParent):
Added a check for flex boxes (both deprecated and new).

LayoutTests:

* fast/flexbox/assert-generated-deprecated-flexbox-expected.txt: Added.
* fast/flexbox/assert-generated-deprecated-flexbox.html: Added.
* fast/flexbox/assert-generated-new-flexbox-expected.txt: Added.
* fast/flexbox/assert-generated-new-flexbox.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (122501 => 122502)


--- trunk/LayoutTests/ChangeLog	2012-07-12 20:48:39 UTC (rev 122501)
+++ trunk/LayoutTests/ChangeLog	2012-07-12 20:53:58 UTC (rev 122502)
@@ -1,3 +1,15 @@
+2012-07-12  Julien Chaffraix  <jchaffr...@webkit.org>
+
+        ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
+        https://bugs.webkit.org/show_bug.cgi?id=91003
+
+        Reviewed by Abhishek Arya.
+
+        * fast/flexbox/assert-generated-deprecated-flexbox-expected.txt: Added.
+        * fast/flexbox/assert-generated-deprecated-flexbox.html: Added.
+        * fast/flexbox/assert-generated-new-flexbox-expected.txt: Added.
+        * fast/flexbox/assert-generated-new-flexbox.html: Added.
+
 2012-07-12  Pravin D  <pravind....@gmail.com>
 
         Percentage width replaced element in zero percent/fixed width container block incorrectly rendered.

Added: trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox-expected.txt (0 => 122502)


--- trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox-expected.txt	2012-07-12 20:53:58 UTC (rev 122502)
@@ -0,0 +1,5 @@
+Bug 91003: ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
+
+This test has passed if it doesn't crash or ASSERT.
+
+

Added: trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox.html (0 => 122502)


--- trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox.html	                        (rev 0)
+++ trunk/LayoutTests/fast/flexbox/assert-generated-deprecated-flexbox.html	2012-07-12 20:53:58 UTC (rev 122502)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+    <style>
+        div:after {
+            content: 'Generated content wrapped in a flex-box.';
+            display: -webkit-box;
+        }
+    </style>
+    <script>
+        if (window.testRunner)
+            testRunner.dumpAsText();
+    </script>
+    <p>Bug <a href="" ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content</p>
+    <p>This test has passed if it doesn't crash or ASSERT.</p>
+    <div></div>
+</html>

Added: trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox-expected.txt (0 => 122502)


--- trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox-expected.txt	2012-07-12 20:53:58 UTC (rev 122502)
@@ -0,0 +1,5 @@
+Bug 91003: ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
+
+This test has passed if it doesn't crash or ASSERT.
+
+

Added: trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox.html (0 => 122502)


--- trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox.html	                        (rev 0)
+++ trunk/LayoutTests/fast/flexbox/assert-generated-new-flexbox.html	2012-07-12 20:53:58 UTC (rev 122502)
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+    <style>
+        div:after {
+            content: 'Generated content wrapped in a flex-box.';
+            display: -webkit-flex;
+        }
+    </style>
+    <script>
+        if (window.testRunner)
+            testRunner.dumpAsText();
+    </script>
+    <p>Bug <a href="" ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content</p>
+    <p>This test has passed if it doesn't crash or ASSERT.</p>
+    <div></div>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (122501 => 122502)


--- trunk/Source/WebCore/ChangeLog	2012-07-12 20:48:39 UTC (rev 122501)
+++ trunk/Source/WebCore/ChangeLog	2012-07-12 20:53:58 UTC (rev 122502)
@@ -1,3 +1,20 @@
+2012-07-12  Julien Chaffraix  <jchaffr...@webkit.org>
+
+        ASSERT(genChild->isListMarker() || genChild->style()->styleType() == FIRST_LETTER) triggered on flex-box content
+        https://bugs.webkit.org/show_bug.cgi?id=91003
+
+        Reviewed by Abhishek Arya.
+
+        Tests: fast/flexbox/assert-generated-deprecated-flexbox.html
+               fast/flexbox/assert-generated-new-flexbox.html
+
+        The issue was that findBeforeAfterParent didn't return the right parent for the flex-box case. This would
+        make us update the wrong children (and not propagate the style updates properly).
+
+        * rendering/RenderObjectChildList.cpp:
+        (WebCore::findBeforeAfterParent):
+        Added a check for flex boxes (both deprecated and new).
+
 2012-07-12  Pravin D  <pravind....@gmail.com>
 
         Percentage width replaced element in zero percent/fixed width container block incorrectly rendered.

Modified: trunk/Source/WebCore/rendering/RenderObjectChildList.cpp (122501 => 122502)


--- trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2012-07-12 20:48:39 UTC (rev 122501)
+++ trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2012-07-12 20:53:58 UTC (rev 122502)
@@ -289,8 +289,9 @@
 
 static RenderObject* findBeforeAfterParent(RenderObject* object)
 {
-    // Only table parts need to search for the :before or :after parent
-    if (!(object->isTable() || object->isTableSection() || object->isTableRow()))
+    // Only table parts and flex-boxes need to search for the :before or :after parent
+    // FIXME: We could likely get away without this check and always look for the right parent.
+    if (!(object->isTable() || object->isTableSection() || object->isTableRow() || object->isFlexibleBoxIncludingDeprecated()))
         return object;
 
     // If there is a :first-letter style applied on the :before or :after content,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to