WebKit Bugzilla
Attachment 347242 Details for
Bug 188632
: [LFC] Tree builder should construct block and inline containers based on the display type.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188632-20180815214416.patch (text/plain), 2.78 KB, created by
zalan
on 2018-08-15 21:44:19 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2018-08-15 21:44:19 PDT
Size:
2.78 KB
patch
obsolete
>Subversion Revision: 234903 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 45f39ffa7cb52927e6309e931190956946750dd3..bd20ec16152f677f5cd5410cc7c881752c39ba6c 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2018-08-15 Zalan Bujtas <zalan@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 NOBODY (OOPS!). >+ >+ 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-15 Christopher Reid <chris.reid@sony.com> > > [Curl] Implement default cookie path handling correctly as outlined in RFC6265. >diff --git a/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp b/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >index 1e31fe896036fbdef0a0258ff30f14aa5740da44..a6c873807f3ecbf80d0d86002c2a81590ede5b6b 100644 >--- a/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >+++ b/Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp >@@ -86,15 +86,23 @@ void TreeBuilder::createSubTree(const RenderElement& rootRenderer, Container& ro > > 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 @@ void TreeBuilder::createSubTree(const RenderElement& rootRenderer, Container& ro > lastChild->setNextSibling(*box); > rootContainer.setLastChild(*box); > } >+ > box->setParent(rootContainer); > > if (box->isOutOfFlowPositioned()) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
koivisto
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188632
: 347242