synchronized_preferences.h revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// Copyright (c) 2010 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
11#include "chrome/browser/translate/translate_prefs.h"
12#include "chrome/common/pref_names.h"
13
14namespace browser_sync {
15
16static const wchar_t* kSynchronizedPreferences[] = {
17  // Options dialog: Basics tab.
18  prefs::kRestoreOnStartup,
19  prefs::kURLsToRestoreOnStartup,
20  prefs::kShowBookmarkBar,
21  prefs::kHomePageIsNewTabPage,
22  prefs::kHomePage,
23  prefs::kShowHomeButton,
24  prefs::kShowPageOptionsButtons,
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::kDnsPrefetchingEnabled,
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  prefs::kAutoFillAuxiliaryProfilesEnabled,
98
99  // Translate preferences.
100  TranslatePrefs::kPrefTranslateLanguageBlacklist,
101  TranslatePrefs::kPrefTranslateSiteBlacklist,
102  TranslatePrefs::kPrefTranslateWhitelists,
103  TranslatePrefs::kPrefTranslateDeniedCount,
104  TranslatePrefs::kPrefTranslateAcceptedCount,
105
106  // Desktop notification permissions.
107  prefs::kDesktopNotificationAllowedOrigins,
108  prefs::kDesktopNotificationDeniedOrigins,
109
110  // Cookie prompt dialog.
111  prefs::kCookiePromptExpanded,
112
113#if defined(OS_CHROMEOS)
114  // IME prefs
115  prefs::kLanguageHangulKeyboard,
116  prefs::kLanguagePinyinAutoCommit,
117  prefs::kLanguagePinyinCommaPeriodPage,
118  prefs::kLanguagePinyinCorrectPinyin,
119  prefs::kLanguagePinyinDoublePinyin,
120  prefs::kLanguagePinyinFuzzyPinyin,
121  prefs::kLanguagePinyinInitChinese,
122  prefs::kLanguagePinyinInitFull,
123  prefs::kLanguagePinyinInitFullPunct,
124  prefs::kLanguagePinyinInitSimplifiedChinese,
125  prefs::kLanguagePinyinMinusEqualPage,
126  prefs::kLanguagePinyinShiftSelectCandidate,
127  prefs::kLanguagePinyinTradCandidate,
128  prefs::kLanguagePreferredLanguages,
129  prefs::kLanguagePreloadEngines,
130  // TODO(yusukes): Add prefs for ibus-mozc (Japanese input method).
131  //   prefs::kLanguageMozcPreeditMethod,
132  //   prefs::kLanguageMozcSessionKeymap,
133  //   prefs::kLanguageMozcPunctuationMethod,
134  //   prefs::kLanguageMozcSymbolMethod,
135  //   prefs::kLanguageMozcSpaceCharacterForm;
136  //   prefs::kLanguageMozcHistoryLearningLevel;
137  //   prefs::kLanguageMozcSelectionShortcut;
138  //   prefs::kLanguageMozcShiftKeyModeSwitch;
139  //   prefs::kLanguageMozcNumpadCharacterForm;
140  //   prefs::kLanguageMozcIncognitoMode,
141  //   prefs::kLanguageMozcUseAutoImeTurnOff,
142  //   prefs::kLanguageMozcUseDateConversion,
143  //   prefs::kLanguageMozcUseSingleKanjiConversion,
144  //   prefs::kLanguageMozcUseSymbolConversion,
145  //   prefs::kLanguageMozcUseNumberConversion,
146  //   prefs::kLanguageMozcUseHistorySuggest,
147  //   prefs::kLanguageMozcUseDictionarySuggest,
148  //   prefs::kLanguageMozcSuggestionsSize
149  //
150  // We don't sync the following IME prefs since they are not user-configurable
151  // (yet):
152  //   prefs::kLanguageHotkeyNextEngineInMenu,
153  //   prefs::kLanguageHotkeyPreviousEngine,
154  //   prefs::kLanguagePinyinDoublePinyinSchema,
155  //   prefs::kLanguagePinyinLookupTablePageSize,
156  //
157  // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod.
158#endif
159};
160
161}  // namespace browser_sync
162
163#endif  // CHROME_BROWSER_SYNC_GLUE_SYNCHRONIZED_PREFERENCES_H_
164