| 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 3879f3096c0b32f26bb8077fd333adb59a9e1e78..27a7d27dbd668aea464a501e25c5cb543f866c4b 100644
|
| --- a/components/content_settings/core/browser/host_content_settings_map.cc
|
| +++ b/components/content_settings/core/browser/host_content_settings_map.cc
|
| @@ -178,13 +178,15 @@ content_settings::PatternPair GetPatternsForContentSettingsType(
|
|
|
| HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
|
| bool is_incognito_profile,
|
| - bool is_guest_profile)
|
| + bool is_guest_profile,
|
| + bool store_last_modified)
|
| : RefcountedKeyedService(base::ThreadTaskRunnerHandle::Get()),
|
| #ifndef NDEBUG
|
| used_from_thread_id_(base::PlatformThread::CurrentId()),
|
| #endif
|
| prefs_(prefs),
|
| is_incognito_(is_incognito_profile || is_guest_profile),
|
| + store_last_modified_(store_last_modified),
|
| weak_ptr_factory_(this) {
|
| DCHECK(!(is_incognito_profile && is_guest_profile));
|
|
|
| @@ -194,8 +196,8 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
|
| base::WrapUnique(policy_provider);
|
| policy_provider->AddObserver(this);
|
|
|
| - pref_provider_ =
|
| - new content_settings::PrefProvider(prefs_, is_incognito_);
|
| + pref_provider_ = new content_settings::PrefProvider(prefs_, is_incognito_,
|
| + store_last_modified_);
|
| content_settings_providers_[PREF_PROVIDER] = base::WrapUnique(pref_provider_);
|
| pref_provider_->AddObserver(this);
|
|
|
| @@ -658,22 +660,22 @@ void HostContentSettingsMap::ClearSettingsForOneType(
|
|
|
| void HostContentSettingsMap::ClearSettingsForOneTypeWithPredicate(
|
| ContentSettingsType content_type,
|
| - const base::Callback<bool(const ContentSettingsPattern& primary_pattern,
|
| - const ContentSettingsPattern& secondary_pattern)>&
|
| - pattern_predicate) {
|
| + const std::string& resource_identifier,
|
| + const PatternSourcePredicate& pattern_predicate) {
|
| if (pattern_predicate.is_null()) {
|
| ClearSettingsForOneType(content_type);
|
| return;
|
| }
|
|
|
| ContentSettingsForOneType settings;
|
| - GetSettingsForOneType(content_type, std::string(), &settings);
|
| + GetSettingsForOneType(content_type, resource_identifier, &settings);
|
| for (const ContentSettingPatternSource& setting : settings) {
|
| if (pattern_predicate.Run(setting.primary_pattern,
|
| - setting.secondary_pattern)) {
|
| + setting.secondary_pattern,
|
| + setting.last_modified)) {
|
| SetWebsiteSettingCustomScope(setting.primary_pattern,
|
| setting.secondary_pattern, content_type,
|
| - std::string(), nullptr);
|
| + resource_identifier, nullptr);
|
| }
|
| }
|
| }
|
| @@ -760,6 +762,7 @@ void HostContentSettingsMap::AddSettingsForOneType(
|
| }
|
| settings->push_back(ContentSettingPatternSource(
|
| rule.primary_pattern, rule.secondary_pattern, setting_value,
|
| + rule.last_modified,
|
| kProviderNamesSourceMap[provider_type].provider_name, incognito));
|
| }
|
| }
|
|
|