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