Title: [235030] releases/WebKitGTK/webkit-2.22/Source/WebCore
Revision
235030
Author
carlo...@webkit.org
Date
2018-08-20 02:30:46 -0700 (Mon, 20 Aug 2018)

Log Message

Merge r234923 - [LFC] Tree builder should construct block and inline containers based on the display type.
https://bugs.webkit.org/show_bug.cgi?id=188632

Reviewed by Antti Koivisto.

Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.

* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog (235029 => 235030)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-08-20 09:30:41 UTC (rev 235029)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog	2018-08-20 09:30:46 UTC (rev 235030)
@@ -1,5 +1,17 @@
 2018-08-16  Zalan Bujtas  <za...@apple.com>
 
+        [LFC] Tree builder should construct block and inline containers based on the display type.
+        https://bugs.webkit.org/show_bug.cgi?id=188632
+
+        Reviewed by Antti Koivisto.
+
+        Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.   
+
+        * layout/layouttree/LayoutTreeBuilder.cpp:
+        (WebCore::Layout::TreeBuilder::createSubTree):
+
+2018-08-16  Zalan Bujtas  <za...@apple.com>
+
         [LFC] Bail out of subtree verification when trees are out of sync.
         https://bugs.webkit.org/show_bug.cgi?id=188633
 

Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp (235029 => 235030)


--- releases/WebKitGTK/webkit-2.22/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp	2018-08-20 09:30:41 UTC (rev 235029)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp	2018-08-20 09:30:46 UTC (rev 235030)
@@ -86,15 +86,23 @@
 
         if (is<RenderElement>(child)) {
             auto& renderer = downcast<RenderElement>(child);
-            if (is<RenderBlock>(renderer))
+            auto display = renderer.style().display();
+            if (display == DisplayType::Block)
                 box = new BlockContainer(elementAttributes(renderer), RenderStyle::clone(renderer.style()));
-            else if (is<RenderInline>(renderer))
+            else if (display == DisplayType::Inline)
                 box = new InlineContainer(elementAttributes(renderer), RenderStyle::clone(renderer.style()));
+            else {
+                ASSERT_NOT_IMPLEMENTED_YET();
+                continue;
+            }
+
         } else if (is<RenderText>(child)) {
             box = new InlineBox( { }, RenderStyle::createAnonymousStyleWithDisplay(rootRenderer.style(), DisplayType::Inline));
             downcast<InlineBox>(*box).setTextContent(downcast<RenderText>(child).originalText());
-        } else
+        } else {
             ASSERT_NOT_IMPLEMENTED_YET();
+            continue;
+        }
 
         if (!rootContainer.hasChild()) {
             rootContainer.setFirstChild(*box);
@@ -105,6 +113,7 @@
             lastChild->setNextSibling(*box);
             rootContainer.setLastChild(*box);
         }
+
         box->setParent(rootContainer);
 
         if (box->isOutOfFlowPositioned()) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to