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

Side by Side Diff: chrome/browser/media/webrtc/media_capture_devices_dispatcher.cc

Issue 2767893002: Remove ScopedVector from chrome/browser/. (Closed)
Patch Set: Address comments from zea@ Created 3 years, 9 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/webrtc/media_capture_devices_dispatcher.h" 5 #include "chrome/browser/media/webrtc/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/memory/ptr_util.h"
9 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
10 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
12 #include "base/strings/utf_string_conversions.h" 13 #include "base/strings/utf_string_conversions.h"
13 #include "build/build_config.h" 14 #include "build/build_config.h"
14 #include "chrome/browser/media/media_access_handler.h" 15 #include "chrome/browser/media/media_access_handler.h"
15 #include "chrome/browser/media/webrtc/desktop_streams_registry.h" 16 #include "chrome/browser/media/webrtc/desktop_streams_registry.h"
16 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" 17 #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
17 #include "chrome/browser/media/webrtc/permission_bubble_media_access_handler.h" 18 #include "chrome/browser/media/webrtc/permission_bubble_media_access_handler.h"
18 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 } 82 }
82 83
83 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() 84 MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher()
84 : is_device_enumeration_disabled_(false), 85 : is_device_enumeration_disabled_(false),
85 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) { 86 media_stream_capture_indicator_(new MediaStreamCaptureIndicator()) {
86 DCHECK_CURRENTLY_ON(BrowserThread::UI); 87 DCHECK_CURRENTLY_ON(BrowserThread::UI);
87 88
88 #if BUILDFLAG(ENABLE_EXTENSIONS) 89 #if BUILDFLAG(ENABLE_EXTENSIONS)
89 #if defined(OS_CHROMEOS) 90 #if defined(OS_CHROMEOS)
90 // Wrapper around ExtensionMediaAccessHandler used in Public Sessions. 91 // Wrapper around ExtensionMediaAccessHandler used in Public Sessions.
91 media_access_handlers_.push_back(new PublicSessionMediaAccessHandler()); 92 media_access_handlers_.push_back(
93 base::MakeUnique<PublicSessionMediaAccessHandler>());
92 #else 94 #else
93 media_access_handlers_.push_back(new ExtensionMediaAccessHandler()); 95 media_access_handlers_.push_back(
96 base::MakeUnique<ExtensionMediaAccessHandler>());
94 #endif 97 #endif
95 media_access_handlers_.push_back(new DesktopCaptureAccessHandler()); 98 media_access_handlers_.push_back(
99 base::MakeUnique<DesktopCaptureAccessHandler>());
96 #if defined(OS_CHROMEOS) 100 #if defined(OS_CHROMEOS)
97 // Wrapper around TabCaptureAccessHandler used in Public Sessions. 101 // Wrapper around TabCaptureAccessHandler used in Public Sessions.
98 media_access_handlers_.push_back(new PublicSessionTabCaptureAccessHandler()); 102 media_access_handlers_.push_back(
103 base::MakeUnique<PublicSessionTabCaptureAccessHandler>());
99 #else 104 #else
100 media_access_handlers_.push_back(new TabCaptureAccessHandler()); 105 media_access_handlers_.push_back(base::MakeUnique<TabCaptureAccessHandler>());
101 #endif 106 #endif
102 #endif 107 #endif
103 media_access_handlers_.push_back(new PermissionBubbleMediaAccessHandler()); 108 media_access_handlers_.push_back(
109 base::MakeUnique<PermissionBubbleMediaAccessHandler>());
104 } 110 }
105 111
106 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {} 112 MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {}
107 113
108 void MediaCaptureDevicesDispatcher::RegisterProfilePrefs( 114 void MediaCaptureDevicesDispatcher::RegisterProfilePrefs(
109 user_prefs::PrefRegistrySyncable* registry) { 115 user_prefs::PrefRegistrySyncable* registry) {
110 registry->RegisterStringPref(prefs::kDefaultAudioCaptureDevice, 116 registry->RegisterStringPref(prefs::kDefaultAudioCaptureDevice,
111 std::string()); 117 std::string());
112 registry->RegisterStringPref(prefs::kDefaultVideoCaptureDevice, 118 registry->RegisterStringPref(prefs::kDefaultVideoCaptureDevice,
113 std::string()); 119 std::string());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 return MediaCaptureDevices::GetInstance()->GetVideoCaptureDevices(); 157 return MediaCaptureDevices::GetInstance()->GetVideoCaptureDevices();
152 } 158 }
153 159
154 void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequest( 160 void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequest(
155 content::WebContents* web_contents, 161 content::WebContents* web_contents,
156 const content::MediaStreamRequest& request, 162 const content::MediaStreamRequest& request,
157 const content::MediaResponseCallback& callback, 163 const content::MediaResponseCallback& callback,
158 const extensions::Extension* extension) { 164 const extensions::Extension* extension) {
159 DCHECK_CURRENTLY_ON(BrowserThread::UI); 165 DCHECK_CURRENTLY_ON(BrowserThread::UI);
160 166
161 for (MediaAccessHandler* handler : media_access_handlers_) { 167 for (const auto& handler : media_access_handlers_) {
162 if (handler->SupportsStreamType(request.video_type, extension) || 168 if (handler->SupportsStreamType(request.video_type, extension) ||
163 handler->SupportsStreamType(request.audio_type, extension)) { 169 handler->SupportsStreamType(request.audio_type, extension)) {
164 handler->HandleRequest(web_contents, request, callback, extension); 170 handler->HandleRequest(web_contents, request, callback, extension);
165 return; 171 return;
166 } 172 }
167 } 173 }
168 callback.Run(content::MediaStreamDevices(), 174 callback.Run(content::MediaStreamDevices(),
169 content::MEDIA_DEVICE_NOT_SUPPORTED, nullptr); 175 content::MEDIA_DEVICE_NOT_SUPPORTED, nullptr);
170 } 176 }
171 177
172 bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission( 178 bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission(
173 content::WebContents* web_contents, 179 content::WebContents* web_contents,
174 const GURL& security_origin, 180 const GURL& security_origin,
175 content::MediaStreamType type) { 181 content::MediaStreamType type) {
176 DCHECK_CURRENTLY_ON(BrowserThread::UI); 182 DCHECK_CURRENTLY_ON(BrowserThread::UI);
177 return CheckMediaAccessPermission(web_contents, security_origin, type, 183 return CheckMediaAccessPermission(web_contents, security_origin, type,
178 nullptr); 184 nullptr);
179 } 185 }
180 186
181 bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission( 187 bool MediaCaptureDevicesDispatcher::CheckMediaAccessPermission(
182 content::WebContents* web_contents, 188 content::WebContents* web_contents,
183 const GURL& security_origin, 189 const GURL& security_origin,
184 content::MediaStreamType type, 190 content::MediaStreamType type,
185 const extensions::Extension* extension) { 191 const extensions::Extension* extension) {
186 DCHECK_CURRENTLY_ON(BrowserThread::UI); 192 DCHECK_CURRENTLY_ON(BrowserThread::UI);
187 for (MediaAccessHandler* handler : media_access_handlers_) { 193 for (const auto& handler : media_access_handlers_) {
188 if (handler->SupportsStreamType(type, extension)) { 194 if (handler->SupportsStreamType(type, extension)) {
189 return handler->CheckMediaAccessPermission(web_contents, security_origin, 195 return handler->CheckMediaAccessPermission(web_contents, security_origin,
190 type, extension); 196 type, extension);
191 } 197 }
192 } 198 }
193 return false; 199 return false;
194 } 200 }
195 201
196 void MediaCaptureDevicesDispatcher::GetDefaultDevicesForProfile( 202 void MediaCaptureDevicesDispatcher::GetDefaultDevicesForProfile(
197 Profile* profile, 203 Profile* profile,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 observer.OnUpdateVideoDevices(devices); 354 observer.OnUpdateVideoDevices(devices);
349 } 355 }
350 356
351 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread( 357 void MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread(
352 int render_process_id, 358 int render_process_id,
353 int render_frame_id, 359 int render_frame_id,
354 int page_request_id, 360 int page_request_id,
355 const GURL& security_origin, 361 const GURL& security_origin,
356 content::MediaStreamType stream_type, 362 content::MediaStreamType stream_type,
357 content::MediaRequestState state) { 363 content::MediaRequestState state) {
358 for (MediaAccessHandler* handler : media_access_handlers_) { 364 for (const auto& handler : media_access_handlers_) {
359 if (handler->SupportsStreamType(stream_type, nullptr)) { 365 if (handler->SupportsStreamType(stream_type, nullptr)) {
360 handler->UpdateMediaRequestState(render_process_id, render_frame_id, 366 handler->UpdateMediaRequestState(render_process_id, render_frame_id,
361 page_request_id, stream_type, state); 367 page_request_id, stream_type, state);
362 break; 368 break;
363 } 369 }
364 } 370 }
365 371
366 #if defined(OS_CHROMEOS) 372 #if defined(OS_CHROMEOS)
367 if (IsOriginForCasting(security_origin) && IsVideoMediaType(stream_type)) { 373 if (IsOriginForCasting(security_origin) && IsVideoMediaType(stream_type)) {
368 // Notify ash that casting state has changed. 374 // Notify ash that casting state has changed.
(...skipping 17 matching lines...) Expand all
386 DCHECK_CURRENTLY_ON(BrowserThread::UI); 392 DCHECK_CURRENTLY_ON(BrowserThread::UI);
387 for (auto& observer : observers_) 393 for (auto& observer : observers_)
388 observer.OnCreatingAudioStream(render_process_id, render_frame_id); 394 observer.OnCreatingAudioStream(render_process_id, render_frame_id);
389 } 395 }
390 396
391 bool MediaCaptureDevicesDispatcher::IsInsecureCapturingInProgress( 397 bool MediaCaptureDevicesDispatcher::IsInsecureCapturingInProgress(
392 int render_process_id, 398 int render_process_id,
393 int render_frame_id) { 399 int render_frame_id) {
394 DCHECK_CURRENTLY_ON(BrowserThread::UI); 400 DCHECK_CURRENTLY_ON(BrowserThread::UI);
395 #if BUILDFLAG(ENABLE_EXTENSIONS) 401 #if BUILDFLAG(ENABLE_EXTENSIONS)
396 for (MediaAccessHandler* handler : media_access_handlers_) { 402 for (const auto& handler : media_access_handlers_) {
397 if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE, 403 if (handler->SupportsStreamType(content::MEDIA_DESKTOP_VIDEO_CAPTURE,
398 nullptr) || 404 nullptr) ||
399 handler->SupportsStreamType(content::MEDIA_TAB_VIDEO_CAPTURE, 405 handler->SupportsStreamType(content::MEDIA_TAB_VIDEO_CAPTURE,
400 nullptr)) { 406 nullptr)) {
401 if (ToCaptureAccessHandlerBase(handler)->IsInsecureCapturingInProgress( 407 if (ToCaptureAccessHandlerBase(handler.get())
402 render_process_id, render_frame_id)) 408 ->IsInsecureCapturingInProgress(render_process_id,
409 render_frame_id))
403 return true; 410 return true;
404 } 411 }
405 } 412 }
406 #endif 413 #endif
407 return false; 414 return false;
408 } 415 }
409 416
410 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices( 417 void MediaCaptureDevicesDispatcher::SetTestAudioCaptureDevices(
411 const MediaStreamDevices& devices) { 418 const MediaStreamDevices& devices) {
412 test_audio_devices_ = devices; 419 test_audio_devices_ = devices;
(...skipping 27 matching lines...) Expand all
440 int render_frame_id, 447 int render_frame_id,
441 int page_request_id, 448 int page_request_id,
442 content::MediaStreamType stream_type, 449 content::MediaStreamType stream_type,
443 bool is_secure) { 450 bool is_secure) {
444 DCHECK_CURRENTLY_ON(BrowserThread::UI); 451 DCHECK_CURRENTLY_ON(BrowserThread::UI);
445 if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE && 452 if (stream_type != content::MEDIA_TAB_VIDEO_CAPTURE &&
446 stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE) 453 stream_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE)
447 return; 454 return;
448 455
449 #if BUILDFLAG(ENABLE_EXTENSIONS) 456 #if BUILDFLAG(ENABLE_EXTENSIONS)
450 for (MediaAccessHandler* handler : media_access_handlers_) { 457 for (const auto& handler : media_access_handlers_) {
451 if (handler->SupportsStreamType(stream_type, nullptr)) { 458 if (handler->SupportsStreamType(stream_type, nullptr)) {
452 ToCaptureAccessHandlerBase(handler)->UpdateCapturingLinkSecured( 459 ToCaptureAccessHandlerBase(handler.get())
453 render_process_id, render_frame_id, page_request_id, is_secure); 460 ->UpdateCapturingLinkSecured(render_process_id, render_frame_id,
461 page_request_id, is_secure);
454 break; 462 break;
455 } 463 }
456 } 464 }
457 #endif 465 #endif
458 } 466 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698