| Index: components/content_settings/core/browser/content_settings_pref_provider.cc
|
| diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
| index 98ab6245d6c1b8bff0b48c31a428e746b24609e7..9c66d12b68ab2e36c2477f0c23c99afcef6ab727 100644
|
| --- a/components/content_settings/core/browser/content_settings_pref_provider.cc
|
| +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/bind.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram_macros.h"
|
| +#include "base/time/default_clock.h"
|
| #include "components/content_settings/core/browser/content_settings_pref.h"
|
| #include "components/content_settings/core/browser/content_settings_rule.h"
|
| #include "components/content_settings/core/browser/content_settings_utils.h"
|
| @@ -83,7 +84,10 @@ void PrefProvider::RegisterProfilePrefs(
|
| PrefProvider::PrefProvider(PrefService* prefs,
|
| bool incognito,
|
| bool store_last_modified)
|
| - : prefs_(prefs), is_incognito_(incognito) {
|
| + : prefs_(prefs),
|
| + is_incognito_(incognito),
|
| + store_last_modified_(store_last_modified),
|
| + clock_(new base::DefaultClock) {
|
| DCHECK(prefs_);
|
| // Verify preferences version.
|
| if (!prefs_->HasPrefPath(prefs::kContentSettingsVersion)) {
|
| @@ -106,7 +110,7 @@ PrefProvider::PrefProvider(PrefService* prefs,
|
| info->type(),
|
| base::MakeUnique<ContentSettingsPref>(
|
| info->type(), prefs_, &pref_change_registrar_, info->pref_name(),
|
| - is_incognito_, store_last_modified,
|
| + is_incognito_,
|
| base::Bind(&PrefProvider::Notify, base::Unretained(this)))));
|
| }
|
|
|
| @@ -151,9 +155,12 @@ bool PrefProvider::SetWebsiteSetting(
|
| return false;
|
| }
|
|
|
| + base::Time modified_time =
|
| + store_last_modified_ ? clock_->Now() : base::Time();
|
| +
|
| return GetPref(content_type)
|
| ->SetWebsiteSetting(primary_pattern, secondary_pattern,
|
| - resource_identifier, in_value);
|
| + resource_identifier, modified_time, in_value);
|
| }
|
|
|
| base::Time PrefProvider::GetWebsiteSettingLastModified(
|
| @@ -274,4 +281,8 @@ void PrefProvider::DiscardObsoletePreferences() {
|
| }
|
| }
|
|
|
| +void PrefProvider::SetClockForTesting(std::unique_ptr<base::Clock> clock) {
|
| + clock_ = std::move(clock);
|
| +}
|
| +
|
| } // namespace content_settings
|
|
|