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

Unified Diff: chrome/browser/ui/webui/options/content_settings_handler.cc

Issue 965103004: Stop using the MEDIASTREAM content setting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase over 1004733003. Created 5 years, 9 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/ui/webui/options/content_settings_handler.cc
diff --git a/chrome/browser/ui/webui/options/content_settings_handler.cc b/chrome/browser/ui/webui/options/content_settings_handler.cc
index 2e5ee067d27bf497e18f1d1cf177015afbf71a5d..bd2088543c178c421b694ee1611f6d60ce705321 100644
--- a/chrome/browser/ui/webui/options/content_settings_handler.cc
+++ b/chrome/browser/ui/webui/options/content_settings_handler.cc
@@ -109,9 +109,12 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen"},
{CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock"},
{CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "register-protocol-handler"},
+ // The MEDIASTREAM content setting is deprecated, but the settings for
+ // microphone and camera still live in the part of UI labeled "media-stream".
+ // TODO(msramek): Clean this up once we have a new UI for media.
{CONTENT_SETTINGS_TYPE_MEDIASTREAM, "media-stream"},
- {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic"},
- {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera"},
+ {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream"},
+ {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream"},
{CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker"},
{CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "multiple-automatic-downloads"},
{CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex"},
@@ -255,10 +258,11 @@ ContentSettingsHandler::MediaSettingsInfo::MediaSettingsInfo()
last_flash_refresh_request_id(0),
show_flash_default_link(false),
show_flash_exceptions_link(false),
- default_setting(CONTENT_SETTING_DEFAULT),
+ default_audio_setting(CONTENT_SETTING_DEFAULT),
+ default_video_setting(CONTENT_SETTING_DEFAULT),
policy_disable_audio(false),
policy_disable_video(false),
- default_setting_initialized(false),
+ default_settings_initialized(false),
exceptions_initialized(false) {
}
@@ -599,11 +603,9 @@ void ContentSettingsHandler::OnGetPermissionSettingsCompleted(
void ContentSettingsHandler::UpdateSettingDefaultFromModel(
ContentSettingsType type) {
- Profile* profile = Profile::FromWebUI(web_ui());
std::string provider_id;
ContentSetting default_setting =
- profile->GetHostContentSettingsMap()->GetDefaultContentSetting(
- type, &provider_id);
+ GetContentSettingsMap()->GetDefaultContentSetting(type, &provider_id);
// For Plugins, display the obsolete ASK setting as BLOCK.
if (type == ContentSettingsType::CONTENT_SETTINGS_TYPE_PLUGINS &&
@@ -630,10 +632,13 @@ void ContentSettingsHandler::UpdateMediaSettingsView() {
media_settings_.policy_disable_audio = audio_disabled;
media_settings_.policy_disable_video = video_disabled;
- media_settings_.default_setting =
+ media_settings_.default_audio_setting =
+ GetContentSettingsMap()->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, NULL);
+ media_settings_.default_video_setting =
GetContentSettingsMap()->GetDefaultContentSetting(
- CONTENT_SETTINGS_TYPE_MEDIASTREAM, NULL);
- media_settings_.default_setting_initialized = true;
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, NULL);
+ media_settings_.default_settings_initialized = true;
UpdateFlashMediaLinksVisibility();
base::DictionaryValue media_ui_settings;
@@ -723,10 +728,12 @@ void ContentSettingsHandler::UpdateExceptionsViewFromModel(
UpdateNotificationExceptionsView();
break;
case CONTENT_SETTINGS_TYPE_MEDIASTREAM:
- UpdateMediaSettingsView();
+ // The content settings type CONTENT_SETTINGS_TYPE_MEDIASSTREAM
+ // is deprecated.
break;
case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC:
case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA:
+ UpdateMediaSettingsView();
UpdateMediaExceptionsView();
break;
case CONTENT_SETTINGS_TYPE_MIXEDSCRIPT:
@@ -982,7 +989,11 @@ void ContentSettingsHandler::UpdateMediaExceptionsView() {
web_ui()->CallJavascriptFunction("ContentSettings.setExceptions",
type_string, media_exceptions);
- UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_MEDIASTREAM);
+ // TODO(msramek): We currently don't have a UI to show separate default
+ // settings for microphone and camera. However, SetContentFilter always sets
+ // both defaults to the same value, so it doesn't matter which one we pick
+ // to show in the UI. Makes sure to update both when we have the new media UI.
+ UpdateSettingDefaultFromModel(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC);
}
void ContentSettingsHandler::UpdateMIDISysExExceptionsView() {
@@ -1340,9 +1351,20 @@ void ContentSettingsHandler::SetContentFilter(const base::ListValue* args) {
profile = profile->GetOriginalProfile();
#endif
-
HostContentSettingsMap* map = profile->GetHostContentSettingsMap();
- map->SetDefaultContentSetting(content_type, default_setting);
+
+ // MEDIASTREAM is deprecated and the two separate settings MEDIASTREAM_CAMERA
+ // and MEDIASTREAM_MIC should be used instead. However, we still only have
+ // one pair of radio buttons that sets both settings.
+ // TODO(msramek): Clean this up once we have the new UI for media.
+ if (content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM) {
+ map->SetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, default_setting);
+ map->SetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, default_setting);
+ } else {
+ map->SetDefaultContentSetting(content_type, default_setting);
+ }
switch (content_type) {
case CONTENT_SETTINGS_TYPE_COOKIES:
@@ -1543,7 +1565,7 @@ void ContentSettingsHandler::ShowFlashMediaLink(LinkType link_type, bool show) {
void ContentSettingsHandler::UpdateFlashMediaLinksVisibility() {
if (!media_settings_.flash_settings_initialized ||
- !media_settings_.default_setting_initialized ||
+ !media_settings_.default_settings_initialized ||
!media_settings_.exceptions_initialized) {
return;
}
@@ -1566,8 +1588,10 @@ void ContentSettingsHandler::UpdateFlashMediaLinksVisibility() {
// settings.
if (!(media_settings_.policy_disable_audio &&
media_settings_.policy_disable_video) &&
- media_settings_.flash_default_setting !=
- media_settings_.default_setting) {
+ ((media_settings_.flash_default_setting !=
+ media_settings_.default_audio_setting) ||
+ (media_settings_.flash_default_setting !=
+ media_settings_.default_video_setting))) {
ShowFlashMediaLink(DEFAULT_SETTING, true);
}
}
@@ -1575,9 +1599,11 @@ void ContentSettingsHandler::UpdateFlashMediaLinksVisibility() {
// If audio or video capture is disabled by policy, we skip comparison of
// exceptions for audio or video capture, respectively.
if (!PepperFlashContentSettingsUtils::AreMediaExceptionsEqual(
- media_settings_.default_setting,
+ media_settings_.default_audio_setting,
+ media_settings_.default_video_setting,
media_settings_.exceptions,
media_settings_.flash_default_setting,
+ media_settings_.flash_default_setting,
media_settings_.flash_exceptions,
media_settings_.policy_disable_audio,
media_settings_.policy_disable_video)) {

Powered by Google App Engine
This is Rietveld 408576698