| Index: content/browser/compositor/delegated_frame_host.h
 | 
| diff --git a/content/browser/compositor/delegated_frame_host.h b/content/browser/compositor/delegated_frame_host.h
 | 
| index 5029fb3cc49e28ba9309cee103a7d8eec105fa09..bfe3f0582912b907759ea39b25d24c8bb94c1a0d 100644
 | 
| --- a/content/browser/compositor/delegated_frame_host.h
 | 
| +++ b/content/browser/compositor/delegated_frame_host.h
 | 
| @@ -16,6 +16,7 @@
 | 
|  #include "content/browser/renderer_host/render_widget_host_impl.h"
 | 
|  #include "content/browser/renderer_host/render_widget_host_view_base.h"
 | 
|  #include "content/public/browser/render_process_host.h"
 | 
| +#include "ui/base/compositor/compositor_begin_frame_observer.h"
 | 
|  #include "ui/compositor/compositor.h"
 | 
|  #include "ui/compositor/compositor_observer.h"
 | 
|  #include "ui/compositor/compositor_vsync_manager.h"
 | 
| @@ -25,6 +26,7 @@
 | 
|  
 | 
|  namespace cc {
 | 
|  class SurfaceFactory;
 | 
| +struct BeginFrameArgs;
 | 
|  }
 | 
|  
 | 
|  namespace media {
 | 
| @@ -64,6 +66,8 @@ class CONTENT_EXPORT DelegatedFrameHostClient {
 | 
|    virtual DelegatedFrameHost* GetDelegatedFrameHost() const = 0;
 | 
|    virtual bool ShouldCreateResizeLock();
 | 
|    virtual void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request);
 | 
| +
 | 
| +  virtual void OnSendBeginFrame(const cc::BeginFrameArgs& args) = 0;
 | 
|  };
 | 
|  
 | 
|  // The DelegatedFrameHost is used to host all of the RenderWidgetHostView state
 | 
| @@ -72,6 +76,7 @@ class CONTENT_EXPORT DelegatedFrameHostClient {
 | 
|  // the ui::Compositor associated with its DelegatedFrameHostClient.
 | 
|  class CONTENT_EXPORT DelegatedFrameHost
 | 
|      : public ui::CompositorObserver,
 | 
| +      public ui::CompositorBeginFrameObserver,
 | 
|        public ui::CompositorVSyncManager::Observer,
 | 
|        public ui::LayerOwnerDelegate,
 | 
|        public ImageTransportFactoryObserver,
 | 
| @@ -112,6 +117,7 @@ class CONTENT_EXPORT DelegatedFrameHost
 | 
|        scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber);
 | 
|    void EndFrameSubscription();
 | 
|    bool HasFrameSubscriber() const { return frame_subscriber_; }
 | 
| +  void OnSetNeedsBeginFrames(bool needs_begin_frames);
 | 
|  
 | 
|    // Exposed for tests.
 | 
|    cc::DelegatedFrameProvider* FrameProviderForTesting() const {
 | 
| @@ -144,6 +150,11 @@ class CONTENT_EXPORT DelegatedFrameHost
 | 
|    void LockResources();
 | 
|    void UnlockResources();
 | 
|  
 | 
| +  void StartObservingBeginFrames();
 | 
| +  void StopObservingBeginFrames();
 | 
| +
 | 
| +  void SetVSyncParams(base::TimeTicks timebase, base::TimeDelta interval);
 | 
| +
 | 
|    // Overridden from ui::CompositorObserver:
 | 
|    void OnCompositingDidCommit(ui::Compositor* compositor) override;
 | 
|    void OnCompositingStarted(ui::Compositor* compositor,
 | 
| @@ -152,6 +163,9 @@ class CONTENT_EXPORT DelegatedFrameHost
 | 
|    void OnCompositingAborted(ui::Compositor* compositor) override;
 | 
|    void OnCompositingLockStateChanged(ui::Compositor* compositor) override;
 | 
|  
 | 
| +  // Overridden from ui::CompositorBeginFrameObserver:
 | 
| +  void OnSendBeginFrame(const cc::BeginFrameArgs& args) override;
 | 
| +
 | 
|    // Overridden from ui::CompositorVSyncManager::Observer:
 | 
|    void OnUpdateVSyncParameters(base::TimeTicks timebase,
 | 
|                                 base::TimeDelta interval) override;
 | 
| @@ -307,6 +321,17 @@ class CONTENT_EXPORT DelegatedFrameHost
 | 
|        yuv_readback_pipeline_;
 | 
|  
 | 
|    scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_;
 | 
| +
 | 
| +  // True when unified BeginFrame scheduing is used.
 | 
| +  bool begin_frame_scheduling_enabled_;
 | 
| +
 | 
| +  // True when RenderWidget needs a BeginFrame.
 | 
| +  bool needs_begin_frames_;
 | 
| +
 | 
| +  // Pass |last_sent_begin_frame_args_| to compositor when |this| is added as a
 | 
| +  // CompositorBeginFrameObserver. With this, Compositor can determine whether
 | 
| +  // latest BeginFrameArgs can be used immediately or not.
 | 
| +  cc::BeginFrameArgs last_sent_begin_frame_args_;
 | 
|  };
 | 
|  
 | 
|  }  // namespace content
 | 
| 
 |