| 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 0e3f49fea1bfc19b6cd54567d3fd05b1ff4d790f..3c3fd883c08914ff7cbe5f7ca6dbd973049e23de 100644
|
| --- a/components/content_settings/core/browser/host_content_settings_map.cc
|
| +++ b/components/content_settings/core/browser/host_content_settings_map.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/macros.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram_macros.h"
|
| -#include "base/stl_util.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/time/clock.h"
|
| @@ -170,12 +169,13 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
|
|
|
| content_settings::PolicyProvider* policy_provider =
|
| new content_settings::PolicyProvider(prefs_);
|
| - content_settings_providers_[POLICY_PROVIDER] = policy_provider;
|
| + content_settings_providers_[POLICY_PROVIDER] =
|
| + base::WrapUnique(policy_provider);
|
| policy_provider->AddObserver(this);
|
|
|
| pref_provider_ =
|
| new content_settings::PrefProvider(prefs_, is_off_the_record_);
|
| - content_settings_providers_[PREF_PROVIDER] = pref_provider_;
|
| + content_settings_providers_[PREF_PROVIDER] = base::WrapUnique(pref_provider_);
|
| pref_provider_->AddObserver(this);
|
|
|
| // This ensures that content settings are cleared for the guest profile. This
|
| @@ -184,10 +184,10 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
|
| if (is_guest_profile)
|
| pref_provider_->ClearPrefs();
|
|
|
| - content_settings::ObservableProvider* default_provider =
|
| - new content_settings::DefaultProvider(prefs_, is_off_the_record_);
|
| + auto default_provider = base::MakeUnique<content_settings::DefaultProvider>(
|
| + prefs_, is_off_the_record_);
|
| default_provider->AddObserver(this);
|
| - content_settings_providers_[DEFAULT_PROVIDER] = default_provider;
|
| + content_settings_providers_[DEFAULT_PROVIDER] = std::move(default_provider);
|
|
|
| MigrateKeygenSettings();
|
| MigrateDomainScopedSettings(false);
|
| @@ -215,7 +215,7 @@ void HostContentSettingsMap::RegisterProvider(
|
| std::unique_ptr<content_settings::ObservableProvider> provider) {
|
| DCHECK(!content_settings_providers_[type]);
|
| provider->AddObserver(this);
|
| - content_settings_providers_[type] = provider.release();
|
| + content_settings_providers_[type] = std::move(provider);
|
|
|
| #ifndef NDEBUG
|
| DCHECK_NE(used_from_thread_id_, base::kInvalidThreadId)
|
| @@ -255,13 +255,11 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingInternal(
|
|
|
| // Iterate through the list of providers and return the first non-NULL value
|
| // that matches |primary_url| and |secondary_url|.
|
| - for (ConstProviderIterator provider = content_settings_providers_.begin();
|
| - provider != content_settings_providers_.end();
|
| - ++provider) {
|
| - if (provider->first == PREF_PROVIDER)
|
| + for (const auto& provider_pair : content_settings_providers_) {
|
| + if (provider_pair.first == PREF_PROVIDER)
|
| continue;
|
| - ContentSetting default_setting =
|
| - GetDefaultContentSettingFromProvider(content_type, provider->second);
|
| + ContentSetting default_setting = GetDefaultContentSettingFromProvider(
|
| + content_type, provider_pair.second.get());
|
| if (is_off_the_record_) {
|
| default_setting = content_settings::ValueToContentSetting(
|
| ProcessIncognitoInheritanceBehavior(
|
| @@ -270,7 +268,7 @@ ContentSetting HostContentSettingsMap::GetDefaultContentSettingInternal(
|
| .get());
|
| }
|
| if (default_setting != CONTENT_SETTING_DEFAULT) {
|
| - *provider_type = provider->first;
|
| + *provider_type = provider_pair.first;
|
| return default_setting;
|
| }
|
| }
|
| @@ -311,25 +309,15 @@ void HostContentSettingsMap::GetSettingsForOneType(
|
| UsedContentSettingsProviders();
|
|
|
| settings->clear();
|
| - for (ConstProviderIterator provider = content_settings_providers_.begin();
|
| - provider != content_settings_providers_.end();
|
| - ++provider) {
|
| + for (const auto& provider_pair : content_settings_providers_) {
|
| // For each provider, iterate first the incognito-specific rules, then the
|
| // normal rules.
|
| if (is_off_the_record_) {
|
| - AddSettingsForOneType(provider->second,
|
| - provider->first,
|
| - content_type,
|
| - resource_identifier,
|
| - settings,
|
| - true);
|
| + AddSettingsForOneType(provider_pair.second.get(), provider_pair.first,
|
| + content_type, resource_identifier, settings, true);
|
| }
|
| - AddSettingsForOneType(provider->second,
|
| - provider->first,
|
| - content_type,
|
| - resource_identifier,
|
| - settings,
|
| - false);
|
| + AddSettingsForOneType(provider_pair.second.get(), provider_pair.first,
|
| + content_type, resource_identifier, settings, false);
|
| }
|
| }
|
|
|
| @@ -377,11 +365,11 @@ void HostContentSettingsMap::SetWebsiteSettingCustomScope(
|
| resource_identifier.empty());
|
| UsedContentSettingsProviders();
|
|
|
| - for (auto& provider_pair : content_settings_providers_) {
|
| + for (const auto& provider_pair : content_settings_providers_) {
|
| if (provider_pair.second->SetWebsiteSetting(
|
| primary_pattern, secondary_pattern, content_type,
|
| resource_identifier, value.get())) {
|
| - // If succesful then ownership is passed to the provider.
|
| + // If successful then ownership is passed to the provider.
|
| ignore_result(value.release());
|
| return;
|
| }
|
| @@ -739,11 +727,8 @@ void HostContentSettingsMap::SetPrefClockForTesting(
|
| void HostContentSettingsMap::ClearSettingsForOneType(
|
| ContentSettingsType content_type) {
|
| UsedContentSettingsProviders();
|
| - for (ProviderIterator provider = content_settings_providers_.begin();
|
| - provider != content_settings_providers_.end();
|
| - ++provider) {
|
| - provider->second->ClearAllContentSettingsRules(content_type);
|
| - }
|
| + for (const auto& provider_pair : content_settings_providers_)
|
| + provider_pair.second->ClearAllContentSettingsRules(content_type);
|
| FlushLossyWebsiteSettings();
|
| }
|
|
|
| @@ -813,18 +798,14 @@ void HostContentSettingsMap::OnContentSettingChanged(
|
|
|
| HostContentSettingsMap::~HostContentSettingsMap() {
|
| DCHECK(!prefs_);
|
| - base::STLDeleteValues(&content_settings_providers_);
|
| }
|
|
|
| void HostContentSettingsMap::ShutdownOnUIThread() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(prefs_);
|
| prefs_ = NULL;
|
| - for (ProviderIterator it = content_settings_providers_.begin();
|
| - it != content_settings_providers_.end();
|
| - ++it) {
|
| - it->second->ShutdownOnUIThread();
|
| - }
|
| + for (const auto& provider_pair : content_settings_providers_)
|
| + provider_pair.second->ShutdownOnUIThread();
|
| }
|
|
|
| void HostContentSettingsMap::AddSettingsForOneType(
|
| @@ -937,16 +918,15 @@ std::unique_ptr<base::Value> HostContentSettingsMap::GetWebsiteSettingInternal(
|
|
|
| // The list of |content_settings_providers_| is ordered according to their
|
| // precedence.
|
| - for (ConstProviderIterator provider = content_settings_providers_.begin();
|
| - provider != content_settings_providers_.end();
|
| - ++provider) {
|
| + for (const auto& provider_pair : content_settings_providers_) {
|
| std::unique_ptr<base::Value> value = GetContentSettingValueAndPatterns(
|
| - provider->second, primary_url, secondary_url, content_type,
|
| + provider_pair.second.get(), primary_url, secondary_url, content_type,
|
| resource_identifier, is_off_the_record_, primary_pattern,
|
| secondary_pattern);
|
| if (value) {
|
| if (info)
|
| - info->source = kProviderNamesSourceMap[provider->first].provider_source;
|
| + info->source =
|
| + kProviderNamesSourceMap[provider_pair.first].provider_source;
|
| return value;
|
| }
|
| }
|
|
|