Title: [205438] releases/WebKitGTK/webkit-2.12
Revision
205438
Author
[email protected]
Date
2016-09-05 02:09:52 -0700 (Mon, 05 Sep 2016)

Log Message

Merge r204908 - ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
https://bugs.webkit.org/show_bug.cgi?id=139396
<rdar://problem/27704339>

Reviewed by David Hyatt.

Source/WebCore:

RenderBlockFlow::hasLines() should be able to handle the block-children case.

Test: fast/ruby/assert-with-block-rt-child-and-emphasis.html

* rendering/RenderBlock.h:
(WebCore::RenderBlock::hasLines): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hasLines):
* rendering/RenderBlockFlow.h:

LayoutTests:

* fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt: Added.
* fast/ruby/assert-with-block-rt-child-and-emphasis.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog (205437 => 205438)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog	2016-09-05 09:03:40 UTC (rev 205437)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/ChangeLog	2016-09-05 09:09:52 UTC (rev 205438)
@@ -1,3 +1,14 @@
+2016-08-24  Zalan Bujtas  <[email protected]>
+
+        ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
+        https://bugs.webkit.org/show_bug.cgi?id=139396
+        <rdar://problem/27704339>
+
+        Reviewed by David Hyatt.
+
+        * fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt: Added.
+        * fast/ruby/assert-with-block-rt-child-and-emphasis.html: Added.
+
 2016-08-23  Zalan Bujtas  <[email protected]>
 
         ASSERTION FAILED: !view().layoutStateEnabled() || style().styleType() == FIRST_LETTER in WebCore::RenderInline::clippedOverflowRectForRepaint

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt (0 => 205438)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis-expected.txt	2016-09-05 09:09:52 UTC (rev 205438)
@@ -0,0 +1,2 @@
+PASS if no assert in debug
+

Added: releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis.html (0 => 205438)


--- releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.12/LayoutTests/fast/ruby/assert-with-block-rt-child-and-emphasis.html	2016-09-05 09:09:52 UTC (rev 205438)
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that we don't assert when rt has a block child with emphasis on.</title>
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+</script>
+<style>
+ruby {
+    text-emphasis-style: filled;
+}
+</style>
+</head>
+<body>
+<ruby>PASS if no assert in debug<rt><div></div></rt></ruby>
+</body>
+</html>

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (205437 => 205438)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-09-05 09:03:40 UTC (rev 205437)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-09-05 09:09:52 UTC (rev 205438)
@@ -1,3 +1,21 @@
+2016-08-24  Zalan Bujtas  <[email protected]>
+
+        ASSERTION FAILED: childrenInline() in WebCore::RenderBlockFlow::hasLines
+        https://bugs.webkit.org/show_bug.cgi?id=139396
+        <rdar://problem/27704339>
+
+        Reviewed by David Hyatt.
+
+        RenderBlockFlow::hasLines() should be able to handle the block-children case.
+
+        Test: fast/ruby/assert-with-block-rt-child-and-emphasis.html
+
+        * rendering/RenderBlock.h:
+        (WebCore::RenderBlock::hasLines): Deleted.
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::hasLines):
+        * rendering/RenderBlockFlow.h:
+
 2016-08-23  Zalan Bujtas  <[email protected]>
 
         ASSERTION FAILED: !view().layoutStateEnabled() || style().styleType() == FIRST_LETTER in WebCore::RenderInline::clippedOverflowRectForRepaint

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlock.h (205437 => 205438)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlock.h	2016-09-05 09:03:40 UTC (rev 205437)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlock.h	2016-09-05 09:09:52 UTC (rev 205438)
@@ -415,9 +415,6 @@
     virtual bool isSelfCollapsingBlock() const override;
     virtual bool childrenPreventSelfCollapsing() const;
     
-    // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to RenderBlockFlow
-    virtual bool hasLines() const { return false; }
-
     void createFirstLetterRenderer(RenderElement* firstLetterBlock, RenderText* currentTextChild);
     void updateFirstLetterStyle(RenderElement* firstLetterBlock, RenderObject* firstLetterContainer);
 

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.cpp (205437 => 205438)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.cpp	2016-09-05 09:03:40 UTC (rev 205437)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.cpp	2016-09-05 09:09:52 UTC (rev 205438)
@@ -3537,7 +3537,8 @@
 
 bool RenderBlockFlow::hasLines() const
 {
-    ASSERT(childrenInline());
+    if (!childrenInline())
+        return false;
 
     if (auto simpleLineLayout = this->simpleLineLayout())
         return simpleLineLayout->lineCount();

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.h (205437 => 205438)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.h	2016-09-05 09:03:40 UTC (rev 205437)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/rendering/RenderBlockFlow.h	2016-09-05 09:09:52 UTC (rev 205438)
@@ -345,8 +345,8 @@
     RootInlineBox* firstRootBox() const { return downcast<RootInlineBox>(m_lineBoxes.firstLineBox()); }
     RootInlineBox* lastRootBox() const { return downcast<RootInlineBox>(m_lineBoxes.lastLineBox()); }
 
-    virtual bool hasLines() const override final;
-    virtual void invalidateLineLayoutPath() override final;
+    bool hasLines() const;
+    void invalidateLineLayoutPath() final;
 
     enum LineLayoutPath { UndeterminedPath = 0, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath };
     LineLayoutPath lineLayoutPath() const { return static_cast<LineLayoutPath>(renderBlockFlowLineLayoutPath()); }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to