Index: content/renderer/media/media_stream_video_track.cc |
diff --git a/content/renderer/media/media_stream_video_track.cc b/content/renderer/media/media_stream_video_track.cc |
index 4a0bca04d07f8e2666ce6d7aaf10c50ac6726a7e..5663c47ba66b734c868ae3fce073f19b87c1303a 100644 |
--- a/content/renderer/media/media_stream_video_track.cc |
+++ b/content/renderer/media/media_stream_video_track.cc |
@@ -229,7 +229,8 @@ MediaStreamVideoTrack::MediaStreamVideoTrack( |
new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), |
enabled)), |
constraints_(constraints), |
- source_(source) { |
+ source_(source), |
+ secure_tracker_(new CapturingLinkSecureTracker<MediaStreamVideoSink>()) { |
DCHECK(!constraints.isNull()); |
source->AddTrack(this, |
base::Bind( |
@@ -245,15 +246,20 @@ MediaStreamVideoTrack::~MediaStreamVideoTrack() { |
DVLOG(3) << "~MediaStreamVideoTrack()"; |
} |
-void MediaStreamVideoTrack::AddSink( |
- MediaStreamVideoSink* sink, const VideoCaptureDeliverFrameCB& callback) { |
+void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink, |
+ const VideoCaptureDeliverFrameCB& callback, |
+ bool is_sink_secure) { |
DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end()); |
sinks_.push_back(sink); |
frame_deliverer_->AddCallback(sink, callback); |
+ secure_tracker_->AddLinkSecure(sink, is_sink_secure); |
// Request source to deliver a frame because a new sink is added. |
- if (source_) |
+ if (source_) { |
source_->RequestRefreshFrame(); |
+ source_->UpdateCapturingLinkSecure(this, |
+ secure_tracker_->is_capturing_secure()); |
+ } |
} |
void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) { |
@@ -263,6 +269,10 @@ void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) { |
DCHECK(it != sinks_.end()); |
sinks_.erase(it); |
frame_deliverer_->RemoveCallback(sink); |
+ secure_tracker_->RemoveLinkSecure(sink); |
+ if (source_) |
+ source_->UpdateCapturingLinkSecure(this, |
+ secure_tracker_->is_capturing_secure()); |
} |
void MediaStreamVideoTrack::SetEnabled(bool enabled) { |