Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
| index e1c8fdce368965828ee0faf852f8e417f6fe30fb..00a8002542c586d033085e37a5ee937d2674e5ae 100644 |
| --- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp |
| @@ -271,19 +271,18 @@ PaintResult PaintLayerPainter::paintLayerContents( |
| paintFlags & PaintLayerPaintingCompositingForegroundPhase; |
| bool isPaintingCompositedBackground = |
| paintFlags & PaintLayerPaintingCompositingBackgroundPhase; |
| + bool isPaintingCompositedDecoration = |
| + paintFlags & PaintLayerPaintingCompositingDecorationPhase; |
| bool isPaintingOverflowContents = |
| paintFlags & PaintLayerPaintingOverflowContents; |
| // Outline always needs to be painted even if we have no visible content. |
| - // Also, the outline is painted in the background phase during composited |
| - // scrolling. If it were painted in the foreground phase, it would move with |
| - // the scrolled content. When not composited scrolling, the outline is painted |
| - // in the foreground phase. Since scrolled contents are moved by paint |
| - // invalidation in this case, the outline won't get 'dragged along'. |
| + // It is painted as part of the decoration phase which paints content that |
| + // is not scrolled and should be above scrolled content. |
| bool shouldPaintSelfOutline = |
| isSelfPaintingLayer && !isPaintingOverlayScrollbars && |
| - ((isPaintingScrollingContent && isPaintingCompositedBackground) || |
| - (!isPaintingScrollingContent && isPaintingCompositedForeground)) && |
| + (isPaintingCompositedDecoration || !isPaintingScrollingContent) && |
|
chrishtr
2016/11/17 21:15:57
What about cases when there is composited scrollin
chrishtr
2016/11/17 22:40:21
Ah, now I see. Thanks for explaining.
yigu
2016/11/18 04:14:07
In the cases we don't create decoration layer, the
|
| m_paintLayer.layoutObject()->styleRef().hasOutline(); |
| + |
| bool shouldPaintContent = m_paintLayer.hasVisibleContent() && |
| isSelfPaintingLayer && !isPaintingOverlayScrollbars; |