Modified: trunk/Source/WebCore/ChangeLog (238522 => 238523)
--- trunk/Source/WebCore/ChangeLog 2018-11-26 22:15:16 UTC (rev 238522)
+++ trunk/Source/WebCore/ChangeLog 2018-11-26 22:22:07 UTC (rev 238523)
@@ -1,3 +1,16 @@
+2018-11-26 Truitt Savell <[email protected]>
+
+ Unreviewed, rolling out r238357.
+
+ Casued three css tests to fail and crash on ios sim
+
+ Reverted changeset:
+
+ "Avoid triggering compositing updates when only the root layer
+ is composited"
+ https://bugs.webkit.org/show_bug.cgi?id=191813
+ https://trac.webkit.org/changeset/238357
+
2018-11-26 Daniel Bates <[email protected]>
Caret disappears at end of password field when caps lock indicator is shown; password field
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (238522 => 238523)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2018-11-26 22:15:16 UTC (rev 238522)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2018-11-26 22:22:07 UTC (rev 238523)
@@ -405,7 +405,7 @@
if (child.isSelfPaintingLayer() || child.hasSelfPaintingLayerDescendant())
setAncestorChainHasSelfPaintingLayerDescendant();
- if (compositor().hasContentCompositingLayers())
+ if (compositor().usesCompositing())
setDescendantsNeedCompositingRequirementsTraversal();
if (child.hasDescendantNeedingCompositingRequirementsTraversal() || child.needsCompositingRequirementsTraversal())
@@ -451,7 +451,7 @@
if (oldChild.isSelfPaintingLayer() || oldChild.hasSelfPaintingLayerDescendant())
dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
- if (compositor().hasContentCompositingLayers())
+ if (compositor().usesCompositing())
setDescendantsNeedCompositingRequirementsTraversal();
#if ENABLE(CSS_COMPOSITING)
@@ -1577,7 +1577,7 @@
positionOrOffsetChanged |= location() != localPoint;
setLocation(localPoint);
- if (positionOrOffsetChanged && compositor().hasContentCompositingLayers()) {
+ if (positionOrOffsetChanged && compositor().usesCompositing()) {
if (isComposited())
setNeedsCompositingGeometryUpdate();
// This layer's position can affect the location of a composited descendant (which may be a sibling in z-order),
@@ -2430,7 +2430,7 @@
frame.eventHandler().dispatchFakeMouseMoveEventSoonInQuad(quadForFakeMouseMoveEvent);
bool requiresRepaint = true;
- if (usesCompositedScrolling()) {
+ if (compositor().usesCompositing() && usesCompositedScrolling()) {
setNeedsCompositingGeometryUpdate();
setDescendantsNeedUpdateBackingAndHierarchyTraversal();
requiresRepaint = false;
@@ -2580,7 +2580,7 @@
void RenderLayer::updateCompositingLayersAfterScroll()
{
- if (compositor().hasContentCompositingLayers()) {
+ if (compositor().usesCompositing()) {
// Our stacking container is guaranteed to contain all of our descendants that may need
// repositioning, so update compositing layers from there.
if (RenderLayer* compositingAncestor = stackingContext()->enclosingCompositingLayer()) {
@@ -6643,7 +6643,7 @@
static void outputPaintOrderTreeLegend(TextStream& stream)
{
stream.nextLine();
- stream << "(S)tacking Context, (N)ormal flow only, (O)verflow clip, (A)lpha (opacity or mask), has (B)lend mode, (I)solates blending, (T)ransform-ish, (F)ilter, Fi(X)ed position, (C)omposited, (c)omposited descendant\n"
+ stream << "(S)tacking Context, (N)ormal flow only, (O)verflow clip, (A)lpha (opacity or mask), has (B)lend mode, (I)solates blending, (T)ransform-ish, (F)ilter, Fi(X)ed position, (C)omposited\n"
"Dirty (z)-lists, Dirty (n)ormal flow lists\n"
"Descendant needs overlap (t)raversal, Descendant needs (b)acking or hierarchy update, All descendants need (r)equirements traversal, All (s)ubsequent layers need requirements traversal, All descendants need (h)ierarchy traversal\n"
"Needs compositing paint order update on (s)ubsequent layers, Needs compositing paint (o)rder children update, "
@@ -6670,7 +6670,6 @@
stream << (layer.hasFilter() ? "F" : "-");
stream << (layer.renderer().isFixedPositioned() ? "X" : "-");
stream << (layer.isComposited() ? "C" : "-");
- stream << (layer.hasCompositingDescendant() ? "c" : "-");
stream << " ";
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (238522 => 238523)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2018-11-26 22:15:16 UTC (rev 238522)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2018-11-26 22:22:07 UTC (rev 238523)
@@ -1170,35 +1170,29 @@
// to the compositing child list of an enclosing layer.
Vector<Ref<GraphicsLayer>> layerChildren;
auto& childList = layerBacking ? layerChildren : childLayersOfEnclosingLayer;
+ // FIXME: why the !layerBacking check?
+ bool requireDescendantTraversal = !layerBacking || layer.needsCompositingLayerConnection() || layer.hasDescendantNeedingUpdateBackingOrHierarchyTraversal() || !updateLevel.isEmpty();
- bool requireDescendantTraversal = layer.hasDescendantNeedingUpdateBackingOrHierarchyTraversal()
- || (layer.hasCompositingDescendant() && (!layerBacking || layer.needsCompositingLayerConnection() || !updateLevel.isEmpty()));
-
#if !ASSERT_DISABLED
LayerListMutationDetector mutationChecker(layer);
#endif
- auto appendForegroundLayerIfNecessary = [&] {
- // If a negative z-order child is compositing, we get a foreground layer which needs to get parented.
+ if (requireDescendantTraversal) {
+ for (auto* renderLayer : layer.negativeZOrderLayers())
+ updateBackingAndHierarchy(*renderLayer, childList, updateLevel, depth + 1);
+
+ // If a negative z-order child is compositing, we get a foreground layer which needs to get parented.
if (layer.negativeZOrderLayers().size()) {
if (layerBacking && layerBacking->foregroundLayer())
childList.append(*layerBacking->foregroundLayer());
}
- };
- if (requireDescendantTraversal) {
- for (auto* renderLayer : layer.negativeZOrderLayers())
- updateBackingAndHierarchy(*renderLayer, childList, updateLevel, depth + 1);
-
- appendForegroundLayerIfNecessary();
-
for (auto* renderLayer : layer.normalFlowLayers())
updateBackingAndHierarchy(*renderLayer, childList, updateLevel, depth + 1);
for (auto* renderLayer : layer.positiveZOrderLayers())
updateBackingAndHierarchy(*renderLayer, childList, updateLevel, depth + 1);
- } else
- appendForegroundLayerIfNecessary();
+ }
if (layerBacking) {
if (requireDescendantTraversal) {
@@ -1376,7 +1370,7 @@
if (queryData.reevaluateAfterLayout)
layer.setNeedsPostLayoutCompositingUpdate();
- if (diff >= StyleDifference::LayoutPositionedMovementOnly && hasContentCompositingLayers()) {
+ if (diff >= StyleDifference::LayoutPositionedMovementOnly && usesCompositing()) {
layer.setNeedsPostLayoutCompositingUpdate();
layer.setNeedsCompositingGeometryUpdate();
}