Title: [209617] trunk
Revision
209617
Author
za...@apple.com
Date
2016-12-09 10:50:34 -0800 (Fri, 09 Dec 2016)

Log Message

ASSERTION FAILED: !beforeChild->isRubyRun() in WebCore::RenderRubyAsBlock::addChild
https://bugs.webkit.org/show_bug.cgi?id=141433
<rdar://problem/27711351>

Reviewed by Dean Jackson.

Source/WebCore:

Do not try to inject the list marker into a block ruby subtree. Have it as the sibling
of the ruby instead (with an anonymous block wrapper ofc).

Test: fast/ruby/assert-with-listitem-and-block-ruby.html

* rendering/RenderListItem.cpp:
(WebCore::getParentOfFirstLineBox):

LayoutTests:

* fast/ruby/assert-with-listitem-and-block-ruby-expected.txt: Added.
* fast/ruby/assert-with-listitem-and-block-ruby.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (209616 => 209617)


--- trunk/LayoutTests/ChangeLog	2016-12-09 18:29:42 UTC (rev 209616)
+++ trunk/LayoutTests/ChangeLog	2016-12-09 18:50:34 UTC (rev 209617)
@@ -1,3 +1,14 @@
+2016-12-09  Zalan Bujtas  <za...@apple.com>
+
+        ASSERTION FAILED: !beforeChild->isRubyRun() in WebCore::RenderRubyAsBlock::addChild
+        https://bugs.webkit.org/show_bug.cgi?id=141433
+        <rdar://problem/27711351>
+
+        Reviewed by Dean Jackson.
+
+        * fast/ruby/assert-with-listitem-and-block-ruby-expected.txt: Added.
+        * fast/ruby/assert-with-listitem-and-block-ruby.html: Added.
+
 2016-12-09  Antoine Quint  <grao...@apple.com>
 
         [Modern Media Controls] Implement the pageScaleFactor property

Added: trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby-expected.txt (0 => 209617)


--- trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby-expected.txt	2016-12-09 18:50:34 UTC (rev 209617)
@@ -0,0 +1 @@
+PASS if no assert in debug.

Added: trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby.html (0 => 209617)


--- trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby.html	                        (rev 0)
+++ trunk/LayoutTests/fast/ruby/assert-with-listitem-and-block-ruby.html	2016-12-09 18:50:34 UTC (rev 209617)
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that we can properly inject the list item marker in front of a block ruby.</title>
+<style>
+ruby {
+    display: block;
+}
+</style>
+</head>
+<body>
+<li><ruby>PASS if no assert in debug.</ruby></li>
+<script>
+if (window.testRunner)
+  testRunner.dumpAsText();
+</script>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (209616 => 209617)


--- trunk/Source/WebCore/ChangeLog	2016-12-09 18:29:42 UTC (rev 209616)
+++ trunk/Source/WebCore/ChangeLog	2016-12-09 18:50:34 UTC (rev 209617)
@@ -1,3 +1,19 @@
+2016-12-09  Zalan Bujtas  <za...@apple.com>
+
+        ASSERTION FAILED: !beforeChild->isRubyRun() in WebCore::RenderRubyAsBlock::addChild
+        https://bugs.webkit.org/show_bug.cgi?id=141433
+        <rdar://problem/27711351>
+
+        Reviewed by Dean Jackson.
+
+        Do not try to inject the list marker into a block ruby subtree. Have it as the sibling
+        of the ruby instead (with an anonymous block wrapper ofc).
+
+        Test: fast/ruby/assert-with-listitem-and-block-ruby.html
+
+        * rendering/RenderListItem.cpp:
+        (WebCore::getParentOfFirstLineBox):
+
 2016-12-09  Antoine Quint  <grao...@apple.com>
 
         [Modern Media Controls] Implement the pageScaleFactor property

Modified: trunk/Source/WebCore/rendering/RenderListItem.cpp (209616 => 209617)


--- trunk/Source/WebCore/rendering/RenderListItem.cpp	2016-12-09 18:29:42 UTC (rev 209616)
+++ trunk/Source/WebCore/rendering/RenderListItem.cpp	2016-12-09 18:50:34 UTC (rev 209617)
@@ -34,6 +34,7 @@
 #include "RenderInline.h"
 #include "RenderListMarker.h"
 #include "RenderMultiColumnFlowThread.h"
+#include "RenderRuby.h"
 #include "RenderTable.h"
 #include "RenderView.h"
 #include "StyleInheritedData.h"
@@ -232,9 +233,12 @@
         if (child.isFloating() || child.isOutOfFlowPositioned())
             continue;
 
-        if (is<RenderTable>(child) || !is<RenderBlock>(child) || (is<RenderBox>(child) && downcast<RenderBox>(child).isWritingModeRoot()))
+        if (!is<RenderBlock>(child) || is<RenderTable>(child) || is<RenderRubyAsBlock>(child))
             break;
 
+        if (is<RenderBox>(child) && downcast<RenderBox>(child).isWritingModeRoot())
+            break;
+
         if (is<RenderListItem>(current) && inQuirksMode && child.node() && isHTMLListElement(*child.node()))
             break;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to