1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Defines a list of the preferences that the
6// PreferencesChangeProcessor should process changes for.
7
8#ifndef CHROME_BROWSER_SYNC_GLUE_SYNCHRONIZED_PREFERENCES_H_
9#define CHROME_BROWSER_SYNC_GLUE_SYNCHRONIZED_PREFERENCES_H_
10#pragma once
11
12#include "chrome/browser/translate/translate_prefs.h"
13#include "chrome/common/pref_names.h"
14
15namespace browser_sync {
16
17static const char* kSynchronizedPreferences[] = {
18  // Options dialog: Basics tab.
19  prefs::kRestoreOnStartup,
20  prefs::kURLsToRestoreOnStartup,
21  prefs::kShowBookmarkBar,
22  prefs::kHomePageIsNewTabPage,
23  prefs::kHomePage,
24  prefs::kShowHomeButton,
25  // Default Search is not synced, needs a new data type.  See
26  // http://crbug.com/40482
27
28  // Options dialog: Personal Stuff tab.
29  prefs::kPasswordManagerEnabled,
30  prefs::kAutofillEnabled,
31  prefs::kUseCustomChromeFrame,
32
33  // Options dialog: Under the hood -> Content Settings -> Cookies.
34  //   Cookie settings and exceptions not working
35  prefs::kBlockThirdPartyCookies,
36  prefs::kClearSiteDataOnExit,
37
38  // Options dialog: Under the hood -> Content Settings ->
39  //     Images, JavaScript, Plug-ins, Pop-ups.
40  prefs::kDefaultContentSettings,
41  prefs::kContentSettingsPatterns,
42
43  // Options dialog: Under the hood -> Content Settings -> Location.
44  //   Exceptions not working (dialog not working either).
45  prefs::kGeolocationContentSettings,
46  prefs::kGeolocationDefaultContentSetting,
47
48  // Options dialog: under the hood -> Content Settings -> Notifications.
49  prefs::kDesktopNotificationDefaultContentSetting,
50
51  // Options dialog: Under the hood -> Clear browsing data.
52  //  All working but no live update.
53  prefs::kDeleteBrowsingHistory,
54  prefs::kDeleteDownloadHistory,
55  prefs::kDeleteCache,
56  prefs::kDeleteCookies,
57  prefs::kDeletePasswords,
58  prefs::kDeleteFormData,
59  prefs::kDeleteTimePeriod,
60
61  // Options dialog: Under the hood -> Change proxy settings.
62  //  Uses native OS dialog, not synced.
63
64  // Options dialog: Under the hood -> Change font and language settings.
65  //   Serif, San Serif, Fixed font settings not synced.
66  prefs::kDefaultCharset,
67  // There is no dialog to modify the kAcceptLanguages list on OSX, so
68  // don't sync it.
69#if !defined(OS_MACOSX)
70  prefs::kAcceptLanguages,
71#endif
72  prefs::kEnableSpellCheck,
73  // Spell checker language not synced.
74  prefs::kApplicationLocale,
75
76  // Options dialog: Under the hood.
77  prefs::kAlternateErrorPagesEnabled,
78  prefs::kSearchSuggestEnabled,
79  prefs::kNetworkPredictionEnabled,
80  prefs::kSafeBrowsingEnabled,
81  prefs::kEnableTranslate,
82  // Download directory not synced.
83  // Clear auto-opening settings not synced.
84  prefs::kPromptForDownload,
85
86  // Wrench menu -> Extensions.
87  prefs::kExtensionsUIDeveloperMode,  // no live update
88
89  // Document menu -> Zoom.
90  //   prefs::kPerHostZoomLevels creates bad UX when synced, see
91  //   http://crbug.com/47359.
92
93  // Document menu -> Encoding -> Auto Detect.
94  prefs::kWebKitUsesUniversalDetector,
95
96  // Autofill dialog.
97#if defined(OS_MACOSX)
98  prefs::kAutofillAuxiliaryProfilesEnabled,
99#endif
100
101  // Translate preferences.
102  TranslatePrefs::kPrefTranslateLanguageBlacklist,
103  TranslatePrefs::kPrefTranslateSiteBlacklist,
104  TranslatePrefs::kPrefTranslateWhitelists,
105  TranslatePrefs::kPrefTranslateDeniedCount,
106  TranslatePrefs::kPrefTranslateAcceptedCount,
107
108  // Desktop notification permissions.
109  prefs::kDesktopNotificationAllowedOrigins,
110  prefs::kDesktopNotificationDeniedOrigins,
111
112  // (Mac) Application menu.
113  prefs::kConfirmToQuitEnabled,
114
115#if defined(OS_CHROMEOS)
116  // IME prefs
117  prefs::kLanguageChewingAddPhraseDirection,
118  prefs::kLanguageChewingAutoShiftCur,
119  prefs::kLanguageChewingCandPerPage,
120  prefs::kLanguageChewingEasySymbolInput,
121  prefs::kLanguageChewingEscCleanAllBuf,
122  prefs::kLanguageChewingForceLowercaseEnglish,
123  prefs::kLanguageChewingHsuSelKeyType,
124  prefs::kLanguageChewingKeyboardType,
125  prefs::kLanguageChewingMaxChiSymbolLen,
126  prefs::kLanguageChewingPhraseChoiceRearward,
127  prefs::kLanguageChewingPlainZhuyin,
128  prefs::kLanguageChewingSelKeys,
129  prefs::kLanguageChewingSpaceAsSelection,
130  prefs::kLanguageHangulKeyboard,
131  prefs::kLanguageMozcHistoryLearningLevel,
132  prefs::kLanguageMozcIncognitoMode,
133  prefs::kLanguageMozcNumpadCharacterForm,
134  prefs::kLanguageMozcPreeditMethod,
135  prefs::kLanguageMozcPunctuationMethod,
136  prefs::kLanguageMozcSessionKeymap,
137  prefs::kLanguageMozcShiftKeyModeSwitch,
138  prefs::kLanguageMozcSpaceCharacterForm,
139  prefs::kLanguageMozcSuggestionsSize,
140  prefs::kLanguageMozcSymbolMethod,
141  prefs::kLanguageMozcUseAutoImeTurnOff,
142  prefs::kLanguageMozcUseDateConversion,
143  prefs::kLanguageMozcUseDictionarySuggest,
144  prefs::kLanguageMozcUseHistorySuggest,
145  prefs::kLanguageMozcUseNumberConversion,
146  prefs::kLanguageMozcUseSingleKanjiConversion,
147  prefs::kLanguageMozcUseSymbolConversion,
148  prefs::kLanguagePinyinAutoCommit,
149  prefs::kLanguagePinyinCommaPeriodPage,
150  prefs::kLanguagePinyinCorrectPinyin,
151  prefs::kLanguagePinyinDoublePinyin,
152  prefs::kLanguagePinyinDoublePinyinSchema,
153  prefs::kLanguagePinyinFuzzyPinyin,
154  prefs::kLanguagePinyinInitChinese,
155  prefs::kLanguagePinyinInitFull,
156  prefs::kLanguagePinyinInitFullPunct,
157  prefs::kLanguagePinyinInitSimplifiedChinese,
158  prefs::kLanguagePinyinMinusEqualPage,
159  prefs::kLanguagePinyinShiftSelectCandidate,
160  prefs::kLanguagePinyinTradCandidate,
161  prefs::kLanguagePreferredLanguages,
162  prefs::kLanguagePreloadEngines,
163
164  // We don't sync the following IME prefs since they are not user-configurable
165  // (yet):
166  //   prefs::kLanguageHangulHanjaKeys,
167  //   prefs::kLanguageHotkeyNextEngineInMenu,
168  //   prefs::kLanguageHotkeyPreviousEngine,
169  //   prefs::kLanguageMozcSelectionShortcut,
170  //   prefs::kLanguagePinyinLookupTablePageSize,
171  //
172  // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod.
173
174  // Keyboard prefs
175  prefs::kLanguageXkbRemapAltKeyTo,
176  prefs::kLanguageXkbRemapControlKeyTo,
177  prefs::kLanguageXkbRemapSearchKeyTo,
178
179  // We don't sync the following keyboard prefs since they are not user-
180  // configurable:
181  //   prefs::kLanguageXkbAutoRepeatDelay,
182  //   prefs::kLanguageXkbAutoRepeatEnabled,
183  //   prefs::kLanguageXkbAutoRepeatInterval,
184
185  // Whether to show mobile plan notifications.
186  //   Settings -> Internet -> Mobile plan details
187  prefs::kShowPlanNotifications,
188
189  // Whether to require password to wake up from sleep
190  //   Settings -> Personal Stuff -> Account
191  prefs::kEnableScreenLock,
192
193  // Whether to enable tap-to-click
194  //   Settings -> System -> Touchpad
195  prefs::kTapToClickEnabled,
196
197  // Whether to use the 24-hour clock format.
198  //   Settings -> System -> Date and Time
199  prefs::kUse24HourClock,
200#endif
201};
202
203}  // namespace browser_sync
204
205#endif  // CHROME_BROWSER_SYNC_GLUE_SYNCHRONIZED_PREFERENCES_H_
206