| Index: cc/surfaces/display.cc
 | 
| diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
 | 
| index dd776fb1bc4d118408d8557c20a7b2eefc75389b..7cd9d6d126b566dd5547595523d92a181a2d466d 100644
 | 
| --- a/cc/surfaces/display.cc
 | 
| +++ b/cc/surfaces/display.cc
 | 
| @@ -131,8 +131,8 @@ void Display::InitializeRenderer() {
 | 
|    // overlays.
 | 
|    bool output_partial_list = renderer_->Capabilities().using_partial_swap &&
 | 
|                               !output_surface_->GetOverlayCandidateValidator();
 | 
| -  aggregator_.reset(new SurfaceAggregator(manager_, resource_provider_.get(),
 | 
| -                                          output_partial_list));
 | 
| +  aggregator_.reset(new SurfaceAggregator(
 | 
| +      this, manager_, resource_provider_.get(), output_partial_list));
 | 
|  }
 | 
|  
 | 
|  void Display::DidLoseOutputSurface() {
 | 
| @@ -150,6 +150,31 @@ void Display::UpdateRootSurfaceResourcesLocked() {
 | 
|      scheduler_->SetRootSurfaceResourcesLocked(root_surface_resources_locked);
 | 
|  }
 | 
|  
 | 
| +void Display::AddSurface(Surface* surface) {
 | 
| +  // Checking for the output_surface ensures Display::Initialize has been
 | 
| +  // called and that scheduler_ won't change its value.
 | 
| +  DCHECK(output_surface_);
 | 
| +
 | 
| +  // WebView's HardwareRenderer will never have a scheduler.
 | 
| +  if (!scheduler_)
 | 
| +    return;
 | 
| +
 | 
| +  surface->AddBeginFrameSource(scheduler_->begin_frame_source_for_children());
 | 
| +}
 | 
| +
 | 
| +void Display::RemoveSurface(Surface* surface) {
 | 
| +  // Checking for the output_surface ensures Display::Initialize has been
 | 
| +  // called and that scheduler_ won't change its value.
 | 
| +  DCHECK(output_surface_);
 | 
| +
 | 
| +  // WebView's HardwareRenderer will never have a scheduler.
 | 
| +  if (!scheduler_)
 | 
| +    return;
 | 
| +
 | 
| +  surface->RemoveBeginFrameSource(
 | 
| +      scheduler_->begin_frame_source_for_children());
 | 
| +}
 | 
| +
 | 
|  bool Display::DrawAndSwap() {
 | 
|    TRACE_EVENT0("cc", "Display::DrawAndSwap");
 | 
|  
 | 
| 
 |