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

Unified Diff: chrome/browser/media/media_capture_devices_dispatcher.cc

Issue 1873293002: Report if video capturing meets output protection requirement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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: chrome/browser/media/media_capture_devices_dispatcher.cc
diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
index 98d6704583cd3856b282dbbcd5f70ae4aa0b177c..32ad700b4ecfa7dcf184849ccf33b1b25c7e1aa8 100644
--- a/chrome/browser/media/media_capture_devices_dispatcher.cc
+++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
@@ -70,6 +70,11 @@ inline DesktopCaptureAccessHandler* ToDesktopCaptureAccessHandler(
MediaAccessHandler* handler) {
return static_cast<DesktopCaptureAccessHandler*>(handler);
}
+
+inline TabCaptureAccessHandler* ToTabCaptureAccessHandler(
+ MediaAccessHandler* handler) {
+ return static_cast<TabCaptureAccessHandler*>(handler);
+}
#endif
} // namespace
@@ -386,6 +391,28 @@ bool MediaCaptureDevicesDispatcher::IsDesktopCaptureInProgress() {
return false;
}
+bool MediaCaptureDevicesDispatcher::IsCaptureInProgress(int render_process_id,
+ int render_frame_id,
+ bool* is_link_secure) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+#if defined(ENABLE_EXTENSIONS)
+ for (MediaAccessHandler* handler : media_access_handlers_) {
+ if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE,
+ nullptr)) {
+ return ToDesktopCaptureAccessHandler(handler)->IsCaptureInProgress(
+ render_process_id, render_frame_id, is_link_secure);
+ }
+ if (handler->SupportsStreamType(content::MEDIA_TAB_VIDEO_CAPTURE,
+ nullptr)) {
+ return ToTabCaptureAccessHandler(handler)->IsCaptureInProgress(
+ render_process_id, render_frame_id, is_link_secure);
+ }
+ }
+#endif
+ *is_link_secure = false;
+ return false;
+}
+
void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices(
const MediaStreamDevices& devices) {
test_audio_devices_ = devices;
@@ -395,3 +422,52 @@ void MediaCaptureDevicesDispatcher::SetTestVideoCaptureDevices(
const MediaStreamDevices& devices) {
test_video_devices_ = devices;
}
+
+void MediaCaptureDevicesDispatcher::OnSetCapturingLinkSecured(
+ int render_process_id,
+ int render_frame_id,
+ int page_request_id,
+ content::MediaStreamType stream_type,
+ bool is_secure) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE &&
+ stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
+ return;
+
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&MediaCaptureDevicesDispatcher::UpdateCapturingLinkSecured,
+ base::Unretained(this), render_process_id, render_frame_id,
+ page_request_id, stream_type, is_secure));
+}
+
+void MediaCaptureDevicesDispatcher::UpdateCapturingLinkSecured(
+ int render_process_id,
+ int render_frame_id,
+ int page_request_id,
+ content::MediaStreamType stream_type,
+ bool is_secure) {
+ if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE &&
+ stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
+ return;
+
+#if defined(ENABLE_EXTENSIONS)
+ for (MediaAccessHandler* handler : media_access_handlers_) {
+ if (stream_type == content::MEDIA_DESKTOP_VIDEO_CAPTURE &&
+ handler->SupportsStreamType(stream_type, nullptr)) {
+ ToDesktopCaptureAccessHandler(handler)->UpdateCapturingLinkSecured(
+ render_process_id, render_frame_id, page_request_id, stream_type,
+ is_secure);
+ break;
+ }
+
+ if (stream_type == content::MEDIA_TAB_VIDEO_CAPTURE &&
+ handler->SupportsStreamType(stream_type, nullptr)) {
+ ToTabCaptureAccessHandler(handler)->UpdateCapturingLinkSecured(
+ render_process_id, render_frame_id, page_request_id, stream_type,
+ is_secure);
+ break;
+ }
+ }
+#endif
+}

Powered by Google App Engine
This is Rietveld 408576698