| Index: Source/core/paint/ClipRecorder.cpp
|
| diff --git a/Source/core/paint/ClipRecorder.cpp b/Source/core/paint/ClipRecorder.cpp
|
| index 204eb9c58960ebfd6b05db1739b8b31e02ef20f7..c59c85fddcdc7fde8e6ce678d66cef12e8160d91 100644
|
| --- a/Source/core/paint/ClipRecorder.cpp
|
| +++ b/Source/core/paint/ClipRecorder.cpp
|
| @@ -7,14 +7,25 @@
|
|
|
| #include "core/rendering/RenderLayer.h"
|
| #include "core/rendering/RenderObject.h"
|
| +#include "core/rendering/RenderView.h"
|
| #include "platform/RuntimeEnabledFeatures.h"
|
| #include "platform/graphics/GraphicsContext.h"
|
| -#include "platform/graphics/GraphicsLayer.h"
|
| -#include "platform/graphics/paint/ClipDisplayItem.h"
|
| -#include "platform/graphics/paint/DisplayItemList.h"
|
|
|
| namespace blink {
|
|
|
| +void ClipDisplayItem::replay(GraphicsContext* context)
|
| +{
|
| + context->save();
|
| + context->clip(m_clipRect);
|
| + for (RoundedRect roundedRect : m_roundedRectClips)
|
| + context->clipRoundedRect(roundedRect);
|
| +}
|
| +
|
| +void EndClipDisplayItem::replay(GraphicsContext* context)
|
| +{
|
| + context->restore();
|
| +}
|
| +
|
| ClipRecorder::ClipRecorder(RenderLayer* renderLayer, GraphicsContext* graphicsContext, DisplayItem::Type clipType, const ClipRect& clipRect)
|
| : m_graphicsContext(graphicsContext)
|
| , m_renderLayer(renderLayer)
|
| @@ -24,12 +35,8 @@ ClipRecorder::ClipRecorder(RenderLayer* renderLayer, GraphicsContext* graphicsCo
|
| graphicsContext->save();
|
| graphicsContext->clip(snappedClipRect);
|
| } else {
|
| - m_clipDisplayItem = new ClipDisplayItem(nullptr, clipType, snappedClipRect);
|
| -#ifndef NDEBUG
|
| - m_clipDisplayItem->setClientDebugString("nullptr");
|
| -#endif
|
| - if (RenderLayer* container = m_renderLayer->enclosingLayerForPaintInvalidationCrossingFrameBoundaries())
|
| - container->graphicsLayerBacking()->displayItemList().add(adoptPtr(m_clipDisplayItem));
|
| + m_clipDisplayItem = new ClipDisplayItem(0, renderLayer, clipType, snappedClipRect);
|
| + m_renderLayer->renderer()->view()->viewDisplayList().add(adoptPtr(m_clipDisplayItem));
|
| }
|
| }
|
|
|
| @@ -45,11 +52,19 @@ ClipRecorder::~ClipRecorder()
|
| {
|
| if (RuntimeEnabledFeatures::slimmingPaintEnabled()) {
|
| OwnPtr<EndClipDisplayItem> endClip = adoptPtr(new EndClipDisplayItem);
|
| - if (RenderLayer* container = m_renderLayer->enclosingLayerForPaintInvalidationCrossingFrameBoundaries())
|
| - container->graphicsLayerBacking()->displayItemList().add(endClip.release());
|
| + m_renderLayer->renderer()->view()->viewDisplayList().add(endClip.release());
|
| } else {
|
| m_graphicsContext->restore();
|
| }
|
| }
|
|
|
| +#ifndef NDEBUG
|
| +WTF::String ClipDisplayItem::asDebugString() const
|
| +{
|
| + return String::format("{%s, type: \"%s\", clipRect: [%d,%d,%d,%d]}",
|
| + rendererDebugString(renderer()).utf8().data(), typeAsDebugString(type()).utf8().data(),
|
| + m_clipRect.x(), m_clipRect.y(), m_clipRect.width(), m_clipRect.height());
|
| +}
|
| +#endif
|
| +
|
| } // namespace blink
|
|
|