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

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

Issue 678023002: TabSpecificContentSettings no longer knows about MediaStreamDeviceController (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Win complilation error C4800 Created 6 years, 2 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 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()

Powered by Google App Engine
This is Rietveld 408576698