Index: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp |
index 2afaaeebe4be604d88d030246bddc9c0def90ffd..8e56c8cbbc3773f9a79283f8e1c7c272ebca019d 100644 |
--- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp |
@@ -229,7 +229,6 @@ sk_sp<PaintRecord> RecordingImageBufferSurface::getRecord() { |
FallbackReason fallbackReason = FallbackReasonUnknown; |
bool canUseRecord = finalizeFrameInternal(&fallbackReason); |
- m_imageBuffer->didFinalizeFrame(); |
DCHECK(canUseRecord || m_fallbackFactory); |
@@ -242,9 +241,9 @@ sk_sp<PaintRecord> RecordingImageBufferSurface::getRecord() { |
return nullptr; |
} |
-void RecordingImageBufferSurface::finalizeFrame(const FloatRect& dirtyRect) { |
+void RecordingImageBufferSurface::finalizeFrame() { |
if (m_fallbackSurface) { |
- m_fallbackSurface->finalizeFrame(dirtyRect); |
+ m_fallbackSurface->finalizeFrame(); |
return; |
} |
@@ -253,6 +252,13 @@ void RecordingImageBufferSurface::finalizeFrame(const FloatRect& dirtyRect) { |
fallBackToRasterCanvas(fallbackReason); |
} |
+void RecordingImageBufferSurface::doPaintInvalidation( |
+ const FloatRect& dirtyRect) { |
+ if (m_fallbackSurface) { |
+ m_fallbackSurface->doPaintInvalidation(dirtyRect); |
+ } |
+} |
+ |
static RecordingImageBufferSurface::FallbackReason flushReasonToFallbackReason( |
FlushReason reason) { |
switch (reason) { |
@@ -298,9 +304,8 @@ bool RecordingImageBufferSurface::finalizeFrameInternal( |
CHECK(m_currentFrame); |
DCHECK(m_currentFrame->getRecordingCanvas()); |
DCHECK(fallbackReason); |
- DCHECK_EQ(*fallbackReason, FallbackReasonUnknown); |
- |
- if (!m_imageBuffer->isDirty()) { |
+ DCHECK(*fallbackReason == FallbackReasonUnknown); |
+ if (!m_didRecordDrawCommandsInCurrentFrame) { |
if (!m_previousFrame) { |
// Create an initial blank frame |
m_previousFrame = m_currentFrame->finishRecordingAsPicture(); |