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

Side by Side Diff: chrome/common/extensions/request_media_access_permission_helper.cc

Issue 11759020: Implement a TODO in the media code: Change a "const MediaStreamRequest*" arg in various APIs to "co… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 11 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 | Annotate | Revision Log
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/common/extensions/request_media_access_permission_helper.h" 5 #include "chrome/common/extensions/request_media_access_permission_helper.h"
6 6
7 #include "chrome/common/extensions/feature_switch.h" 7 #include "chrome/common/extensions/feature_switch.h"
8 8
9 namespace extensions { 9 namespace extensions {
10 10
11 // static 11 // static
12 void RequestMediaAccessPermissionHelper::AuthorizeRequest( 12 void RequestMediaAccessPermissionHelper::AuthorizeRequest(
13 const content::MediaStreamDevices& devices, 13 const content::MediaStreamDevices& devices,
14 const content::MediaStreamRequest* request, 14 const content::MediaStreamRequest& request,
15 const content::MediaResponseCallback& callback, 15 const content::MediaResponseCallback& callback,
16 const extensions::Extension* extension, 16 const extensions::Extension* extension,
17 bool is_packaged_app) { 17 bool is_packaged_app) {
18 content::MediaStreamDevices accepted_devices; 18 content::MediaStreamDevices accepted_devices;
19 bool accepted_an_audio_device = false; 19 bool accepted_an_audio_device = false;
20 bool accepted_a_video_device = false; 20 bool accepted_a_video_device = false;
21 for (content::MediaStreamDevices::const_iterator it = 21 for (content::MediaStreamDevices::const_iterator it =
22 devices.begin(); it != devices.end(); ++it) { 22 devices.begin(); it != devices.end(); ++it) {
23 if (!accepted_an_audio_device && content::IsAudioMediaType(it->type)) { 23 if (!accepted_an_audio_device && content::IsAudioMediaType(it->type)) {
24 // Require flag and tab capture permission for tab media. 24 // Require flag and tab capture permission for tab media.
25 // Require audio capture permission for packaged apps. 25 // Require audio capture permission for packaged apps.
26 if ((request->audio_type == content::MEDIA_TAB_AUDIO_CAPTURE && 26 if ((request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE &&
27 extensions::FeatureSwitch::tab_capture()->IsEnabled() && 27 extensions::FeatureSwitch::tab_capture()->IsEnabled() &&
28 extension->HasAPIPermission(APIPermission::kTabCapture)) || 28 extension->HasAPIPermission(APIPermission::kTabCapture)) ||
29 (request->audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE && 29 (request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE &&
30 is_packaged_app && 30 is_packaged_app &&
31 extension->HasAPIPermission(APIPermission::kAudioCapture))) { 31 extension->HasAPIPermission(APIPermission::kAudioCapture))) {
32 accepted_devices.push_back(*it); 32 accepted_devices.push_back(*it);
33 accepted_an_audio_device = true; 33 accepted_an_audio_device = true;
34 } 34 }
35 } else if (!accepted_a_video_device && 35 } else if (!accepted_a_video_device &&
36 content::IsVideoMediaType(it->type)) { 36 content::IsVideoMediaType(it->type)) {
37 // Require flag and tab capture permission for tab media. 37 // Require flag and tab capture permission for tab media.
38 // Require video capture permission for packaged apps. 38 // Require video capture permission for packaged apps.
39 if ((request->video_type == content::MEDIA_TAB_VIDEO_CAPTURE && 39 if ((request.video_type == content::MEDIA_TAB_VIDEO_CAPTURE &&
40 extensions::FeatureSwitch::tab_capture()->IsEnabled() && 40 extensions::FeatureSwitch::tab_capture()->IsEnabled() &&
41 extension->HasAPIPermission(APIPermission::kTabCapture)) || 41 extension->HasAPIPermission(APIPermission::kTabCapture)) ||
42 (request->video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE && 42 (request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE &&
43 is_packaged_app && 43 is_packaged_app &&
44 extension->HasAPIPermission(APIPermission::kVideoCapture))) { 44 extension->HasAPIPermission(APIPermission::kVideoCapture))) {
45 accepted_devices.push_back(*it); 45 accepted_devices.push_back(*it);
46 accepted_a_video_device = true; 46 accepted_a_video_device = true;
47 } 47 }
48 } 48 }
49 } 49 }
50 50
51 callback.Run(accepted_devices); 51 callback.Run(accepted_devices);
52 } 52 }
53 53
54 } // namespace extensions 54 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698