| Index: cc/resources/display_list_recording_source.cc
 | 
| diff --git a/cc/resources/display_list_recording_source.cc b/cc/resources/display_list_recording_source.cc
 | 
| index e60e4c16d2949054c7f70e8a1e3c8e3d98403381..01a3bcef9944e2504829e79ad3b40bef46bd5ec7 100644
 | 
| --- a/cc/resources/display_list_recording_source.cc
 | 
| +++ b/cc/resources/display_list_recording_source.cc
 | 
| @@ -29,8 +29,10 @@ namespace cc {
 | 
|  DisplayListRecordingSource::DisplayListRecordingSource()
 | 
|      : slow_down_raster_scale_factor_for_debug_(0),
 | 
|        can_use_lcd_text_(true),
 | 
| +      requires_clear_(false),
 | 
|        is_solid_color_(false),
 | 
|        solid_color_(SK_ColorTRANSPARENT),
 | 
| +      background_color_(SK_ColorTRANSPARENT),
 | 
|        pixel_record_distance_(kPixelDistanceToRecord),
 | 
|        is_suitable_for_gpu_rasterization_(true) {
 | 
|  }
 | 
| @@ -60,10 +62,9 @@ bool DisplayListRecordingSource::UpdateAndExpandInvalidation(
 | 
|    }
 | 
|  
 | 
|    gfx::Rect old_recorded_viewport = recorded_viewport_;
 | 
| -  // TODO(wangxianzhu): Blink slimming paint doesn't support incremental
 | 
| -  // painting for now so we must record for the whole layer. Should measure
 | 
| -  // performance and determine the best choice. Consider display item caching.
 | 
| -  recorded_viewport_ = gfx::Rect(GetSize());
 | 
| +  recorded_viewport_ = visible_layer_rect;
 | 
| +  recorded_viewport_.Inset(-pixel_record_distance_, -pixel_record_distance_);
 | 
| +  recorded_viewport_.Intersect(gfx::Rect(GetSize()));
 | 
|  
 | 
|    if (recorded_viewport_ != old_recorded_viewport) {
 | 
|      // Invalidate newly-exposed and no-longer-exposed areas.
 | 
| @@ -135,6 +136,14 @@ void DisplayListRecordingSource::SetSlowdownRasterScaleFactor(int factor) {
 | 
|    slow_down_raster_scale_factor_for_debug_ = factor;
 | 
|  }
 | 
|  
 | 
| +void DisplayListRecordingSource::SetBackgroundColor(SkColor background_color) {
 | 
| +  background_color_ = background_color;
 | 
| +}
 | 
| +
 | 
| +void DisplayListRecordingSource::SetRequiresClear(bool requires_clear) {
 | 
| +  requires_clear_ = requires_clear;
 | 
| +}
 | 
| +
 | 
|  void DisplayListRecordingSource::SetUnsuitableForGpuRasterizationForTesting() {
 | 
|    is_suitable_for_gpu_rasterization_ = false;
 | 
|  }
 | 
| 
 |