| Index: cc/surfaces/surface.h
 | 
| diff --git a/cc/surfaces/surface.h b/cc/surfaces/surface.h
 | 
| index 8ef332ecb79756735b8f6760d23b34d954d973cd..18ca7442af6b4cd74a5a0d47e6a89b5be4af426b 100644
 | 
| --- a/cc/surfaces/surface.h
 | 
| +++ b/cc/surfaces/surface.h
 | 
| @@ -6,6 +6,7 @@
 | 
|  #define CC_SURFACES_SURFACE_H_
 | 
|  
 | 
|  #include <map>
 | 
| +#include <set>
 | 
|  #include <vector>
 | 
|  
 | 
|  #include "base/callback.h"
 | 
| @@ -80,8 +81,12 @@ class CC_SURFACES_EXPORT Surface {
 | 
|    bool destroyed() const { return destroyed_; }
 | 
|    void set_destroyed(bool destroyed) { destroyed_ = destroyed; }
 | 
|  
 | 
| +  void AddBeginFrameSource(BeginFrameSource* begin_frame_source);
 | 
| +  void RemoveBeginFrameSource(BeginFrameSource* begin_frame_source);
 | 
| +
 | 
|   private:
 | 
|    void ClearCopyRequests();
 | 
| +  void UpdatePrimaryBeginFrameSource();
 | 
|  
 | 
|    SurfaceId surface_id_;
 | 
|    base::WeakPtr<SurfaceFactory> factory_;
 | 
| @@ -91,6 +96,10 @@ class CC_SURFACES_EXPORT Surface {
 | 
|    bool destroyed_;
 | 
|    std::vector<SurfaceSequence> destruction_dependencies_;
 | 
|  
 | 
| +  // This surface may have multiple BeginFrameSources if it is
 | 
| +  // on multiple Displays.
 | 
| +  std::set<BeginFrameSource*> begin_frame_sources_;
 | 
| +
 | 
|    std::vector<SurfaceId> referenced_surfaces_;
 | 
|  
 | 
|    DrawCallback draw_callback_;
 | 
| 
 |