Index: chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc |
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc |
index 0df6c26682c6afae520d7d603da1e719eee00985..24fbff50403bdb907b6456f70fa717fd966193fc 100644 |
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc |
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "base/auto_reset.h" |
#include "base/command_line.h" |
+#include "base/prefs/pref_service.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
#include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
@@ -13,6 +14,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/content_settings/content_setting_bubble_model.h" |
#include "chrome/common/chrome_switches.h" |
+#include "chrome/common/pref_names.h" |
#include "chrome/grit/generated_resources.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_profile.h" |
@@ -52,6 +54,16 @@ class ContentSettingBubbleModelTest : public ChromeRenderViewHostTestHarness { |
EXPECT_EQ(expect_clear_link, bubble_content.custom_link_enabled); |
EXPECT_FALSE(bubble_content.manage_link.empty()); |
} |
+ |
+ std::string GetDefaultAudioDevice() { |
+ PrefService* prefs = profile()->GetPrefs(); |
+ return prefs->GetString(prefs::kDefaultAudioCaptureDevice); |
+ } |
+ |
+ std::string GetDefaultVideoDevice() { |
+ PrefService* prefs = profile()->GetPrefs(); |
+ return prefs->GetString(prefs::kDefaultVideoCaptureDevice); |
+ } |
}; |
TEST_F(ContentSettingBubbleModelTest, ImageRadios) { |
@@ -119,14 +131,15 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamMicAndCamera) { |
TabSpecificContentSettings::FromWebContents(web_contents()); |
std::string request_host = "google.com"; |
GURL security_origin("http://" + request_host); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
- request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED | |
+ TabSpecificContentSettings::CAMERA_ACCESSED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ GetDefaultVideoDevice(), |
+ std::string(), |
+ std::string()); |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -180,13 +193,17 @@ TEST_F(ContentSettingBubbleModelTest, BlockedMediastreamMicAndCamera) { |
TabSpecificContentSettings* content_settings = |
TabSpecificContentSettings::FromWebContents(web_contents()); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
- request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
- content_settings->OnMediaStreamPermissionSet(url, request_permissions); |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED | |
+ TabSpecificContentSettings::MICROPHONE_BLOCKED | |
+ TabSpecificContentSettings::CAMERA_ACCESSED | |
+ TabSpecificContentSettings::CAMERA_BLOCKED; |
+ content_settings->OnMediaStreamPermissionSet(url, |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ GetDefaultVideoDevice(), |
+ std::string(), |
+ std::string()); |
{ |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -261,11 +278,15 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamContentBubble) { |
TabSpecificContentSettings* content_settings = |
TabSpecificContentSettings::FromWebContents(web_contents()); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
- content_settings->OnMediaStreamPermissionSet(url, request_permissions); |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED | |
+ TabSpecificContentSettings::MICROPHONE_BLOCKED; |
+ content_settings->OnMediaStreamPermissionSet(url, |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
{ |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -351,11 +372,15 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamContentBubbleMediaMenus) { |
TabSpecificContentSettings* content_settings = |
TabSpecificContentSettings::FromWebContents(web_contents()); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
- content_settings->OnMediaStreamPermissionSet(url, request_permissions); |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED | |
+ TabSpecificContentSettings::MICROPHONE_BLOCKED; |
+ content_settings->OnMediaStreamPermissionSet(url, |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
{ |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -405,9 +430,13 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamContentBubbleMediaMenus) { |
scoped_ptr<content::MediaStreamUI> media_stream_ui = |
indicator->RegisterMediaStream(web_contents(), audio_devices); |
media_stream_ui->OnStarted(base::Closure()); |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
- content_settings->OnMediaStreamPermissionSet(url, request_permissions); |
+ microphone_camera_state &= ~TabSpecificContentSettings::MICROPHONE_BLOCKED; |
+ content_settings->OnMediaStreamPermissionSet(url, |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
{ |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
@@ -447,9 +476,13 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamContentBubbleMediaMenus) { |
} |
// Simulate that yet another audio stream capture request was initiated. |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
- content_settings->OnMediaStreamPermissionSet(url, request_permissions); |
+ microphone_camera_state |= TabSpecificContentSettings::MICROPHONE_BLOCKED; |
+ content_settings->OnMediaStreamPermissionSet(url, |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
{ |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
@@ -482,12 +515,14 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamMic) { |
TabSpecificContentSettings::FromWebContents(web_contents()); |
std::string request_host = "google.com"; |
GURL security_origin("http://" + request_host); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -514,10 +549,13 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamMic) { |
bubble_content.media_menus.begin()->first); |
// Change the microphone access. |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
+ microphone_camera_state |= TabSpecificContentSettings::MICROPHONE_BLOCKED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
content_setting_bubble_model.reset( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
NULL, web_contents(), profile(), |
@@ -552,12 +590,14 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamCamera) { |
TabSpecificContentSettings::FromWebContents(web_contents()); |
std::string request_host = "google.com"; |
GURL security_origin("http://" + request_host); |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::CAMERA_ACCESSED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ std::string(), |
+ GetDefaultVideoDevice(), |
+ std::string(), |
+ std::string()); |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -584,10 +624,13 @@ TEST_F(ContentSettingBubbleModelTest, MediastreamCamera) { |
bubble_content.media_menus.begin()->first); |
// Change the camera access. |
- request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_BLOCKED_BY_USER; |
+ microphone_camera_state |= TabSpecificContentSettings::CAMERA_BLOCKED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ std::string(), |
+ GetDefaultVideoDevice(), |
+ std::string(), |
+ std::string()); |
content_setting_bubble_model.reset( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
NULL, web_contents(), profile(), |
@@ -624,12 +667,14 @@ TEST_F(ContentSettingBubbleModelTest, AccumulateMediastreamMicAndCamera) { |
GURL security_origin("http://" + request_host); |
// Firstly, add microphone access. |
- MediaStreamDevicesController::MediaStreamTypeSettingsMap |
- request_permissions; |
- request_permissions[content::MEDIA_DEVICE_AUDIO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
+ TabSpecificContentSettings::MicrophoneCameraState microphone_camera_state = |
+ TabSpecificContentSettings::MICROPHONE_ACCESSED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ std::string(), |
+ std::string(), |
+ std::string()); |
scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |
@@ -653,10 +698,13 @@ TEST_F(ContentSettingBubbleModelTest, AccumulateMediastreamMicAndCamera) { |
bubble_content.media_menus.begin()->first); |
// Then add camera access. |
- request_permissions[content::MEDIA_DEVICE_VIDEO_CAPTURE].permission = |
- MediaStreamDevicesController::MEDIA_ALLOWED; |
+ microphone_camera_state |= TabSpecificContentSettings::CAMERA_ACCESSED; |
content_settings->OnMediaStreamPermissionSet(security_origin, |
- request_permissions); |
+ microphone_camera_state, |
+ GetDefaultAudioDevice(), |
+ GetDefaultVideoDevice(), |
+ std::string(), |
+ std::string()); |
content_setting_bubble_model.reset( |
ContentSettingBubbleModel::CreateContentSettingBubbleModel( |