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

Unified Diff: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h

Issue 2439113003: Fix the bug that negative outline-offset is covered up by composited (Closed)
Patch Set: Add layout test, paint invalidation for decoration layer 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/CompositedLayerMapping.h
diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
index c83206a1dda69d6eea48bdde6783e8da572f2744..bbc4d8faf4eb46eed94eca6c455ad382418573af 100644
--- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
+++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h
@@ -119,6 +119,9 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
GraphicsLayer* foregroundLayer() const { return m_foregroundLayer.get(); }
GraphicsLayer* backgroundLayer() const { return m_backgroundLayer.get(); }
+
+ GraphicsLayer* decorationLayer() const { return m_decorationLayer.get(); }
+
bool backgroundLayerPaintsFixedRootBackground() const {
return m_backgroundLayerPaintsFixedRootBackground;
}
@@ -352,6 +355,8 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
const IntRect& clippingBox);
void updateBackgroundLayerGeometry(
const FloatSize& relativeCompositingBoundsSize);
+ void updateDecorationLayerGeometry(
+ const FloatSize& relativeCompositingBoundsSize);
void updateScrollingLayerGeometry(const IntRect& localCompositingBounds);
void updateChildClippingMaskLayerGeometry();
@@ -382,6 +387,7 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
bool needsAncestorClip);
bool updateForegroundLayer(bool needsForegroundLayer);
bool updateBackgroundLayer(bool needsBackgroundLayer);
+ bool updateDecorationLayer(bool needsDecorationLayer);
bool updateMaskLayer(bool needsMaskLayer);
void updateChildClippingMaskLayer(bool needsChildClippingMaskLayer);
bool requiresHorizontalScrollbarLayer() const {
@@ -491,10 +497,11 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
// | <-OR->
// | (m_scrollingLayer + m_scrollingContentsLayer) [OPTIONAL]
// + m_overflowControlsAncestorClippingLayer [OPTIONAL]
- // + m_overflowControlsHostLayer [OPTIONAL]
- // + m_layerForVerticalScrollbar [OPTIONAL]
- // + m_layerForHorizontalScrollbar [OPTIONAL]
- // + m_layerForScrollCorner [OPTIONAL]
+ // | + m_overflowControlsHostLayer [OPTIONAL]
+ // | + m_layerForVerticalScrollbar [OPTIONAL]
+ // | + m_layerForHorizontalScrollbar [OPTIONAL]
+ // | + m_layerForScrollCorner [OPTIONAL]
+ // + m_decorationLayer [OPTIONAL]
// The overflow controls may need to be repositioned in the graphics layer
// tree by the RLC to ensure that they stack above scrolling content.
//
@@ -599,6 +606,9 @@ class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
// layer, the overflow controls can remain ignorant of ancestor clipping.
std::unique_ptr<GraphicsLayer> m_overflowControlsAncestorClippingLayer;
+ // DecorationLayer which includes painting of outline etc.
+ std::unique_ptr<GraphicsLayer> m_decorationLayer;
+
// A squashing CLM has two possible squashing-related structures.
//
// If m_ancestorClippingLayer is present:

Powered by Google App Engine
This is Rietveld 408576698