Title: [229268] releases/WebKitGTK/webkit-2.20/Source/WebCore
- Revision
- 229268
- Author
- [email protected]
- Date
- 2018-03-05 05:16:34 -0800 (Mon, 05 Mar 2018)
Log Message
Merge r229137 - Remove RenderElement::s_noLongerAffectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183196
<rdar://problem/38030797>
Reviewed by Antti Koivisto.
Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.
Covered by existing tests.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::noLongerAffectsParentBlock const):
(WebCore::RenderElement::styleDidChange):
* rendering/RenderElement.h:
(WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (229267 => 229268)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog 2018-03-05 13:16:29 UTC (rev 229267)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog 2018-03-05 13:16:34 UTC (rev 229268)
@@ -1,3 +1,24 @@
+2018-03-01 Zalan Bujtas <[email protected]>
+
+ Remove RenderElement::s_noLongerAffectsParentBlock
+ https://bugs.webkit.org/show_bug.cgi?id=183196
+ <rdar://problem/38030797>
+
+ Reviewed by Antti Koivisto.
+
+ Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.
+
+ Covered by existing tests.
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::styleDidChange):
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::styleWillChange):
+ (WebCore::RenderElement::noLongerAffectsParentBlock const):
+ (WebCore::RenderElement::styleDidChange):
+ * rendering/RenderElement.h:
+ (WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.
+
2018-03-01 Chris Dumez <[email protected]>
imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp (229267 => 229268)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp 2018-03-05 13:16:29 UTC (rev 229267)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderBlockFlow.cpp 2018-03-05 13:16:34 UTC (rev 229268)
@@ -2022,7 +2022,7 @@
}
// Fresh floats need to be reparented if they actually belong to the previous anonymous block.
// It copies the logic of RenderBlock::addChildIgnoringContinuation
- if (noLongerAffectsParentBlock() && style().isFloating() && previousSibling() && previousSibling()->isAnonymousBlock())
+ if (oldStyle && noLongerAffectsParentBlock(*oldStyle) && style().isFloating() && previousSibling() && previousSibling()->isAnonymousBlock())
RenderTreeBuilder::current()->move(downcast<RenderBoxModelObject>(*parent()), downcast<RenderBoxModelObject>(*previousSibling()), *this, RenderTreeBuilder::NormalizeAfterInsertion::No);
if (diff >= StyleDifferenceRepaint) {
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp (229267 => 229268)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp 2018-03-05 13:16:29 UTC (rev 229267)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.cpp 2018-03-05 13:16:34 UTC (rev 229268)
@@ -94,8 +94,6 @@
static_assert(sizeof(RenderElement) == sizeof(SameSizeAsRenderElement), "RenderElement should stay small");
-bool RenderElement::s_noLongerAffectsParentBlock = false;
-
inline RenderElement::RenderElement(ContainerNode& elementOrDocument, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderObject(elementOrDocument)
, m_baseTypeFlags(baseTypeFlags)
@@ -748,9 +746,6 @@
downcast<RenderBox>(*this).removeFloatingOrPositionedChildFromBlockLists();
}
- s_noLongerAffectsParentBlock = ((!isFloating() && newStyle.isFloating()) || (!isOutOfFlowPositioned() && newStyle.hasOutOfFlowPosition()))
- && parent() && parent()->isRenderBlock();
-
// reset style flags
if (diff == StyleDifferenceLayout || diff == StyleDifferenceLayoutPositionedMovementOnly) {
setFloating(false);
@@ -764,8 +759,7 @@
setHasOverflowClip(false);
setHasTransformRelatedProperty(false);
setHasReflection(false);
- } else
- s_noLongerAffectsParentBlock = false;
+ }
bool newStyleSlowScroll = false;
if (newStyle.hasFixedBackgroundImage() && !settings().fixedBackgroundsPaintRelativeToDocument()) {
@@ -798,6 +792,12 @@
}
#endif
+bool RenderElement::noLongerAffectsParentBlock(const RenderStyle& oldStyle) const
+{
+ return parent() && parent()->isRenderBlock()
+ && ((!oldStyle.isFloating() && style().isFloating()) || (!oldStyle.hasOutOfFlowPosition() && style().hasOutOfFlowPosition()));
+}
+
void RenderElement::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
{
updateFillImages(oldStyle ? &oldStyle->backgroundLayers() : nullptr, m_style.backgroundLayers());
@@ -818,7 +818,7 @@
RenderTreeBuilder::current()->childFlowStateChangesAndAffectsParentBlock(*this);
}
- if (s_noLongerAffectsParentBlock)
+ if (oldStyle && noLongerAffectsParentBlock(*oldStyle))
RenderTreeBuilder::current()->childFlowStateChangesAndNoLongerAffectsParentBlock(*this);
SVGRenderSupport::styleChanged(*this, oldStyle);
Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h (229267 => 229268)
--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h 2018-03-05 13:16:29 UTC (rev 229267)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderElement.h 2018-03-05 13:16:34 UTC (rev 229268)
@@ -280,9 +280,10 @@
void removeFromRenderFragmentedFlowIncludingDescendants(bool shouldUpdateState);
void adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded();
- bool noLongerAffectsParentBlock() const { return s_noLongerAffectsParentBlock; }
bool isVisibleInViewport() const;
+ bool noLongerAffectsParentBlock(const RenderStyle& oldStyle) const;
+
private:
RenderElement(ContainerNode&, RenderStyle&&, BaseTypeFlags);
void node() const = delete;
@@ -348,10 +349,6 @@
RenderObject* m_lastChild;
RenderStyle m_style;
-
- // FIXME: Get rid of this hack.
- // Store state between styleWillChange and styleDidChange
- static bool s_noLongerAffectsParentBlock;
};
inline void RenderElement::setAncestorLineBoxDirty(bool f)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes