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_store.
h" | 5 #include "chrome/browser/extensions/api/content_settings/content_settings_store.
h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/debug/alias.h" | 9 #include "base/debug/alias.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 #include "base/memory/scoped_vector.h" | 12 #include "base/memory/scoped_vector.h" |
13 #include "base/stl_util.h" | 13 #include "base/stl_util.h" |
14 #include "base/strings/string_util.h" | 14 #include "base/strings/string_util.h" |
15 #include "base/values.h" | 15 #include "base/values.h" |
16 #include "chrome/browser/content_settings/content_settings_origin_identifier_val
ue_map.h" | 16 #include "chrome/browser/content_settings/content_settings_origin_identifier_val
ue_map.h" |
17 #include "chrome/browser/content_settings/content_settings_rule.h" | 17 #include "chrome/browser/content_settings/content_settings_rule.h" |
18 #include "chrome/browser/content_settings/content_settings_utils.h" | 18 #include "chrome/browser/content_settings/content_settings_utils.h" |
19 #include "chrome/browser/extensions/api/content_settings/content_settings_api_co
nstants.h" | 19 #include "chrome/browser/extensions/api/content_settings/content_settings_api_co
nstants.h" |
20 #include "chrome/browser/extensions/api/content_settings/content_settings_helper
s.h" | 20 #include "chrome/browser/extensions/api/content_settings/content_settings_helper
s.h" |
21 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
| 22 #include "extensions/common/constants.h" |
22 | 23 |
23 using content::BrowserThread; | 24 using content::BrowserThread; |
24 using content_settings::ConcatenationIterator; | 25 using content_settings::ConcatenationIterator; |
25 using content_settings::Rule; | 26 using content_settings::Rule; |
26 using content_settings::RuleIterator; | 27 using content_settings::RuleIterator; |
27 using content_settings::OriginIdentifierValueMap; | 28 using content_settings::OriginIdentifierValueMap; |
28 using content_settings::ResourceIdentifier; | 29 using content_settings::ResourceIdentifier; |
29 using content_settings::ValueToContentSetting; | 30 using content_settings::ValueToContentSetting; |
30 | 31 |
31 namespace extensions { | 32 namespace extensions { |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 OriginIdentifierValueMap::EntryMap::const_iterator it; | 255 OriginIdentifierValueMap::EntryMap::const_iterator it; |
255 for (it = map->begin(); it != map->end(); ++it) { | 256 for (it = map->begin(); it != map->end(); ++it) { |
256 scoped_ptr<RuleIterator> rule_iterator( | 257 scoped_ptr<RuleIterator> rule_iterator( |
257 map->GetRuleIterator(it->first.content_type, | 258 map->GetRuleIterator(it->first.content_type, |
258 it->first.resource_identifier, | 259 it->first.resource_identifier, |
259 NULL)); // We already hold the lock. | 260 NULL)); // We already hold the lock. |
260 while (rule_iterator->HasNext()) { | 261 while (rule_iterator->HasNext()) { |
261 const Rule& rule = rule_iterator->Next(); | 262 const Rule& rule = rule_iterator->Next(); |
262 base::DictionaryValue* setting_dict = new base::DictionaryValue(); | 263 base::DictionaryValue* setting_dict = new base::DictionaryValue(); |
263 setting_dict->SetString(keys::kPrimaryPatternKey, | 264 setting_dict->SetString(keys::kPrimaryPatternKey, |
264 rule.primary_pattern.ToString()); | 265 rule.primary_pattern.ToString( |
| 266 extensions::kExtensionScheme)); |
265 setting_dict->SetString(keys::kSecondaryPatternKey, | 267 setting_dict->SetString(keys::kSecondaryPatternKey, |
266 rule.secondary_pattern.ToString()); | 268 rule.secondary_pattern.ToString( |
| 269 extensions::kExtensionScheme)); |
267 setting_dict->SetString( | 270 setting_dict->SetString( |
268 keys::kContentSettingsTypeKey, | 271 keys::kContentSettingsTypeKey, |
269 helpers::ContentSettingsTypeToString(it->first.content_type)); | 272 helpers::ContentSettingsTypeToString(it->first.content_type)); |
270 setting_dict->SetString(keys::kResourceIdentifierKey, | 273 setting_dict->SetString(keys::kResourceIdentifierKey, |
271 it->first.resource_identifier); | 274 it->first.resource_identifier); |
272 ContentSetting content_setting = ValueToContentSetting(rule.value.get()); | 275 ContentSetting content_setting = ValueToContentSetting(rule.value.get()); |
273 DCHECK_NE(CONTENT_SETTING_DEFAULT, content_setting); | 276 DCHECK_NE(CONTENT_SETTING_DEFAULT, content_setting); |
274 setting_dict->SetString( | 277 setting_dict->SetString( |
275 keys::kContentSettingKey, | 278 keys::kContentSettingKey, |
276 helpers::ContentSettingToString(content_setting)); | 279 helpers::ContentSettingToString(content_setting)); |
(...skipping 10 matching lines...) Expand all Loading... |
287 for (base::ListValue::const_iterator it = list->begin(); | 290 for (base::ListValue::const_iterator it = list->begin(); |
288 it != list->end(); ++it) { | 291 it != list->end(); ++it) { |
289 if ((*it)->GetType() != base::Value::TYPE_DICTIONARY) { | 292 if ((*it)->GetType() != base::Value::TYPE_DICTIONARY) { |
290 NOTREACHED(); | 293 NOTREACHED(); |
291 continue; | 294 continue; |
292 } | 295 } |
293 base::DictionaryValue* dict = static_cast<base::DictionaryValue*>(*it); | 296 base::DictionaryValue* dict = static_cast<base::DictionaryValue*>(*it); |
294 std::string primary_pattern_str; | 297 std::string primary_pattern_str; |
295 dict->GetString(keys::kPrimaryPatternKey, &primary_pattern_str); | 298 dict->GetString(keys::kPrimaryPatternKey, &primary_pattern_str); |
296 ContentSettingsPattern primary_pattern = | 299 ContentSettingsPattern primary_pattern = |
297 ContentSettingsPattern::FromString(primary_pattern_str); | 300 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 301 primary_pattern_str); |
298 DCHECK(primary_pattern.IsValid()); | 302 DCHECK(primary_pattern.IsValid()); |
299 | 303 |
300 std::string secondary_pattern_str; | 304 std::string secondary_pattern_str; |
301 dict->GetString(keys::kSecondaryPatternKey, &secondary_pattern_str); | 305 dict->GetString(keys::kSecondaryPatternKey, &secondary_pattern_str); |
302 ContentSettingsPattern secondary_pattern = | 306 ContentSettingsPattern secondary_pattern = |
303 ContentSettingsPattern::FromString(secondary_pattern_str); | 307 ContentSettingsPattern::FromString(extensions::kExtensionScheme, |
| 308 secondary_pattern_str); |
304 DCHECK(secondary_pattern.IsValid()); | 309 DCHECK(secondary_pattern.IsValid()); |
305 | 310 |
306 std::string content_settings_type_str; | 311 std::string content_settings_type_str; |
307 dict->GetString(keys::kContentSettingsTypeKey, &content_settings_type_str); | 312 dict->GetString(keys::kContentSettingsTypeKey, &content_settings_type_str); |
308 ContentSettingsType content_settings_type = | 313 ContentSettingsType content_settings_type = |
309 helpers::StringToContentSettingsType(content_settings_type_str); | 314 helpers::StringToContentSettingsType(content_settings_type_str); |
310 DCHECK_NE(CONTENT_SETTINGS_TYPE_DEFAULT, content_settings_type); | 315 DCHECK_NE(CONTENT_SETTINGS_TYPE_DEFAULT, content_settings_type); |
311 | 316 |
312 std::string resource_identifier; | 317 std::string resource_identifier; |
313 dict->GetString(keys::kResourceIdentifierKey, &resource_identifier); | 318 dict->GetString(keys::kResourceIdentifierKey, &resource_identifier); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 ContentSettingsStore::FindEntry(const std::string& ext_id) const { | 373 ContentSettingsStore::FindEntry(const std::string& ext_id) const { |
369 ExtensionEntryMap::const_iterator i; | 374 ExtensionEntryMap::const_iterator i; |
370 for (i = entries_.begin(); i != entries_.end(); ++i) { | 375 for (i = entries_.begin(); i != entries_.end(); ++i) { |
371 if (i->second->id == ext_id) | 376 if (i->second->id == ext_id) |
372 return i; | 377 return i; |
373 } | 378 } |
374 return entries_.end(); | 379 return entries_.end(); |
375 } | 380 } |
376 | 381 |
377 } // namespace extensions | 382 } // namespace extensions |
OLD | NEW |