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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/media/media_capture_devices_dispatcher.h" 5 #include "chrome/browser/media/media_capture_devices_dispatcher.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 } 63 }
64 } 64 }
65 return NULL; 65 return NULL;
66 } 66 }
67 67
68 #if defined(ENABLE_EXTENSIONS) 68 #if defined(ENABLE_EXTENSIONS)
69 inline DesktopCaptureAccessHandler* ToDesktopCaptureAccessHandler( 69 inline DesktopCaptureAccessHandler* ToDesktopCaptureAccessHandler(
70 MediaAccessHandler* handler) { 70 MediaAccessHandler* handler) {
71 return static_cast<DesktopCaptureAccessHandler*>(handler); 71 return static_cast<DesktopCaptureAccessHandler*>(handler);
72 } 72 }
73
74 inline TabCaptureAccessHandler* ToTabCaptureAccessHandler(
75 MediaAccessHandler* handler) {
76 return static_cast<TabCaptureAccessHandler*>(handler);
77 }
73 #endif 78 #endif
74 } // namespace 79 } // namespace
75 80
76 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() { 81 MediaCaptureDevicesDispatcher* MediaCaptureDevicesDispatcher::GetInstance() {
77 return base::Singleton<MediaCaptureDevicesDispatcher>::get(); 82 return base::Singleton<MediaCaptureDevicesDispatcher>::get();
78 } 83 }
79 84
80 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() 85 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
81 : is_device_enumeration_disabled_(false), 86 : is_device_enumeration_disabled_(false),
82 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) { 87 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) {
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 for (MediaAccessHandler* handler : media_access_handlers_) { 384 for (MediaAccessHandler* handler : media_access_handlers_) {
380 if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE, 385 if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE,
381 NULL)) { 386 NULL)) {
382 return ToDesktopCaptureAccessHandler(handler)->IsCaptureInProgress(); 387 return ToDesktopCaptureAccessHandler(handler)->IsCaptureInProgress();
383 } 388 }
384 } 389 }
385 #endif 390 #endif
386 return false; 391 return false;
387 } 392 }
388 393
394 bool MediaCaptureDevicesDispatcher::IsCaptureInProgress(int render_process_id,
395 int render_frame_id,
396 bool* is_link_secure) {
397 DCHECK_CURRENTLY_ON(BrowserThread::UI);
398 #if defined(ENABLE_EXTENSIONS)
399 for (MediaAccessHandler* handler : media_access_handlers_) {
400 if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE,
401 nullptr)) {
402 return ToDesktopCaptureAccessHandler(handler)->IsCaptureInProgress(
403 render_process_id, render_frame_id, is_link_secure);
404 }
405 if (handler->SupportsStreamType(content::MEDIA_TAB_VIDEO_CAPTURE,
406 nullptr)) {
407 return ToTabCaptureAccessHandler(handler)->IsCaptureInProgress(
408 render_process_id, render_frame_id, is_link_secure);
409 }
410 }
411 #endif
412 *is_link_secure = false;
413 return false;
414 }
415
389 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices( 416 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices(
390 const MediaStreamDevices& devices) { 417 const MediaStreamDevices& devices) {
391 test_audio_devices_ = devices; 418 test_audio_devices_ = devices;
392 } 419 }
393 420
394 void MediaCaptureDevicesDispatcher::SetTestVideoCaptureDevices( 421 void MediaCaptureDevicesDispatcher::SetTestVideoCaptureDevices(
395 const MediaStreamDevices& devices) { 422 const MediaStreamDevices& devices) {
396 test_video_devices_ = devices; 423 test_video_devices_ = devices;
397 } 424 }
425
426 void MediaCaptureDevicesDispatcher::OnSetCapturingLinkSecured(
427 int render_process_id,
428 int render_frame_id,
429 int page_request_id,
430 content::MediaStreamType stream_type,
431 bool is_secure) {
432 DCHECK_CURRENTLY_ON(BrowserThread::IO);
433 if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE &&
434 stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
435 return;
436
437 BrowserThread::PostTask(
438 BrowserThread::UI, FROM_HERE,
439 base::Bind(&MediaCaptureDevicesDispatcher::UpdateCapturingLinkSecured,
440 base::Unretained(this), render_process_id, render_frame_id,
441 page_request_id, stream_type, is_secure));
442 }
443
444 void MediaCaptureDevicesDispatcher::UpdateCapturingLinkSecured(
445 int render_process_id,
446 int render_frame_id,
447 int page_request_id,
448 content::MediaStreamType stream_type,
449 bool is_secure) {
450 if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE &&
451 stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
452 return;
453
454 #if defined(ENABLE_EXTENSIONS)
455 for (MediaAccessHandler* handler : media_access_handlers_) {
456 if (stream_type == content::MEDIA_DESKTOP_VIDEO_CAPTURE &&
457 handler->SupportsStreamType(stream_type, nullptr)) {
458 ToDesktopCaptureAccessHandler(handler)->UpdateCapturingLinkSecured(
459 render_process_id, render_frame_id, page_request_id, stream_type,
460 is_secure);
461 break;
462 }
463
464 if (stream_type == content::MEDIA_TAB_VIDEO_CAPTURE &&
465 handler->SupportsStreamType(stream_type, nullptr)) {
466 ToTabCaptureAccessHandler(handler)->UpdateCapturingLinkSecured(
467 render_process_id, render_frame_id, page_request_id, stream_type,
468 is_secure);
469 break;
470 }
471 }
472 #endif
473 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698