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-Original-Commit-Position: refs/heads/master@{#460273}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 2a1451c0b54e230d212035525fc6b373abea7f5b
1 file changed
tree: 731f007afe19fa24d03a5f26c4b3bce791a6c6e3
  1. android/
  2. common/
  3. edk/
  4. public/
  5. BUILD.gn
  6. DEPS
  7. OWNERS
  8. PRESUBMIT.py
  9. README.md
README.md

Mojo

Mojo is an IPC & binding mechanism for Chromium.

TODO(rockot): Describe the important subdirectories.