| Index: components/content_settings/core/browser/host_content_settings_map.cc
|
| diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
|
| index 723cd51eb125f49ee13da20c0c2e8e740daecd17..130fc26c8b4d1238aa09d3e0fb428dddc663ad38 100644
|
| --- a/components/content_settings/core/browser/host_content_settings_map.cc
|
| +++ b/components/content_settings/core/browser/host_content_settings_map.cc
|
| @@ -230,12 +230,14 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingFromProvider(
|
| std::unique_ptr<content_settings::RuleIterator> rule_iterator(
|
| provider->GetRuleIterator(content_type, std::string(), false));
|
|
|
| - ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
|
| - while (rule_iterator->HasNext()) {
|
| - content_settings::Rule rule = rule_iterator->Next();
|
| - if (rule.primary_pattern == wildcard &&
|
| - rule.secondary_pattern == wildcard) {
|
| - return content_settings::ValueToContentSetting(rule.value.get());
|
| + if (rule_iterator) {
|
| + ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
|
| + while (rule_iterator->HasNext()) {
|
| + content_settings::Rule rule = rule_iterator->Next();
|
| + if (rule.primary_pattern == wildcard &&
|
| + rule.secondary_pattern == wildcard) {
|
| + return content_settings::ValueToContentSetting(rule.value.get());
|
| + }
|
| }
|
| }
|
| return CONTENT_SETTING_DEFAULT;
|
| @@ -790,6 +792,9 @@ void HostContentSettingsMap::AddSettingsForOneType(
|
| bool incognito) const {
|
| std::unique_ptr<content_settings::RuleIterator> rule_iterator(
|
| provider->GetRuleIterator(content_type, resource_identifier, incognito));
|
| + if (!rule_iterator)
|
| + return;
|
| +
|
| while (rule_iterator->HasNext()) {
|
| const content_settings::Rule& rule = rule_iterator->Next();
|
| ContentSetting setting_value = CONTENT_SETTING_DEFAULT;
|
| @@ -954,15 +959,17 @@ HostContentSettingsMap::GetContentSettingValueAndPatterns(
|
| const GURL& secondary_url,
|
| ContentSettingsPattern* primary_pattern,
|
| ContentSettingsPattern* secondary_pattern) {
|
| - while (rule_iterator->HasNext()) {
|
| - const content_settings::Rule& rule = rule_iterator->Next();
|
| - if (rule.primary_pattern.Matches(primary_url) &&
|
| - rule.secondary_pattern.Matches(secondary_url)) {
|
| - if (primary_pattern)
|
| - *primary_pattern = rule.primary_pattern;
|
| - if (secondary_pattern)
|
| - *secondary_pattern = rule.secondary_pattern;
|
| - return base::WrapUnique(rule.value.get()->DeepCopy());
|
| + if (rule_iterator) {
|
| + while (rule_iterator->HasNext()) {
|
| + const content_settings::Rule& rule = rule_iterator->Next();
|
| + if (rule.primary_pattern.Matches(primary_url) &&
|
| + rule.secondary_pattern.Matches(secondary_url)) {
|
| + if (primary_pattern)
|
| + *primary_pattern = rule.primary_pattern;
|
| + if (secondary_pattern)
|
| + *secondary_pattern = rule.secondary_pattern;
|
| + return base::WrapUnique(rule.value.get()->DeepCopy());
|
| + }
|
| }
|
| }
|
| return std::unique_ptr<base::Value>();
|
|
|