| 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 {
 | 
| 
 |