⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 286982 in webkit


Ignore:
Timestamp:
Dec 13, 2021, 2:32:42 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Unreviewed, reverting r283354.
https://bugs.webkit.org/show_bug.cgi?id=234273

causes missing content with clip-path

Reverted changeset:

"[Performance] Optimize
RenderLayer::clipCrossesPaintingBoundary"
https://bugs.webkit.org/show_bug.cgi?id=230885
https://commits.webkit.org/r283354

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r286978 r286982  
     12021-12-13  Commit Queue  <commit-queue@webkit.org>
     2
     3        Unreviewed, reverting r283354.
     4        https://bugs.webkit.org/show_bug.cgi?id=234273
     5
     6        causes missing content with clip-path
     7
     8        Reverted changeset:
     9
     10        "[Performance] Optimize
     11        RenderLayer::clipCrossesPaintingBoundary"
     12        https://bugs.webkit.org/show_bug.cgi?id=230885
     13        https://commits.webkit.org/r283354
     14
    1152021-12-13  Alejandro G. Castro  <alex@igalia.com>
    216
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r286591 r286982  
    19361936}
    19371937
    1938 static RenderLayer* repaintTargetForLayer(const RenderLayer& layer)
    1939 {
    1940     if (compositedWithOwnBackingStore(layer))
    1941         return const_cast<RenderLayer*>(&layer);
    1942 
    1943     if (layer.paintsIntoProvidedBacking())
    1944         return layer.backingProviderLayer();
    1945 
    1946     return nullptr;
    1947 }
    1948 
    19491938RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf) const
    19501939{
     1940    auto repaintTargetForLayer = [](const RenderLayer& layer) -> RenderLayer* {
     1941        if (compositedWithOwnBackingStore(layer))
     1942            return const_cast<RenderLayer*>(&layer);
     1943       
     1944        if (layer.paintsIntoProvidedBacking())
     1945            return layer.backingProviderLayer();
     1946       
     1947        return nullptr;
     1948    };
     1949
    19511950    RenderLayer* repaintTarget = nullptr;
    19521951    if (includeSelf == IncludeSelf && (repaintTarget = repaintTargetForLayer(*this)))
     
    19591958         
    19601959    return nullptr;
    1961 }
    1962 
    1963 bool RenderLayer::sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const
    1964 {
    1965     if (repaintTargetForLayer(*this))
    1966         return false;
    1967 
    1968     const RenderLayer* paintParent = paintOrderParent();
    1969     if (&otherLayer == paintParent)
    1970         return true;
    1971     auto* otherPaintParent = otherLayer.paintOrderParent();
    1972     return paintParent == otherPaintParent || this == otherPaintParent;
    19731960}
    19741961
     
    44704457bool RenderLayer::clipCrossesPaintingBoundary() const
    44714458{
    4472     auto* parentLayer = parent();
    4473     if (!sharesCompositingLayerForRepaint(*parentLayer))
    4474         return true;
    4475 
    4476     return parentLayer->enclosingPaginationLayer(IncludeCompositedPaginatedLayers) != enclosingPaginationLayer(IncludeCompositedPaginatedLayers);
     4459    return parent()->enclosingPaginationLayer(IncludeCompositedPaginatedLayers) != enclosingPaginationLayer(IncludeCompositedPaginatedLayers)
     4460        || parent()->enclosingCompositingLayerForRepaint() != enclosingCompositingLayerForRepaint();
    44774461}
    44784462
  • trunk/Source/WebCore/rendering/RenderLayer.h

    r286542 r286982  
    588588    RenderLayer* enclosingCompositingLayer(IncludeSelfOrNot = IncludeSelf) const;
    589589    RenderLayer* enclosingCompositingLayerForRepaint(IncludeSelfOrNot = IncludeSelf) const;
    590     bool sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const;
    591590    // Ancestor compositing layer, excluding this.
    592591    RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingLayer(ExcludeSelf); }
Note: See TracChangeset for help on using the changeset viewer.