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 cd96282fae8837893ffe769d54ec09c2f8e183e8..4c0555f87287bc194bb62fe0142607d721c4a81d 100644 |
--- a/chrome/browser/media/media_stream_devices_controller.cc |
+++ b/chrome/browser/media/media_stream_devices_controller.cc |
@@ -339,9 +339,11 @@ void MediaStreamDevicesController::StorePermission( |
ContentSettingsPattern primary_pattern = |
ContentSettingsPattern::FromURLNoWildcard(request_.security_origin); |
+ bool is_pepper_request = request_.request_type == content::MEDIA_OPEN_DEVICE; |
+ |
if (IsAskingForAudio() && new_audio_setting != CONTENT_SETTING_ASK) { |
if (ShouldPersistContentSetting(new_audio_setting, request_.security_origin, |
- request_.request_type)) { |
+ is_pepper_request)) { |
profile_->GetHostContentSettingsMap()->SetContentSetting( |
primary_pattern, ContentSettingsPattern::Wildcard(), |
CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, std::string(), |
@@ -350,7 +352,7 @@ void MediaStreamDevicesController::StorePermission( |
} |
if (IsAskingForVideo() && new_video_setting != CONTENT_SETTING_ASK) { |
if (ShouldPersistContentSetting(new_video_setting, request_.security_origin, |
- request_.request_type)) { |
+ is_pepper_request)) { |
profile_->GetHostContentSettingsMap()->SetContentSetting( |
primary_pattern, ContentSettingsPattern::Wildcard(), |
CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, std::string(), |
@@ -424,8 +426,9 @@ ContentSetting MediaStreamDevicesController::GetContentSetting( |
} |
if (ContentTypeIsRequested(content_type, request)) { |
- MediaPermission permission(content_type, request.request_type, |
- request.security_origin, profile_); |
+ MediaPermission permission( |
+ content_type, request.request_type, request.security_origin, |
+ web_contents_->GetLastCommittedURL().GetOrigin(), profile_); |
return permission.GetPermissionStatusWithDeviceRequired(requested_device_id, |
denial_reason); |
} |