| Index: cc/surfaces/frame_sink_manager.h
 | 
| diff --git a/cc/surfaces/frame_sink_manager.h b/cc/surfaces/frame_sink_manager.h
 | 
| index 0d54a8e3d8f002356887f22bc78f6e512d041401..11c0f97668dcc0e59d6ae5d0124299be4f3b8377 100644
 | 
| --- a/cc/surfaces/frame_sink_manager.h
 | 
| +++ b/cc/surfaces/frame_sink_manager.h
 | 
| @@ -14,6 +14,7 @@
 | 
|  #include "base/logging.h"
 | 
|  #include "base/macros.h"
 | 
|  #include "cc/surfaces/frame_sink_id.h"
 | 
| +#include "cc/surfaces/primary_begin_frame_source.h"
 | 
|  #include "cc/surfaces/surfaces_export.h"
 | 
|  
 | 
|  namespace cc {
 | 
| @@ -57,6 +58,10 @@ class CC_SURFACES_EXPORT FrameSinkManager {
 | 
|                                  const FrameSinkId& frame_sink_id);
 | 
|    void UnregisterBeginFrameSource(BeginFrameSource* source);
 | 
|  
 | 
| +  // Returns a stable BeginFrameSource that forwards BeginFrames from the first
 | 
| +  // available BeginFrameSource.
 | 
| +  BeginFrameSource* GetPrimaryBeginFrameSource();
 | 
| +
 | 
|    // Register a relationship between two framesinks.  This relationship means
 | 
|    // that surfaces from the child framesik will be displayed in the parent.
 | 
|    // Children are allowed to use any begin frame source that their parent can
 | 
| @@ -99,7 +104,7 @@ class CC_SURFACES_EXPORT FrameSinkManager {
 | 
|      ~FrameSinkSourceMapping();
 | 
|      bool has_children() const { return !children.empty(); }
 | 
|      // The currently assigned begin frame source for this client.
 | 
| -    BeginFrameSource* source;
 | 
| +    BeginFrameSource* source = nullptr;
 | 
|      // This represents a dag of parent -> children mapping.
 | 
|      std::vector<FrameSinkId> children;
 | 
|    };
 | 
| @@ -110,11 +115,13 @@ class CC_SURFACES_EXPORT FrameSinkManager {
 | 
|    std::unordered_map<FrameSinkId, FrameSinkSourceMapping, FrameSinkIdHash>
 | 
|        frame_sink_source_map_;
 | 
|  
 | 
| -  // Set of which sources are registered to which frmesinks.  Any child
 | 
| +  // Set of BeginFrameSource along with associated FrameSinkIds. Any child
 | 
|    // that is implicitly using this framesink must be reachable by the
 | 
|    // parent in the dag.
 | 
|    std::unordered_map<BeginFrameSource*, FrameSinkId> registered_sources_;
 | 
|  
 | 
| +  PrimaryBeginFrameSource primary_source_;
 | 
| +
 | 
|    DISALLOW_COPY_AND_ASSIGN(FrameSinkManager);
 | 
|  };
 | 
|  
 | 
| 
 |