| 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();
|
|
|