| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/options/content_settings_handler.h" | 5 #include "chrome/browser/ui/webui/options/content_settings_handler.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 case CONTENT_SETTING_BLOCK: | 116 case CONTENT_SETTING_BLOCK: |
| 117 return "block"; | 117 return "block"; |
| 118 case CONTENT_SETTING_SESSION_ONLY: | 118 case CONTENT_SETTING_SESSION_ONLY: |
| 119 return "session"; | 119 return "session"; |
| 120 case CONTENT_SETTING_DEFAULT: | 120 case CONTENT_SETTING_DEFAULT: |
| 121 return "default"; | 121 return "default"; |
| 122 case CONTENT_SETTING_NUM_SETTINGS: | 122 case CONTENT_SETTING_NUM_SETTINGS: |
| 123 NOTREACHED(); | 123 NOTREACHED(); |
| 124 } | 124 } |
| 125 | 125 |
| 126 return ""; | 126 return std::string(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 ContentSetting ContentSettingFromString(const std::string& name) { | 129 ContentSetting ContentSettingFromString(const std::string& name) { |
| 130 if (name == "allow") | 130 if (name == "allow") |
| 131 return CONTENT_SETTING_ALLOW; | 131 return CONTENT_SETTING_ALLOW; |
| 132 if (name == "ask") | 132 if (name == "ask") |
| 133 return CONTENT_SETTING_ASK; | 133 return CONTENT_SETTING_ASK; |
| 134 if (name == "block") | 134 if (name == "block") |
| 135 return CONTENT_SETTING_BLOCK; | 135 return CONTENT_SETTING_BLOCK; |
| 136 if (name == "session") | 136 if (name == "session") |
| 137 return CONTENT_SETTING_SESSION_ONLY; | 137 return CONTENT_SETTING_SESSION_ONLY; |
| 138 | 138 |
| 139 NOTREACHED() << name << " is not a recognized content setting."; | 139 NOTREACHED() << name << " is not a recognized content setting."; |
| 140 return CONTENT_SETTING_DEFAULT; | 140 return CONTENT_SETTING_DEFAULT; |
| 141 } | 141 } |
| 142 | 142 |
| 143 // Create a DictionaryValue* that will act as a data source for a single row | 143 // Create a DictionaryValue* that will act as a data source for a single row |
| 144 // in a HostContentSettingsMap-controlled exceptions table (e.g., cookies). | 144 // in a HostContentSettingsMap-controlled exceptions table (e.g., cookies). |
| 145 // Ownership of the pointer is passed to the caller. | 145 // Ownership of the pointer is passed to the caller. |
| 146 DictionaryValue* GetExceptionForPage( | 146 DictionaryValue* GetExceptionForPage( |
| 147 const ContentSettingsPattern& pattern, | 147 const ContentSettingsPattern& pattern, |
| 148 const ContentSettingsPattern& secondary_pattern, | 148 const ContentSettingsPattern& secondary_pattern, |
| 149 const ContentSetting& setting, | 149 const ContentSetting& setting, |
| 150 const std::string& provider_name) { | 150 const std::string& provider_name) { |
| 151 DictionaryValue* exception = new DictionaryValue(); | 151 DictionaryValue* exception = new DictionaryValue(); |
| 152 exception->SetString(kOrigin, pattern.ToString()); | 152 exception->SetString(kOrigin, pattern.ToString()); |
| 153 exception->SetString(kEmbeddingOrigin, | 153 exception->SetString(kEmbeddingOrigin, |
| 154 secondary_pattern == ContentSettingsPattern::Wildcard() ? "" : | 154 secondary_pattern == ContentSettingsPattern::Wildcard() |
| 155 secondary_pattern.ToString()); | 155 ? std::string() |
| 156 : secondary_pattern.ToString()); |
| 156 exception->SetString(kSetting, ContentSettingToString(setting)); | 157 exception->SetString(kSetting, ContentSettingToString(setting)); |
| 157 exception->SetString(kSource, provider_name); | 158 exception->SetString(kSource, provider_name); |
| 158 return exception; | 159 return exception; |
| 159 } | 160 } |
| 160 | 161 |
| 161 // Create a DictionaryValue* that will act as a data source for a single row | 162 // Create a DictionaryValue* that will act as a data source for a single row |
| 162 // in the Geolocation exceptions table. Ownership of the pointer is passed to | 163 // in the Geolocation exceptions table. Ownership of the pointer is passed to |
| 163 // the caller. | 164 // the caller. |
| 164 DictionaryValue* GetGeolocationExceptionForPage( | 165 DictionaryValue* GetGeolocationExceptionForPage( |
| 165 const ContentSettingsPattern& origin, | 166 const ContentSettingsPattern& origin, |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 597 filter_settings.SetString(group_name + ".value", | 598 filter_settings.SetString(group_name + ".value", |
| 598 ContentSettingToString(CONTENT_SETTING_BLOCK)); | 599 ContentSettingToString(CONTENT_SETTING_BLOCK)); |
| 599 filter_settings.SetString(group_name + ".managedBy", "policy"); | 600 filter_settings.SetString(group_name + ".managedBy", "policy"); |
| 600 web_ui()->CallJavascriptFunction( | 601 web_ui()->CallJavascriptFunction( |
| 601 "ContentSettings.setContentFilterSettingsValue", filter_settings); | 602 "ContentSettings.setContentFilterSettingsValue", filter_settings); |
| 602 } | 603 } |
| 603 | 604 |
| 604 media_ui_settings.SetString("askText", "mediaStreamAsk"); | 605 media_ui_settings.SetString("askText", "mediaStreamAsk"); |
| 605 media_ui_settings.SetString("blockText", "mediaStreamBlock"); | 606 media_ui_settings.SetString("blockText", "mediaStreamBlock"); |
| 606 media_ui_settings.SetBoolean("showBubble", false); | 607 media_ui_settings.SetBoolean("showBubble", false); |
| 607 media_ui_settings.SetString("bubbleText", ""); | 608 media_ui_settings.SetString("bubbleText", std::string()); |
| 608 | 609 |
| 609 web_ui()->CallJavascriptFunction("ContentSettings.updateMediaUI", | 610 web_ui()->CallJavascriptFunction("ContentSettings.updateMediaUI", |
| 610 media_ui_settings); | 611 media_ui_settings); |
| 611 } | 612 } |
| 612 | 613 |
| 613 std::string ContentSettingsHandler::GetSettingDefaultFromModel( | 614 std::string ContentSettingsHandler::GetSettingDefaultFromModel( |
| 614 ContentSettingsType type, std::string* provider_id) { | 615 ContentSettingsType type, std::string* provider_id) { |
| 615 Profile* profile = Profile::FromWebUI(web_ui()); | 616 Profile* profile = Profile::FromWebUI(web_ui()); |
| 616 ContentSetting default_setting; | 617 ContentSetting default_setting; |
| 617 if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { | 618 if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 DCHECK(rv); | 1046 DCHECK(rv); |
| 1046 | 1047 |
| 1047 std::string pattern; | 1048 std::string pattern; |
| 1048 rv = args->GetString(arg_index++, &pattern); | 1049 rv = args->GetString(arg_index++, &pattern); |
| 1049 DCHECK(rv); | 1050 DCHECK(rv); |
| 1050 | 1051 |
| 1051 HostContentSettingsMap* settings_map = | 1052 HostContentSettingsMap* settings_map = |
| 1052 mode == "normal" ? GetContentSettingsMap() : | 1053 mode == "normal" ? GetContentSettingsMap() : |
| 1053 GetOTRContentSettingsMap(); | 1054 GetOTRContentSettingsMap(); |
| 1054 if (settings_map) { | 1055 if (settings_map) { |
| 1055 settings_map->SetWebsiteSetting( | 1056 settings_map->SetWebsiteSetting(ContentSettingsPattern::FromString(pattern), |
| 1056 ContentSettingsPattern::FromString(pattern), | 1057 ContentSettingsPattern::Wildcard(), |
| 1057 ContentSettingsPattern::Wildcard(), | 1058 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
| 1058 CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, | 1059 std::string(), |
| 1059 "", | 1060 NULL); |
| 1060 NULL); | 1061 settings_map->SetWebsiteSetting(ContentSettingsPattern::FromString(pattern), |
| 1061 settings_map->SetWebsiteSetting( | 1062 ContentSettingsPattern::Wildcard(), |
| 1062 ContentSettingsPattern::FromString(pattern), | 1063 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
| 1063 ContentSettingsPattern::Wildcard(), | 1064 std::string(), |
| 1064 CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, | 1065 NULL); |
| 1065 "", | |
| 1066 NULL); | |
| 1067 } | 1066 } |
| 1068 } | 1067 } |
| 1069 | 1068 |
| 1070 void ContentSettingsHandler::RemoveExceptionFromHostContentSettingsMap( | 1069 void ContentSettingsHandler::RemoveExceptionFromHostContentSettingsMap( |
| 1071 const ListValue* args, size_t arg_index, | 1070 const ListValue* args, size_t arg_index, |
| 1072 ContentSettingsType type) { | 1071 ContentSettingsType type) { |
| 1073 std::string mode; | 1072 std::string mode; |
| 1074 bool rv = args->GetString(arg_index++, &mode); | 1073 bool rv = args->GetString(arg_index++, &mode); |
| 1075 DCHECK(rv); | 1074 DCHECK(rv); |
| 1076 | 1075 |
| 1077 std::string pattern; | 1076 std::string pattern; |
| 1078 rv = args->GetString(arg_index++, &pattern); | 1077 rv = args->GetString(arg_index++, &pattern); |
| 1079 DCHECK(rv); | 1078 DCHECK(rv); |
| 1080 | 1079 |
| 1081 std::string secondary_pattern; | 1080 std::string secondary_pattern; |
| 1082 rv = args->GetString(arg_index++, &secondary_pattern); | 1081 rv = args->GetString(arg_index++, &secondary_pattern); |
| 1083 DCHECK(rv); | 1082 DCHECK(rv); |
| 1084 | 1083 |
| 1085 HostContentSettingsMap* settings_map = | 1084 HostContentSettingsMap* settings_map = |
| 1086 mode == "normal" ? GetContentSettingsMap() : | 1085 mode == "normal" ? GetContentSettingsMap() : |
| 1087 GetOTRContentSettingsMap(); | 1086 GetOTRContentSettingsMap(); |
| 1088 if (settings_map) { | 1087 if (settings_map) { |
| 1089 settings_map->SetWebsiteSetting( | 1088 settings_map->SetWebsiteSetting( |
| 1090 ContentSettingsPattern::FromString(pattern), | 1089 ContentSettingsPattern::FromString(pattern), |
| 1091 secondary_pattern.empty() ? ContentSettingsPattern::Wildcard() : | 1090 secondary_pattern.empty() |
| 1092 ContentSettingsPattern::FromString(secondary_pattern), | 1091 ? ContentSettingsPattern::Wildcard() |
| 1092 : ContentSettingsPattern::FromString(secondary_pattern), |
| 1093 type, | 1093 type, |
| 1094 "", | 1094 std::string(), |
| 1095 NULL); | 1095 NULL); |
| 1096 } | 1096 } |
| 1097 } | 1097 } |
| 1098 | 1098 |
| 1099 void ContentSettingsHandler::RegisterMessages() { | 1099 void ContentSettingsHandler::RegisterMessages() { |
| 1100 web_ui()->RegisterMessageCallback("setContentFilter", | 1100 web_ui()->RegisterMessageCallback("setContentFilter", |
| 1101 base::Bind(&ContentSettingsHandler::SetContentFilter, | 1101 base::Bind(&ContentSettingsHandler::SetContentFilter, |
| 1102 base::Unretained(this))); | 1102 base::Unretained(this))); |
| 1103 web_ui()->RegisterMessageCallback("removeException", | 1103 web_ui()->RegisterMessageCallback("removeException", |
| 1104 base::Bind(&ContentSettingsHandler::RemoveException, | 1104 base::Bind(&ContentSettingsHandler::RemoveException, |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1252 mode == "normal" ? GetContentSettingsMap() : | 1252 mode == "normal" ? GetContentSettingsMap() : |
| 1253 GetOTRContentSettingsMap(); | 1253 GetOTRContentSettingsMap(); |
| 1254 | 1254 |
| 1255 // The settings map could be null if the mode was OTR but the OTR profile | 1255 // The settings map could be null if the mode was OTR but the OTR profile |
| 1256 // got destroyed before we received this message. | 1256 // got destroyed before we received this message. |
| 1257 if (!settings_map) | 1257 if (!settings_map) |
| 1258 return; | 1258 return; |
| 1259 settings_map->SetContentSetting(ContentSettingsPattern::FromString(pattern), | 1259 settings_map->SetContentSetting(ContentSettingsPattern::FromString(pattern), |
| 1260 ContentSettingsPattern::Wildcard(), | 1260 ContentSettingsPattern::Wildcard(), |
| 1261 type, | 1261 type, |
| 1262 "", | 1262 std::string(), |
| 1263 ContentSettingFromString(setting)); | 1263 ContentSettingFromString(setting)); |
| 1264 } | 1264 } |
| 1265 } | 1265 } |
| 1266 | 1266 |
| 1267 void ContentSettingsHandler::CheckExceptionPatternValidity( | 1267 void ContentSettingsHandler::CheckExceptionPatternValidity( |
| 1268 const ListValue* args) { | 1268 const ListValue* args) { |
| 1269 size_t arg_i = 0; | 1269 size_t arg_i = 0; |
| 1270 std::string type_string; | 1270 std::string type_string; |
| 1271 CHECK(args->GetString(arg_i++, &type_string)); | 1271 CHECK(args->GetString(arg_i++, &type_string)); |
| 1272 std::string mode_string; | 1272 std::string mode_string; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1386 media_settings_.flash_default_setting, | 1386 media_settings_.flash_default_setting, |
| 1387 media_settings_.flash_exceptions, | 1387 media_settings_.flash_exceptions, |
| 1388 media_settings_.policy_disable_audio, | 1388 media_settings_.policy_disable_audio, |
| 1389 media_settings_.policy_disable_video)) { | 1389 media_settings_.policy_disable_video)) { |
| 1390 ShowFlashMediaLink(EXCEPTIONS, true); | 1390 ShowFlashMediaLink(EXCEPTIONS, true); |
| 1391 } | 1391 } |
| 1392 } | 1392 } |
| 1393 } | 1393 } |
| 1394 | 1394 |
| 1395 } // namespace options | 1395 } // namespace options |
| OLD | NEW |