| 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)); | 
| } | 
| } | 
|  |