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

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

Issue 2019573002: Permissions: Allow control of individual requests in media permission infobars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Bracket nit Created 4 years, 6 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_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));
« no previous file with comments | « chrome/browser/media/media_stream_devices_controller.h ('k') | chrome/browser/media/media_stream_infobar_delegate_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698