| Index: chrome/browser/prefs/profile_pref_store_manager.cc | 
| diff --git a/chrome/browser/prefs/profile_pref_store_manager.cc b/chrome/browser/prefs/profile_pref_store_manager.cc | 
| index 32f3c077e72a36b3692f14883cb3dcf66ae45b06..c572fa770a497269ae252d2bfc65897d26ceb91d 100644 | 
| --- a/chrome/browser/prefs/profile_pref_store_manager.cc | 
| +++ b/chrome/browser/prefs/profile_pref_store_manager.cc | 
| @@ -25,7 +25,6 @@ | 
| #include "components/user_prefs/tracked/segregated_pref_store.h" | 
| #include "components/user_prefs/tracked/tracked_preferences_migration.h" | 
| #include "mojo/public/cpp/bindings/strong_binding.h" | 
| -#include "services/preferences/public/cpp/persistent_pref_store_mojo.h" | 
| #include "services/preferences/public/cpp/user_prefs_impl.h" | 
|  | 
| #if defined(OS_WIN) | 
| @@ -50,6 +49,19 @@ const base::string16* g_preference_validation_registry_path_for_testing = | 
| nullptr; | 
| #endif  // OS_WIN | 
|  | 
| +class ResetOnLoadObserverImpl : public prefs::mojom::ResetOnLoadObserver { | 
| + public: | 
| +  explicit ResetOnLoadObserverImpl(const base::Closure& on_reset_on_load) | 
| +      : on_reset_on_load_(on_reset_on_load) { | 
| +    DCHECK(on_reset_on_load_); | 
| +  } | 
| + | 
| +  void OnResetOnLoad() override { on_reset_on_load_.Run(); } | 
| + | 
| + private: | 
| +  base::Closure on_reset_on_load_; | 
| +}; | 
| + | 
| }  // namespace | 
|  | 
| // Preference tracking and protection is not required on platforms where other | 
| @@ -108,14 +120,14 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore( | 
| const scoped_refptr<base::SequencedTaskRunner>& io_task_runner, | 
| const base::Closure& on_reset_on_load, | 
| std::unique_ptr<prefs::mojom::TrackedPreferenceValidationDelegate>* | 
| -        validation_delegate) { | 
| +        validation_delegate, | 
| +    prefs::mojom::PersistentPrefStoreConnectorPtr* connector) { | 
| DCHECK(validation_delegate); | 
| -  prefs::mojom::PersistentPrefStoreConnectorPtr connector; | 
| if (base::FeatureList::IsEnabled(features::kPrefService)) { | 
| if (!kPlatformSupportsPreferenceTracking) { | 
| prefs::CreateUserPrefs(profile_path_.Append(chrome::kPreferencesFilename), | 
| pref_task_runner, io_task_runner, | 
| -                             mojo::MakeRequest(&connector)); | 
| +                             mojo::MakeRequest(connector)); | 
| } else { | 
| prefs::mojom::TrackedPreferenceValidationDelegatePtr | 
| validation_delegate_ptr; | 
| @@ -123,6 +135,13 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore( | 
| mojo::MakeStrongBinding(std::move(*validation_delegate), | 
| mojo::MakeRequest(&validation_delegate_ptr)); | 
| } | 
| +      prefs::mojom::ResetOnLoadObserverPtr reset_on_load_observer; | 
| +      if (on_reset_on_load) { | 
| +        mojo::MakeStrongBinding( | 
| +            base::MakeUnique<ResetOnLoadObserverImpl>(on_reset_on_load), | 
| +            mojo::MakeRequest(&reset_on_load_observer)); | 
| +      } | 
| + | 
| prefs::CreateSegregatedUserPrefs( | 
| profile_path_.Append(chrome::kPreferencesFilename), | 
| profile_path_.Append(chrome::kSecurePreferencesFilename), | 
| @@ -135,10 +154,10 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore( | 
| #else | 
| base::string16(), | 
| #endif | 
| -          std::move(validation_delegate_ptr), on_reset_on_load, | 
| -          pref_task_runner, io_task_runner, mojo::MakeRequest(&connector)); | 
| +          std::move(validation_delegate_ptr), std::move(reset_on_load_observer), | 
| +          pref_task_runner, io_task_runner, mojo::MakeRequest(connector)); | 
| } | 
| -    return new prefs::PersistentPrefStoreMojo(std::move(connector)); | 
| +    return nullptr; | 
| } | 
| if (!kPlatformSupportsPreferenceTracking) { | 
| return new JsonPrefStore(profile_path_.Append(chrome::kPreferencesFilename), | 
| @@ -156,7 +175,8 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore( | 
| it = tracking_configuration_.begin(); | 
| it != tracking_configuration_.end(); | 
| ++it) { | 
| -    if (it->enforcement_level > PrefHashFilter::NO_ENFORCEMENT) { | 
| +    if (it->enforcement_level > | 
| +        PrefHashFilter::EnforcementLevel::NO_ENFORCEMENT) { | 
| protected_configuration.push_back(*it); | 
| protected_pref_names.insert(it->name); | 
| } else { | 
|  |