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