| 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 aadab753778f42c2baff9892774d049ea66e2da3..33249f530511cd13314015391c29b3a02c4a6118 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
|
| @@ -246,6 +246,8 @@ PaintLayerPainter::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.
|
| @@ -254,11 +256,14 @@ PaintLayerPainter::PaintResult PaintLayerPainter::paintLayerContents(
|
| // 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'.
|
| + //
|
| + // The outline needs to be painted in the decoration phase rather than the
|
| + // background phase.
|
| bool shouldPaintSelfOutline =
|
| isSelfPaintingLayer && !isPaintingOverlayScrollbars &&
|
| - ((isPaintingScrollingContent && isPaintingCompositedBackground) ||
|
| - (!isPaintingScrollingContent && isPaintingCompositedForeground)) &&
|
| + (isPaintingCompositedDecoration || !isPaintingScrollingContent) &&
|
| m_paintLayer.layoutObject()->styleRef().hasOutline();
|
| +
|
| bool shouldPaintContent = m_paintLayer.hasVisibleContent() &&
|
| isSelfPaintingLayer && !isPaintingOverlayScrollbars;
|
|
|
|
|