Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(385)

Side by Side Diff: chrome/browser/ui/browser_ui_prefs.cc

Issue 12079097: Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add to PrefRegistrySyncable and PrefServiceSyncable to let sync know of pre-registered prefs. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698