| Index: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
|
| diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
|
| index 0c3a2efd9cd0a6879f212840dfc53094277b40be..bb59b737d305ac01f33cc58c935c533d7524098a 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
|
| +++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h
|
| @@ -40,9 +40,9 @@ public:
|
|
|
| // Implementation of ImageBufferSurface interfaces
|
| SkCanvas* canvas() override;
|
| - void disableDeferral() override;
|
| + void disableDeferral(DisableDeferralReason) override;
|
| PassRefPtr<SkPicture> getPicture() override;
|
| - void flush() override;
|
| + void flush(FlushReason) override;
|
| void didDraw(const FloatRect&) override;
|
| bool isValid() const override { return true; }
|
| bool isRecording() const override { return !m_fallbackSurface; }
|
| @@ -50,7 +50,7 @@ public:
|
| void willOverwriteCanvas() override;
|
| virtual void finalizeFrame(const FloatRect&);
|
| void setImageBuffer(ImageBuffer*) override;
|
| - PassRefPtr<SkImage> newImageSnapshot(AccelerationHint) override;
|
| + PassRefPtr<SkImage> newImageSnapshot(AccelerationHint, SnapshotReason) override;
|
| void draw(GraphicsContext&, const FloatRect& destRect, const FloatRect& srcRect, SkXfermode::Mode) override;
|
| bool isExpensiveToPaint() override;
|
| void setHasExpensiveOp() override { m_currentFrameHasExpensiveOp = true; }
|
| @@ -61,11 +61,32 @@ public:
|
| bool isAccelerated() const override;
|
| void setIsHidden(bool) override;
|
|
|
| + enum FallbackReason {
|
| + FallbackReasonUnknown = 0, // This value should never appear in production histograms
|
| + FallbackReasonCanvasNotClearedBetweenFrames = 1,
|
| + FallbackReasonRunawayStateStack = 2,
|
| + FallbackReasonWritePixels = 3,
|
| + FallbackReasonFlushInitialClear = 4,
|
| + FallbackReasonFlushForDrawImageOfWebGL = 5,
|
| + FallbackReasonSnapshotForGetImageData = 6,
|
| + FallbackReasonSnapshotForCopyToWebGLTexture = 7,
|
| + FallbackReasonSnapshotForPaint = 8,
|
| + FallbackReasonSnapshotForToDataURL = 9,
|
| + FallbackReasonSnapshotForToBlob = 10,
|
| + FallbackReasonSnapshotForCanvasListenerCapture = 11,
|
| + FallbackReasonSnapshotForDrawImage = 12,
|
| + FallbackReasonSnapshotForCreatePattern = 13,
|
| + FallbackReasonExpensiveOverdrawHeuristic = 14,
|
| + FallbackReasonTextureBackedPattern = 15,
|
| + FallbackReasonDrawImageOfVideo = 16,
|
| + FallbackReasonDrawImageOfAnimated2dCanvas = 17,
|
| + FallbackReasonCount,
|
| + };
|
| private:
|
| friend class RecordingImageBufferSurfaceTest; // for unit testing
|
| - void fallBackToRasterCanvas();
|
| - bool initializeCurrentFrame();
|
| - bool finalizeFrameInternal();
|
| + void fallBackToRasterCanvas(FallbackReason);
|
| + void initializeCurrentFrame();
|
| + bool finalizeFrameInternal(FallbackReason*);
|
| int approximateOpCount();
|
|
|
| OwnPtr<SkPictureRecorder> m_currentFrame;
|
|
|