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 |