Index: chrome/browser/media/media_stream_devices_controller.cc |
diff --git a/chrome/browser/media/media_stream_devices_controller.cc b/chrome/browser/media/media_stream_devices_controller.cc |
index 26d411d7fb394de870e181d1dd35ac3cc146341b..08a9fa832535bebdcf89e687008f950742d631b5 100644 |
--- a/chrome/browser/media/media_stream_devices_controller.cc |
+++ b/chrome/browser/media/media_stream_devices_controller.cc |
@@ -74,17 +74,21 @@ bool ContentTypeIsRequested(content::PermissionType type, |
using PermissionActionCallback = |
base::Callback<void(content::PermissionType, const GURL&)>; |
+void RecordSinglePermissionAction(const content::MediaStreamRequest& request, |
+ content::PermissionType permission_type, |
+ PermissionActionCallback callback) { |
+ if (ContentTypeIsRequested(permission_type, request)) { |
+ callback.Run(permission_type, request.security_origin); |
+ } |
+} |
+ |
// Calls |action_function| for each permission requested by |request|. |
void RecordPermissionAction(const content::MediaStreamRequest& request, |
PermissionActionCallback callback) { |
- if (ContentTypeIsRequested(content::PermissionType::VIDEO_CAPTURE, request)) { |
- callback.Run(content::PermissionType::VIDEO_CAPTURE, |
- request.security_origin); |
- } |
- if (ContentTypeIsRequested(content::PermissionType::AUDIO_CAPTURE, request)) { |
- callback.Run(content::PermissionType::AUDIO_CAPTURE, |
- request.security_origin); |
- } |
+ RecordSinglePermissionAction(request, content::PermissionType::AUDIO_CAPTURE, |
+ callback); |
+ RecordSinglePermissionAction(request, content::PermissionType::VIDEO_CAPTURE, |
+ callback); |
} |
// This helper class helps to measure the number of media stream requests that |
@@ -295,6 +299,28 @@ void MediaStreamDevicesController::PermissionDenied() { |
content::MEDIA_DEVICE_PERMISSION_DENIED); |
} |
+void MediaStreamDevicesController::GroupedRequestFinished(bool audio_accepted, |
Sergey Ulanov
2016/06/07 21:06:54
Do we still need PermissionGranted() and Permissio
tsergeant
2016/06/07 23:31:59
I think they are still necessary at the moment. On
|
+ bool video_accepted) { |
+ RecordSinglePermissionAction( |
+ request_, content::PermissionType::AUDIO_CAPTURE, |
+ base::Bind(audio_accepted ? PermissionUmaUtil::PermissionGranted |
+ : PermissionUmaUtil::PermissionDenied)); |
+ RecordSinglePermissionAction( |
+ request_, content::PermissionType::VIDEO_CAPTURE, |
+ base::Bind(video_accepted ? PermissionUmaUtil::PermissionGranted |
+ : PermissionUmaUtil::PermissionDenied)); |
+ |
+ ContentSetting audio_setting = |
+ audio_accepted ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK; |
+ ContentSetting video_setting = |
+ video_accepted ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK; |
+ RunCallback(GetNewSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
+ old_audio_setting_, audio_setting), |
+ GetNewSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
+ old_video_setting_, video_setting), |
+ content::MEDIA_DEVICE_PERMISSION_DENIED); |
+} |
+ |
void MediaStreamDevicesController::Cancelled() { |
RecordPermissionAction( |
request_, base::Bind(PermissionUmaUtil::PermissionDismissed)); |