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 cd2d2f2cfb6f1165d2a15f51d20a7360c5e6c2f7..e8c48c9b4ff28f383e366ee75607d20d556835c3 100644 |
--- a/chrome/browser/media/media_stream_devices_controller.cc |
+++ b/chrome/browser/media/media_stream_devices_controller.cc |
@@ -84,6 +84,64 @@ enum DevicePermissionActions { |
kPermissionActionsMax // Must always be last! |
}; |
+// This is a wrapper around the call to |
+// TabSpecificContentSettings::OnMediaStreamPermissionSet, precomputing the |
+// information from |request_permissions| to a form which is understood by |
+// TabSpecificContentSettings. |
+void OnMediaStreamPermissionSet( |
+ TabSpecificContentSettings* content_settings, |
+ content::WebContents* web_contents, |
+ const GURL& request_origin, |
+ const MediaStreamDevicesController::MediaStreamTypeSettingsMap& |
+ request_permissions) { |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_CAMERA_NOT_ACCESSED; |
+ std::string selected_audio_device; |
+ std::string selected_video_device; |
+ std::string requested_audio_device; |
+ std::string requested_video_device; |
+ |
+ PrefService* prefs = Profile::FromBrowserContext( |
+ web_contents->GetBrowserContext())->GetPrefs(); |
no longer working on chromium
2014/10/29 10:09:42
indentation.
vabr (Chromium)
2014/10/29 10:30:21
I believe this is indented correctly.
See "Argumen
no longer working on chromium
2014/10/30 09:59:19
In some cases git cl format is not inline with the
vabr (Chromium)
2014/10/30 10:28:39
My point here was that this particular formatting
|
+ MediaStreamDevicesController::MediaStreamTypeSettingsMap::const_iterator it = |
Bernhard Bauer
2014/10/29 09:35:17
This seems like a good place for auto :)
vabr (Chromium)
2014/10/29 10:30:21
Auto-awesome! :)
Done.
|
+ request_permissions.find(content::MEDIA_DEVICE_AUDIO_CAPTURE); |
+ if (it != request_permissions.end()) { |
+ requested_audio_device = it->second.requested_device_id; |
+ selected_audio_device = |
no longer working on chromium
2014/10/29 10:09:42
I think the correct format should be
selected_aud
vabr (Chromium)
2014/10/29 10:30:21
I'm yielding, because of consistency with the rest
|
+ requested_audio_device.empty() |
+ ? prefs->GetString(prefs::kDefaultAudioCaptureDevice) |
+ : requested_audio_device; |
+ DCHECK_NE(MediaStreamDevicesController::MEDIA_NONE, it->second.permission); |
+ bool mic_allowed = |
+ it->second.permission == MediaStreamDevicesController::MEDIA_ALLOWED; |
+ microphone_camera_state |= |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED | |
+ (mic_allowed ? 0 : TabSpecificContentSettings::MICROPHONE_BLOCKED); |
+ } |
+ |
+ it = request_permissions.find(content::MEDIA_DEVICE_VIDEO_CAPTURE); |
+ if (it != request_permissions.end()) { |
+ requested_video_device = it->second.requested_device_id; |
+ selected_video_device = |
no longer working on chromium
2014/10/29 10:09:42
ditto
vabr (Chromium)
2014/10/29 10:30:21
Done.
|
+ requested_video_device.empty() |
+ ? prefs->GetString(prefs::kDefaultVideoCaptureDevice) |
+ : requested_video_device; |
+ DCHECK_NE(MediaStreamDevicesController::MEDIA_NONE, it->second.permission); |
+ bool cam_allowed = |
+ it->second.permission == MediaStreamDevicesController::MEDIA_ALLOWED; |
+ microphone_camera_state |= |
+ TabSpecificContentSettings::CAMERA_ACCESSED | |
+ (cam_allowed ? 0 : TabSpecificContentSettings::CAMERA_BLOCKED); |
+ } |
+ |
+ content_settings->OnMediaStreamPermissionSet(request_origin, |
+ microphone_camera_state, |
+ selected_audio_device, |
+ selected_video_device, |
+ requested_audio_device, |
+ requested_video_device); |
+} |
+ |
} // namespace |
MediaStreamDevicesController::MediaStreamTypeSettings::MediaStreamTypeSettings( |
@@ -579,8 +637,10 @@ void MediaStreamDevicesController::NotifyUIRequestAccepted() const { |
if (!content_settings_) |
return; |
- content_settings_->OnMediaStreamPermissionSet(request_.security_origin, |
- request_permissions_); |
+ OnMediaStreamPermissionSet(content_settings_, |
+ web_contents_, |
+ request_.security_origin, |
+ request_permissions_); |
} |
void MediaStreamDevicesController::NotifyUIRequestDenied() { |
@@ -596,8 +656,10 @@ void MediaStreamDevicesController::NotifyUIRequestDenied() { |
MEDIA_BLOCKED_BY_USER; |
} |
- content_settings_->OnMediaStreamPermissionSet(request_.security_origin, |
- request_permissions_); |
+ OnMediaStreamPermissionSet(content_settings_, |
+ web_contents_, |
+ request_.security_origin, |
+ request_permissions_); |
} |
bool MediaStreamDevicesController::IsDeviceAudioCaptureRequestedAndAllowed() |