| 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 3ea05a66ad970ef0288bbd1427a2cdd8780c7e53..2324d552104543101577f4c402c6cfa9ebad8d55 100644
|
| --- a/chrome/browser/media/media_stream_devices_controller.cc
|
| +++ b/chrome/browser/media/media_stream_devices_controller.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/content_settings/content_settings_provider.h"
|
| #include "chrome/browser/content_settings/host_content_settings_map.h"
|
| +#include "chrome/browser/content_settings/tab_specific_content_settings.h"
|
| #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h"
|
| #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h"
|
| #include "chrome/browser/media/media_capture_devices_dispatcher.h"
|
| @@ -21,10 +22,6 @@
|
|
|
| using content::BrowserThread;
|
|
|
| -// TODO(xians): Remove this when the Omnibar UI has been completed.
|
| -// See http://crbug.com/167263 for more details.
|
| -#define ALLOW_STICKY_DENY 0
|
| -
|
| namespace {
|
|
|
| bool HasAnyAvailableDevice() {
|
| @@ -42,9 +39,11 @@ bool HasAnyAvailableDevice() {
|
|
|
| MediaStreamDevicesController::MediaStreamDevicesController(
|
| Profile* profile,
|
| + TabSpecificContentSettings* content_settings,
|
| const content::MediaStreamRequest& request,
|
| const content::MediaResponseCallback& callback)
|
| : profile_(profile),
|
| + content_settings_(content_settings),
|
| request_(request),
|
| callback_(callback),
|
| has_audio_(content::IsAudioMediaType(request.audio_type) &&
|
| @@ -121,6 +120,9 @@ const std::string& MediaStreamDevicesController::GetSecurityOriginSpec() const {
|
| }
|
|
|
| void MediaStreamDevicesController::Accept(bool update_content_setting) {
|
| + content_settings_->OnMediaStreamAccessed();
|
| +
|
| + // Get the default devices for the request.
|
| content::MediaStreamDevices devices;
|
| if (has_audio_ || has_video_) {
|
| switch (request_.request_type) {
|
| @@ -143,7 +145,7 @@ void MediaStreamDevicesController::Accept(bool update_content_setting) {
|
| break;
|
| }
|
|
|
| - if (update_content_setting && IsSchemeSecure() && !devices.empty())
|
| + if (update_content_setting && IsSchemeSecure() && !devices.empty())
|
| SetPermission(true);
|
| }
|
|
|
| @@ -151,10 +153,13 @@ void MediaStreamDevicesController::Accept(bool update_content_setting) {
|
| }
|
|
|
| void MediaStreamDevicesController::Deny(bool update_content_setting) {
|
| -#if ALLOW_STICKY_DENY
|
| + // TODO(markusheintz): Replace CONTENT_SETTINGS_TYPE_MEDIA_STREAM with the
|
| + // appropriate new CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC and
|
| + // CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA.
|
| + content_settings_->OnContentBlocked(CONTENT_SETTINGS_TYPE_MEDIASTREAM,
|
| + std::string());
|
| if (update_content_setting)
|
| SetPermission(false);
|
| -#endif
|
|
|
| callback_.Run(content::MediaStreamDevices());
|
| }
|
| @@ -200,7 +205,6 @@ bool MediaStreamDevicesController::IsRequestAllowedByDefault() const {
|
| }
|
|
|
| bool MediaStreamDevicesController::IsRequestBlockedByDefault() const {
|
| -#if ALLOW_STICKY_DENY
|
| if (has_audio_ &&
|
| profile_->GetHostContentSettingsMap()->GetContentSetting(
|
| request_.security_origin,
|
| @@ -220,21 +224,17 @@ bool MediaStreamDevicesController::IsRequestBlockedByDefault() const {
|
| }
|
|
|
| return true;
|
| -#else
|
| - return false;
|
| -#endif
|
| }
|
|
|
| bool MediaStreamDevicesController::IsDefaultMediaAccessBlocked() const {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -#if ALLOW_STICKY_DENY
|
| + // TODO(markusheintz): Replace CONTENT_SETTINGS_TYPE_MEDIA_STREAM with the
|
| + // appropriate new CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC and
|
| + // CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA.
|
| ContentSetting current_setting =
|
| profile_->GetHostContentSettingsMap()->GetDefaultContentSetting(
|
| CONTENT_SETTINGS_TYPE_MEDIASTREAM, NULL);
|
| return (current_setting == CONTENT_SETTING_BLOCK);
|
| -#else
|
| - return false;
|
| -#endif
|
| }
|
|
|
| void MediaStreamDevicesController::HandleTapMediaRequest() {
|
| @@ -267,6 +267,9 @@ bool MediaStreamDevicesController::IsSchemeSecure() const {
|
| }
|
|
|
| bool MediaStreamDevicesController::ShouldAlwaysAllowOrigin() const {
|
| + // TODO(markusheintz): Replace CONTENT_SETTINGS_TYPE_MEDIA_STREAM with the
|
| + // appropriate new CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC and
|
| + // CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA.
|
| return profile_->GetHostContentSettingsMap()->ShouldAllowAllContent(
|
| request_.security_origin, request_.security_origin,
|
| CONTENT_SETTINGS_TYPE_MEDIASTREAM);
|
|
|