New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 654988 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug
Proj-Servicification

Blocked on:
issue 675860

Blocking:
issue 598069
issue 707602



Sign in to add a comment

Expose Preferences from the browser process as a service

Project Member Reported by ben@chromium.org, Oct 12 2016

Issue description

We should create an isolated settings service, extracting from src/chrome. It needs to support everything the Preferences code in Chrome does, including enterprise policy management, sync & extensions APIs. It must not depend on anything from src/chrome, only other //services.
 

Comment 1 Deleted

Comment 2 Deleted

Comment 3 by sa...@chromium.org, Dec 20 2016

Blockedon: 675860

Comment 4 by tibell@chromium.org, Jan 17 2017

Cc: tibell@chromium.org

Comment 5 by tibell@chromium.org, Feb 15 2017

Cc: sa...@chromium.org
Owner: tibell@chromium.org
Status: Started (was: Available)

Comment 6 Deleted

Comment 7 by tibell@chromium.org, Feb 20 2017

High-level design doc: https://docs.google.com/document/d/1Fj013SXClTzk4Yfq2eoL9OkKfN0h-GLXPAokCXFkcTY/edit?usp=sharing

A more detailed one will follow.
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/311d4a192239299e42e66b1319b19ee58a5a4b06

commit 311d4a192239299e42e66b1319b19ee58a5a4b06
Author: tibell <tibell@chromium.org>
Date: Tue Feb 21 03:22:24 2017

Add PrefStore::GetValues

Currently there's no way to proxy a PrefStore, which we need to
in the new prefs service, because there's no way to get its
initial state. The existing observer interface can only be used
to get changed values and GetValue requires that you know all the
keys in advance.

GetValues involve a deep copy, but the intended consumer needs to
take ownership to send the value over the wire anyway.

Design doc: https://docs.google.com/document/d/1Fj013SXClTzk4Yfq2eoL9OkKfN0h-GLXPAokCXFkcTY/edit?usp=sharing

BUG= 654988 

Review-Url: https://codereview.chromium.org/2692203007
Cr-Commit-Position: refs/heads/master@{#451691}

[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/chrome/browser/supervised_user/supervised_user_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/chrome/browser/supervised_user/supervised_user_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/policy/core/browser/configuration_policy_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/policy/core/browser/configuration_policy_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/default_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/default_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/in_memory_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/in_memory_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/json_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/json_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/overlay_user_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/overlay_user_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/overlay_user_pref_store_unittest.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/pref_value_map.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/pref_value_map.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/testing_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/testing_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/value_map_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/prefs/value_map_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/user_prefs/tracked/segregated_pref_store.cc
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/user_prefs/tracked/segregated_pref_store.h
[modify] https://crrev.com/311d4a192239299e42e66b1319b19ee58a5a4b06/components/user_prefs/tracked/segregated_pref_store_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea9d08f4944bceff2ea83ec55778254eeb1d0c5e

commit ea9d08f4944bceff2ea83ec55778254eeb1d0c5e
Author: sammc <sammc@chromium.org>
Date: Tue Feb 21 03:52:27 2017

Add a base::Feature for the pref service.

This is currently unused, but will gate the use of the servicified pref
service.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2702393002
Cr-Commit-Position: refs/heads/master@{#451695}

[modify] https://crrev.com/ea9d08f4944bceff2ea83ec55778254eeb1d0c5e/chrome/common/chrome_features.cc
[modify] https://crrev.com/ea9d08f4944bceff2ea83ec55778254eeb1d0c5e/chrome/common/chrome_features.h

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0373fe1947fb05fbe421407dc7f393e430db6019

commit 0373fe1947fb05fbe421407dc7f393e430db6019
Author: aelias <aelias@chromium.org>
Date: Tue Feb 21 23:50:54 2017

Revert of Add PrefStore::GetValues (patchset #8 id:140001 of https://codereview.chromium.org/2692203007/ )

Reason for revert:
Breaks compile on Cronet proxy.

BUG= 694814 

Original issue's description:
> Add PrefStore::GetValues
>
> Currently there's no way to proxy a PrefStore, which we need to
> in the new prefs service, because there's no way to get its
> initial state. The existing observer interface can only be used
> to get changed values and GetValue requires that you know all the
> keys in advance.
>
> GetValues involve a deep copy, but the intended consumer needs to
> take ownership to send the value over the wire anyway.
>
> Design doc: https://docs.google.com/document/d/1Fj013SXClTzk4Yfq2eoL9OkKfN0h-GLXPAokCXFkcTY/edit?usp=sharing
>
> BUG= 654988 
>
> Review-Url: https://codereview.chromium.org/2692203007
> Cr-Commit-Position: refs/heads/master@{#451691}
> Committed: https://chromium.googlesource.com/chromium/src/+/311d4a192239299e42e66b1319b19ee58a5a4b06

TBR=sammc@chromium.org,emaxx@chromium.org,bauerb@chromium.org,tibell@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 654988 

Review-Url: https://codereview.chromium.org/2704133006
Cr-Commit-Position: refs/heads/master@{#451856}

[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/chrome/browser/supervised_user/supervised_user_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/chrome/browser/supervised_user/supervised_user_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/policy/core/browser/configuration_policy_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/policy/core/browser/configuration_policy_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/default_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/default_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/in_memory_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/in_memory_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/json_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/json_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/overlay_user_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/overlay_user_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/overlay_user_pref_store_unittest.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/pref_value_map.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/pref_value_map.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/testing_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/testing_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/value_map_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/prefs/value_map_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/user_prefs/tracked/segregated_pref_store.cc
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/user_prefs/tracked/segregated_pref_store.h
[modify] https://crrev.com/0373fe1947fb05fbe421407dc7f393e430db6019/components/user_prefs/tracked/segregated_pref_store_unittest.cc

Cc: jonr...@chromium.org
 Issue 580652  has been merged into this issue.
Project Member

Comment 12 by bugdroid1@chromium.org, Feb 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e23659b47bf9f47507986faba38b70aa10ca8497

commit e23659b47bf9f47507986faba38b70aa10ca8497
Author: tibell <tibell@chromium.org>
Date: Thu Feb 23 01:44:13 2017

Add PrefStore::GetValues

Currently there's no way to proxy a PrefStore, which we need to
in the new prefs service, because there's no way to get its
initial state. The existing observer interface can only be used
to get changed values and GetValue requires that you know all the
keys in advance.

GetValues involve a deep copy, but the intended consumer needs to
take ownership to send the value over the wire anyway.

Design doc: https://docs.google.com/document/d/1Fj013SXClTzk4Yfq2eoL9OkKfN0h-GLXPAokCXFkcTY/edit?usp=sharing

BUG= 654988 

Review-Url: https://codereview.chromium.org/2692203007
Cr-Commit-Position: refs/heads/master@{#451691}
Committed: https://chromium.googlesource.com/chromium/src/+/311d4a192239299e42e66b1319b19ee58a5a4b06
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2692203007
Cr-Commit-Position: refs/heads/master@{#452336}

[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/chrome/browser/supervised_user/supervised_user_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/chrome/browser/supervised_user/supervised_user_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/cronet/android/cronet_in_memory_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/cronet/android/cronet_in_memory_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/filesystem/public/cpp/prefs/filesystem_json_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/filesystem/public/cpp/prefs/filesystem_json_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/policy/core/browser/configuration_policy_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/policy/core/browser/configuration_policy_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/default_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/default_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/in_memory_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/in_memory_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/json_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/json_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/overlay_user_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/overlay_user_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/overlay_user_pref_store_unittest.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/pref_value_map.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/pref_value_map.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/testing_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/testing_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/value_map_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/prefs/value_map_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/user_prefs/tracked/segregated_pref_store.cc
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/user_prefs/tracked/segregated_pref_store.h
[modify] https://crrev.com/e23659b47bf9f47507986faba38b70aa10ca8497/components/user_prefs/tracked/segregated_pref_store_unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/016efe5f52111100d5d8485e143aff98b315a391

commit 016efe5f52111100d5d8485e143aff98b315a391
Author: sammc <sammc@chromium.org>
Date: Fri Mar 03 02:19:38 2017

Add services/preferences/OWNERS.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2733513002
Cr-Commit-Position: refs/heads/master@{#454468}

[add] https://crrev.com/016efe5f52111100d5d8485e143aff98b315a391/services/preferences/OWNERS

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/072bd1f5e01408854503b640c9ad62216d9b6b76

commit 072bd1f5e01408854503b640c9ad62216d9b6b76
Author: sammc <sammc@chromium.org>
Date: Tue Mar 07 23:50:21 2017

Change ServiceManagerConnectionImpl to run service request handlers on the IO thread.

Currently, ServiceManagerConnectionImpl posts to the main thread to run
service request handlers. This prevents services from being launched
before the main message loop starts. The pref service needs to launch
before the main message loop starts. This CL fixes this by running
service request handlers directly on the IO thread.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2729733003
Cr-Commit-Position: refs/heads/master@{#455295}

[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/browser/browser_context.cc
[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/common/service_manager/service_manager_connection_impl.h
[add] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/common/service_manager/service_manager_connection_impl_unittest.cc
[modify] https://crrev.com/072bd1f5e01408854503b640c9ad62216d9b6b76/content/test/BUILD.gn

Project Member

Comment 15 by bugdroid1@chromium.org, Mar 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c885e024b61f6f0bf1cb7b5624b2b202917c0de

commit 2c885e024b61f6f0bf1cb7b5624b2b202917c0de
Author: sammc <sammc@chromium.org>
Date: Wed Mar 08 02:05:59 2017

Convert TrackedPreferenceValidationDelegate into a mojo interface.

Currently, the C++ interface TrackedPreferenceValidationDelegate is used
to communicate between two components, both running on the same thread.
Once prefs is servicified, this direct path will no longer be available.
In preparation for this, this CL converts this interface to be a mojo
interface.

This also removes the unused |dict_value| parameter from
OnSplitPreferenceValidation().

BUG= 654988 

Review-Url: https://codereview.chromium.org/2719833002
Cr-Commit-Position: refs/heads/master@{#455342}

[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/prefs/chrome_pref_service_factory.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate_unittest.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/safe_browsing_service.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/safe_browsing_service.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/services_delegate.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/services_delegate_impl.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/services_delegate_impl.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/services_delegate_stub.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/chrome/browser/safe_browsing/services_delegate_stub.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/BUILD.gn
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/DEPS
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/mock_validation_delegate.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/mock_validation_delegate.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/pref_hash_filter.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/pref_hash_filter.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/pref_hash_filter_unittest.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/tracked_atomic_preference.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/tracked_atomic_preference.h
[delete] https://crrev.com/5d5865702469fb03a3343898dfeaec73cfa973e3/components/user_prefs/tracked/tracked_preference_validation_delegate.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/tracked_split_preference.cc
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/components/user_prefs/tracked/tracked_split_preference.h
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/mojo/public/tools/bindings/chromium_bindings_configuration.gni
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/DEPS
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/OWNERS
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/tracked_preference_validation_delegate.typemap
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/tracked_preference_validation_delegate_struct_traits.cc
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/tracked_preference_validation_delegate_struct_traits.h
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/cpp/typemaps.gni
[modify] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/interfaces/BUILD.gn
[add] https://crrev.com/2c885e024b61f6f0bf1cb7b5624b2b202917c0de/services/preferences/public/interfaces/tracked_preference_validation_delegate.mojom

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/11141bd8441dc816fa284bca287005251170aff8

commit 11141bd8441dc816fa284bca287005251170aff8
Author: tibell <tibell@chromium.org>
Date: Fri Mar 10 00:16:29 2017

Pref service: expose all read-only PrefStores through Mojo

This will eventually replace the existing preferences service
implementation.

High-level overview:

PrefStoreImpl: Wraps a PrefStore to expose its Observer interface as a Mojo
interface.

PrefStoreClient: Implements the PrefStore interface and acts as a cache,
providing synchronous access to prefs stored in a PrefStoreImpl.

PrefStoreManagerImpl: Facilitates connections between PrefStoreClients and
PrefStoreImpls.

PrefStoreAdapter: Helper to tie the lifetime of the PrefStoreImpl
to the underlying PrefStore (which is indirectly held by the
PrefService).

BUG= 654988 

Review-Url: https://codereview.chromium.org/2635153002
Cr-Commit-Position: refs/heads/master@{#455919}

[modify] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/components/prefs/pref_value_store.h
[modify] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/BUILD.gn
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_adapter.cc
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_adapter.h
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_client.cc
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_client.h
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_impl.cc
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_impl.h
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_manager_impl.cc
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/pref_store_manager_impl.h
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/preferences.typemap
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/preferences_struct_traits.cc
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/preferences_struct_traits.h
[modify] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/tests/BUILD.gn
[add] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/tests/pref_store_client_unittest.cc
[modify] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/cpp/typemaps.gni
[modify] https://crrev.com/11141bd8441dc816fa284bca287005251170aff8/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 17 by bugdroid1@chromium.org, Mar 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab3d36b33fb3412d562033d68c716ddae6e4c3bd

commit ab3d36b33fb3412d562033d68c716ddae6e4c3bd
Author: tibell <tibell@chromium.org>
Date: Fri Mar 10 02:57:25 2017

Pref service: create service at browser startup

Expose the already existing PrefStore implementations, which are
owned through the profile, through the new prefs service. This
new prefs service will replace the current pref service prototype
used in mash and support synchronous deletions and decoupling the
creation of the underling pref stores.

The service is gated by a default-off feature flag.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2740493002
Cr-Commit-Position: refs/heads/master@{#455968}

[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/app/BUILD.gn
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/BUILD.gn
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/prefs/chrome_pref_service_factory.h
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/components/sync_preferences/BUILD.gn
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/components/sync_preferences/DEPS
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/components/sync_preferences/pref_service_syncable_factory.cc
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/components/sync_preferences/pref_service_syncable_factory.h
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/content/browser/browser_context.cc
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/content/public/browser/browser_context.h
[modify] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/services/preferences/BUILD.gn
[add] https://crrev.com/ab3d36b33fb3412d562033d68c716ddae6e4c3bd/services/preferences/manifest.json

Project Member

Comment 18 by bugdroid1@chromium.org, Mar 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d

commit 3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d
Author: jonross <jonross@chromium.org>
Date: Fri Mar 10 19:54:22 2017

Revert Change ServiceManagerConnectionImpl to run service request handlers on the IO thread

Revert: https://codereview.chromium.org/2729733003/

As this is currently crashing on all mash builds, preventing development.

TBR=rockot@chromium.org, jochen@chromium.org, sammc@chromium.org
BUG= 700155 ,  654988 

Review-Url: https://codereview.chromium.org/2742523005
Cr-Commit-Position: refs/heads/master@{#456140}

[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/content/browser/browser_context.cc
[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/content/common/service_manager/service_manager_connection_impl.h
[delete] https://crrev.com/a7964169b3c21145980b845d68ff112c8169cd3f/content/common/service_manager/service_manager_connection_impl_unittest.cc
[modify] https://crrev.com/3c309fdbb3787d140f76c1cfc3ef8a994d8d4a4d/content/test/BUILD.gn

Hey, so I landed a revert of the IO thread startup in #18

What is happening is that there is a race inherent to the startup of the chrome and ash services.

wm_shell attempts to connect to preferences
chrome instantiates the preferences service.

The change delayed the creation of the service handler until later on the io_thread. Leading to a race.

We might need to have the handlers created at the request time, with their work posted to the io thread.

Thoughts?
Project Member

Comment 20 by bugdroid1@chromium.org, Mar 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/564fe924388fd462939f76cb1894dbface5eef71

commit 564fe924388fd462939f76cb1894dbface5eef71
Author: sammc <sammc@chromium.org>
Date: Sun Mar 12 23:28:39 2017

Pref service: add persistent pref store frontend and backend.

Key parts:
- PersistentPrefStoreImpl: A mojo adapter that provides access from
  multiple clients to a single PersistentPrefStore.

- PersistentPrefStoreClient: This bridges the PersistentPrefStore
  interface and a mojo connection to the PersistentPrefStoreImpl
  backend.

- PrefStoreClientMixin: This is a version of PrefStoreClient modified
  to be a mixin so it can be reused by PersistentPrefStoreClient to
  implement the PrefStore part of the PersistentPrefStore interface.

- PrefStoreClient: The functionality that was previously here mostly
  moved into PrefStoreClientMixin, which this now uses.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2743563003
Cr-Commit-Position: refs/heads/master@{#456306}

[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/BUILD.gn
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/DEPS
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/persistent_pref_store_impl.cc
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/persistent_pref_store_impl.h
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/BUILD.gn
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/persistent_pref_store_client.cc
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/pref_store_client.cc
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/pref_store_client.h
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/pref_store_client_mixin.cc
[add] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/pref_store_client_mixin.h
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/preferences.typemap
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/preferences_struct_traits.cc
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/preferences_struct_traits.h
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/tests/BUILD.gn
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/cpp/tests/pref_store_client_unittest.cc
[modify] https://crrev.com/564fe924388fd462939f76cb1894dbface5eef71/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 21 by bugdroid1@chromium.org, Mar 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5

commit 4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5
Author: sammc <sammc@chromium.org>
Date: Sun Mar 12 23:35:33 2017

Pref service: integrate PersistentPrefStoreImpl with PrefStoreManagerImpl.

This adds:
- PrefServiceControl: a mojo configuration interface that can be used
  to control where the pref service persists its user prefs.

- CreatePersistentPrefStore: A factory function that builds a
  PersistentPrefStoreImpl instance based on a configuration struct.

This also changes PrefStoreManagerImpl to implement the
PrefServiceControl interface and provide access to the
PersistentPrefStore interface.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2738353002
Cr-Commit-Position: refs/heads/master@{#456307}

[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/BUILD.gn
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/manifest.json
[add] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/persistent_pref_store_factory.cc
[add] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/persistent_pref_store_factory.h
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/cpp/BUILD.gn
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/cpp/pref_store_manager_impl.cc
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/cpp/pref_store_manager_impl.h
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/interfaces/BUILD.gn
[modify] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/interfaces/preferences.mojom
[add] https://crrev.com/4c08113e52ecd6222a4ae0c3e4ee3676a04a94d5/services/preferences/public/interfaces/preferences_configuration.mojom

Project Member

Comment 22 by bugdroid1@chromium.org, Mar 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/030f501c3474280e3a0571e8ea71d1c7a1cfed28

commit 030f501c3474280e3a0571e8ea71d1c7a1cfed28
Author: sammc <sammc@chromium.org>
Date: Mon Mar 13 02:28:45 2017

Change ServiceManagerConnectionImpl to run service request handlers on the IO thread.

Currently, ServiceManagerConnectionImpl posts to the main thread to run
service request handlers. This prevents services from being launched
before the main message loop starts. The pref service needs to launch
before the main message loop starts. This CL fixes this by running
service request handlers directly on the IO thread.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2729733003
Cr-Original-Commit-Position: refs/heads/master@{#455295}
Committed: https://chromium.googlesource.com/chromium/src/+/072bd1f5e01408854503b640c9ad62216d9b6b76
Review-Url: https://codereview.chromium.org/2729733003
Cr-Commit-Position: refs/heads/master@{#456316}

[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/browser/browser_context.cc
[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/common/service_manager/service_manager_connection_impl.h
[add] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/common/service_manager/service_manager_connection_impl_unittest.cc
[modify] https://crrev.com/030f501c3474280e3a0571e8ea71d1c7a1cfed28/content/test/BUILD.gn

Project Member

Comment 23 by bugdroid1@chromium.org, Mar 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6810f4a0e51ff154c73f1540772f8b65ce117acd

commit 6810f4a0e51ff154c73f1540772f8b65ce117acd
Author: sammc <sammc@chromium.org>
Date: Thu Mar 16 00:17:07 2017

Convert PrefHashFilter enums to enum class.

The enums in PrefHashFilter will soon be mojom-generated.
Mojom-generated enums are always enum class enums. This changes those
enums to be enum class enums in preparation of that change.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2752533002
Cr-Commit-Position: refs/heads/master@{#457276}

[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/components/user_prefs/tracked/mock_validation_delegate.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/components/user_prefs/tracked/pref_hash_filter.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/components/user_prefs/tracked/pref_hash_filter.h
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/components/user_prefs/tracked/pref_hash_filter_unittest.cc
[modify] https://crrev.com/6810f4a0e51ff154c73f1540772f8b65ce117acd/components/user_prefs/tracked/tracked_preference_helper.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d993a77b16b1f937bd09cb10399a9c7bea0ad46a

commit d993a77b16b1f937bd09cb10399a9c7bea0ad46a
Author: tibell <tibell@chromium.org>
Date: Wed Mar 22 22:52:54 2017

Pref service: add a factory to create the client lib

The client lib is how most code will interact with the service,
rather than using its Mojo interfaces directly.

ConnectToPrefService: This is the main entry point for users.

ServiceTest: Change the destruction order (of the message loop)
to match the creation order.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2762333003
Cr-Commit-Position: refs/heads/master@{#458912}

[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/BUILD.gn
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/BUILD.gn
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/BUILD.gn
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/manifest.json
[add] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/public/cpp/BUILD.gn
[add] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/public/cpp/pref_service_factory.cc
[add] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/public/cpp/pref_store_manager_impl.cc
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/public/cpp/pref_store_manager_impl.h
[add] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/preferences/unittest_manifest.json
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/service_manager/public/cpp/lib/service_test.cc
[modify] https://crrev.com/d993a77b16b1f937bd09cb10399a9c7bea0ad46a/services/service_manager/public/tools/test/service_test.gni

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/939cdb5314dcd4a523196c849a5c93f53c5b5286

commit 939cdb5314dcd4a523196c849a5c93f53c5b5286
Author: sammc <sammc@chromium.org>
Date: Thu Mar 23 01:21:13 2017

Move PrefStoreManagerImpl into //services/preferences.

PrefStoreManagerImpl is an implementation detail so it shouldn't be in
public.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2759413002
Cr-Commit-Position: refs/heads/master@{#458967}

[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/chrome/browser/BUILD.gn
[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/BUILD.gn
[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/pref_service_factory_unittest.cc
[rename] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/pref_store_manager_impl.cc
[rename] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/public/cpp/BUILD.gn
[modify] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/public/cpp/DEPS
[add] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/public/cpp/pref_service_main.cc
[add] https://crrev.com/939cdb5314dcd4a523196c849a5c93f53c5b5286/services/preferences/public/cpp/pref_service_main.h

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a6b14251ec38a7dccc0acae9a548fb181291e4d

commit 6a6b14251ec38a7dccc0acae9a548fb181291e4d
Author: sammc <sammc@chromium.org>
Date: Sun Mar 26 23:06:07 2017

Pref service: Merge PrefStoreConnector interfaces.

Previously, there were two connectors: one for persistent prefs and
another for read-only pref stores. This merges the two connectors into a
single connector and merges responsibility for queuing persistent pref
store connect requests from PersistentPrefStoreImpl into
PrefStoreManagerImpl (where queuing is already implemented for read-only
pref stores).

BUG= 654988 

Review-Url: https://codereview.chromium.org/2771723002
Cr-Commit-Position: refs/heads/master@{#459680}

[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/manifest.json
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/persistent_pref_store_factory.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/persistent_pref_store_factory.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/preferences.typemap
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/preferences_struct_traits.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/preferences_struct_traits.h
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/cpp/tests/pref_store_client_unittest.cc
[modify] https://crrev.com/6a6b14251ec38a7dccc0acae9a548fb181291e4d/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 28 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed

commit 6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed
Author: sammc <sammc@chromium.org>
Date: Wed Mar 29 03:29:55 2017

Pref service: Add initial support for pref registration.

This:
- Adds a mojo structs representing registrations to be passed to
  PrefStoreConnector::Connect calls.

- Uses those registrarions to build a default pref store implemented
  inside the pref service.

- Changes PersistentPrefStoreImpl to use registrations to filter
  observer notifications.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2777483002
Cr-Commit-Position: refs/heads/master@{#460267}

[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/BUILD.gn
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/BUILD.gn
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/persistent_pref_store_client.h
[add] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/pref_registry_serializer.cc
[add] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/pref_registry_serializer.h
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/6926632bd1e7eb3a0cd62f34f0e9d546be86d8ed/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/29914e3f0bc84b0ec570b086a17bc41254f4cc34

commit 29914e3f0bc84b0ec570b086a17bc41254f4cc34
Author: sammc <sammc@chromium.org>
Date: Wed Mar 29 03:57:51 2017

Pref service: Filter updates from read-only pref stores.

This changes prefs::PrefStoreImpl to restrict pref change observations
to only the prefs registered by the client and forwards that data from
PrefStoreManagerImpl through prefs::mojom::PrefStore::AddObserver()
calls.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2778643002
Cr-Commit-Position: refs/heads/master@{#460269}

[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/components/sync_preferences/pref_service_syncable_factory.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/cpp/pref_store_client_mixin.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/cpp/pref_store_impl.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/cpp/pref_store_impl.h
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/cpp/tests/BUILD.gn
[add] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/cpp/tests/pref_store_impl_unittest.cc
[modify] https://crrev.com/29914e3f0bc84b0ec570b086a17bc41254f4cc34/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2a1451c0b54e230d212035525fc6b373abea7f5b

commit 2a1451c0b54e230d212035525fc6b373abea7f5b
Author: sammc <sammc@chromium.org>
Date: Wed Mar 29 04:14:06 2017

Pref service: enable for user prefs in chrome behind a flag.

This:
- changes ProfilePrefStoreManager to, when the PrefService feature is
  enabled, connect to the pref service, send it the user prefs
  configuration and create a PrefStore that is backed by the pref
  service

- changes PrefHashFilter to discard its on_reset_on_load callback after
  the point where it may call it; when running in the perf service, the
  callback owns a mojo connection that can be torn down at that point

- changes BrowserProcessImpl to wait for a task to run on the IO thread
  before waiting for blocking IO to complete for each profile; the pref
  service runs on the IO thread so waiting for a task to run there is
  necessary

- fixes a bug in PrefServiceSyncableFactory where enabling the pref
  service would crash if any non-user pref stores are null

BUG= 654988 

Review-Url: https://codereview.chromium.org/2746023002
Cr-Commit-Position: refs/heads/master@{#460273}

[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/browser_process_impl.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/components/sync_preferences/pref_service_syncable_factory.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/components/user_prefs/tracked/pref_hash_filter.cc
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/components/user_prefs/tracked/pref_hash_filter.h
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/mojo/public/cpp/bindings/sync_call_restrictions.h
[modify] https://crrev.com/2a1451c0b54e230d212035525fc6b373abea7f5b/services/preferences/public/cpp/persistent_pref_store_client.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Mar 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b93c729b78b6b59a5953215c2fbe6fcb551717e1

commit b93c729b78b6b59a5953215c2fbe6fcb551717e1
Author: tibell <tibell@chromium.org>
Date: Thu Mar 30 00:51:10 2017

mash: use the new prefs service

Adds ActiveProfilePrefService to allow mash, which currently
supports only one profile and runs its services as the root user,
to talk to that profile. Replaces PreferencesConnectionManager,
which achieves the equivalent goal in the old pref service.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2772673002
Cr-Commit-Position: refs/heads/master@{#460604}

[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/ash/DEPS
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/ash/mus/manifest.json
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/ash/shell.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/ash/shell.h
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/app/BUILD.gn
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/BUILD.gn
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/chromeos/preferences_chromeos_browsertest.cc
[add] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/prefs/active_profile_pref_service.cc
[add] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/prefs/active_profile_pref_service.h
[add] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/prefs/forwarder_manifest.json
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/common/chrome_features.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/chrome/common/chrome_features.h
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/b93c729b78b6b59a5953215c2fbe6fcb551717e1/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 32 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3c57fc8fb4259c1696333ba4fa01a9fd623e955

commit a3c57fc8fb4259c1696333ba4fa01a9fd623e955
Author: tibell <tibell@chromium.org>
Date: Fri Mar 31 04:57:47 2017

Pref service: delete old implementation

BUG= 654988 

Review-Url: https://codereview.chromium.org/2778733003
Cr-Commit-Position: refs/heads/master@{#461041}

[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/app/BUILD.gn
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/BUILD.gn
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/chromeos/preferences_chromeos_browsertest.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/prefs/active_profile_pref_service.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/prefs/forwarder_manifest.json
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_connection_manager.cc
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_connection_manager.h
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_manifest.json
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_service.cc
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_service.h
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/chrome/browser/prefs/preferences_service_unittest.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/chrome/test/BUILD.gn
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/components/sync_preferences/pref_service_syncable_factory.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/BUILD.gn
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/manifest.json
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/public/cpp/BUILD.gn
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/services/preferences/public/cpp/pref_client_store.cc
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/services/preferences/public/cpp/pref_client_store.h
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/public/cpp/tests/BUILD.gn
[delete] https://crrev.com/1c44aedea445b82f6ac2c983dc60f41f478dbbbc/services/preferences/public/cpp/tests/pref_client_store_unittest.cc
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/public/interfaces/preferences.mojom
[modify] https://crrev.com/a3c57fc8fb4259c1696333ba4fa01a9fd623e955/services/preferences/unittest_manifest.json

Blockedon: 707602
Blocking: 707602
Blockedon: -707602
Project Member

Comment 36 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb473a87fb9a0cb77a70811505929ba08c580e74

commit fb473a87fb9a0cb77a70811505929ba08c580e74
Author: sammc <sammc@chromium.org>
Date: Mon Apr 03 01:56:59 2017

Move tracked prefs into services/preferences/tracked.

BUG= 654988 
TBR=agl@chromium.org

Review-Url: https://codereview.chromium.org/2782803002
Cr-Commit-Position: refs/heads/master@{#461359}

[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/BUILD.gn
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/DEPS
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/prefs/tracked/pref_hash_browsertest.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate.h
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/chrome/browser/safe_browsing/incident_reporting/preference_validation_delegate_unittest.cc
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/components/BUILD.gn
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/components/user_prefs/tracked/DEPS
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/components/user_prefs/tracked/mock_validation_delegate.h
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/components/user_prefs/tracked/pref_names.h
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/BUILD.gn
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/DEPS
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/BUILD.gn
[copy] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/OWNERS
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/configuration.cc
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/configuration.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/mock_validation_delegate.cc
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/mock_validation_delegate.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/pref_names.cc
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/pref_names.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/tracked_preference_histogram_names.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/tracked/tracked_preference_histogram_names.h
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/services/preferences/public/cpp/tracked_preference_validation_delegate.typemap
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/services/preferences/public/cpp/tracked_preference_validation_delegate_struct_traits.cc
[delete] https://crrev.com/be5ca3ea5d86ccc88ff78f5f0ff7cd5c8e796196/services/preferences/public/cpp/tracked_preference_validation_delegate_struct_traits.h
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/cpp/typemaps.gni
[modify] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/public/interfaces/preferences_configuration.mojom
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/BUILD.gn
[add] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/DEPS
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/OWNERS
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/device_id.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/device_id_mac.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/device_id_stub.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/device_id_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/device_id_win.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/dictionary_hash_store_contents.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/dictionary_hash_store_contents.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/hash_store_contents.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/interceptable_pref_filter.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/interceptable_pref_filter.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_calculator.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_calculator.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_calculator_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_filter.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_filter.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_filter_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_store.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_store_impl.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_store_impl.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_store_impl_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/pref_hash_store_transaction.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/registry_hash_store_contents_win.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/registry_hash_store_contents_win.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/registry_hash_store_contents_win_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/segregated_pref_store.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/segregated_pref_store.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/segregated_pref_store_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_atomic_preference.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_atomic_preference.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preference.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preference_helper.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preference_helper.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preferences_migration.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preferences_migration.h
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_preferences_migration_unittest.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_split_preference.cc
[rename] https://crrev.com/fb473a87fb9a0cb77a70811505929ba08c580e74/services/preferences/tracked/tracked_split_preference.h

Cc: pkasting@chromium.org
Should  bug 125840  be duped into this?  Does it track things this bug does not?

AFAICT, PrefService is not a keyed service today.  I have a bug about a TODO I wrote where, when PrefService becomes a keyed service, some particular code should DependsOn() it.  What should I do with that bug -- update it to block on this and change the summary and TODO to something different, or close it and remove the TODO from the code?
Cc: pam@chromium.org mnissler@chromium.org bauerb@chromium.org battre@chromium.org
 Issue 125840  has been merged into this issue.
Project Member

Comment 39 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d2e2fed00150274e4a6857c700dcb24f99793bd7

commit d2e2fed00150274e4a6857c700dcb24f99793bd7
Author: sammc <sammc@chromium.org>
Date: Thu Apr 06 00:50:54 2017

Pref service: add support for tracked prefs.

This:
- Adds TrackedPersistentPrefStoreConfiguration: a mojo struct containing
  the necessary state for constructing a PrefStore identical to the one
  constructed in ProfilePrefStoreManager::CreateProfilePrefStore().
- Moves the enums used to configure tracked prefs into the mojom.
- Extracts the creation of tracked pref store from
  ProfilePrefStoreManager::CreateProfilePrefStore() into
  prefs::CreateTrackedPersistentPrefStore().
- Changes prefs::CreatePersistentPrefStore() so an appropriate
  configuration results in prefs::CreateTrackedPersistentPrefStore()
  being called to create the backing PrefStore.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2745563005
Cr-Commit-Position: refs/heads/master@{#462301}

[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/prefs/chrome_pref_service_factory.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/BUILD.gn
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/persistent_pref_store_factory.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/public/interfaces/preferences_configuration.mojom
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/BUILD.gn
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/pref_hash_filter.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/pref_hash_filter.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/pref_hash_filter_unittest.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/segregated_pref_store.cc
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/segregated_pref_store.h
[modify] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/segregated_pref_store_unittest.cc
[add] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/tracked_persistent_pref_store_factory.cc
[add] https://crrev.com/d2e2fed00150274e4a6857c700dcb24f99793bd7/services/preferences/tracked/tracked_persistent_pref_store_factory.h

Project Member

Comment 40 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2961ff4f598924f8132e9fc1171009cc0ee0b7d6

commit 2961ff4f598924f8132e9fc1171009cc0ee0b7d6
Author: tibell <tibell@chromium.org>
Date: Thu Apr 06 05:31:16 2017

Pref service: have Mash and Chrome connect to the right pref stores

Chrome contains the implementation of all pref stores, except the
default pref store, in-process and thus only needs to connect to
one store. Mash needs to connect to all pref stores.

This is achieved by having clients specify which pref stores they
already know of in-process, rather than the other way
around. That way e.g. mash doesn't need to know which pref stores
Chrome exposes to it.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2791903003
Cr-Commit-Position: refs/heads/master@{#462364}

[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/ash/shell.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/active_profile_pref_service.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/active_profile_pref_service.h
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/browser_prefs.h
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/2961ff4f598924f8132e9fc1171009cc0ee0b7d6/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 41 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100

commit 3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100
Author: foolip <foolip@chromium.org>
Date: Thu Apr 06 06:35:29 2017

Revert of Pref service: add support for tracked prefs. (patchset #19 id:570001 of https://codereview.chromium.org/2745563005/ )

Reason for revert:
ProfilePrefStoreManagerTest/ProfilePrefStoreManagerTest.UnprotectedToProtected/1
became flaky shortly after this landed.

BUG= 708901 

Original issue's description:
> Pref service: add support for tracked prefs.
>
> This:
> - Adds TrackedPersistentPrefStoreConfiguration: a mojo struct containing
>   the necessary state for constructing a PrefStore identical to the one
>   constructed in ProfilePrefStoreManager::CreateProfilePrefStore().
> - Moves the enums used to configure tracked prefs into the mojom.
> - Extracts the creation of tracked pref store from
>   ProfilePrefStoreManager::CreateProfilePrefStore() into
>   prefs::CreateTrackedPersistentPrefStore().
> - Changes prefs::CreatePersistentPrefStore() so an appropriate
>   configuration results in prefs::CreateTrackedPersistentPrefStore()
>   being called to create the backing PrefStore.
>
> BUG= 654988 
>
> Review-Url: https://codereview.chromium.org/2745563005
> Cr-Commit-Position: refs/heads/master@{#462301}
> Committed: https://chromium.googlesource.com/chromium/src/+/d2e2fed00150274e4a6857c700dcb24f99793bd7

TBR=tibell@chromium.org,bauerb@chromium.org,mbarbella@chromium.org,gab@chromium.org,mlerman@chromium.org,sammc@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 654988 

Review-Url: https://codereview.chromium.org/2799043003
Cr-Commit-Position: refs/heads/master@{#462374}

[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/prefs/chrome_pref_service_factory.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/BUILD.gn
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/persistent_pref_store_factory.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/public/interfaces/preferences_configuration.mojom
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/BUILD.gn
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/pref_hash_filter.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/pref_hash_filter.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/pref_hash_filter_unittest.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/segregated_pref_store.cc
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/segregated_pref_store.h
[modify] https://crrev.com/3014f8b41e775fcbdc8fbc1e5b4bd7cb0bfd3100/services/preferences/tracked/segregated_pref_store_unittest.cc
[delete] https://crrev.com/6d202487ff823def4672599f51e9f13880e6b877/services/preferences/tracked/tracked_persistent_pref_store_factory.cc
[delete] https://crrev.com/6d202487ff823def4672599f51e9f13880e6b877/services/preferences/tracked/tracked_persistent_pref_store_factory.h

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbfdf1af972416d91212925a613fb169a31a157a

commit cbfdf1af972416d91212925a613fb169a31a157a
Author: sammc <sammc@chromium.org>
Date: Thu Apr 06 08:38:50 2017

Pref service: add support for tracked prefs.

This:
- Adds TrackedPersistentPrefStoreConfiguration: a mojo struct containing
  the necessary state for constructing a PrefStore identical to the one
  constructed in ProfilePrefStoreManager::CreateProfilePrefStore().
- Moves the enums used to configure tracked prefs into the mojom.
- Extracts the creation of tracked pref store from
  ProfilePrefStoreManager::CreateProfilePrefStore() into
  prefs::CreateTrackedPersistentPrefStore().
- Changes prefs::CreatePersistentPrefStore() so an appropriate
  configuration results in prefs::CreateTrackedPersistentPrefStore()
  being called to create the backing PrefStore.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2745563005
Cr-Original-Commit-Position: refs/heads/master@{#462301}
Committed: https://chromium.googlesource.com/chromium/src/+/d2e2fed00150274e4a6857c700dcb24f99793bd7
Review-Url: https://codereview.chromium.org/2745563005
Cr-Commit-Position: refs/heads/master@{#462395}

[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/prefs/chrome_pref_service_factory.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/BUILD.gn
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/persistent_pref_store_factory.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/public/interfaces/preferences_configuration.mojom
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/BUILD.gn
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/pref_hash_filter.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/pref_hash_filter.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/pref_hash_filter_unittest.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/segregated_pref_store.cc
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/segregated_pref_store.h
[modify] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/segregated_pref_store_unittest.cc
[add] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/tracked_persistent_pref_store_factory.cc
[add] https://crrev.com/cbfdf1af972416d91212925a613fb169a31a157a/services/preferences/tracked/tracked_persistent_pref_store_factory.h

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d46617148d9a542238218ebafd39620731fb85c8

commit d46617148d9a542238218ebafd39620731fb85c8
Author: tibell <tibell@chromium.org>
Date: Tue Apr 11 04:27:45 2017

Don't delete obsolete prefs in incognito

These deletes actually hit the underlying user prefs. In this case that was a
no-op since those prefs had already been deleted, but pref writes do need to
check for incognito.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2814653002
Cr-Commit-Position: refs/heads/master@{#463535}

[modify] https://crrev.com/d46617148d9a542238218ebafd39620731fb85c8/components/content_settings/core/browser/content_settings_pref_provider.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c913ae1fbb09dc8575d840dd1707ed207734bc1

commit 1c913ae1fbb09dc8575d840dd1707ed207734bc1
Author: penghuang <penghuang@chromium.org>
Date: Wed Apr 12 14:16:46 2017

Revert of Don't delete obsolete prefs in incognito (patchset #1 id:1 of https://codereview.chromium.org/2814653002/ )

Reason for revert:
This CL may be related to TwoClientAppListSyncTest.UpdateIncognitoEnableDisable failure

https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.chromiumos%2FLinux_ChromiumOS_Tests__dbg__1_%2F24685%2F%2B%2Frecipes%2Fsteps%2Fsync_integration_tests%2F0%2Fstdout

Original issue's description:
> Don't delete obsolete prefs in incognito
>
> These deletes actually hit the underlying user prefs. In this case that was a
> no-op since those prefs had already been deleted, but pref writes do need to
> check for incognito.
>
> BUG= 654988 
>
> Review-Url: https://codereview.chromium.org/2814653002
> Cr-Commit-Position: refs/heads/master@{#463535}
> Committed: https://chromium.googlesource.com/chromium/src/+/d46617148d9a542238218ebafd39620731fb85c8

TBR=raymes@chromium.org,tibell@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 654988 

Review-Url: https://codereview.chromium.org/2816693003
Cr-Commit-Position: refs/heads/master@{#464014}

[modify] https://crrev.com/1c913ae1fbb09dc8575d840dd1707ed207734bc1/components/content_settings/core/browser/content_settings_pref_provider.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19860c1f69377affc0e8fae4fdece5572c8ed678

commit 19860c1f69377affc0e8fae4fdece5572c8ed678
Author: sammc <sammc@chromium.org>
Date: Wed Apr 12 23:47:53 2017

Pref service: Batch pref updates.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2791893002
Cr-Commit-Position: refs/heads/master@{#464209}

[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/pref_store_client_mixin.cc
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/pref_store_client_mixin.h
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/pref_store_impl.cc
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/cpp/tests/pref_store_client_unittest.cc
[modify] https://crrev.com/19860c1f69377affc0e8fae4fdece5572c8ed678/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 46 by bugdroid1@chromium.org, Apr 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/695e679d6a2068330d3e45e712a82de776e651b9

commit 695e679d6a2068330d3e45e712a82de776e651b9
Author: tibell <tibell@chromium.org>
Date: Tue Apr 18 03:59:48 2017

Don't delete obsolete prefs in incognito

These deletes actually hit the underlying user prefs. In this case that was a
no-op since those prefs had already been deleted, but pref writes do need to
check for incognito.

BUG= 654988 

Review-Url: https://codereview.chromium.org/2814653002
Cr-Original-Commit-Position: refs/heads/master@{#463535}
Committed: https://chromium.googlesource.com/chromium/src/+/d46617148d9a542238218ebafd39620731fb85c8
Review-Url: https://codereview.chromium.org/2814653002
Cr-Commit-Position: refs/heads/master@{#465134}

[modify] https://crrev.com/695e679d6a2068330d3e45e712a82de776e651b9/components/content_settings/core/browser/content_settings_pref_provider.cc

Project Member

Comment 47 by bugdroid1@chromium.org, May 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69572327b573ca3df963d2a0d482064af289b1b5

commit 69572327b573ca3df963d2a0d482064af289b1b5
Author: Sam McNally <sammc@chromium.org>
Date: Mon May 01 23:39:04 2017

Pref service: Add a ScopedDictionaryPrefUpdate to track value changes.

Currently, if a pref is changed and the pref service is enabled, the
entire value is sent to the pref service and other clients. For large
prefs used by extensions or content settings this can result
milliseconds of busy time on the UI thread.

ScopedDictionaryPrefUpdate tracks which components of a pref are changed
so only the changes need to be sent to the pref service and other pref
clients.

Bug:  654988 
Change-Id: Ied5dc6d0fadaa04817330fddce08efdc8b1d0fce
Reviewed-on: https://chromium-review.googlesource.com/476370
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#468484}
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/components/prefs/BUILD.gn
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/components/prefs/pref_service.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/components/prefs/pref_service.h
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/components/prefs/writeable_pref_store.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/components/prefs/writeable_pref_store.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/mojo/common/values_struct_traits.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/mojo/common/values_struct_traits.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/BUILD.gn
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/BUILD.gn
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/dictionary_value_update.cc
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/dictionary_value_update.h
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/lib/BUILD.gn
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/lib/util.cc
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/lib/util.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/pref_store_client_mixin.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/pref_store_client_mixin.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/pref_store_impl.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/pref_store_impl.h
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/scoped_pref_update.cc
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/scoped_pref_update.h
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/tests/BUILD.gn
[add] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/tests/persistent_pref_store_client_unittest.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/cpp/tests/pref_store_client_unittest.cc
[modify] https://crrev.com/69572327b573ca3df963d2a0d482064af289b1b5/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 48 by bugdroid1@chromium.org, May 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e72a3130f14c931b19617f818945877e93059a15

commit e72a3130f14c931b19617f818945877e93059a15
Author: Sam McNally <sammc@chromium.org>
Date: Wed May 03 10:57:43 2017

Don't request the default pref store from the pref service.

The browser already has all the defaults and ignores the returned pref
store connection so this is just wasting time at startup.

Bug:  654988 
Change-Id: I05a6af935fd44f5ea9d37cef71e3acf3d782e4d4
Reviewed-on: https://chromium-review.googlesource.com/494407
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#468935}
[modify] https://crrev.com/e72a3130f14c931b19617f818945877e93059a15/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/e72a3130f14c931b19617f818945877e93059a15/services/preferences/pref_store_manager_impl.cc

Project Member

Comment 49 by bugdroid1@chromium.org, May 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76928f07e2ff7aa3a91b99ca422f6aff1676eaab

commit 76928f07e2ff7aa3a91b99ca422f6aff1676eaab
Author: Sam McNally <sammc@chromium.org>
Date: Wed May 03 11:20:53 2017

Use a single PrefStoreRegistryPtr for layered  pref store registration.

On low-end devices, BindInterface can be quite expensive. This CL
improves startup performance on low-end devices by using a single
PrefStoreRegistryPtr for all layered pref stores to be registered with
the pref service.

Bug:  654988 
Change-Id: I1536f69f7c1a959cb41ed2b728e995b0d5f7eb17
Reviewed-on: https://chromium-review.googlesource.com/494368
Commit-Queue: Sam McNally <sammc@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#468938}
[modify] https://crrev.com/76928f07e2ff7aa3a91b99ca422f6aff1676eaab/components/sync_preferences/pref_service_syncable_factory.cc

#49 do you have metrics for BindInterface being expensive on low end devices? I would be interested in learning more of the specifics.
On a Nexus 9 with tracing enabled, service manager and its client library were taking ~60ms to start the pref service and establish 6 connections via BindInterface. Establishing only 3 connections dropped it to ~40ms. As context, initializing prefs without the pref service takes ~10ms.

A good chunk of the time seemed to be spent copying, serializing or deserializing service_manager::InterfaceProviderSpecMap.

In the mean time r468553 seems to have removed one of the serialize/deserialize pairs.
Project Member

Comment 52 by bugdroid1@chromium.org, May 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1

commit ab30c21b503253f8a9bb9e92f04db009f1fc4fa1
Author: Sam McNally <sammc@chromium.org>
Date: Mon May 08 07:28:01 2017

Use ScopedDictionaryPrefUpdate in content settings.

Content settings uses DictionaryPrefUpdate to conditionally modify pref
values. When using the pref service, these spurious change notifications
have a non-trivial cost. This CL changes content settings to use
ScopedDictionaryPrefUpdate, which tracks which parts of a pref value are
changed and only notifies about the changed parts.

Bug:  654988 
Change-Id: I525433a6b7a6e75c4adae983359a1a41883feffd
Reviewed-on: https://chromium-review.googlesource.com/487768
Commit-Queue: Sam McNally <sammc@chromium.org>
Reviewed-by: Martin Šrámek <msramek@chromium.org>
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#469913}
[modify] https://crrev.com/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1/components/content_settings/core/browser/BUILD.gn
[modify] https://crrev.com/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1/components/content_settings/core/browser/DEPS
[modify] https://crrev.com/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1/components/content_settings/core/browser/content_settings_pref.cc
[modify] https://crrev.com/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1/components/content_settings/core/browser/content_settings_pref.h
[modify] https://crrev.com/ab30c21b503253f8a9bb9e92f04db009f1fc4fa1/components/content_settings/core/browser/content_settings_pref_provider.cc

Project Member

Comment 53 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a8a1591fabb9b19c01f5833756fbb089676ee8a5

commit a8a1591fabb9b19c01f5833756fbb089676ee8a5
Author: Johan Tibell <tibell@chromium.org>
Date: Thu May 11 02:39:37 2017

Content settings: don't write prefs when in incognito

Prior to this change prefs such as
profile.default_content_setting_values.fullscreen would be written to
the underlying profile's user prefs when in incognito.

Bug:  654988 
Change-Id: I232e1a00b0c061ae5e8d3475e5efbfe6c4fcc697
Reviewed-on: https://chromium-review.googlesource.com/502407
Reviewed-by: Raymes Khoury <raymes@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#470779}
[modify] https://crrev.com/a8a1591fabb9b19c01f5833756fbb089676ee8a5/components/content_settings/core/browser/content_settings_default_provider.cc

Project Member

Comment 54 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9326522b744f847e47787b2623b155d1ee2f2c77

commit 9326522b744f847e47787b2623b155d1ee2f2c77
Author: Johan Tibell <tibell@chromium.org>
Date: Thu May 11 02:39:55 2017

Site Engagement: don't write prefs when in incognito

Before this change "profile.last_engagement_time" would be written to
the underlying profile's user prefs when in incognito.

Bug:  654988 
Change-Id: I0c0530b780ae15f3022c0ea5fc5568bdbd452b45
Reviewed-on: https://chromium-review.googlesource.com/502447
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#470780}
[modify] https://crrev.com/9326522b744f847e47787b2623b155d1ee2f2c77/chrome/browser/engagement/site_engagement_service.cc

Project Member

Comment 55 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7c998bd51c87eca0427c67a449a5686b583c9a8e

commit 7c998bd51c87eca0427c67a449a5686b583c9a8e
Author: Johan Tibell <tibell@chromium.org>
Date: Thu May 11 22:44:34 2017

Pref service: don't send default values to the service

Until we have a distinction between owned and unowned prefs sending
these around just wastes CPU cycles. This makes startup 2ms faster on a
Nexus 9.

Bug:  654988 , 719770 
Change-Id: I87e5c8da9d93226dfdf47acedf42c75f07f01a77
Reviewed-on: https://chromium-review.googlesource.com/497113
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471098}
[modify] https://crrev.com/7c998bd51c87eca0427c67a449a5686b583c9a8e/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/7c998bd51c87eca0427c67a449a5686b583c9a8e/services/preferences/public/cpp/pref_registry_serializer.cc
[modify] https://crrev.com/7c998bd51c87eca0427c67a449a5686b583c9a8e/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/7c998bd51c87eca0427c67a449a5686b583c9a8e/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/7c998bd51c87eca0427c67a449a5686b583c9a8e/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 56 by bugdroid1@chromium.org, May 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6566c8ac694b25ca9a5a14266fce59b2c9b5ede4

commit 6566c8ac694b25ca9a5a14266fce59b2c9b5ede4
Author: Johan Tibell <tibell@chromium.org>
Date: Thu May 11 23:03:45 2017

Prefs: don't map pref keys in incognito

The functionality to store prefs under different keys in the in-memory
pref store that overlays the underlying profile's user prefs is unused.
Removing this functionality simplifies the code and helps the effort
of converting prefs to a Mojo service.

Bug:  654988 
Change-Id: I5ae8455f64cbce685953b2c9ade6d17f17550921
Reviewed-on: https://chromium-review.googlesource.com/502387
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#471106}
[modify] https://crrev.com/6566c8ac694b25ca9a5a14266fce59b2c9b5ede4/components/prefs/overlay_user_pref_store.cc
[modify] https://crrev.com/6566c8ac694b25ca9a5a14266fce59b2c9b5ede4/components/prefs/overlay_user_pref_store.h
[modify] https://crrev.com/6566c8ac694b25ca9a5a14266fce59b2c9b5ede4/components/prefs/overlay_user_pref_store_unittest.cc

Components: Internals>Preferences>Service
Summary: Extract Preferences into a service (was: Content Modularization Project: Extract Preferences into a service)
Project Member

Comment 58 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05e9e692a561e8008de33784bd4c741ad606bcc7

commit 05e9e692a561e8008de33784bd4c741ad606bcc7
Author: Sam McNally <sammc@chromium.org>
Date: Thu May 25 00:31:10 2017

Use ScopedDictionaryPrefUpdate in extensions.

Extensions performs many updates to small parts of large prefs. When
using the pref service, these changes result in the entire pref being
updated, which can be expensive for profiles with many extensions
installed. This CL changes extensions to use ScopedDictionaryPrefUpdate,
which tracks which parts of a pref value are changed and only notifies
about the changed parts.

Bug:  654988 
Change-Id: I9c7d5a7b0e015eaa1e0afe4a515c1bc0a8237b24
Reviewed-on: https://chromium-review.googlesource.com/487769
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474493}
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/apps/saved_files_service.cc
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/chrome/browser/extensions/api/preference/preference_api.cc
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/extensions/browser/BUILD.gn
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/extensions/browser/DEPS
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/extensions/browser/event_router.cc
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/extensions/browser/extension_prefs.cc
[modify] https://crrev.com/05e9e692a561e8008de33784bd4c741ad606bcc7/extensions/browser/extension_prefs.h

Project Member

Comment 59 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/74bb3b85224a01473a0efabf331ebe4e8541ccb8

commit 74bb3b85224a01473a0efabf331ebe4e8541ccb8
Author: Sam McNally <sammc@chromium.org>
Date: Fri May 26 08:18:54 2017

Change prefs::ConnectToPrefService() to take local pref stores.

Currently, ConnectToPrefService() takes a list of pref store types that
are to be provided locally, but does not expose a way to register them
with the created PrefService object. This replaces that with a map of
pref stores that are local.

Bug:  654988 
Change-Id: I187bf1a148e3e2e041e6f3b01b7eefc4deaabefd
Reviewed-on: https://chromium-review.googlesource.com/514942
Commit-Queue: Sam McNally <sammc@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#474964}
[modify] https://crrev.com/74bb3b85224a01473a0efabf331ebe4e8541ccb8/ash/shell.cc
[modify] https://crrev.com/74bb3b85224a01473a0efabf331ebe4e8541ccb8/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/74bb3b85224a01473a0efabf331ebe4e8541ccb8/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/74bb3b85224a01473a0efabf331ebe4e8541ccb8/services/preferences/public/cpp/pref_service_factory.h

Project Member

Comment 60 by bugdroid1@chromium.org, May 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33eaae62b5c0005b2959393bb473445a7d77bb4f

commit 33eaae62b5c0005b2959393bb473445a7d77bb4f
Author: Sam McNally <sammc@chromium.org>
Date: Mon May 29 06:39:41 2017

Enable PrefService by default.

Bug:  654988 ,707602
Change-Id: I4abf66b0c333d6ab27f1239b18a24576967a8835
Reviewed-on: https://chromium-review.googlesource.com/517604
Reviewed-by: Johan Tibell <tibell@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#475300}
[modify] https://crrev.com/33eaae62b5c0005b2959393bb473445a7d77bb4f/chrome/common/chrome_features.cc

Project Member

Comment 61 by bugdroid1@chromium.org, May 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c404ba2c32273e73801f36c7c8b49abe76de779e

commit c404ba2c32273e73801f36c7c8b49abe76de779e
Author: Henrik Kjellander <kjellander@chromium.org>
Date: Tue May 30 08:10:06 2017

Revert "Enable PrefService by default."

This reverts commit 33eaae62b5c0005b2959393bb473445a7d77bb4f.

Reason for revert: Probable culprit for  crbug.com/727282  (flakiness and failures in sync_integration_tests on Win7 Tests bot).

Original change's description:
> Enable PrefService by default.
> 
> Bug:  654988 ,707602
> Change-Id: I4abf66b0c333d6ab27f1239b18a24576967a8835
> Reviewed-on: https://chromium-review.googlesource.com/517604
> Reviewed-by: Johan Tibell <tibell@chromium.org>
> Commit-Queue: Sam McNally <sammc@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#475300}

TBR=sammc@chromium.org,tibell@chromium.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  654988 ,707602,  727282 

Change-Id: I593fe2b0ea00b379f394cbdd214cee6330d27297
Reviewed-on: https://chromium-review.googlesource.com/517494
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Cr-Commit-Position: refs/heads/master@{#475459}
[modify] https://crrev.com/c404ba2c32273e73801f36c7c8b49abe76de779e/chrome/common/chrome_features.cc

Project Member

Comment 62 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81

commit dcf9a3a88e372fbb99a69df9689fd1d9463c1e81
Author: Johan Tibell <tibell@chromium.org>
Date: Fri Jun 02 00:02:50 2017

Pref service: support for incognito prefs

preferences.mojom and preferences_configuration.mojom had to be merged as they
would cause a circular import otherwise.

BUG:  654988 
Change-Id: I061365e7c6c7ae3c851e427a24d2a322e1210987
Reviewed-on: https://chromium-review.googlesource.com/514902
Reviewed-by: Martin Barbella <mbarbella@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476490}
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/chrome/browser/prefs/active_profile_pref_service.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/chrome/browser/prefs/active_profile_pref_service.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/persistent_pref_store_factory.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/cpp/tracked/configuration.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/cpp/tracked/mock_validation_delegate.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/interfaces/BUILD.gn
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/public/interfaces/preferences.mojom
[delete] https://crrev.com/5837bd9797c8dbc8c1302767398ecee98074b51e/services/preferences/public/interfaces/preferences_configuration.mojom
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/scoped_pref_connection_builder.cc
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/scoped_pref_connection_builder.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/tracked/pref_hash_filter.h
[modify] https://crrev.com/dcf9a3a88e372fbb99a69df9689fd1d9463c1e81/services/preferences/tracked/tracked_persistent_pref_store_factory.h

Project Member

Comment 63 by bugdroid1@chromium.org, Jun 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e86efa750446d66832e1dd957be78f24a34e1ad9

commit e86efa750446d66832e1dd957be78f24a34e1ad9
Author: Johan Tibell <tibell@chromium.org>
Date: Mon Jun 05 05:25:19 2017

pref service: add a readme

Bug:  654988 
Change-Id: I3655b678dd28378e9f02f3f5eb7428e794718e7f
Reviewed-on: https://chromium-review.googlesource.com/523464
Reviewed-by: Sam McNally <sammc@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#476945}
[add] https://crrev.com/e86efa750446d66832e1dd957be78f24a34e1ad9/services/preferences/README.md

Project Member

Comment 64 by bugdroid1@chromium.org, Jun 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b6a1d579e56d124b4b8831a72e059bfb85db337

commit 3b6a1d579e56d124b4b8831a72e059bfb85db337
Author: Johan Tibell <tibell@chromium.org>
Date: Tue Jun 06 07:21:30 2017

Pref service: improve readme wording

Bug:  654988 
Change-Id: I0f0c96923ffb6e27a9c47625ecb23653af8850fd
Reviewed-on: https://chromium-review.googlesource.com/525153
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Johan Tibell <tibell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477225}
[modify] https://crrev.com/3b6a1d579e56d124b4b8831a72e059bfb85db337/services/preferences/README.md

Project Member

Comment 65 by bugdroid1@chromium.org, Jun 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a

commit 99d5d72e08266418ab4d283eaec03cf6aa9b8e5a
Author: Sam McNally <sammc@chromium.org>
Date: Thu Jun 08 01:24:08 2017

Pref service: provide eventual consistency with multiple writers.

Currently, if two writers both write to a single pref or a single
subpref without seeing each other's writes, the two writers will each
converge to the other's value rather than a shared value. This CL
corrects this by eventually converging all clients to the last value
observed by the service, without any values moving backwards in
serialized write order.

To provide eventual consistency, each client tracks the prefs for which
a write has been sent to the pref service, but which have not been
acknowledged. The acks are sent on the same interface as updates
triggered by other clients so any remote writes received before an ack
are writes that have been serialized to after the in-flight write.
Thus, the client can ignore such writes.

Since prefs are hierarchical and writes can be applied to individual
sub-components of a single pref, writes to parent and child values can
race. If the parent write is applied first, then the client writing the
child value does not have a simple strategy to resolve the conflicting
changes with the information it has. Instead, in these cases, it
requests a value from the service for the parent value. Such values are
returned as pref value updates, just like notifications of a write by
another client and conflicts are handled similarly.

Bug:  654988 
Change-Id: I1959f1b100134d9dc3af2b1c94d6ec08b139b8ce
Reviewed-on: https://chromium-review.googlesource.com/522303
Reviewed-by: Johan Tibell <tibell@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477850}
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/BUILD.gn
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/pref_service_factory_unittest.cc
[add] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/pref_store_consistency_unittest.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/cpp/pref_store_client_mixin.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/cpp/pref_store_client_mixin.h
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/cpp/tests/persistent_pref_store_client_unittest.cc
[modify] https://crrev.com/99d5d72e08266418ab4d283eaec03cf6aa9b8e5a/services/preferences/public/interfaces/preferences.mojom

Project Member

Comment 66 by bugdroid1@chromium.org, Jun 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd0c21dfb32b6235c5c4bed740dac090b4e25bae

commit cd0c21dfb32b6235c5c4bed740dac090b4e25bae
Author: Sam McNally <sammc@chromium.org>
Date: Fri Jun 09 01:31:36 2017

Enable PrefService by default.

This also changes a DCHECK in RegistryHashStoreContentsWin to be more
permissive to workaround  crbug.com/727282 , which is triggered more
reliably with PrefService enabled.

Bug:  654988 , 707602,  727282 
Change-Id: I39e94dd6d2c7360d8763608a1ac9897f98141902
Reviewed-on: https://chromium-review.googlesource.com/527959
Reviewed-by: Johan Tibell <tibell@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478157}
[modify] https://crrev.com/cd0c21dfb32b6235c5c4bed740dac090b4e25bae/chrome/common/chrome_features.cc
[modify] https://crrev.com/cd0c21dfb32b6235c5c4bed740dac090b4e25bae/services/preferences/tracked/registry_hash_store_contents_win.cc

Project Member

Comment 67 by bugdroid1@chromium.org, Jun 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f6cc0743647779ede38b8b14c61d39c9d0b75424

commit f6cc0743647779ede38b8b14c61d39c9d0b75424
Author: Sam McNally <sammc@chromium.org>
Date: Tue Jun 13 05:01:15 2017

Pref service: filter initial values returned at connection time.

Currently, the entire contents of a PrefStore is included when creating
a PrefStoreConnection. As services are created that only register a
small subset of all prefs, this will become wasteful. This CL adds
filtering of the PrefStore contents to only include parts matching the
prefs registered for each client.

Bug:  654988 
Change-Id: I029d81ae384f6eea8f9df169071142e3f1957438
Reviewed-on: https://chromium-review.googlesource.com/525253
Reviewed-by: Johan Tibell <tibell@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#478903}
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/public/cpp/lib/util.cc
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/public/cpp/lib/util.h
[modify] https://crrev.com/f6cc0743647779ede38b8b14c61d39c9d0b75424/services/preferences/public/cpp/pref_store_impl.cc

Project Member

Comment 68 by bugdroid1@chromium.org, Jun 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ecb6094517bda4e1f7d7624153e4e73a6db06da2

commit ecb6094517bda4e1f7d7624153e4e73a6db06da2
Author: Sam McNally <sammc@chromium.org>
Date: Tue Jun 20 23:41:58 2017

Move the pref service from the IO thread to a task scheduler sequence.

Bug:  654988 
Change-Id: I7f91eafc52aed40c8243e657b85c821605f9c76b
Reviewed-on: https://chromium-review.googlesource.com/526914
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481028}
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/browser_process_impl.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/off_the_record_profile_impl.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/off_the_record_profile_impl.h
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/profile.h
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/ui/app_list/test/fake_profile.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/browser/ui/app_list/test/fake_profile.h
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/test/base/testing_profile.cc
[modify] https://crrev.com/ecb6094517bda4e1f7d7624153e4e73a6db06da2/chrome/test/base/testing_profile.h

Comment 69 by sa...@chromium.org, Jun 21 2017

Status: Fixed (was: Started)
Project Member

Comment 70 by bugdroid1@chromium.org, Jun 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e829660f4e678f3fd1edc36b6a6785de4714bb4

commit 5e829660f4e678f3fd1edc36b6a6785de4714bb4
Author: Primiano Tucci <primiano@chromium.org>
Date: Wed Jun 28 17:07:53 2017

Revert "Enable PrefService by default."

This reverts commit cd0c21dfb32b6235c5c4bed740dac090b4e25bae.

Reason for revert:
The CL caused perf regressions ( crbug.com/732294 ).
No immediate plan to address the problem showed up.
Reverting in accordance with perf sheriffing rules in
https://chromium.googlesource.com/chromium/src/+/master/docs/speed/perf_regression_sheriffing.md

Original change's description:
> Enable PrefService by default.
>
> This also changes a DCHECK in RegistryHashStoreContentsWin to be more
> permissive to workaround  crbug.com/727282 , which is triggered more
> reliably with PrefService enabled.
>
> Bug:  654988 , 707602,  727282 
> Change-Id: I39e94dd6d2c7360d8763608a1ac9897f98141902
> Reviewed-on: https://chromium-review.googlesource.com/527959
> Reviewed-by: Johan Tibell <tibell@chromium.org>
> Commit-Queue: Sam McNally <sammc@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#478157}

TBR=sammc@chromium.org,jam@chromium.org

Bug:  732294 ,  654988 , 707602,  727282 
Change-Id: I2636bf309da1f32b76f5c6eff3e10145e769f1a2
Reviewed-on: https://chromium-review.googlesource.com/552142
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483036}
[modify] https://crrev.com/5e829660f4e678f3fd1edc36b6a6785de4714bb4/chrome/common/chrome_features.cc

Cc: roc...@chromium.org jam@chromium.org
Owner: sa...@chromium.org
Status: Started (was: Fixed)
Summary: Expose Preferences from the browser process as a service (was: Extract Preferences into a service)
As discussed in the meeting with jam@ and rockot@, the memory impact of adding an extra copy of prefs is too high so we're going to not treat prefs as a service from inside the browser process. https://chromium-review.googlesource.com/c/554653/ is how this is likely to end up looking.

There's still an open question of whether services should use a sync API with an extra local copy of just the prefs they use or whether they should migrate to an async API when turning into a service.
Cc: slangley@chromium.org
Project Member

Comment 73 by bugdroid1@chromium.org, Jul 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/538fca1e6cadb17dae1add92c5eda299858ea3f1

commit 538fca1e6cadb17dae1add92c5eda299858ea3f1
Author: Sam McNally <sammc@chromium.org>
Date: Fri Jul 14 03:10:43 2017

Pref service: Bypass the encapsulation.

The previous approach of encapsulating the pref service from chrome
regressed memory. Remove that encapsulation by moving the source of
truth back into the browser "service" and using those PrefStores
directly from the pref service, bypassing any mojo messages.

Remove the control and registration interfaces which are no longer
needed since the pref service is directly provided with its PrefStores.
Also move the pref service to the UI thread, where the PrefStores
already live.

Other services may still access prefs via the pref service using the
existing sync API (with a local copy of requested prefs), but are
responsible for managing the increased memory footprint that could
result.

Change PersistentPrefStoreImpl to never start a pref read; the embedder
is reponsible for ensuring the underlying PersistentPrefStore is either
already initialised, or is in the process of being initialised. Change
PersistentPrefStoreImpl to always observe the underlying
PersistentPrefStore to detect changes originating from inside the
embedder. Duplicate the update filtering from the per-connection class
to ensure that each client continues to receive each update from other
clients exactly once and never be notified about changes it instigated.

Bug:  654988 
Change-Id: I7eb9e427c9f66d1eb4526d6ea8d9ca6e61c87262
Reviewed-on: https://chromium-review.googlesource.com/554653
Commit-Queue: Sam McNally <sammc@chromium.org>
Reviewed-by: David Roger <droger@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486660}
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/ash/shell.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/BUILD.gn
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/browser_process_impl.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/browser_process_platform_part_chromeos.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/extensions/test_extension_prefs.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/active_profile_pref_service.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/active_profile_pref_service.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/browser_prefs.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/browser_prefs.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/chrome_pref_service_factory.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/chrome_pref_service_factory.h
[add] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/in_process_service_factory_factory.cc
[add] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/in_process_service_factory_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/pref_service_syncable_util.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/pref_service_syncable_util.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/profile_pref_store_manager.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/profile_pref_store_manager.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/prefs/profile_pref_store_manager_unittest.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/off_the_record_profile_impl.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/off_the_record_profile_impl.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/profile.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/ui/app_list/test/fake_profile.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/browser/ui/app_list/test/fake_profile.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/common/chrome_features.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/common/chrome_features.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/test/base/testing_profile.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/chrome/test/base/testing_profile.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/prefs/pref_value_store.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/sync_preferences/BUILD.gn
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/sync_preferences/pref_service_syncable.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/sync_preferences/pref_service_syncable.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/sync_preferences/pref_service_syncable_factory.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/components/sync_preferences/pref_service_syncable_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/ios/chrome/browser/prefs/ios_chrome_pref_service_factory.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/BUILD.gn
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/manifest.json
[delete] https://crrev.com/eec2095ebdbfd803f06726a56a6a82b484b686e3/services/preferences/persistent_pref_store_factory.cc
[delete] https://crrev.com/eec2095ebdbfd803f06726a56a6a82b484b686e3/services/preferences/persistent_pref_store_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/persistent_pref_store_impl.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/persistent_pref_store_impl.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/persistent_pref_store_impl_unittest.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_service_factory_unittest.cc
[rename] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_store_impl.cc
[rename] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_store_impl.h
[rename] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_store_impl_unittest.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/BUILD.gn
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/DEPS
[add] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/in_process_service_factory.cc
[add] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/in_process_service_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/persistent_pref_store_client.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/persistent_pref_store_client.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/pref_service_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/pref_service_main.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/pref_service_main.h
[delete] https://crrev.com/eec2095ebdbfd803f06726a56a6a82b484b686e3/services/preferences/public/cpp/registering_delegate.cc
[delete] https://crrev.com/eec2095ebdbfd803f06726a56a6a82b484b686e3/services/preferences/public/cpp/registering_delegate.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/cpp/tests/BUILD.gn
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/public/interfaces/preferences.mojom
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/scoped_pref_connection_builder.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/scoped_pref_connection_builder.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/shared_pref_registry.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/shared_pref_registry.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/tracked/tracked_persistent_pref_store_factory.cc
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/tracked/tracked_persistent_pref_store_factory.h
[modify] https://crrev.com/538fca1e6cadb17dae1add92c5eda299858ea3f1/services/preferences/unittest_manifest.json

Comment 74 by sa...@chromium.org, Jul 17 2017

Status: Fixed (was: Started)
Project Member

Comment 75 by bugdroid1@chromium.org, Sep 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aa67d7f217d35c97787c140caf0c3e22643f7b08

commit aa67d7f217d35c97787c140caf0c3e22643f7b08
Author: Sam McNally <sammc@chromium.org>
Date: Mon Sep 04 03:34:06 2017

Pref service: fix incognito support.

When creating a PrefService for incognito, the delegate holds onto the
underlay and the OverlayUserPrefStore (the composite view of incognito
prefs). Thus, clients observe all prefs being present in the overlay,
causing DCHECK failures.

Bind the PersistentPrefStoreImpls directly to the underlay and overlay
PrefStores so pref service clients observe prefs in the corresponding
pref stores as chrome. Pass the list of overlayed prefs to clients
(filtered to the prefs they observe) so they can correctly overlay.

Add unit tests for pref service with incognito prefs.

Change-Id: Iced63b840b682b6958d97853678ab9163c291f0c
Bug:  654988 ,  761123 
Reviewed-on: https://chromium-review.googlesource.com/624772
Commit-Queue: Sam McNally <sammc@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499432}
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/components/prefs/overlay_user_pref_store.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/components/prefs/pref_value_store.h
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/components/sync_preferences/pref_service_syncable.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/pref_service_factory_unittest.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/pref_store_manager_impl.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/pref_store_manager_impl.h
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/cpp/in_process_service_factory.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/cpp/in_process_service_factory.h
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/cpp/pref_service_factory.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/cpp/pref_service_main.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/cpp/pref_service_main.h
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/public/interfaces/preferences.mojom
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/scoped_pref_connection_builder.cc
[modify] https://crrev.com/aa67d7f217d35c97787c140caf0c3e22643f7b08/services/preferences/scoped_pref_connection_builder.h

There's still a TODO referencing this bug in chrome/browser/prefs/DEPS.

Sign in to add a comment