| Index: third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
|
| index d49d6886364f464618900d7fae09e86ef7cf3251..b15b38a3a8f0bf2c9bd4135b514b7676f46c4714 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
|
| @@ -25,6 +25,10 @@
|
|
|
| #include "platform/graphics/GraphicsLayer.h"
|
|
|
| +#include <algorithm>
|
| +#include <cmath>
|
| +#include <memory>
|
| +#include <utility>
|
| #include "SkImageFilter.h"
|
| #include "SkMatrix44.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| @@ -38,6 +42,7 @@
|
| #include "platform/graphics/FirstPaintInvalidationTracking.h"
|
| #include "platform/graphics/GraphicsContext.h"
|
| #include "platform/graphics/Image.h"
|
| +#include "platform/graphics/InvalidationDebugging.h"
|
| #include "platform/graphics/LinkHighlight.h"
|
| #include "platform/graphics/paint/DrawingRecorder.h"
|
| #include "platform/graphics/paint/PaintCanvas.h"
|
| @@ -61,10 +66,6 @@
|
| #include "wtf/PtrUtil.h"
|
| #include "wtf/text/StringUTF8Adaptor.h"
|
| #include "wtf/text/WTFString.h"
|
| -#include <algorithm>
|
| -#include <cmath>
|
| -#include <memory>
|
| -#include <utility>
|
|
|
| #ifndef NDEBUG
|
| #include <stdio.h>
|
| @@ -516,7 +517,7 @@ const RasterInvalidationTracking* GraphicsLayer::getRasterInvalidationTracking()
|
| return rasterInvalidationTrackingMap().find(this);
|
| }
|
|
|
| -void GraphicsLayer::trackRasterInvalidation(const DisplayItemClient& client,
|
| +void GraphicsLayer::trackRasterInvalidation(const InvalidationDebugging& debug,
|
| const IntRect& rect,
|
| PaintInvalidationReason reason) {
|
| if (!isTrackingOrCheckingRasterInvalidations() || rect.isEmpty())
|
| @@ -527,8 +528,8 @@ void GraphicsLayer::trackRasterInvalidation(const DisplayItemClient& client,
|
|
|
| if (m_isTrackingRasterInvalidations) {
|
| RasterInvalidationInfo info;
|
| - info.client = &client;
|
| - info.clientDebugName = client.debugName();
|
| + info.source = &debug;
|
| + info.clientDebugName = debug.invalidationName();
|
| info.rect = rect;
|
| info.reason = reason;
|
| tracking.trackedRasterInvalidations.push_back(info);
|
| @@ -1022,10 +1023,26 @@ void GraphicsLayer::setIsRootForIsolatedGroup(bool isolated) {
|
| platformLayer()->setIsRootForIsolatedGroup(isolated);
|
| }
|
|
|
| +class GraphicsLayerInvalidationDebugging : public InvalidationDebugging {
|
| + public:
|
| + explicit GraphicsLayerInvalidationDebugging(GraphicsLayerClient* c,
|
| + GraphicsLayer* g)
|
| + : m_client(c), m_layer(g) {}
|
| +
|
| + WTF::String invalidationName() const final {
|
| + return m_client->debugName(m_layer);
|
| + }
|
| +
|
| + private:
|
| + GraphicsLayerClient* m_client;
|
| + GraphicsLayer* m_layer;
|
| +};
|
| +
|
| void GraphicsLayer::setContentsNeedsDisplay() {
|
| if (WebLayer* contentsLayer = contentsLayerIfRegistered()) {
|
| contentsLayer->invalidate();
|
| - trackRasterInvalidation(*this, m_contentsRect, PaintInvalidationFull);
|
| + GraphicsLayerInvalidationDebugging debug(m_client, this);
|
| + trackRasterInvalidation(debug, m_contentsRect, PaintInvalidationFull);
|
| }
|
| }
|
|
|
| @@ -1040,7 +1057,8 @@ void GraphicsLayer::setNeedsDisplay() {
|
| m_linkHighlights[i]->invalidate();
|
| getPaintController().invalidateAll();
|
|
|
| - trackRasterInvalidation(*this, IntRect(IntPoint(), expandedIntSize(m_size)),
|
| + GraphicsLayerInvalidationDebugging debug(m_client, this);
|
| + trackRasterInvalidation(debug, IntRect(IntPoint(), expandedIntSize(m_size)),
|
| PaintInvalidationFull);
|
| }
|
|
|
| @@ -1048,7 +1066,7 @@ DISABLE_CFI_PERF
|
| void GraphicsLayer::setNeedsDisplayInRect(
|
| const IntRect& rect,
|
| PaintInvalidationReason invalidationReason,
|
| - const DisplayItemClient& client) {
|
| + const InvalidationDebugging& debug) {
|
| if (!drawsContent())
|
| return;
|
|
|
| @@ -1058,7 +1076,7 @@ void GraphicsLayer::setNeedsDisplayInRect(
|
| for (size_t i = 0; i < m_linkHighlights.size(); ++i)
|
| m_linkHighlights[i]->invalidate();
|
|
|
| - trackRasterInvalidation(client, rect, invalidationReason);
|
| + trackRasterInvalidation(debug, rect, invalidationReason);
|
| }
|
|
|
| void GraphicsLayer::setContentsRect(const IntRect& rect) {
|
|
|