| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/browser_ui_prefs.h" | 5 #include "chrome/browser/ui/browser_ui_prefs.h" |
| 6 | 6 |
| 7 #include "chrome/browser/first_run/first_run.h" | 7 #include "chrome/browser/first_run/first_run.h" |
| 8 #include "chrome/browser/prefs/pref_registry_simple.h" | 8 #include "chrome/browser/prefs/pref_registry_simple.h" |
| 9 #include "chrome/browser/prefs/pref_registry_syncable.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 10 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
| 11 #include "chrome/common/pref_names.h" | 12 #include "chrome/common/pref_names.h" |
| 12 | 13 |
| 13 namespace chrome { | 14 namespace chrome { |
| 14 | 15 |
| 15 void RegisterBrowserPrefs(PrefRegistrySimple* registry) { | 16 void RegisterBrowserPrefs(PrefRegistrySimple* registry) { |
| 16 registry->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); | 17 registry->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); |
| 17 registry->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); | 18 registry->RegisterBooleanPref(prefs::kAllowFileSelectionDialogs, true); |
| 18 registry->RegisterIntegerPref(prefs::kShowFirstRunBubbleOption, | 19 registry->RegisterIntegerPref(prefs::kShowFirstRunBubbleOption, |
| 19 first_run::FIRST_RUN_BUBBLE_DONT_SHOW); | 20 first_run::FIRST_RUN_BUBBLE_DONT_SHOW); |
| 20 } | 21 } |
| 21 | 22 |
| 22 void RegisterBrowserUserPrefs(PrefServiceSyncable* prefs) { | 23 void RegisterBrowserUserPrefs(PrefRegistrySyncable* registry) { |
| 23 prefs->RegisterBooleanPref(prefs::kHomePageChanged, | 24 registry->RegisterBooleanPref(prefs::kHomePageChanged, |
| 24 false, | 25 false, |
| 25 PrefServiceSyncable::UNSYNCABLE_PREF); | 26 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 26 prefs->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, | 27 registry->RegisterBooleanPref(prefs::kHomePageIsNewTabPage, |
| 27 true, | 28 true, |
| 28 PrefServiceSyncable::SYNCABLE_PREF); | 29 PrefRegistrySyncable::SYNCABLE_PREF); |
| 29 prefs->RegisterBooleanPref(prefs::kShowHomeButton, | 30 registry->RegisterBooleanPref(prefs::kShowHomeButton, |
| 30 false, | 31 false, |
| 31 PrefServiceSyncable::SYNCABLE_PREF); | 32 PrefRegistrySyncable::SYNCABLE_PREF); |
| 32 prefs->RegisterIntegerPref(prefs::kExtensionsSideloadWipeoutBubbleShown, | 33 registry->RegisterIntegerPref(prefs::kExtensionsSideloadWipeoutBubbleShown, |
| 33 0, | 34 0, |
| 34 PrefServiceSyncable::SYNCABLE_PREF); | 35 PrefRegistrySyncable::SYNCABLE_PREF); |
| 35 #if defined(OS_MACOSX) | 36 #if defined(OS_MACOSX) |
| 36 // This really belongs in platform code, but there's no good place to | 37 // This really belongs in platform code, but there's no good place to |
| 37 // initialize it between the time when the AppController is created | 38 // initialize it between the time when the AppController is created |
| 38 // (where there's no profile) and the time the controller gets another | 39 // (where there's no profile) and the time the controller gets another |
| 39 // crack at the start of the main event loop. By that time, | 40 // crack at the start of the main event loop. By that time, |
| 40 // StartupBrowserCreator has already created the browser window, and it's too | 41 // StartupBrowserCreator has already created the browser window, and it's too |
| 41 // late: we need the pref to be already initialized. Doing it here also saves | 42 // late: we need the pref to be already initialized. Doing it here also saves |
| 42 // us from having to hard-code pref registration in the several unit tests | 43 // us from having to hard-code pref registration in the several unit tests |
| 43 // that use this preference. | 44 // that use this preference. |
| 44 prefs->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, | 45 registry->RegisterBooleanPref(prefs::kShowUpdatePromotionInfoBar, |
| 45 true, | 46 true, |
| 46 PrefServiceSyncable::UNSYNCABLE_PREF); | 47 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 47 #endif | 48 #endif |
| 48 prefs->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, | 49 registry->RegisterBooleanPref(prefs::kDeleteBrowsingHistory, |
| 49 true, | 50 true, |
| 50 PrefServiceSyncable::SYNCABLE_PREF); | 51 PrefRegistrySyncable::SYNCABLE_PREF); |
| 51 prefs->RegisterBooleanPref(prefs::kDeleteDownloadHistory, | 52 registry->RegisterBooleanPref(prefs::kDeleteDownloadHistory, |
| 52 true, | 53 true, |
| 53 PrefServiceSyncable::SYNCABLE_PREF); | 54 PrefRegistrySyncable::SYNCABLE_PREF); |
| 54 prefs->RegisterBooleanPref(prefs::kDeleteCache, | 55 registry->RegisterBooleanPref(prefs::kDeleteCache, |
| 55 true, | 56 true, |
| 56 PrefServiceSyncable::SYNCABLE_PREF); | 57 PrefRegistrySyncable::SYNCABLE_PREF); |
| 57 prefs->RegisterBooleanPref(prefs::kDeleteCookies, | 58 registry->RegisterBooleanPref(prefs::kDeleteCookies, |
| 58 true, | 59 true, |
| 59 PrefServiceSyncable::SYNCABLE_PREF); | 60 PrefRegistrySyncable::SYNCABLE_PREF); |
| 60 prefs->RegisterBooleanPref(prefs::kDeletePasswords, | 61 registry->RegisterBooleanPref(prefs::kDeletePasswords, |
| 61 false, | 62 false, |
| 62 PrefServiceSyncable::SYNCABLE_PREF); | 63 PrefRegistrySyncable::SYNCABLE_PREF); |
| 63 prefs->RegisterBooleanPref(prefs::kDeleteFormData, | 64 registry->RegisterBooleanPref(prefs::kDeleteFormData, |
| 64 false, | 65 false, |
| 65 PrefServiceSyncable::SYNCABLE_PREF); | 66 PrefRegistrySyncable::SYNCABLE_PREF); |
| 66 prefs->RegisterBooleanPref(prefs::kDeleteHostedAppsData, | 67 registry->RegisterBooleanPref(prefs::kDeleteHostedAppsData, |
| 67 false, | 68 false, |
| 68 PrefServiceSyncable::SYNCABLE_PREF); | 69 PrefRegistrySyncable::SYNCABLE_PREF); |
| 69 prefs->RegisterIntegerPref(prefs::kDeleteTimePeriod, | 70 registry->RegisterIntegerPref(prefs::kDeleteTimePeriod, |
| 70 0, | 71 0, |
| 71 PrefServiceSyncable::SYNCABLE_PREF); | 72 PrefRegistrySyncable::SYNCABLE_PREF); |
| 72 prefs->RegisterInt64Pref(prefs::kLastClearBrowsingDataTime, | 73 registry->RegisterInt64Pref(prefs::kLastClearBrowsingDataTime, |
| 73 0, | 74 0, |
| 74 PrefServiceSyncable::UNSYNCABLE_PREF); | 75 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 75 prefs->RegisterBooleanPref(prefs::kCheckDefaultBrowser, | 76 registry->RegisterBooleanPref(prefs::kCheckDefaultBrowser, |
| 76 true, | 77 true, |
| 77 PrefServiceSyncable::UNSYNCABLE_PREF); | 78 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 78 #if defined(OS_WIN) | 79 #if defined(OS_WIN) |
| 79 // As with Mac-spacific code above, it should be in a platform-specific | 80 // As with Mac-spacific code above, it should be in a platform-specific |
| 80 // section somewhere, but there is no good place for it. | 81 // section somewhere, but there is no good place for it. |
| 81 prefs->RegisterBooleanPref(prefs::kSuppressSwitchToMetroModeOnSetDefault, | 82 registry->RegisterBooleanPref(prefs::kSuppressSwitchToMetroModeOnSetDefault, |
| 82 false, | 83 false, |
| 83 PrefServiceSyncable::UNSYNCABLE_PREF); | 84 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 84 #endif | 85 #endif |
| 85 prefs->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, | 86 registry->RegisterBooleanPref(prefs::kShowOmniboxSearchHint, |
| 86 true, | 87 true, |
| 87 PrefServiceSyncable::UNSYNCABLE_PREF); | 88 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 88 prefs->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, | 89 registry->RegisterBooleanPref(prefs::kWebAppCreateOnDesktop, |
| 89 true, | 90 true, |
| 90 PrefServiceSyncable::UNSYNCABLE_PREF); | 91 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 91 prefs->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, | 92 registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, |
| 92 true, | 93 true, |
| 93 PrefServiceSyncable::UNSYNCABLE_PREF); | 94 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 94 prefs->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, | 95 registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, |
| 95 true, | 96 true, |
| 96 PrefServiceSyncable::UNSYNCABLE_PREF); | 97 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 97 prefs->RegisterBooleanPref(prefs::kEnableTranslate, | 98 registry->RegisterBooleanPref(prefs::kEnableTranslate, |
| 98 true, | 99 true, |
| 99 PrefServiceSyncable::SYNCABLE_PREF); | 100 PrefRegistrySyncable::SYNCABLE_PREF); |
| 100 prefs->RegisterStringPref(prefs::kCloudPrintEmail, | 101 registry->RegisterStringPref(prefs::kCloudPrintEmail, |
| 101 std::string(), | 102 std::string(), |
| 102 PrefServiceSyncable::UNSYNCABLE_PREF); | 103 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 103 prefs->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, | 104 registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, |
| 104 true, | 105 true, |
| 105 PrefServiceSyncable::UNSYNCABLE_PREF); | 106 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 106 prefs->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, | 107 registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, |
| 107 true, | 108 true, |
| 108 PrefServiceSyncable::UNSYNCABLE_PREF); | 109 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 109 prefs->RegisterBooleanPref(prefs::kDevToolsDisabled, | 110 registry->RegisterBooleanPref(prefs::kDevToolsDisabled, |
| 110 false, | 111 false, |
| 111 PrefServiceSyncable::UNSYNCABLE_PREF); | 112 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 112 prefs->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, | 113 registry->RegisterIntegerPref(prefs::kDevToolsHSplitLocation, |
| 113 -1, | 114 -1, |
| 114 PrefServiceSyncable::UNSYNCABLE_PREF); | 115 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 115 prefs->RegisterIntegerPref(prefs::kDevToolsVSplitLocation, | 116 registry->RegisterIntegerPref(prefs::kDevToolsVSplitLocation, |
| 116 -1, | 117 -1, |
| 117 PrefServiceSyncable::UNSYNCABLE_PREF); | 118 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 118 prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, | 119 registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement, |
| 119 PrefServiceSyncable::UNSYNCABLE_PREF); | 120 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 120 prefs->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, | 121 registry->RegisterDictionaryPref(prefs::kPreferencesWindowPlacement, |
| 121 PrefServiceSyncable::UNSYNCABLE_PREF); | 122 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 122 prefs->RegisterBooleanPref(prefs::kImportBookmarks, | 123 registry->RegisterBooleanPref(prefs::kImportBookmarks, |
| 123 true, | 124 true, |
| 124 PrefServiceSyncable::UNSYNCABLE_PREF); | 125 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 125 prefs->RegisterBooleanPref(prefs::kImportHistory, | 126 registry->RegisterBooleanPref(prefs::kImportHistory, |
| 126 true, | 127 true, |
| 127 PrefServiceSyncable::UNSYNCABLE_PREF); | 128 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 128 prefs->RegisterBooleanPref(prefs::kImportHomepage, | 129 registry->RegisterBooleanPref(prefs::kImportHomepage, |
| 129 true, | 130 true, |
| 130 PrefServiceSyncable::UNSYNCABLE_PREF); | 131 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 131 prefs->RegisterBooleanPref(prefs::kImportSearchEngine, | 132 registry->RegisterBooleanPref(prefs::kImportSearchEngine, |
| 132 true, | 133 true, |
| 133 PrefServiceSyncable::UNSYNCABLE_PREF); | 134 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 134 prefs->RegisterBooleanPref(prefs::kImportSavedPasswords, | 135 registry->RegisterBooleanPref(prefs::kImportSavedPasswords, |
| 135 true, | 136 true, |
| 136 PrefServiceSyncable::UNSYNCABLE_PREF); | 137 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 137 prefs->RegisterBooleanPref(prefs::kEnableDoNotTrack, | 138 registry->RegisterBooleanPref(prefs::kEnableDoNotTrack, |
| 138 false, | 139 false, |
| 139 PrefServiceSyncable::SYNCABLE_PREF); | 140 PrefRegistrySyncable::SYNCABLE_PREF); |
| 140 | 141 |
| 141 // Dictionaries to keep track of default tasks in the file browser. | 142 // Dictionaries to keep track of default tasks in the file browser. |
| 142 prefs->RegisterDictionaryPref(prefs::kDefaultTasksByMimeType, | 143 registry->RegisterDictionaryPref(prefs::kDefaultTasksByMimeType, |
| 143 PrefServiceSyncable::SYNCABLE_PREF); | 144 PrefRegistrySyncable::SYNCABLE_PREF); |
| 144 prefs->RegisterDictionaryPref(prefs::kDefaultTasksBySuffix, | 145 registry->RegisterDictionaryPref(prefs::kDefaultTasksBySuffix, |
| 145 PrefServiceSyncable::SYNCABLE_PREF); | 146 PrefRegistrySyncable::SYNCABLE_PREF); |
| 146 | 147 |
| 147 // We need to register the type of these preferences in order to query | 148 // We need to register the type of these preferences in order to query |
| 148 // them even though they're only typically controlled via policy. | 149 // them even though they're only typically controlled via policy. |
| 149 prefs->RegisterBooleanPref(prefs::kPluginsAllowOutdated, | 150 registry->RegisterBooleanPref(prefs::kPluginsAllowOutdated, |
| 150 false, | 151 false, |
| 151 PrefServiceSyncable::UNSYNCABLE_PREF); | 152 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 152 prefs->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, | 153 registry->RegisterBooleanPref(prefs::kPluginsAlwaysAuthorize, |
| 153 false, | 154 false, |
| 154 PrefServiceSyncable::UNSYNCABLE_PREF); | 155 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 155 prefs->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, | 156 registry->RegisterBooleanPref(prefs::kClearPluginLSODataEnabled, |
| 156 true, | 157 true, |
| 157 PrefServiceSyncable::UNSYNCABLE_PREF); | 158 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 158 } | 159 } |
| 159 | 160 |
| 160 void RegisterAppPrefs(const std::string& app_name, Profile* profile) { | 161 void RegisterAppPrefs(const std::string& app_name, Profile* profile) { |
| 161 // We need to register the window position pref. | 162 // We need to register the window position pref. |
| 162 // | 163 // |
| 163 // TODO(mnissler): Use a separate pref name pointing to a single | 164 // TODO(mnissler): Use a separate pref name pointing to a single |
| 164 // dictionary instead. Also tracked as http://crbug.com/167256 | 165 // dictionary instead. Also tracked as http://crbug.com/167256 |
| 165 std::string window_pref(prefs::kBrowserWindowPlacement); | 166 std::string window_pref(prefs::kBrowserWindowPlacement); |
| 166 window_pref.append("_"); | 167 window_pref.append("_"); |
| 167 window_pref.append(app_name); | 168 window_pref.append(app_name); |
| 168 PrefServiceSyncable* prefs = profile->GetPrefs(); | 169 PrefService* prefs = profile->GetPrefs(); |
| 169 if (!prefs->FindPreference(window_pref.c_str())) { | 170 if (!prefs->FindPreference(window_pref.c_str())) { |
| 170 // TODO(joi): Switch to official way of registering local prefs | 171 // TODO(joi): Do all registration up front. |
| 171 // for this class, i.e. in a function called from | 172 scoped_refptr<PrefRegistrySyncable> registry( |
| 172 // browser_prefs::RegisterUserPrefs. | 173 static_cast<PrefRegistrySyncable*>(prefs->DeprecatedGetPrefRegistry())); |
| 173 prefs->RegisterDictionaryPref(window_pref.c_str(), | 174 registry->RegisterDictionaryPref(window_pref.c_str(), |
| 174 PrefServiceSyncable::UNSYNCABLE_PREF); | 175 PrefRegistrySyncable::UNSYNCABLE_PREF); |
| 175 } | 176 } |
| 176 } | 177 } |
| 177 | 178 |
| 178 | 179 |
| 179 } // namespace chrome | 180 } // namespace chrome |
| OLD | NEW |