| Index: chrome/browser/extensions/api/content_settings/content_settings_store.cc
|
| diff --git a/chrome/browser/extensions/api/content_settings/content_settings_store.cc b/chrome/browser/extensions/api/content_settings/content_settings_store.cc
|
| index b2e8c52a50b45670fedeb0fda02a58c79bda9a29..d3e1d475b86ac318eaf822dc0b1cbdcaf3b4b9f2 100644
|
| --- a/chrome/browser/extensions/api/content_settings/content_settings_store.cc
|
| +++ b/chrome/browser/extensions/api/content_settings/content_settings_store.cc
|
| @@ -62,30 +62,31 @@ std::unique_ptr<RuleIterator> ContentSettingsStore::GetRuleIterator(
|
| std::vector<std::unique_ptr<RuleIterator>> iterators;
|
| // Iterate the extensions based on install time (last installed extensions
|
| // first).
|
| - ExtensionEntryMap::const_reverse_iterator entry;
|
| + ExtensionEntryMap::const_reverse_iterator entry_it;
|
|
|
| // The individual |RuleIterators| shouldn't lock; pass |lock_| to the
|
| // |ConcatenationIterator| in a locked state.
|
| std::unique_ptr<base::AutoLock> auto_lock(new base::AutoLock(lock_));
|
|
|
| - for (entry = entries_.rbegin(); entry != entries_.rend(); ++entry) {
|
| - if (!entry->second->enabled)
|
| + for (entry_it = entries_.rbegin(); entry_it != entries_.rend(); ++entry_it) {
|
| + auto* entry = entry_it->second;
|
| + if (!entry->enabled)
|
| continue;
|
|
|
| + std::unique_ptr<RuleIterator> rule_it;
|
| if (incognito) {
|
| - iterators.push_back(
|
| - entry->second->incognito_session_only_settings.GetRuleIterator(
|
| - type,
|
| - identifier,
|
| - NULL));
|
| - iterators.push_back(
|
| - entry->second->incognito_persistent_settings.GetRuleIterator(
|
| - type,
|
| - identifier,
|
| - NULL));
|
| + rule_it = entry->incognito_session_only_settings.GetRuleIterator(
|
| + type, identifier, nullptr);
|
| + if (rule_it)
|
| + iterators.push_back(std::move(rule_it));
|
| + rule_it = entry->incognito_persistent_settings.GetRuleIterator(
|
| + type, identifier, nullptr);
|
| + if (rule_it)
|
| + iterators.push_back(std::move(rule_it));
|
| } else {
|
| - iterators.push_back(
|
| - entry->second->settings.GetRuleIterator(type, identifier, NULL));
|
| + rule_it = entry->settings.GetRuleIterator(type, identifier, nullptr);
|
| + if (rule_it)
|
| + iterators.push_back(std::move(rule_it));
|
| }
|
| }
|
| return std::unique_ptr<RuleIterator>(
|
| @@ -251,13 +252,17 @@ base::ListValue* ContentSettingsStore::GetSettingsForExtension(
|
| base::AutoLock lock(lock_);
|
| const OriginIdentifierValueMap* map = GetValueMap(extension_id, scope);
|
| if (!map)
|
| - return NULL;
|
| + return nullptr;
|
| +
|
| base::ListValue* settings = new base::ListValue();
|
| - OriginIdentifierValueMap::EntryMap::const_iterator it;
|
| - for (it = map->begin(); it != map->end(); ++it) {
|
| - std::unique_ptr<RuleIterator> rule_iterator(map->GetRuleIterator(
|
| - it->first.content_type, it->first.resource_identifier,
|
| - NULL)); // We already hold the lock.
|
| + for (const auto& it : *map) {
|
| + const auto& key = it.first;
|
| + std::unique_ptr<RuleIterator> rule_iterator(
|
| + map->GetRuleIterator(key.content_type, key.resource_identifier,
|
| + nullptr)); // We already hold the lock.
|
| + if (!rule_iterator)
|
| + continue;
|
| +
|
| while (rule_iterator->HasNext()) {
|
| const Rule& rule = rule_iterator->Next();
|
| std::unique_ptr<base::DictionaryValue> setting_dict(
|
| @@ -268,9 +273,9 @@ base::ListValue* ContentSettingsStore::GetSettingsForExtension(
|
| rule.secondary_pattern.ToString());
|
| setting_dict->SetString(
|
| keys::kContentSettingsTypeKey,
|
| - helpers::ContentSettingsTypeToString(it->first.content_type));
|
| + helpers::ContentSettingsTypeToString(key.content_type));
|
| setting_dict->SetString(keys::kResourceIdentifierKey,
|
| - it->first.resource_identifier);
|
| + key.resource_identifier);
|
| ContentSetting content_setting = ValueToContentSetting(rule.value.get());
|
| DCHECK_NE(CONTENT_SETTING_DEFAULT, content_setting);
|
|
|
|
|