| 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 11f0991e71ffd104181d55b2a950126cf1596c52..5315caa546adfec4fab3080fd29f8db0506bc386 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.cpp
|
| @@ -20,9 +20,11 @@ namespace blink {
|
|
|
| RecordingImageBufferSurface::RecordingImageBufferSurface(
|
| const IntSize& size,
|
| + AllowFallback allow_fallback,
|
| OpacityMode opacity_mode,
|
| const CanvasColorParams& color_params)
|
| : ImageBufferSurface(size, opacity_mode, color_params),
|
| + allow_fallback_(allow_fallback),
|
| image_buffer_(0),
|
| current_frame_pixel_count_(0),
|
| previous_frame_pixel_count_(0),
|
| @@ -77,6 +79,7 @@ bool RecordingImageBufferSurface::WritePixels(const SkImageInfo& orig_info,
|
|
|
| void RecordingImageBufferSurface::FallBackToRasterCanvas(
|
| FallbackReason reason) {
|
| + DCHECK(allow_fallback_ == kAllowFallback);
|
| CHECK(reason != kFallbackReasonUnknown);
|
|
|
| if (fallback_surface_) {
|
| @@ -315,8 +318,9 @@ bool RecordingImageBufferSurface::FinalizeFrameInternal(
|
| return false;
|
| }
|
|
|
| - if (current_frame_->getRecordingCanvas()->getSaveCount() - 1 >
|
| - ExpensiveCanvasHeuristicParameters::kExpensiveRecordingStackDepth) {
|
| + if (allow_fallback_ == kAllowFallback &&
|
| + current_frame_->getRecordingCanvas()->getSaveCount() - 1 >
|
| + ExpensiveCanvasHeuristicParameters::kExpensiveRecordingStackDepth) {
|
| // (getSaveCount() decremented to account for the intial recording canvas
|
| // save frame.)
|
| *fallback_reason = kFallbackReasonRunawayStateStack;
|
|
|