Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(974)

Unified Diff: content/renderer/media/media_stream_video_track.cc

Issue 1873293002: Report if video capturing meets output protection requirement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Rebased. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698