Index: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc |
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc |
index 0cf44b96ea2b9888c0925ba7443b340d75e71d27..4ed14dd4523df7875a2b845b14999767eca7b5de 100644 |
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc |
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc |
@@ -150,12 +150,19 @@ base::Callback<void(T)> IgnoreArgument(const base::Closure& callback) { |
bool WebsiteSettingsFilterAdapter( |
const base::Callback<bool(const GURL&)> predicate, |
+ base::Time begin_time, |
const ContentSettingsPattern& primary_pattern, |
- const ContentSettingsPattern& secondary_pattern) { |
+ const ContentSettingsPattern& secondary_pattern, |
+ base::Time last_modified) { |
// Ignore the default setting. |
if (primary_pattern == ContentSettingsPattern::Wildcard()) |
return false; |
+ // Ignore entries that are too old. |
+ if (last_modified < begin_time) { |
+ return false; |
+ } |
+ |
// Website settings only use origin-scoped patterns. The only content setting |
// currently supported by ChromeBrowsingDataRemoverDelegate is |
// DURABLE_STORAGE, which also only uses origin-scoped patterns. Such patterns |
@@ -706,7 +713,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( |
HostContentSettingsMapFactory::GetForProfile(profile_) |
->ClearSettingsForOneTypeWithPredicate( |
CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, |
- base::Bind(&WebsiteSettingsFilterAdapter, filter)); |
+ base::Bind(&WebsiteSettingsFilterAdapter, filter, base::Time())); |
} |
////////////////////////////////////////////////////////////////////////////// |
@@ -715,7 +722,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( |
HostContentSettingsMapFactory::GetForProfile(profile_) |
->ClearSettingsForOneTypeWithPredicate( |
CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, |
- base::Bind(&WebsiteSettingsFilterAdapter, filter)); |
+ base::Bind(&WebsiteSettingsFilterAdapter, filter, base::Time())); |
} |
if ((remove_mask & DATA_TYPE_SITE_USAGE_DATA) || |
@@ -723,7 +730,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( |
HostContentSettingsMapFactory::GetForProfile(profile_) |
->ClearSettingsForOneTypeWithPredicate( |
CONTENT_SETTINGS_TYPE_APP_BANNER, |
- base::Bind(&WebsiteSettingsFilterAdapter, filter)); |
+ base::Bind(&WebsiteSettingsFilterAdapter, filter, base::Time())); |
PermissionDecisionAutoBlocker::GetForProfile(profile_)->RemoveCountsByUrl( |
filter); |