| Index: chrome/browser/ui/browser.cc | 
| diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc | 
| index 45ecaf003e05ead68aad5ca28e314de2eb12a577..c9333c63fcb9039ef7e85a525f4bcb06e5367f2e 100644 | 
| --- a/chrome/browser/ui/browser.cc | 
| +++ b/chrome/browser/ui/browser.cc | 
| @@ -2043,25 +2043,42 @@ void Browser::SetNewHomePagePrefs(PrefService* prefs) { | 
|  | 
| // static | 
| void Browser::RegisterPrefs(PrefService* prefs) { | 
| -  prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); | 
| -  prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, -1); | 
| -  prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, 0); | 
| -  prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); | 
| +  prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, | 
| +                             0, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterIntegerPref(prefs::kExtensionSidebarWidth, | 
| +                             -1, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterIntegerPref(prefs::kMultipleProfilePrefMigration, | 
| +                             0, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| // Educated guess: Chrome has a bundled Flash version supporting | 
| // clearing LSO data, Chromium hasn't. | 
| #if defined(GOOGLE_CHROME_BUILD) | 
| -  prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, true); | 
| +  prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| #else | 
| -  prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, false); | 
| +  prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| #endif | 
| } | 
|  | 
| // static | 
| void Browser::RegisterUserPrefs(PrefService* prefs) { | 
| prefs->RegisterStringPref(prefs::kHomePage, | 
| -                            chrome::kChromeUINewTabURL); | 
| -  prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, true); | 
| -  prefs->RegisterBooleanPref(prefs::kShowHomeButton, false); | 
| +                            chrome::kChromeUINewTabURL, | 
| +                            true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, | 
| +                             true, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kShowHomeButton, | 
| +                             false, | 
| +                             true /* sync pref */); | 
| #if defined(OS_MACOSX) | 
| // This really belongs in platform code, but there's no good place to | 
| // initialize it between the time when the AppController is created | 
| @@ -2071,43 +2088,104 @@ void Browser::RegisterUserPrefs(PrefService* prefs) { | 
| // pref to be already initialized. Doing it here also saves us from having | 
| // to hard-code pref registration in the several unit tests that use | 
| // this preference. | 
| -  prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, false); | 
| -  prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, true); | 
| +  prefs->RegisterBooleanPref(prefs::kConfirmToQuitEnabled, | 
| +                             false, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| #endif | 
| -  prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, true); | 
| -  prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, true); | 
| -  prefs->RegisterBooleanPref(prefs::kDeleteCache, true); | 
| -  prefs->RegisterBooleanPref(prefs::kDeleteCookies, true); | 
| -  prefs->RegisterBooleanPref(prefs::kDeletePasswords, false); | 
| -  prefs->RegisterBooleanPref(prefs::kDeleteFormData, false); | 
| -  prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, 0); | 
| -  prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, true); | 
| -  prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, true); | 
| -  prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, true); | 
| -  prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); | 
| -  prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); | 
| -  prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, false); | 
| -  prefs->RegisterBooleanPref(prefs::kEnableTranslate, true); | 
| -  prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, true); | 
| -  prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, false); | 
| -  prefs->RegisterBooleanPref(prefs::kChromotingEnabled, false); | 
| -  prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, false); | 
| -  prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, false); | 
| -  prefs->RegisterStringPref(prefs::kCloudPrintEmail, std::string()); | 
| -  prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true); | 
| -  prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, false); | 
| -  prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, true); | 
| -  prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); | 
| -  prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); | 
| -  prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement); | 
| +  prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, | 
| +                             true, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, | 
| +                             true, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDeleteCache, true, true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDeleteCookies, | 
| +                             true, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDeletePasswords, | 
| +                             false, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDeleteFormData, | 
| +                             false, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, | 
| +                             0, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kUseVerticalTabs, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kEnableTranslate, | 
| +                             true, | 
| +                             true /* sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kEnableBookmarkBar, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kRemotingHasSetupCompleted, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kChromotingEnabled, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kChromotingHostEnabled, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kChromotingHostFirewallTraversal, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterStringPref(prefs::kCloudPrintEmail, | 
| +                            std::string(), | 
| +                            false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kIncognitoEnabled, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, | 
| +                             -1, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, | 
| +                                false /* don't sync pref */); | 
| +  prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, | 
| +                                false /* don't sync pref */); | 
| // We need to register the type of these preferences in order to query | 
| -  // them even though they're typically only controlled via policy or command | 
| -  // line switches. | 
| -  prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, false); | 
| -  prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, false); | 
| -  prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, false); | 
| -  prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, true); | 
| -  prefs->RegisterBooleanPref(prefs::kEnableReferrers, true); | 
| +  // them even though they're only typically controlled via policy. | 
| +  prefs->RegisterBooleanPref(prefs::kDisable3DAPIs, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, | 
| +                             false, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kEnableHyperlinkAuditing, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| +  prefs->RegisterBooleanPref(prefs::kEnableReferrers, | 
| +                             true, | 
| +                             false /* don't sync pref */); | 
| } | 
|  | 
| // static | 
| @@ -4338,7 +4416,8 @@ void Browser::RegisterAppPrefs(const std::string& app_name, Profile* profile) { | 
| std::string window_pref(prefs::kBrowserWindowPlacement); | 
| window_pref.append("_"); | 
| window_pref.append(app_name); | 
| -  profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str()); | 
| +  profile->GetPrefs()->RegisterDictionaryPref(window_pref.c_str(), | 
| +                                              false /* don't sync pref */); | 
| } | 
|  | 
| void Browser::TabRestoreServiceChanged(TabRestoreService* service) { | 
|  |