Summary: | [RenderTreeBuilder] Move styleDidChange mutation logic to RenderTreeUpdater | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | zalan <zalan> | ||||||||||||
Component: | Layout and Rendering | Assignee: | zalan <zalan> | ||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||
Severity: | Normal | CC: | bfulgham, commit-queue, ews-watchlist, koivisto, simon.fraser, webkit-bug-importer, zalan | ||||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||||
Version: | WebKit Nightly Build | ||||||||||||||
Hardware: | Unspecified | ||||||||||||||
OS: | Unspecified | ||||||||||||||
Attachments: |
|
Description
zalan
2018-03-01 21:19:50 PST
Created attachment 334877 [details]
Patch
Comment on attachment 334877 [details] Patch Attachment 334877 [details] did not pass mac-debug-ews (mac): Output: http://webkit-queues.webkit.org/results/6729312 New failing tests: fullscreen/full-screen-fixed-pos-parent.html Created attachment 334879 [details]
Archive of layout-test-results from ews114 for mac-sierra
The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114 Port: mac-sierra Platform: Mac OS X 10.12.6
Created attachment 334906 [details]
Patch
Created attachment 334907 [details]
Patch
Comment on attachment 334907 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=334907&action=review > Source/WebCore/rendering/updating/RenderTreeUpdater.cpp:341 > + auto& parent = *renderer.parent(); > + bool isFloating = renderer.style().isFloating(); > + bool isOutOfFlowPositioned = renderer.style().hasOutOfFlowPosition(); > + bool startsAffectingParent = false; > + bool noLongerAffectsParent = false; > + > + if (is<RenderBlock>(parent)) > + noLongerAffectsParent = (!wasFloating && isFloating) || (!wasOufOfFlowPositioned && isOutOfFlowPositioned); > + > + if (is<RenderBlockFlow>(parent) || is<RenderInline>(parent)) { > + startsAffectingParent = (wasFloating || wasOufOfFlowPositioned) && !isFloating && !isOutOfFlowPositioned; > + ASSERT(!startsAffectingParent || !noLongerAffectsParent); > + } > + > + if (startsAffectingParent) { > + // We have gone from not affecting the inline status of the parent flow to suddenly > + // having an impact. See if there is a mismatch between the parent flow's > + // childrenInline() state and our state. > + renderer.setInline(renderer.style().isDisplayInlineType()); > + if (renderer.isInline() != renderer.parent()->childrenInline()) > + m_builder.childFlowStateChangesAndAffectsParentBlock(renderer); > + return; > + } > + > + if (noLongerAffectsParent) { > + m_builder.childFlowStateChangesAndNoLongerAffectsParentBlock(renderer); > + > + if (is<RenderBlockFlow>(renderer)) { > + // Fresh floats need to be reparented if they actually belong to the previous anonymous block. > + // It copies the logic of RenderBlock::addChildIgnoringContinuation > + if (isFloating && renderer.previousSibling() && renderer.previousSibling()->isAnonymousBlock()) > + m_builder.move(downcast<RenderBoxModelObject>(parent), downcast<RenderBoxModelObject>(*renderer.previousSibling()), renderer, RenderTreeBuilder::NormalizeAfterInsertion::No); > + } > + } > +} Maybe this stuff could go to the Builder as mutateTreeAfterStyleChange() or something? Created attachment 334957 [details]
Patch
Comment on attachment 334957 [details] Patch Clearing flags on attachment: 334957 Committed r229200: <https://trac.webkit.org/changeset/229200> All reviewed patches have been landed. Closing bug. |