| Index: content/renderer/media/media_stream_video_source.h
 | 
| diff --git a/content/renderer/media/media_stream_video_source.h b/content/renderer/media/media_stream_video_source.h
 | 
| index 3d79aeafb776d0fe9c84c08615d4f688df848e34..ee11f63cc0b7655aee63f57a58a4cb2943af8a02 100644
 | 
| --- a/content/renderer/media/media_stream_video_source.h
 | 
| +++ b/content/renderer/media/media_stream_video_source.h
 | 
| @@ -71,14 +71,15 @@ class CONTENT_EXPORT MediaStreamVideoSource
 | 
|                  const ConstraintsCallback& callback);
 | 
|    void RemoveTrack(MediaStreamVideoTrack* track);
 | 
|  
 | 
| +  // Called by |track| to notify the source whether it has any paths to a
 | 
| +  // consuming endpoint.
 | 
| +  void UpdateHasConsumers(MediaStreamVideoTrack* track, bool has_consumers);
 | 
| +
 | 
|    void UpdateCapturingLinkSecure(MediaStreamVideoTrack* track, bool is_secure);
 | 
|  
 | 
|    // Request underlying source to capture a new frame.
 | 
|    virtual void RequestRefreshFrame() {}
 | 
|  
 | 
| -  // Notify underlying source if the capturing link is secure.
 | 
| -  virtual void SetCapturingLinkSecured(bool is_secure) {}
 | 
| -
 | 
|    // Returns the task runner where video frames will be delivered on.
 | 
|    base::SingleThreadTaskRunner* io_task_runner() const;
 | 
|  
 | 
| @@ -126,6 +127,16 @@ class CONTENT_EXPORT MediaStreamVideoSource
 | 
|    // method has been called, MediaStreamVideoSource may be deleted.
 | 
|    virtual void StopSourceImpl() = 0;
 | 
|  
 | 
| +  // Optionally overridden by subclasses to act on whether there are any
 | 
| +  // consumers present. When none are present, the source can stop delivering
 | 
| +  // frames, giving it the option of running in an "idle" state to minimize
 | 
| +  // resource usage.
 | 
| +  virtual void OnHasConsumers(bool has_consumers) {}
 | 
| +
 | 
| +  // Optionally overridden by subclasses to act on whether the capturing link
 | 
| +  // has become secure or insecure.
 | 
| +  virtual void OnCapturingLinkSecured(bool is_secure) {}
 | 
| +
 | 
|    enum State {
 | 
|      NEW,
 | 
|      RETRIEVING_CAPABILITIES,
 | 
| @@ -183,6 +194,10 @@ class CONTENT_EXPORT MediaStreamVideoSource
 | 
|    // Tracks that currently are connected to this source.
 | 
|    std::vector<MediaStreamVideoTrack*> tracks_;
 | 
|  
 | 
| +  // Tracks that have no paths to a consuming endpoint, and so do not need
 | 
| +  // frames delivered from the source. This is a subset of |tracks_|.
 | 
| +  std::vector<MediaStreamVideoTrack*> suspended_tracks_;
 | 
| +
 | 
|    // This is used for tracking if all connected video sinks are secure.
 | 
|    SecureDisplayLinkTracker<MediaStreamVideoTrack> secure_tracker_;
 | 
|  
 | 
| 
 |