Changeset 286982 in webkit
- Timestamp:
- Dec 13, 2021, 2:32:42 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
rendering/RenderLayer.cpp (modified) (3 diffs)
-
rendering/RenderLayer.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r286978 r286982 1 2021-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 1 15 2021-12-13 Alejandro G. Castro <alex@igalia.com> 2 16 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r286591 r286982 1936 1936 } 1937 1937 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 1949 1938 RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf) const 1950 1939 { 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 1951 1950 RenderLayer* repaintTarget = nullptr; 1952 1951 if (includeSelf == IncludeSelf && (repaintTarget = repaintTargetForLayer(*this))) … … 1959 1958 1960 1959 return nullptr; 1961 }1962 1963 bool RenderLayer::sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const1964 {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;1973 1960 } 1974 1961 … … 4470 4457 bool RenderLayer::clipCrossesPaintingBoundary() const 4471 4458 { 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(); 4477 4461 } 4478 4462 -
trunk/Source/WebCore/rendering/RenderLayer.h
r286542 r286982 588 588 RenderLayer* enclosingCompositingLayer(IncludeSelfOrNot = IncludeSelf) const; 589 589 RenderLayer* enclosingCompositingLayerForRepaint(IncludeSelfOrNot = IncludeSelf) const; 590 bool sharesCompositingLayerForRepaint(const RenderLayer& otherLayer) const;591 590 // Ancestor compositing layer, excluding this. 592 591 RenderLayer* ancestorCompositingLayer() const { return enclosingCompositingLayer(ExcludeSelf); }
Note:
See TracChangeset
for help on using the changeset viewer.