Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable.

The first two (PrefServiceSimple is a subclass of PrefService) know
nothing about sync or any Chrome or content concepts.

The third (PrefServiceSyncable, a separate subclass of PrefService)
knows about sync and requires users to choose whether each individual
preference is syncable or not when it is registered.

BrowserProcess::local_state() is a PrefServiceSimple after this
change, and Profile::prefs() is a PrefServiceSyncable.

[email protected]
[email protected]
BUG=155525


Review URL: https://chromiumcodereview.appspot.com/11570009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174531 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index 0f1eab3..5d7388c 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -24,6 +24,7 @@
 class CommandLine;
 class PrefProxyConfigTrackerImpl;
 class PrefService;
+class PrefServiceSimple;
 class SystemURLRequestContextGetter;
 
 namespace chrome_browser_net {
@@ -166,7 +167,7 @@
   };
 
   // |net_log| must either outlive the IOThread or be NULL.
-  IOThread(PrefService* local_state,
+  IOThread(PrefServiceSimple* local_state,
            policy::PolicyService* policy_service,
            ChromeNetLog* net_log,
            extensions::EventRouterForwarder* extension_event_router_forwarder);
@@ -231,7 +232,7 @@
   // SystemRequestContext state has been initialized on the UI thread.
   void InitSystemRequestContextOnIOThread();
 
-  static void RegisterPrefs(PrefService* local_state);
+  static void RegisterPrefs(PrefServiceSimple* local_state);
 
   net::HttpAuthHandlerFactory* CreateDefaultAuthHandlerFactory(
       net::HostResolver* resolver);