| Index: cc/resources/picture_layer_tiling.cc
 | 
| diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc
 | 
| index 033f9f6a7116ee1cf241885b4ae9d55ceeb2a07b..1e7281d6fdc4259f2f85eeacc93157b41884acb0 100644
 | 
| --- a/cc/resources/picture_layer_tiling.cc
 | 
| +++ b/cc/resources/picture_layer_tiling.cc
 | 
| @@ -23,7 +23,8 @@
 | 
|  namespace cc {
 | 
|  namespace {
 | 
|  
 | 
| -const float kSoonBorderDistanceInScreenPixels = 312.f;
 | 
| +const float kSoonBorderDistanceViewportPercentage = 0.15f;
 | 
| +const float kMaxSoonBorderDistanceInScreenPixels = 312.f;
 | 
|  
 | 
|  }  // namespace
 | 
|  
 | 
| @@ -83,6 +84,17 @@ PictureLayerTiling::~PictureLayerTiling() {
 | 
|      it->second->set_shared(false);
 | 
|  }
 | 
|  
 | 
| +// static
 | 
| +float PictureLayerTiling::CalculateSoonBorderDistance(
 | 
| +    const gfx::Rect& visible_rect_in_content_space,
 | 
| +    float content_to_screen_scale) {
 | 
| +  float max_dimension = std::max(visible_rect_in_content_space.width(),
 | 
| +                                 visible_rect_in_content_space.height());
 | 
| +  return std::min(
 | 
| +      kMaxSoonBorderDistanceInScreenPixels / content_to_screen_scale,
 | 
| +      max_dimension * kSoonBorderDistanceViewportPercentage);
 | 
| +}
 | 
| +
 | 
|  Tile* PictureLayerTiling::CreateTile(int i,
 | 
|                                       int j,
 | 
|                                       const PictureLayerTiling* twin_tiling,
 | 
| @@ -605,7 +617,8 @@ bool PictureLayerTiling::ComputeTilePriorityRects(
 | 
|    // Calculate the soon border rect.
 | 
|    float content_to_screen_scale = ideal_contents_scale / contents_scale_;
 | 
|    gfx::Rect soon_border_rect = visible_rect_in_content_space;
 | 
| -  float border = kSoonBorderDistanceInScreenPixels / content_to_screen_scale;
 | 
| +  float border = CalculateSoonBorderDistance(visible_rect_in_content_space,
 | 
| +                                             content_to_screen_scale);
 | 
|    soon_border_rect.Inset(-border, -border, -border, -border);
 | 
|  
 | 
|    last_impl_frame_time_in_seconds_ = current_frame_time_in_seconds;
 | 
| @@ -866,7 +879,8 @@ void PictureLayerTiling::GetAllTilesForTracing(
 | 
|      tiles->insert(it->second.get());
 | 
|  }
 | 
|  
 | 
| -void PictureLayerTiling::AsValueInto(base::debug::TracedValue* state) const {
 | 
| +void PictureLayerTiling::AsValueInto(
 | 
| +    base::trace_event::TracedValue* state) const {
 | 
|    state->SetInteger("num_tiles", tiles_.size());
 | 
|    state->SetDouble("content_scale", contents_scale_);
 | 
|    MathUtil::AddToTracedValue("tiling_size", tiling_size(), state);
 | 
| 
 |