| Index: third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| index e7ca1485c27c4b6ba68135c76d94b28e905c38d0..26f74ec8bb84d91ae85a2125af480ac43b364989 100644
|
| --- a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| @@ -56,13 +56,11 @@
|
| #include "platform/RuntimeEnabledFeatures.h"
|
| #include "platform/ScriptForbiddenScope.h"
|
| #include "platform/TraceEvent.h"
|
| -#include "platform/geometry/FloatRect.h"
|
| #include "platform/graphics/CompositorMutableProperties.h"
|
| #include "platform/graphics/GraphicsLayer.h"
|
| #include "platform/graphics/paint/CullRect.h"
|
| #include "platform/graphics/paint/DrawingRecorder.h"
|
| #include "platform/graphics/paint/PaintController.h"
|
| -#include "platform/graphics/paint/SkPictureBuilder.h"
|
| #include "platform/graphics/paint/TransformDisplayItem.h"
|
|
|
| namespace blink {
|
| @@ -793,8 +791,11 @@
|
| return layer->stackingNode()->hasNegativeZOrderList();
|
| }
|
|
|
| -static void paintScrollbar(const GraphicsLayer* graphicsLayer, const Scrollbar* scrollbar, GraphicsContext& context, const IntRect& clip)
|
| -{
|
| +static void paintScrollbar(const Scrollbar* scrollbar, GraphicsContext& context, const IntRect& clip)
|
| +{
|
| + if (!scrollbar)
|
| + return;
|
| +
|
| // Frame scrollbars are painted in the space of the containing frame, not the local space of the scrollbar.
|
| const IntPoint& paintOffset = scrollbar->frameRect().location();
|
| IntRect transformedClip = clip;
|
| @@ -803,6 +804,7 @@
|
| AffineTransform translation;
|
| translation.translate(-paintOffset.x(), -paintOffset.y());
|
| TransformRecorder transformRecorder(context, *scrollbar, translation);
|
| +
|
| scrollbar->paint(context, CullRect(transformedClip));
|
| }
|
|
|
| @@ -813,37 +815,12 @@
|
|
|
| void PaintLayerCompositor::paintContents(const GraphicsLayer* graphicsLayer, GraphicsContext& context, GraphicsLayerPaintingPhase, const IntRect& interestRect) const
|
| {
|
| - const Scrollbar* scrollbar = graphicsLayerToScrollbar(graphicsLayer);
|
| - if (!scrollbar && graphicsLayer != layerForScrollCorner())
|
| - return;
|
| -
|
| - if (DrawingRecorder::useCachedDrawingIfPossible(context, *graphicsLayer, DisplayItem::ScrollbarCompositedScrollbar))
|
| - return;
|
| -
|
| - FloatRect layerBounds(FloatPoint(), graphicsLayer->size());
|
| - SkPictureBuilder pictureBuilder(layerBounds, nullptr, &context);
|
| -
|
| - if (scrollbar)
|
| - paintScrollbar(graphicsLayer, scrollbar, pictureBuilder.context(), interestRect);
|
| - else
|
| - FramePainter(*m_layoutView.frameView()).paintScrollCorner(pictureBuilder.context(), interestRect);
|
| -
|
| - // Replay the painted scrollbar content with the GraphicsLayer backing as the DisplayItemClient
|
| - // in order for the resulting DrawingDisplayItem to produce the correct visualRect (i.e., the
|
| - // bounds of the involved GraphicsLayer).
|
| - DrawingRecorder drawingRecorder(context, *graphicsLayer, DisplayItem::ScrollbarCompositedScrollbar, layerBounds);
|
| - pictureBuilder.endRecording()->playback(context.canvas());
|
| -}
|
| -
|
| -Scrollbar* PaintLayerCompositor::graphicsLayerToScrollbar(const GraphicsLayer* graphicsLayer) const
|
| -{
|
| - if (graphicsLayer == layerForHorizontalScrollbar()) {
|
| - return m_layoutView.frameView()->horizontalScrollbar();
|
| - }
|
| - if (graphicsLayer == layerForVerticalScrollbar()) {
|
| - return m_layoutView.frameView()->verticalScrollbar();
|
| - }
|
| - return nullptr;
|
| + if (graphicsLayer == layerForHorizontalScrollbar())
|
| + paintScrollbar(m_layoutView.frameView()->horizontalScrollbar(), context, interestRect);
|
| + else if (graphicsLayer == layerForVerticalScrollbar())
|
| + paintScrollbar(m_layoutView.frameView()->verticalScrollbar(), context, interestRect);
|
| + else if (graphicsLayer == layerForScrollCorner())
|
| + FramePainter(*m_layoutView.frameView()).paintScrollCorner(context, interestRect);
|
| }
|
|
|
| bool PaintLayerCompositor::supportsFixedRootBackgroundCompositing() const
|
|
|