| Index: content/browser/compositor/delegated_frame_host.cc
 | 
| diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc
 | 
| index 98d7ac172c0a69a99431f349bd6863ecc44d849c..f45e7f40c1c3028defaba8746b6d81954ee7bd0f 100644
 | 
| --- a/content/browser/compositor/delegated_frame_host.cc
 | 
| +++ b/content/browser/compositor/delegated_frame_host.cc
 | 
| @@ -888,10 +888,13 @@
 | 
|    DCHECK(!compositor_);
 | 
|  }
 | 
|  
 | 
| -void DelegatedFrameHost::SetVSyncParameters(base::TimeTicks timebase,
 | 
| -                                            base::TimeDelta interval) {
 | 
| +void DelegatedFrameHost::OnUpdateVSyncParameters(
 | 
| +    base::TimeTicks timebase,
 | 
| +    base::TimeDelta interval) {
 | 
|    vsync_timebase_ = timebase;
 | 
|    vsync_interval_ = interval;
 | 
| +  if (client_->DelegatedFrameHostIsVisible())
 | 
| +    client_->DelegatedFrameHostUpdateVSyncParameters(timebase, interval);
 | 
|  }
 | 
|  
 | 
|  ////////////////////////////////////////////////////////////////////////////////
 | 
| @@ -917,6 +920,8 @@
 | 
|      surface_factory_->Destroy(surface_id_);
 | 
|    if (resource_collection_.get())
 | 
|      resource_collection_->SetClient(NULL);
 | 
| +
 | 
| +  DCHECK(!vsync_manager_.get());
 | 
|  }
 | 
|  
 | 
|  void DelegatedFrameHost::RunOnCommitCallbacks() {
 | 
| @@ -943,6 +948,9 @@
 | 
|      return;
 | 
|    compositor_ = compositor;
 | 
|    compositor_->AddObserver(this);
 | 
| +  DCHECK(!vsync_manager_.get());
 | 
| +  vsync_manager_ = compositor_->vsync_manager();
 | 
| +  vsync_manager_->AddObserver(this);
 | 
|  }
 | 
|  
 | 
|  void DelegatedFrameHost::ResetCompositor() {
 | 
| @@ -955,6 +963,10 @@
 | 
|    }
 | 
|    if (compositor_->HasObserver(this))
 | 
|      compositor_->RemoveObserver(this);
 | 
| +  if (vsync_manager_.get()) {
 | 
| +    vsync_manager_->RemoveObserver(this);
 | 
| +    vsync_manager_ = NULL;
 | 
| +  }
 | 
|    compositor_ = nullptr;
 | 
|  }
 | 
|  
 | 
| 
 |