summaryrefslogtreecommitdiffstats
path: root/cc/playback
diff options
context:
space:
mode:
authorvmpstr <vmpstr@chromium.org>2016-03-02 17:48:27 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-03 01:49:35 +0000
commitafb46c11bdde02fe8cd4a76ae5b08e30543d6255 (patch)
tree14fba0e42457ecd5dda27c5629af3c48f755611c /cc/playback
parent35606c90c45cc32aff5ccd2b288e2414c491d6d0 (diff)
downloadchromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.zip
chromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.tar.gz
chromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.tar.bz2
cc: Disable image hijack canvas when we don't have images in the map.
This patch ensures that we don't use the hijack canvas when there are no images in the discardable map, since this is the way we "disable" things on android. Note we already do this in PlaybackToSharedCanvas, so this is just ensuring that we also do that in PlaybackToCanvas. BUG=591246 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1756413002 Cr-Commit-Position: refs/heads/master@{#378913}
Diffstat (limited to 'cc/playback')
-rw-r--r--cc/playback/display_list_raster_source.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/cc/playback/display_list_raster_source.cc b/cc/playback/display_list_raster_source.cc
index 53ac4ce..e20d610 100644
--- a/cc/playback/display_list_raster_source.cc
+++ b/cc/playback/display_list_raster_source.cc
@@ -293,12 +293,17 @@ void DisplayListRasterSource::PlaybackToCanvas(
PrepareForPlaybackToCanvas(raster_canvas, canvas_bitmap_rect,
canvas_playback_rect, contents_scale);
- SkImageInfo info = raster_canvas->imageInfo();
- ImageHijackCanvas canvas(info.width(), info.height(),
- image_decode_controller_);
- canvas.addCanvas(raster_canvas);
- RasterCommon(&canvas, NULL, canvas_bitmap_rect, canvas_playback_rect,
- contents_scale);
+ if (display_list_->MayHaveDiscardableImages()) {
+ const SkImageInfo& info = raster_canvas->imageInfo();
+ ImageHijackCanvas canvas(info.width(), info.height(),
+ image_decode_controller_);
+ canvas.addCanvas(raster_canvas);
+ RasterCommon(&canvas, nullptr, canvas_bitmap_rect, canvas_playback_rect,
+ contents_scale);
+ } else {
+ RasterCommon(raster_canvas, nullptr, canvas_bitmap_rect,
+ canvas_playback_rect, contents_scale);
+ }
}
void DisplayListRasterSource::PrepareForPlaybackToCanvas(