| Index: cc/playback/display_list_raster_source.cc
|
| diff --git a/cc/playback/display_list_raster_source.cc b/cc/playback/display_list_raster_source.cc
|
| index 970648fbade4d25790a02b26f342a4002f9c5c62..0a8469b8783fe026bb2914996e091a90b247c828 100644
|
| --- a/cc/playback/display_list_raster_source.cc
|
| +++ b/cc/playback/display_list_raster_source.cc
|
| @@ -47,7 +47,8 @@ DisplayListRasterSource::DisplayListRasterSource(
|
| slow_down_raster_scale_factor_for_debug_(
|
| other->slow_down_raster_scale_factor_for_debug_),
|
| should_attempt_to_use_distance_field_text_(false),
|
| - image_decode_controller_(nullptr) {
|
| + image_decode_controller_(nullptr),
|
| + image_scaling_optimization_(ImageScalingOptimization::Static) {
|
| // In certain cases, ThreadTaskRunnerHandle isn't set (Android Webview).
|
| // Don't register a dump provider in these cases.
|
| // TODO(ericrk): Get this working in Android Webview. crbug.com/517156
|
| @@ -107,8 +108,12 @@ void DisplayListRasterSource::PlaybackToSharedCanvas(
|
| RasterCommon(&canvas, nullptr, canvas_rect, canvas_rect, contents_scale);
|
| } else if (display_list_->MayHaveDiscardableImages()) {
|
| const SkImageInfo& info = raster_canvas->imageInfo();
|
| + const SkFilterQuality max_quality =
|
| + image_scaling_optimization_ == ImageScalingOptimization::Static
|
| + ? kHigh_SkFilterQuality
|
| + : kMedium_SkFilterQuality;
|
| ImageHijackCanvas canvas(info.width(), info.height(),
|
| - image_decode_controller_);
|
| + image_decode_controller_, max_quality);
|
| canvas.addCanvas(raster_canvas);
|
|
|
| RasterCommon(&canvas, nullptr, canvas_rect, canvas_rect, contents_scale);
|
| @@ -139,8 +144,12 @@ void DisplayListRasterSource::PlaybackToCanvas(
|
| contents_scale);
|
| } else if (display_list_->MayHaveDiscardableImages()) {
|
| const SkImageInfo& info = raster_canvas->imageInfo();
|
| + const SkFilterQuality max_quality =
|
| + image_scaling_optimization_ == ImageScalingOptimization::Static
|
| + ? kHigh_SkFilterQuality
|
| + : kMedium_SkFilterQuality;
|
| ImageHijackCanvas canvas(info.width(), info.height(),
|
| - image_decode_controller_);
|
| + image_decode_controller_, max_quality);
|
| canvas.addCanvas(raster_canvas);
|
| RasterCommon(&canvas, nullptr, canvas_bitmap_rect, canvas_playback_rect,
|
| contents_scale);
|
| @@ -371,6 +380,11 @@ void DisplayListRasterSource::SetImageDecodeController(
|
| image_decode_controller_ = image_decode_controller;
|
| }
|
|
|
| +void DisplayListRasterSource::SetImageScalingOptimization(
|
| + ImageScalingOptimization opt) {
|
| + image_scaling_optimization_ = opt;
|
| +}
|
| +
|
| bool DisplayListRasterSource::OnMemoryDump(
|
| const base::trace_event::MemoryDumpArgs& args,
|
| base::trace_event::ProcessMemoryDump* pmd) {
|
|
|