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/extensions/api/content_settings/content_settings_api.h" | 5 #include "chrome/browser/extensions/api/content_settings/content_settings_api.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 namespace Clear = extensions::api::content_settings::ContentSetting::Clear; | 35 namespace Clear = extensions::api::content_settings::ContentSetting::Clear; |
36 namespace Get = extensions::api::content_settings::ContentSetting::Get; | 36 namespace Get = extensions::api::content_settings::ContentSetting::Get; |
37 namespace Set = extensions::api::content_settings::ContentSetting::Set; | 37 namespace Set = extensions::api::content_settings::ContentSetting::Set; |
38 namespace pref_helpers = extensions::preference_helpers; | 38 namespace pref_helpers = extensions::preference_helpers; |
39 namespace pref_keys = extensions::preference_api_constants; | 39 namespace pref_keys = extensions::preference_api_constants; |
40 | 40 |
41 namespace { | 41 namespace { |
42 | 42 |
43 const std::vector<webkit::WebPluginInfo>* g_testing_plugins_; | 43 const std::vector<webkit::WebPluginInfo>* g_testing_plugins_; |
44 | 44 |
45 bool RemoveContentType(ListValue* args, ContentSettingsType* content_type) { | 45 bool RemoveContentType(base::ListValue* args, |
| 46 ContentSettingsType* content_type) { |
46 std::string content_type_str; | 47 std::string content_type_str; |
47 if (!args->GetString(0, &content_type_str)) | 48 if (!args->GetString(0, &content_type_str)) |
48 return false; | 49 return false; |
49 // We remove the ContentSettingsType parameter since this is added by the | 50 // We remove the ContentSettingsType parameter since this is added by the |
50 // renderer, and is not part of the JSON schema. | 51 // renderer, and is not part of the JSON schema. |
51 args->Remove(0, NULL); | 52 args->Remove(0, NULL); |
52 *content_type = | 53 *content_type = |
53 extensions::content_settings_helpers::StringToContentSettingsType( | 54 extensions::content_settings_helpers::StringToContentSettingsType( |
54 content_type_str); | 55 content_type_str); |
55 return *content_type != CONTENT_SETTINGS_TYPE_DEFAULT; | 56 return *content_type != CONTENT_SETTINGS_TYPE_DEFAULT; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 if (content_type == CONTENT_SETTINGS_TYPE_COOKIES) { | 154 if (content_type == CONTENT_SETTINGS_TYPE_COOKIES) { |
154 // TODO(jochen): Do we return the value for setting or for reading cookies? | 155 // TODO(jochen): Do we return the value for setting or for reading cookies? |
155 bool setting_cookie = false; | 156 bool setting_cookie = false; |
156 setting = cookie_settings->GetCookieSetting(primary_url, secondary_url, | 157 setting = cookie_settings->GetCookieSetting(primary_url, secondary_url, |
157 setting_cookie, NULL); | 158 setting_cookie, NULL); |
158 } else { | 159 } else { |
159 setting = map->GetContentSetting(primary_url, secondary_url, content_type, | 160 setting = map->GetContentSetting(primary_url, secondary_url, content_type, |
160 resource_identifier); | 161 resource_identifier); |
161 } | 162 } |
162 | 163 |
163 DictionaryValue* result = new DictionaryValue(); | 164 base::DictionaryValue* result = new base::DictionaryValue(); |
164 result->SetString(keys::kContentSettingKey, | 165 result->SetString(keys::kContentSettingKey, |
165 helpers::ContentSettingToString(setting)); | 166 helpers::ContentSettingToString(setting)); |
166 | 167 |
167 SetResult(result); | 168 SetResult(result); |
168 | 169 |
169 return true; | 170 return true; |
170 } | 171 } |
171 | 172 |
172 bool ContentSettingsContentSettingSetFunction::RunImpl() { | 173 bool ContentSettingsContentSettingSetFunction::RunImpl() { |
173 ContentSettingsType content_type; | 174 ContentSettingsType content_type; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 } else { | 268 } else { |
268 OnGotPlugins(*g_testing_plugins_); | 269 OnGotPlugins(*g_testing_plugins_); |
269 } | 270 } |
270 return true; | 271 return true; |
271 } | 272 } |
272 | 273 |
273 void ContentSettingsContentSettingGetResourceIdentifiersFunction::OnGotPlugins( | 274 void ContentSettingsContentSettingGetResourceIdentifiersFunction::OnGotPlugins( |
274 const std::vector<webkit::WebPluginInfo>& plugins) { | 275 const std::vector<webkit::WebPluginInfo>& plugins) { |
275 PluginFinder* finder = PluginFinder::GetInstance(); | 276 PluginFinder* finder = PluginFinder::GetInstance(); |
276 std::set<std::string> group_identifiers; | 277 std::set<std::string> group_identifiers; |
277 ListValue* list = new ListValue(); | 278 base::ListValue* list = new base::ListValue(); |
278 for (std::vector<webkit::WebPluginInfo>::const_iterator it = plugins.begin(); | 279 for (std::vector<webkit::WebPluginInfo>::const_iterator it = plugins.begin(); |
279 it != plugins.end(); ++it) { | 280 it != plugins.end(); ++it) { |
280 scoped_ptr<PluginMetadata> plugin_metadata(finder->GetPluginMetadata(*it)); | 281 scoped_ptr<PluginMetadata> plugin_metadata(finder->GetPluginMetadata(*it)); |
281 const std::string& group_identifier = plugin_metadata->identifier(); | 282 const std::string& group_identifier = plugin_metadata->identifier(); |
282 if (group_identifiers.find(group_identifier) != group_identifiers.end()) | 283 if (group_identifiers.find(group_identifier) != group_identifiers.end()) |
283 continue; | 284 continue; |
284 | 285 |
285 group_identifiers.insert(group_identifier); | 286 group_identifiers.insert(group_identifier); |
286 DictionaryValue* dict = new DictionaryValue(); | 287 base::DictionaryValue* dict = new base::DictionaryValue(); |
287 dict->SetString(keys::kIdKey, group_identifier); | 288 dict->SetString(keys::kIdKey, group_identifier); |
288 dict->SetString(keys::kDescriptionKey, plugin_metadata->name()); | 289 dict->SetString(keys::kDescriptionKey, plugin_metadata->name()); |
289 list->Append(dict); | 290 list->Append(dict); |
290 } | 291 } |
291 SetResult(list); | 292 SetResult(list); |
292 BrowserThread::PostTask( | 293 BrowserThread::PostTask( |
293 BrowserThread::UI, FROM_HERE, base::Bind( | 294 BrowserThread::UI, FROM_HERE, base::Bind( |
294 &ContentSettingsContentSettingGetResourceIdentifiersFunction:: | 295 &ContentSettingsContentSettingGetResourceIdentifiersFunction:: |
295 SendResponse, | 296 SendResponse, |
296 this, | 297 this, |
297 true)); | 298 true)); |
298 } | 299 } |
299 | 300 |
300 // static | 301 // static |
301 void ContentSettingsContentSettingGetResourceIdentifiersFunction:: | 302 void ContentSettingsContentSettingGetResourceIdentifiersFunction:: |
302 SetPluginsForTesting(const std::vector<webkit::WebPluginInfo>* plugins) { | 303 SetPluginsForTesting(const std::vector<webkit::WebPluginInfo>* plugins) { |
303 g_testing_plugins_ = plugins; | 304 g_testing_plugins_ = plugins; |
304 } | 305 } |
305 | 306 |
306 } // namespace extensions | 307 } // namespace extensions |
OLD | NEW |