Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Unified Diff: third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp

Issue 2393673004: reflow comments in core/layout/compositing,core/observer (Closed)
Patch Set: comments (heh!) Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
index b804e40dc567615791b155f1cad48df5b55a07f8..4cd7d2d38b8c6f4f876a1bb5dc3ae9c2c2350f78 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositingRequirementsUpdater.cpp
@@ -146,8 +146,9 @@ static CompositingReasons subtreeReasonsForCompositing(
bool has3DTransformedDescendants) {
CompositingReasons subtreeReasons = CompositingReasonNone;
- // When a layer has composited descendants, some effects, like 2d transforms, filters, masks etc must be implemented
- // via compositing so that they also apply to those composited descendants.
+ // When a layer has composited descendants, some effects, like 2d transforms,
+ // filters, masks etc must be implemented via compositing so that they also
+ // apply to those composited descendants.
if (hasCompositedDescendants) {
subtreeReasons |= layer->potentialCompositingReasonsFromStyle() &
CompositingReasonComboCompositedDescendants;
@@ -157,8 +158,10 @@ static CompositingReasons subtreeReasonsForCompositing(
subtreeReasons |= CompositingReasonIsolateCompositedDescendants;
}
- // FIXME: This should move into CompositingReasonFinder::potentialCompositingReasonsFromStyle, but
- // theres a poor interaction with LayoutTextControlSingleLine, which sets this hasOverflowClip directly.
+ // FIXME: This should move into
+ // CompositingReasonFinder::potentialCompositingReasonsFromStyle, but theres
+ // a poor interaction with LayoutTextControlSingleLine, which sets this
+ // hasOverflowClip directly.
if (layer->layoutObject()->hasClipRelatedProperty())
subtreeReasons |= CompositingReasonClipsCompositingDescendants;
@@ -166,8 +169,9 @@ static CompositingReasons subtreeReasonsForCompositing(
subtreeReasons |= CompositingReasonPositionFixedWithCompositedDescendants;
}
- // A layer with preserve-3d or perspective only needs to be composited if there are descendant layers that
- // will be affected by the preserve-3d or perspective.
+ // A layer with preserve-3d or perspective only needs to be composited if
+ // there are descendant layers that will be affected by the preserve-3d or
+ // perspective.
if (has3DTransformedDescendants)
subtreeReasons |= layer->potentialCompositingReasonsFromStyle() &
CompositingReasonCombo3DDescendants;
@@ -186,8 +190,10 @@ CompositingRequirementsUpdater::~CompositingRequirementsUpdater() {}
void CompositingRequirementsUpdater::update(PaintLayer* root) {
TRACE_EVENT0("blink", "CompositingRequirementsUpdater::updateRecursive");
- // Go through the layers in presentation order, so that we can compute which Layers need compositing layers.
- // FIXME: we could maybe do this and the hierarchy update in one pass, but the parenting logic would be more complex.
+ // Go through the layers in presentation order, so that we can compute which
+ // Layers need compositing layers.
+ // FIXME: we could maybe do this and the hierarchy update in one pass, but the
+ // parenting logic would be more complex.
RecursionData recursionData(root);
OverlapMap overlapTestRequestMap;
bool saw3DTransform = false;
@@ -237,15 +243,20 @@ void CompositingRequirementsUpdater::updateRecursive(
if (layer->isRootLayer() && compositor->rootShouldAlwaysComposite())
reasonsToComposite |= CompositingReasonRoot;
- // Add CompositingReasonOverflowScrollingTouch for layers that do not already have it but need it.
- // Note that m_compositingReasonFinder.directReasons(layer) already includes CompositingReasonOverflowScrollingTouch for
- // anything that has layer->needsCompositedScrolling() true. That is, for cases where we explicitly decide not to have LCD
- // text or cases where the layer will still support LCD text even if the layer is composited.
+ // Add CompositingReasonOverflowScrollingTouch for layers that do not
+ // already have it but need it.
+ // Note that m_compositingReasonFinder.directReasons(layer) already includes
+ // CompositingReasonOverflowScrollingTouch for anything that has
+ // layer->needsCompositedScrolling() true. That is, for cases where we
+ // explicitly decide not to have LCD text or cases where the layer will
+ // still support LCD text even if the layer is composited.
if (reasonsToComposite && layer->scrollsOverflow() &&
!layer->needsCompositedScrolling()) {
- // We can get here for a scroller that will be composited for some other reason and hence will already
- // use grayscale AA text. We recheck for needsCompositedScrolling ignoring LCD to correctly add the
- // CompositingReasonOverflowScrollingTouch reason to layers that can support it with grayscale AA text.
+ // We can get here for a scroller that will be composited for some other
+ // reason and hence will already use grayscale AA text. We recheck for
+ // needsCompositedScrolling ignoring LCD to correctly add the
+ // CompositingReasonOverflowScrollingTouch reason to layers that can
+ // support it with grayscale AA text.
layer->getScrollableArea()->updateNeedsCompositedScrolling(
PaintLayerScrollableArea::IgnoreLCDText);
if (layer->needsCompositedScrolling())
@@ -258,8 +269,9 @@ void CompositingRequirementsUpdater::updateRecursive(
currentRecursionData.m_hasCompositedScrollingAncestor = true;
// Next, accumulate reasons related to overlap.
- // If overlap testing is used, this reason will be overridden. If overlap testing is not
- // used, we must assume we overlap if there is anything composited behind us in paint-order.
+ // If overlap testing is used, this reason will be overridden. If overlap
+ // testing is not used, we must assume we overlap if there is anything
+ // composited behind us in paint-order.
CompositingReasons overlapCompositingReason =
currentRecursionData.m_subtreeIsCompositing
? CompositingReasonAssumedOverlap
@@ -289,8 +301,9 @@ void CompositingRequirementsUpdater::updateRecursive(
unclippedDescendantsToRemove.size() - i - 1));
if (layer->clipParent()) {
- // TODO(schenney): We only need to promote when the clipParent is not a descendant of the ancestor scroller,
- // which we do not check for here. Hence we might be promoting needlessly.
+ // TODO(schenney): We only need to promote when the clipParent is not a
+ // descendant of the ancestor scroller, which we do not check for here.
+ // Hence we might be promoting needlessly.
unclippedDescendants.append(layer);
}
}
@@ -318,12 +331,13 @@ void CompositingRequirementsUpdater::updateRecursive(
// This layer now acts as the ancestor for kids.
childRecursionData.m_compositingAncestor = layer;
- // Here we know that all children and the layer's own contents can blindly paint into
- // this layer's backing, until a descendant is composited. So, we don't need to check
- // for overlap with anything behind this layer.
+ // Here we know that all children and the layer's own contents can blindly
+ // paint into this layer's backing, until a descendant is composited. So, we
+ // don't need to check for overlap with anything behind this layer.
overlapMap.beginNewOverlapTestingContext();
- // This layer is going to be composited, so children can safely ignore the fact that there's an
- // animation running behind this layer, meaning they can rely on the overlap map testing again.
+ // This layer is going to be composited, so children can safely ignore the
+ // fact that there's an animation running behind this layer, meaning they
+ // can rely on the overlap map testing again.
childRecursionData.m_testingOverlap = true;
}
@@ -344,8 +358,9 @@ void CompositingRequirementsUpdater::updateRecursive(
absoluteChildDescendantBoundingBox);
absoluteDescendantBoundingBox.unite(absoluteChildDescendantBoundingBox);
- // If we have to make a layer for this child, make one now so we can have a contents layer
- // (since we need to ensure that the -ve z-order child renders underneath our contents).
+ // If we have to make a layer for this child, make one now so we can have
+ // a contents layer (since we need to ensure that the -ve z-order child
+ // renders underneath our contents).
if (childRecursionData.m_subtreeIsCompositing) {
reasonsToComposite |= CompositingReasonNegativeZIndexChildren;
@@ -356,9 +371,9 @@ void CompositingRequirementsUpdater::updateRecursive(
willBeCompositedOrSquashed = true;
willHaveForegroundLayer = true;
- // FIXME: temporary solution for the first negative z-index composited child:
- // re-compute the absBounds for the child so that we can add the
- // negative z-index child's bounds to the new overlap context.
+ // FIXME: temporary solution for the first negative z-index composited
+ // child: re-compute the absBounds for the child so that we can add
+ // the negative z-index child's bounds to the new overlap context.
overlapMap.beginNewOverlapTestingContext();
overlapMap.add(curNode->layer(),
curNode->layer()->clippedAbsoluteBoundingBox());
@@ -370,14 +385,15 @@ void CompositingRequirementsUpdater::updateRecursive(
if (willHaveForegroundLayer) {
ASSERT(willBeCompositedOrSquashed);
- // A foreground layer effectively is a new backing for all subsequent children, so
- // we don't need to test for overlap with anything behind this. So, we can finish
- // the previous context that was accumulating rects for the negative z-index
- // children, and start with a fresh new empty context.
+ // A foreground layer effectively is a new backing for all subsequent
+ // children, so we don't need to test for overlap with anything behind this.
+ // So, we can finish the previous context that was accumulating rects for
+ // the negative z-index children, and start with a fresh new empty context.
overlapMap.finishCurrentOverlapTestingContext();
overlapMap.beginNewOverlapTestingContext();
- // This layer is going to be composited, so children can safely ignore the fact that there's an
- // animation running behind this layer, meaning they can rely on the overlap map testing again
+ // This layer is going to be composited, so children can safely ignore the
+ // fact that there's an animation running behind this layer, meaning they
+ // can rely on the overlap map testing again.
childRecursionData.m_testingOverlap = true;
}
@@ -391,7 +407,8 @@ void CompositingRequirementsUpdater::updateRecursive(
absoluteDescendantBoundingBox.unite(absoluteChildDescendantBoundingBox);
}
- // Now that the subtree has been traversed, we can check for compositing reasons that depended on the state of the subtree.
+ // Now that the subtree has been traversed, we can check for compositing
+ // reasons that depended on the state of the subtree.
if (layer->stackingNode()->isStackingContext()) {
layer->setShouldIsolateCompositedDescendants(
@@ -402,7 +419,8 @@ void CompositingRequirementsUpdater::updateRecursive(
childRecursionData.m_hasUnisolatedCompositedBlendingDescendant;
}
- // Subsequent layers in the parent's stacking context may also need to composite.
+ // Subsequent layers in the parent's stacking context may also need to
+ // composite.
if (childRecursionData.m_subtreeIsCompositing)
currentRecursionData.m_subtreeIsCompositing = true;
@@ -410,8 +428,8 @@ void CompositingRequirementsUpdater::updateRecursive(
layer->setHasCompositingDescendant(childRecursionData.m_subtreeIsCompositing);
if (layer->isRootLayer()) {
- // The root layer needs to be composited if anything else in the tree is composited.
- // Otherwise, we can disable compositing entirely.
+ // The root layer needs to be composited if anything else in the tree is
+ // composited. Otherwise, we can disable compositing entirely.
if (childRecursionData.m_subtreeIsCompositing ||
requiresCompositingOrSquashing(reasonsToComposite) ||
compositor->rootShouldAlwaysComposite()) {
@@ -423,13 +441,15 @@ void CompositingRequirementsUpdater::updateRecursive(
}
} else {
// All layers (even ones that aren't being composited) need to get added to
- // the overlap map. Layers that are not separately composited will paint into their
- // compositing ancestor's backing, and so are still considered for overlap.
+ // the overlap map. Layers that are not separately composited will paint
+ // into their compositing ancestor's backing, and so are still considered
+ // for overlap.
if (childRecursionData.m_compositingAncestor &&
!childRecursionData.m_compositingAncestor->isRootLayer())
overlapMap.add(layer, absBounds);
- // Now check for reasons to become composited that depend on the state of descendant layers.
+ // Now check for reasons to become composited that depend on the state of
+ // descendant layers.
CompositingReasons subtreeCompositingReasons = subtreeReasonsForCompositing(
layer, childRecursionData.m_subtreeIsCompositing,
anyDescendantHas3DTransform);
@@ -457,9 +477,11 @@ void CompositingRequirementsUpdater::updateRecursive(
if (willBeCompositedOrSquashed)
currentRecursionData.m_subtreeIsCompositing = true;
- // Turn overlap testing off for later layers if it's already off, or if we have an animating transform.
- // Note that if the layer clips its descendants, there's no reason to propagate the child animation to the parent layers. That's because
- // we know for sure the animation is contained inside the clipping rectangle, which is already added to the overlap map.
+ // Turn overlap testing off for later layers if it's already off, or if we
+ // have an animating transform. Note that if the layer clips its
+ // descendants, there's no reason to propagate the child animation to the
+ // parent layers. That's because we know for sure the animation is contained
+ // inside the clipping rectangle, which is already added to the overlap map.
bool isCompositedClippingLayer =
canBeComposited &&
(reasonsToComposite & CompositingReasonClipsCompositingDescendants);
@@ -477,7 +499,8 @@ void CompositingRequirementsUpdater::updateRecursive(
anyDescendantHas3DTransform || layer->has3DTransform();
}
- // At this point we have finished collecting all reasons to composite this layer.
+ // At this point we have finished collecting all reasons to composite this
+ // layer.
layer->setCompositingReasons(reasonsToComposite);
}

Powered by Google App Engine
This is Rietveld 408576698