Home | History | Annotate | Download | only in common
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/common/pref_names.h"
      6 
      7 #include "base/basictypes.h"
      8 #include "chrome/common/pref_font_webkit_names.h"
      9 
     10 namespace prefs {
     11 
     12 // *************** PROFILE PREFS ***************
     13 // These are attached to the user profile
     14 
     15 // A string property indicating whether default apps should be installed
     16 // in this profile.  Use the value "install" to enable defaults apps, or
     17 // "noinstall" to disable them.  This property is usually set in the
     18 // master_preferences and copied into the profile preferences on first run.
     19 // Defaults apps are installed only when creating a new profile.
     20 const char kDefaultApps[] = "default_apps";
     21 
     22 // Whether we have installed default apps yet in this profile.
     23 const char kDefaultAppsInstalled[] = "default_apps_installed";
     24 
     25 // Disables screenshot accelerators and extension APIs.
     26 // This setting resides both in profile prefs and local state. Accelerator
     27 // handling code reads local state, while extension APIs use profile pref.
     28 const char kDisableScreenshots[] = "disable_screenshots";
     29 
     30 // A boolean specifying whether the New Tab page is the home page or not.
     31 const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
     32 
     33 // This is the URL of the page to load when opening new tabs.
     34 const char kHomePage[] = "homepage";
     35 
     36 // Maps host names to whether the host is manually allowed or blocked.
     37 const char kManagedModeManualHosts[] = "profile.managed.manual_hosts";
     38 // Maps URLs to whether the URL is manually allowed or blocked.
     39 const char kManagedModeManualURLs[] = "profile.managed.manual_urls";
     40 
     41 // Stores the email address associated with the google account of the custodian
     42 // of the managed user, set when the managed user is created.
     43 const char kManagedUserCustodianEmail[] = "profile.managed.custodian_email";
     44 
     45 // Stores the display name associated with the google account of the custodian
     46 // of the managed user, updated (if possible) each time the managed user
     47 // starts a session.
     48 const char kManagedUserCustodianName[] = "profile.managed.custodian_name";
     49 
     50 // An integer that keeps track of the profile icon version. This allows us to
     51 // determine the state of the profile icon for icon format changes.
     52 const char kProfileIconVersion[] = "profile.icon_version";
     53 
     54 // Used to determine if the last session exited cleanly. Set to false when
     55 // first opened, and to true when closing. On startup if the value is false,
     56 // it means the profile didn't exit cleanly.
     57 // DEPRECATED: this is replaced by kSessionExitType and exists for backwards
     58 // compatability.
     59 const char kSessionExitedCleanly[] = "profile.exited_cleanly";
     60 
     61 // A string pref whose values is one of the values defined by
     62 // |ProfileImpl::kPrefExitTypeXXX|. Set to |kPrefExitTypeCrashed| on startup and
     63 // one of |kPrefExitTypeNormal| or |kPrefExitTypeSessionEnded| during
     64 // shutdown. Used to determine the exit type the last time the profile was open.
     65 const char kSessionExitType[] = "profile.exit_type";
     66 
     67 // An integer pref. Holds one of several values:
     68 // 0: (deprecated) open the homepage on startup.
     69 // 1: restore the last session.
     70 // 2: this was used to indicate a specific session should be restored. It is
     71 //    no longer used, but saved to avoid conflict with old preferences.
     72 // 3: unused, previously indicated the user wants to restore a saved session.
     73 // 4: restore the URLs defined in kURLsToRestoreOnStartup.
     74 // 5: open the New Tab Page on startup.
     75 const char kRestoreOnStartup[] = "session.restore_on_startup";
     76 
     77 // A preference to keep track of whether we have already checked whether we
     78 // need to migrate the user from kRestoreOnStartup=0 to kRestoreOnStartup=4.
     79 // We only need to do this check once, on upgrade from m18 or lower to m19 or
     80 // higher.
     81 const char kRestoreOnStartupMigrated[] = "session.restore_on_startup_migrated";
     82 
     83 // The URLs to restore on startup or when the home button is pressed. The URLs
     84 // are only restored on startup if kRestoreOnStartup is 4.
     85 const char kURLsToRestoreOnStartup[] = "session.urls_to_restore_on_startup";
     86 
     87 // The application locale.
     88 // For OS_CHROMEOS we maintain kApplicationLocale property in both local state
     89 // and user's profile.  Global property determines locale of login screen,
     90 // while user's profile determines his personal locale preference.
     91 const char kApplicationLocale[] = "intl.app_locale";
     92 #if defined(OS_CHROMEOS)
     93 // Locale preference of device' owner.  ChromeOS device appears in this locale
     94 // after startup/wakeup/signout.
     95 const char kOwnerLocale[] = "intl.owner_locale";
     96 // Locale accepted by user.  Non-syncable.
     97 // Used to determine whether we need to show Locale Change notification.
     98 const char kApplicationLocaleAccepted[] = "intl.app_locale_accepted";
     99 // Non-syncable item.
    100 // It is used in two distinct ways.
    101 // (1) Used for two-step initialization of locale in ChromeOS
    102 //     because synchronization of kApplicationLocale is not instant.
    103 // (2) Used to detect locale change.  Locale change is detected by
    104 //     LocaleChangeGuard in case values of kApplicationLocaleBackup and
    105 //     kApplicationLocale are both non-empty and differ.
    106 // Following is a table showing how state of those prefs may change upon
    107 // common real-life use cases:
    108 //                                  AppLocale Backup Accepted
    109 // Initial login                       -        A       -
    110 // Sync                                B        A       -
    111 // Accept (B)                          B        B       B
    112 // -----------------------------------------------------------
    113 // Initial login                       -        A       -
    114 // No sync and second login            A        A       -
    115 // Change options                      B        B       -
    116 // -----------------------------------------------------------
    117 // Initial login                       -        A       -
    118 // Sync                                A        A       -
    119 // Locale changed on login screen      A        C       -
    120 // Accept (A)                          A        A       A
    121 // -----------------------------------------------------------
    122 // Initial login                       -        A       -
    123 // Sync                                B        A       -
    124 // Revert                              A        A       -
    125 const char kApplicationLocaleBackup[] = "intl.app_locale_backup";
    126 #endif
    127 
    128 // The default character encoding to assume for a web page in the
    129 // absence of MIME charset specification
    130 const char kDefaultCharset[] = "intl.charset_default";
    131 
    132 // The value to use for Accept-Languages HTTP header when making an HTTP
    133 // request.
    134 const char kAcceptLanguages[] = "intl.accept_languages";
    135 
    136 // The value to use for showing locale-dependent encoding list for different
    137 // locale, it's initialized from the corresponding string resource that is
    138 // stored in non-translatable part of the resource bundle.
    139 const char kStaticEncodings[] = "intl.static_encodings";
    140 
    141 // Obselete WebKit prefs for migration.
    142 const char kGlobalDefaultCharset[] = "intl.global.charset_default";
    143 const char kWebKitGlobalDefaultFontSize[] =
    144     "webkit.webprefs.global.default_font_size";
    145 const char kWebKitGlobalDefaultFixedFontSize[] =
    146     "webkit.webprefs.global.default_fixed_font_size";
    147 const char kWebKitGlobalMinimumFontSize[] =
    148     "webkit.webprefs.global.minimum_font_size";
    149 const char kWebKitGlobalMinimumLogicalFontSize[] =
    150     "webkit.webprefs.global.minimum_logical_font_size";
    151 const char kWebKitGlobalJavascriptCanOpenWindowsAutomatically[] =
    152     "webkit.webprefs.global.javascript_can_open_windows_automatically";
    153 const char kWebKitGlobalJavascriptEnabled[] =
    154     "webkit.webprefs.global.javascript_enabled";
    155 const char kWebKitGlobalLoadsImagesAutomatically[] =
    156     "webkit.webprefs.global.loads_images_automatically";
    157 const char kWebKitGlobalPluginsEnabled[] =
    158     "webkit.webprefs.global.plugins_enabled";
    159 const char kWebKitGlobalStandardFontFamily[] =
    160     "webkit.webprefs.global.standard_font_family";
    161 const char kWebKitGlobalFixedFontFamily[] =
    162     "webkit.webprefs.global.fixed_font_family";
    163 const char kWebKitGlobalSerifFontFamily[] =
    164     "webkit.webprefs.global.serif_font_family";
    165 const char kWebKitGlobalSansSerifFontFamily[] =
    166     "webkit.webprefs.global.sansserif_font_family";
    167 const char kWebKitGlobalCursiveFontFamily[] =
    168     "webkit.webprefs.global.cursive_font_family";
    169 const char kWebKitGlobalFantasyFontFamily[] =
    170     "webkit.webprefs.global.fantasy_font_family";
    171 const char kWebKitOldStandardFontFamily[] =
    172     "webkit.webprefs.standard_font_family";
    173 const char kWebKitOldFixedFontFamily[] = "webkit.webprefs.fixed_font_family";
    174 const char kWebKitOldSerifFontFamily[] = "webkit.webprefs.serif_font_family";
    175 const char kWebKitOldSansSerifFontFamily[] =
    176     "webkit.webprefs.sansserif_font_family";
    177 const char kWebKitOldCursiveFontFamily[] =
    178     "webkit.webprefs.cursive_font_family";
    179 const char kWebKitOldFantasyFontFamily[] =
    180     "webkit.webprefs.fantasy_font_family";
    181 
    182 // If these change, the corresponding enums in the extension API
    183 // experimental.fontSettings.json must also change.
    184 const char* const kWebKitScriptsForFontFamilyMaps[] = {
    185 #define EXPAND_SCRIPT_FONT(x, script_name) script_name ,
    186 #include "chrome/common/pref_font_script_names-inl.h"
    187 ALL_FONT_SCRIPTS("unused param")
    188 #undef EXPAND_SCRIPT_FONT
    189 };
    190 
    191 const size_t kWebKitScriptsForFontFamilyMapsLength =
    192     arraysize(kWebKitScriptsForFontFamilyMaps);
    193 
    194 // Strings for WebKit font family preferences. If these change, the pref prefix
    195 // in pref_names_util.cc and the pref format in font_settings_api.cc must also
    196 // change.
    197 const char kWebKitStandardFontFamilyMap[] =
    198     WEBKIT_WEBPREFS_FONTS_STANDARD;
    199 const char kWebKitFixedFontFamilyMap[] =
    200     WEBKIT_WEBPREFS_FONTS_FIXED;
    201 const char kWebKitSerifFontFamilyMap[] =
    202     WEBKIT_WEBPREFS_FONTS_SERIF;
    203 const char kWebKitSansSerifFontFamilyMap[] =
    204     WEBKIT_WEBPREFS_FONTS_SANSERIF;
    205 const char kWebKitCursiveFontFamilyMap[] =
    206     WEBKIT_WEBPREFS_FONTS_CURSIVE;
    207 const char kWebKitFantasyFontFamilyMap[] =
    208     WEBKIT_WEBPREFS_FONTS_FANTASY;
    209 const char kWebKitPictographFontFamilyMap[] =
    210     WEBKIT_WEBPREFS_FONTS_PICTOGRAPH;
    211 const char kWebKitStandardFontFamilyArabic[] =
    212     "webkit.webprefs.fonts.standard.Arab";
    213 const char kWebKitFixedFontFamilyArabic[] =
    214     "webkit.webprefs.fonts.fixed.Arab";
    215 const char kWebKitSerifFontFamilyArabic[] =
    216     "webkit.webprefs.fonts.serif.Arab";
    217 const char kWebKitSansSerifFontFamilyArabic[] =
    218     "webkit.webprefs.fonts.sansserif.Arab";
    219 const char kWebKitStandardFontFamilyCyrillic[] =
    220     "webkit.webprefs.fonts.standard.Cyrl";
    221 const char kWebKitFixedFontFamilyCyrillic[] =
    222     "webkit.webprefs.fonts.fixed.Cyrl";
    223 const char kWebKitSerifFontFamilyCyrillic[] =
    224     "webkit.webprefs.fonts.serif.Cyrl";
    225 const char kWebKitSansSerifFontFamilyCyrillic[] =
    226     "webkit.webprefs.fonts.sansserif.Cyrl";
    227 const char kWebKitStandardFontFamilyGreek[] =
    228     "webkit.webprefs.fonts.standard.Grek";
    229 const char kWebKitFixedFontFamilyGreek[] =
    230     "webkit.webprefs.fonts.fixed.Grek";
    231 const char kWebKitSerifFontFamilyGreek[] =
    232     "webkit.webprefs.fonts.serif.Grek";
    233 const char kWebKitSansSerifFontFamilyGreek[] =
    234     "webkit.webprefs.fonts.sansserif.Grek";
    235 const char kWebKitStandardFontFamilyJapanese[] =
    236     "webkit.webprefs.fonts.standard.Jpan";
    237 const char kWebKitFixedFontFamilyJapanese[] =
    238     "webkit.webprefs.fonts.fixed.Jpan";
    239 const char kWebKitSerifFontFamilyJapanese[] =
    240     "webkit.webprefs.fonts.serif.Jpan";
    241 const char kWebKitSansSerifFontFamilyJapanese[] =
    242     "webkit.webprefs.fonts.sansserif.Jpan";
    243 const char kWebKitStandardFontFamilyKorean[] =
    244     "webkit.webprefs.fonts.standard.Hang";
    245 const char kWebKitFixedFontFamilyKorean[] =
    246     "webkit.webprefs.fonts.fixed.Hang";
    247 const char kWebKitSerifFontFamilyKorean[] =
    248     "webkit.webprefs.fonts.serif.Hang";
    249 const char kWebKitSansSerifFontFamilyKorean[] =
    250     "webkit.webprefs.fonts.sansserif.Hang";
    251 const char kWebKitCursiveFontFamilyKorean[] =
    252     "webkit.webprefs.fonts.cursive.Hang";
    253 const char kWebKitStandardFontFamilySimplifiedHan[] =
    254     "webkit.webprefs.fonts.standard.Hans";
    255 const char kWebKitFixedFontFamilySimplifiedHan[] =
    256     "webkit.webprefs.fonts.fixed.Hans";
    257 const char kWebKitSerifFontFamilySimplifiedHan[] =
    258     "webkit.webprefs.fonts.serif.Hans";
    259 const char kWebKitSansSerifFontFamilySimplifiedHan[] =
    260     "webkit.webprefs.fonts.sansserif.Hans";
    261 const char kWebKitStandardFontFamilyTraditionalHan[] =
    262     "webkit.webprefs.fonts.standard.Hant";
    263 const char kWebKitFixedFontFamilyTraditionalHan[] =
    264     "webkit.webprefs.fonts.fixed.Hant";
    265 const char kWebKitSerifFontFamilyTraditionalHan[] =
    266     "webkit.webprefs.fonts.serif.Hant";
    267 const char kWebKitSansSerifFontFamilyTraditionalHan[] =
    268     "webkit.webprefs.fonts.sansserif.Hant";
    269 
    270 // WebKit preferences.
    271 const char kWebKitWebSecurityEnabled[] = "webkit.webprefs.web_security_enabled";
    272 const char kWebKitDomPasteEnabled[] = "webkit.webprefs.dom_paste_enabled";
    273 const char kWebKitShrinksStandaloneImagesToFit[] =
    274     "webkit.webprefs.shrinks_standalone_images_to_fit";
    275 const char kWebKitInspectorSettings[] = "webkit.webprefs.inspector_settings";
    276 const char kWebKitUsesUniversalDetector[] =
    277     "webkit.webprefs.uses_universal_detector";
    278 const char kWebKitTextAreasAreResizable[] =
    279     "webkit.webprefs.text_areas_are_resizable";
    280 const char kWebKitJavaEnabled[] = "webkit.webprefs.java_enabled";
    281 const char kWebkitTabsToLinks[] = "webkit.webprefs.tabs_to_links";
    282 const char kWebKitAllowDisplayingInsecureContent[] =
    283     "webkit.webprefs.allow_displaying_insecure_content";
    284 const char kWebKitAllowRunningInsecureContent[] =
    285     "webkit.webprefs.allow_running_insecure_content";
    286 #if defined(OS_ANDROID)
    287 const char kWebKitFontScaleFactor[] = "webkit.webprefs.font_scale_factor";
    288 const char kWebKitForceEnableZoom[] = "webkit.webprefs.force_enable_zoom";
    289 const char kWebKitPasswordEchoEnabled[] =
    290     "webkit.webprefs.password_echo_enabled";
    291 #endif
    292 
    293 const char kWebKitCommonScript[] = "Zyyy";
    294 const char kWebKitStandardFontFamily[] = "webkit.webprefs.fonts.standard.Zyyy";
    295 const char kWebKitFixedFontFamily[] = "webkit.webprefs.fonts.fixed.Zyyy";
    296 const char kWebKitSerifFontFamily[] = "webkit.webprefs.fonts.serif.Zyyy";
    297 const char kWebKitSansSerifFontFamily[] =
    298     "webkit.webprefs.fonts.sansserif.Zyyy";
    299 const char kWebKitCursiveFontFamily[] = "webkit.webprefs.fonts.cursive.Zyyy";
    300 const char kWebKitFantasyFontFamily[] = "webkit.webprefs.fonts.fantasy.Zyyy";
    301 const char kWebKitPictographFontFamily[] =
    302     "webkit.webprefs.fonts.pictograph.Zyyy";
    303 const char kWebKitDefaultFontSize[] = "webkit.webprefs.default_font_size";
    304 const char kWebKitDefaultFixedFontSize[] =
    305     "webkit.webprefs.default_fixed_font_size";
    306 const char kWebKitMinimumFontSize[] = "webkit.webprefs.minimum_font_size";
    307 const char kWebKitMinimumLogicalFontSize[] =
    308     "webkit.webprefs.minimum_logical_font_size";
    309 const char kWebKitJavascriptEnabled[] = "webkit.webprefs.javascript_enabled";
    310 const char kWebKitJavascriptCanOpenWindowsAutomatically[] =
    311     "webkit.webprefs.javascript_can_open_windows_automatically";
    312 const char kWebKitLoadsImagesAutomatically[] =
    313     "webkit.webprefs.loads_images_automatically";
    314 const char kWebKitPluginsEnabled[] = "webkit.webprefs.plugins_enabled";
    315 
    316 // Boolean which specifies whether the bookmark bar is visible on all tabs.
    317 const char kShowBookmarkBar[] = "bookmark_bar.show_on_all_tabs";
    318 
    319 // Boolean which specifies whether the apps shortcut is visible on the bookmark
    320 // bar.
    321 const char kShowAppsShortcutInBookmarkBar[] = "bookmark_bar.show_apps_shortcut";
    322 
    323 // Boolean which specifies the ids of the bookmark nodes that are expanded in
    324 // the bookmark editor.
    325 const char kBookmarkEditorExpandedNodes[] = "bookmark_editor.expanded_nodes";
    326 
    327 // Boolean controlling whether password generation is enabled (will allow users
    328 // to generated passwords on account creation pages).
    329 const char kPasswordGenerationEnabled[] = "password_generation.enabled";
    330 
    331 // Boolean that is true if the password manager is on (will record new
    332 // passwords and fill in known passwords).
    333 const char kPasswordManagerEnabled[] = "profile.password_manager_enabled";
    334 
    335 // Boolean controlling whether the password manager allows to retrieve passwords
    336 // in clear text.
    337 const char kPasswordManagerAllowShowPasswords[] =
    338     "profile.password_manager_allow_show_passwords";
    339 
    340 // Booleans identifying whether normal and reverse auto-logins are enabled.
    341 const char kAutologinEnabled[] = "autologin.enabled";
    342 const char kReverseAutologinEnabled[] = "reverse_autologin.enabled";
    343 
    344 // List to keep track of emails for which the user has rejected one-click
    345 // sign-in.
    346 const char kReverseAutologinRejectedEmailList[] =
    347     "reverse_autologin.rejected_email_list";
    348 
    349 // Boolean that is true when SafeBrowsing is enabled.
    350 const char kSafeBrowsingEnabled[] = "safebrowsing.enabled";
    351 
    352 // Boolean that is true when SafeBrowsing Malware Report is enabled.
    353 const char kSafeBrowsingReportingEnabled[] =
    354     "safebrowsing.reporting_enabled";
    355 
    356 // Boolean that is true when the SafeBrowsing interstitial should not allow
    357 // users to proceed anyway.
    358 const char kSafeBrowsingProceedAnywayDisabled[] =
    359     "safebrowsing.proceed_anyway_disabled";
    360 
    361 // Enum that specifies whether Incognito mode is:
    362 // 0 - Enabled. Default behaviour. Default mode is available on demand.
    363 // 1 - Disabled. Used cannot browse pages in Incognito mode.
    364 // 2 - Forced. All pages/sessions are forced into Incognito.
    365 const char kIncognitoModeAvailability[] = "incognito.mode_availability";
    366 
    367 // Boolean that is true when Suggest support is enabled.
    368 const char kSearchSuggestEnabled[] = "search.suggest_enabled";
    369 
    370 // Boolean that indicates whether the browser should put up a confirmation
    371 // window when the user is attempting to quit. Mac only.
    372 const char kConfirmToQuitEnabled[] = "browser.confirm_to_quit";
    373 
    374 // OBSOLETE.  Enum that specifies whether to enforce a third-party cookie
    375 // blocking policy.  This has been superseded by kDefaultContentSettings +
    376 // kBlockThirdPartyCookies.
    377 // 0 - allow all cookies.
    378 // 1 - block third-party cookies
    379 // 2 - block all cookies
    380 const char kCookieBehavior[] = "security.cookie_behavior";
    381 
    382 // The GUID of the synced default search provider. Note that this acts like a
    383 // pointer to which synced search engine should be the default, rather than the
    384 // prefs below which describe the locally saved default search provider details
    385 // (and are not synced). This is ignored in the case of the default search
    386 // provider being managed by policy.
    387 const char kSyncedDefaultSearchProviderGUID[] =
    388     "default_search_provider.synced_guid";
    389 
    390 // Whether having a default search provider is enabled.
    391 const char kDefaultSearchProviderEnabled[] =
    392     "default_search_provider.enabled";
    393 
    394 // The URL (as understood by TemplateURLRef) the default search provider uses
    395 // for searches.
    396 const char kDefaultSearchProviderSearchURL[] =
    397     "default_search_provider.search_url";
    398 
    399 // The URL (as understood by TemplateURLRef) the default search provider uses
    400 // for suggestions.
    401 const char kDefaultSearchProviderSuggestURL[] =
    402     "default_search_provider.suggest_url";
    403 
    404 // The URL (as understood by TemplateURLRef) the default search provider uses
    405 // for instant results.
    406 const char kDefaultSearchProviderInstantURL[] =
    407     "default_search_provider.instant_url";
    408 
    409 // The URL (as understood by TemplateURLRef) the default search provider uses
    410 // for image search results.
    411 const char kDefaultSearchProviderImageURL[] =
    412     "default_search_provider.image_url";
    413 
    414 // The string of post parameters (as understood by TemplateURLRef) the default
    415 // search provider uses for searches by using POST.
    416 const char kDefaultSearchProviderSearchURLPostParams[] =
    417     "default_search_provider.search_url_post_params";
    418 
    419 // The string of post parameters (as understood by TemplateURLRef) the default
    420 // search provider uses for suggestions by using POST.
    421 const char kDefaultSearchProviderSuggestURLPostParams[] =
    422     "default_search_provider.suggest_url_post_params";
    423 
    424 // The string of post parameters (as understood by TemplateURLRef) the default
    425 // search provider uses for instant results by using POST.
    426 const char kDefaultSearchProviderInstantURLPostParams[] =
    427     "default_search_provider.instant_url_post_params";
    428 
    429 // The string of post parameters (as understood by TemplateURLRef) the default
    430 // search provider uses for image search results by using POST.
    431 const char kDefaultSearchProviderImageURLPostParams[] =
    432     "default_search_provider.image_url_post_params";
    433 
    434 // The Favicon URL (as understood by TemplateURLRef) of the default search
    435 // provider.
    436 const char kDefaultSearchProviderIconURL[] =
    437     "default_search_provider.icon_url";
    438 
    439 // The input encoding (as understood by TemplateURLRef) supported by the default
    440 // search provider.  The various encodings are separated by ';'
    441 const char kDefaultSearchProviderEncodings[] =
    442     "default_search_provider.encodings";
    443 
    444 // The name of the default search provider.
    445 const char kDefaultSearchProviderName[] = "default_search_provider.name";
    446 
    447 // The keyword of the default search provider.
    448 const char kDefaultSearchProviderKeyword[] = "default_search_provider.keyword";
    449 
    450 // The id of the default search provider.
    451 const char kDefaultSearchProviderID[] = "default_search_provider.id";
    452 
    453 // The prepopulate id of the default search provider.
    454 const char kDefaultSearchProviderPrepopulateID[] =
    455     "default_search_provider.prepopulate_id";
    456 
    457 // The alternate urls of the default search provider.
    458 const char kDefaultSearchProviderAlternateURLs[] =
    459     "default_search_provider.alternate_urls";
    460 
    461 // Search term placement query parameter for the default search provider.
    462 const char kDefaultSearchProviderSearchTermsReplacementKey[] =
    463     "default_search_provider.search_terms_replacement_key";
    464 
    465 // The dictionary key used when the default search providers are given
    466 // in the preferences file. Normally they are copied from the master
    467 // preferences file.
    468 const char kSearchProviderOverrides[] = "search_provider_overrides";
    469 // The format version for the dictionary above.
    470 const char kSearchProviderOverridesVersion[] =
    471     "search_provider_overrides_version";
    472 
    473 // Boolean which specifies whether we should ask the user if we should download
    474 // a file (true) or just download it automatically.
    475 const char kPromptForDownload[] = "download.prompt_for_download";
    476 
    477 // A boolean pref set to true if we're using Link Doctor error pages.
    478 const char kAlternateErrorPagesEnabled[] = "alternate_error_pages.enabled";
    479 
    480 // OBSOLETE: new pref now stored with user prefs instead of profile, as
    481 // kDnsPrefetchingStartupList.
    482 const char kDnsStartupPrefetchList[] = "StartupDNSPrefetchList";
    483 
    484 // An adaptively identified list of domain names to be pre-fetched during the
    485 // next startup, based on what was actually needed during this startup.
    486 const char kDnsPrefetchingStartupList[] = "dns_prefetching.startup_list";
    487 
    488 // OBSOLETE: new pref now stored with user prefs instead of profile, as
    489 // kDnsPrefetchingHostReferralList.
    490 const char kDnsHostReferralList[] = "HostReferralList";
    491 
    492 // A list of host names used to fetch web pages, and their commonly used
    493 // sub-resource hostnames (and expected latency benefits from pre-resolving, or
    494 // preconnecting to, such sub-resource hostnames).
    495 // This list is adaptively grown and pruned.
    496 const char kDnsPrefetchingHostReferralList[] =
    497     "dns_prefetching.host_referral_list";
    498 
    499 // Disables the SPDY protocol.
    500 const char kDisableSpdy[] = "spdy.disabled";
    501 
    502 // Prefs for persisting HttpServerProperties.
    503 const char kHttpServerProperties[] = "net.http_server_properties";
    504 
    505 // Prefs for server names that support SPDY protocol.
    506 const char kSpdyServers[] = "spdy.servers";
    507 
    508 // Prefs for servers that support Alternate-Protocol.
    509 const char kAlternateProtocolServers[] = "spdy.alternate_protocol";
    510 
    511 // Disables the listed protocol schemes.
    512 const char kDisabledSchemes[] = "protocol.disabled_schemes";
    513 
    514 // Blocks access to the listed host patterns.
    515 const char kUrlBlacklist[] = "policy.url_blacklist";
    516 
    517 // Allows access to the listed host patterns, as exceptions to the blacklist.
    518 const char kUrlWhitelist[] = "policy.url_whitelist";
    519 
    520 #if defined(OS_ANDROID)
    521 // Last time that a check for cloud policy management was done. This time is
    522 // recorded on Android so that retries aren't attempted on every startup.
    523 // Instead the cloud policy registration is retried at least 1 or 3 days later.
    524 const char kLastPolicyCheckTime[] = "policy.last_policy_check_time";
    525 
    526 // A list of bookmarks to include in a Managed Bookmarks root node. Each
    527 // list item is a dictionary containig a "name" and an "url" entry, detailing
    528 // the bookmark name and target URL respectively.
    529 const char kManagedBookmarks[] = "policy.managed_bookmarks";
    530 #endif
    531 
    532 // Prefix URL for the experimental Instant ZeroSuggest provider.
    533 const char kInstantUIZeroSuggestUrlPrefix[] =
    534     "instant_ui.zero_suggest_url_prefix";
    535 
    536 // Used to migrate preferences from local state to user preferences to
    537 // enable multiple profiles.
    538 // BITMASK with possible values (see browser_prefs.cc for enum):
    539 // 0: No preferences migrated.
    540 // 1: DNS preferences migrated: kDnsPrefetchingStartupList and HostReferralList
    541 // 2: Browser window preferences migrated: kDevToolsSplitLocation and
    542 //    kBrowserWindowPlacement
    543 const char kMultipleProfilePrefMigration[] =
    544     "local_state.multiple_profile_prefs_version";
    545 
    546 // A boolean pref set to true if prediction of network actions is allowed.
    547 // Actions include DNS prefetching, TCP and SSL preconnection, and prerendering
    548 // of web pages.
    549 // NOTE: The "dns_prefetching.enabled" value is used so that historical user
    550 // preferences are not lost.
    551 const char kNetworkPredictionEnabled[] = "dns_prefetching.enabled";
    552 
    553 // An integer representing the state of the default apps installation process.
    554 // This value is persisted in the profile's user preferences because the process
    555 // is async, and the user may have stopped chrome in the middle.  The next time
    556 // the profile is opened, the process will continue from where it left off.
    557 //
    558 // See possible values in external_provider_impl.cc.
    559 const char kDefaultAppsInstallState[] = "default_apps_install_state";
    560 
    561 // A boolean pref set to true if the Chrome Web Store icons should be hidden
    562 // from the New Tab Page and app launcher.
    563 const char kHideWebStoreIcon[] = "hide_web_store_icon";
    564 
    565 #if defined(OS_CHROMEOS)
    566 // A dictionary pref to hold the mute setting for all the currently known
    567 // audio devices.
    568 const char kAudioDevicesMute[] = "settings.audio.devices.mute";
    569 
    570 // A dictionary pref storing the volume settings for all the currently known
    571 // audio devices.
    572 const char kAudioDevicesVolumePercent[] =
    573     "settings.audio.devices.volume_percent";
    574 
    575 // An integer pref to initially mute volume if 1. This pref is ignored if
    576 // |kAudioOutputAllowed| is set to false, but its value is preserved, therefore
    577 // when the policy is lifted the original mute state is restored.  This setting
    578 // is here only for migration purposes now. It is being replaced by the
    579 // |kAudioDevicesMute| setting.
    580 const char kAudioMute[] = "settings.audio.mute";
    581 
    582 // A double pref storing the user-requested volume. This setting is here only
    583 // for migration purposes now. It is being replaced by the
    584 // |kAudioDevicesVolumePercent| setting.
    585 const char kAudioVolumePercent[] = "settings.audio.volume_percent";
    586 
    587 // A boolean pref set to true if touchpad tap-to-click is enabled.
    588 const char kTapToClickEnabled[] = "settings.touchpad.enable_tap_to_click";
    589 
    590 // A boolean pref set to true if touchpad tap-dragging is enabled.
    591 const char kTapDraggingEnabled[] = "settings.touchpad.enable_tap_dragging";
    592 
    593 // A boolean pref set to true if touchpad three-finger-click is enabled.
    594 const char kEnableTouchpadThreeFingerClick[] =
    595     "settings.touchpad.enable_three_finger_click";
    596 
    597 // A boolean pref set to true if touchpad natural scrolling is enabled.
    598 const char kNaturalScroll[] = "settings.touchpad.natural_scroll";
    599 
    600 // A boolean pref set to true if primary mouse button is the left button.
    601 const char kPrimaryMouseButtonRight[] = "settings.mouse.primary_right";
    602 
    603 // A integer pref for the touchpad sensitivity.
    604 const char kMouseSensitivity[] = "settings.mouse.sensitivity2";
    605 
    606 // A integer pref for the touchpad sensitivity.
    607 const char kTouchpadSensitivity[] = "settings.touchpad.sensitivity2";
    608 
    609 // A boolean pref set to true if time should be displayed in 24-hour clock.
    610 const char kUse24HourClock[] = "settings.clock.use_24hour_clock";
    611 
    612 // A boolean pref to disable Google Drive integration.
    613 // The pref prefix should remain as "gdata" for backward compatibility.
    614 const char kDisableDrive[] = "gdata.disabled";
    615 
    616 // A boolean pref to disable Drive over cellular connections.
    617 // The pref prefix should remain as "gdata" for backward compatibility.
    618 const char kDisableDriveOverCellular[] = "gdata.cellular.disabled";
    619 
    620 // A boolean pref to disable hosted files on Drive.
    621 // The pref prefix should remain as "gdata" for backward compatibility.
    622 const char kDisableDriveHostedFiles[] = "gdata.hosted_files.disabled";
    623 
    624 // A string pref set to the current input method.
    625 const char kLanguageCurrentInputMethod[] =
    626     "settings.language.current_input_method";
    627 
    628 // A string pref set to the previous input method.
    629 const char kLanguagePreviousInputMethod[] =
    630     "settings.language.previous_input_method";
    631 
    632 // A string pref (comma-separated list) set to the "next engine in menu"
    633 // hot-key lists.
    634 const char kLanguageHotkeyNextEngineInMenu[] =
    635     "settings.language.hotkey_next_engine_in_menu";
    636 
    637 // A string pref (comma-separated list) set to the "previous engine"
    638 // hot-key lists.
    639 const char kLanguageHotkeyPreviousEngine[] =
    640     "settings.language.hotkey_previous_engine";
    641 
    642 // A string pref (comma-separated list) set to the preferred language IDs
    643 // (ex. "en-US,fr,ko").
    644 const char kLanguagePreferredLanguages[] =
    645     "settings.language.preferred_languages";
    646 
    647 // A string pref (comma-separated list) set to the preloaded (active) input
    648 // method IDs (ex. "pinyin,mozc").
    649 const char kLanguagePreloadEngines[] = "settings.language.preload_engines";
    650 
    651 // A List pref (comma-separated list) set to the extension IMEs to be enabled.
    652 const char kLanguageEnabledExtensionImes[] =
    653     "settings.language.enabled_extension_imes";
    654 
    655 // Boolean prefs for ibus-chewing Chinese input method.
    656 const char kLanguageChewingAutoShiftCur[] =
    657     "settings.language.chewing_auto_shift_cur";
    658 const char kLanguageChewingAddPhraseDirection[] =
    659     "settings.language.chewing_add_phrase_direction";
    660 const char kLanguageChewingEasySymbolInput[] =
    661     "settings.language.chewing_easy_symbol_input";
    662 const char kLanguageChewingEscCleanAllBuf[] =
    663     "settings.language.chewing_esc_clean_all_buf";
    664 const char kLanguageChewingForceLowercaseEnglish[] =
    665     "settings.language.chewing_force_lowercase_english";
    666 const char kLanguageChewingPlainZhuyin[] =
    667     "settings.language.chewing_plain_zhuyin";
    668 const char kLanguageChewingPhraseChoiceRearward[] =
    669     "settings.language.chewing_phrase_choice_rearward";
    670 const char kLanguageChewingSpaceAsSelection[] =
    671     "settings.language.chewing_space_as_selection";
    672 
    673 // Integer prefs for ibus-chewing Chinese input method.
    674 const char kLanguageChewingMaxChiSymbolLen[] =
    675     "settings.language.chewing_max_chi_symbol_len";
    676 const char kLanguageChewingCandPerPage[] =
    677     "settings.language.chewing_cand_per_page";
    678 
    679 // String prefs for ibus-chewing Chinese input method.
    680 const char kLanguageChewingKeyboardType[] =
    681     "settings.language.chewing_keyboard_type";
    682 const char kLanguageChewingSelKeys[] =
    683     "settings.language.chewing_sel_keys";
    684 
    685 const char kLanguageChewingHsuSelKeyType[] =
    686     "settings.language.chewing_hsu_sel_key_type";
    687 
    688 // A string pref which determines the keyboard layout for Hangul input method.
    689 const char kLanguageHangulKeyboard[] = "settings.language.hangul_keyboard";
    690 const char kLanguageHangulHanjaBindingKeys[] =
    691     "settings.language.hangul_hanja_binding_keys";
    692 
    693 // A boolean prefs for ibus-pinyin Chinese input method.
    694 const char kLanguagePinyinCorrectPinyin[] =
    695     "settings.language.pinyin_correct_pinyin";
    696 const char kLanguagePinyinFuzzyPinyin[] =
    697     "settings.language.pinyin_fuzzy_pinyin";
    698 const char kLanguagePinyinShiftSelectCandidate[] =
    699     "settings.language.pinyin_shift_select_candidate";
    700 const char kLanguagePinyinMinusEqualPage[] =
    701     "settings.language.pinyin_minus_equal_page";
    702 const char kLanguagePinyinCommaPeriodPage[] =
    703     "settings.language.pinyin_comma_period_page";
    704 const char kLanguagePinyinAutoCommit[] =
    705     "settings.language.pinyin_auto_commit";
    706 const char kLanguagePinyinDoublePinyin[] =
    707     "settings.language.pinyin_double_pinyin";
    708 const char kLanguagePinyinInitChinese[] =
    709     "settings.language.pinyin_init_chinese";
    710 const char kLanguagePinyinInitFull[] =
    711     "settings.language.pinyin_init_full";
    712 const char kLanguagePinyinInitFullPunct[] =
    713     "settings.language.pinyin_init_full_punct";
    714 const char kLanguagePinyinInitSimplifiedChinese[] =
    715     "settings.language.pinyin_init_simplified_chinese";
    716 const char kLanguagePinyinTradCandidate[] =
    717     "settings.language.pinyin_trad_candidate";
    718 
    719 // A integer prefs for ibus-pinyin Chinese input method.
    720 const char kLanguagePinyinDoublePinyinSchema[] =
    721     "settings.language.pinyin_double_pinyin_schema";
    722 const char kLanguagePinyinLookupTablePageSize[] =
    723     "settings.language.pinyin_lookup_table_page_size";
    724 
    725 // A string prefs for ibus-mozc Japanese input method.
    726 // ibus-mozc converts the string values to protobuf enum values defined in
    727 // third_party/ibus-mozc/files/src/session/config.proto.
    728 const char kLanguageMozcPreeditMethod[] =
    729     "settings.language.mozc_preedit_method";
    730 const char kLanguageMozcSessionKeymap[] =
    731     "settings.language.mozc_session_keymap";
    732 const char kLanguageMozcPunctuationMethod[] =
    733     "settings.language.mozc_punctuation_method";
    734 const char kLanguageMozcSymbolMethod[] =
    735     "settings.language.mozc_symbol_method";
    736 const char kLanguageMozcSpaceCharacterForm[] =
    737     "settings.language.mozc_space_character_form";
    738 const char kLanguageMozcHistoryLearningLevel[] =
    739     "settings.language.mozc_history_learning_level";
    740 const char kLanguageMozcSelectionShortcut[] =
    741     "settings.language.mozc_selection_shortcut";
    742 const char kLanguageMozcShiftKeyModeSwitch[] =
    743     "settings.language.mozc_shift_key_mode_switch";
    744 const char kLanguageMozcNumpadCharacterForm[] =
    745     "settings.language.mozc_numpad_character_form";
    746 const char kLanguageMozcIncognitoMode[] =
    747     "settings.language.mozc_incognito_mode";
    748 const char kLanguageMozcUseAutoImeTurnOff[] =
    749     "settings.language.mozc_use_auto_ime_turn_off";
    750 const char kLanguageMozcUseHistorySuggest[] =
    751     "settings.language.mozc_use_history_suggest";
    752 const char kLanguageMozcUseDictionarySuggest[] =
    753     "settings.language.mozc_use_dictionary_suggest";
    754 const char kLanguageMozcSuggestionsSize[] =
    755     "settings.language.mozc_suggestions_size";
    756 
    757 // A integer prefs which determine how we remap modifier keys (e.g. swap Alt and
    758 // Control.) Possible values for these prefs are 0-4. See ModifierKey enum in
    759 // src/chrome/browser/chromeos/input_method/xkeyboard.h
    760 const char kLanguageRemapSearchKeyTo[] =
    761     // Note: we no longer use XKB for remapping these keys, but we can't change
    762     // the pref names since the names are already synced with the cloud.
    763     "settings.language.xkb_remap_search_key_to";
    764 const char kLanguageRemapControlKeyTo[] =
    765     "settings.language.xkb_remap_control_key_to";
    766 const char kLanguageRemapAltKeyTo[] =
    767     "settings.language.xkb_remap_alt_key_to";
    768 const char kLanguageRemapCapsLockKeyTo[] =
    769     "settings.language.remap_caps_lock_key_to";
    770 const char kLanguageRemapDiamondKeyTo[] =
    771     "settings.language.remap_diamond_key_to";
    772 
    773 // A boolean pref which determines whether key repeat is enabled.
    774 const char kLanguageXkbAutoRepeatEnabled[] =
    775     "settings.language.xkb_auto_repeat_enabled_r2";
    776 // A integer pref which determines key repeat delay (in ms).
    777 const char kLanguageXkbAutoRepeatDelay[] =
    778     "settings.language.xkb_auto_repeat_delay_r2";
    779 // A integer pref which determines key repeat interval (in ms).
    780 const char kLanguageXkbAutoRepeatInterval[] =
    781     "settings.language.xkb_auto_repeat_interval_r2";
    782 // "_r2" suffixes are added to the three prefs above when we change the
    783 // preferences not user-configurable, not to sync them with cloud.
    784 
    785 // A boolean pref which determines whether the large cursor feature is enabled.
    786 const char kLargeCursorEnabled[] = "settings.a11y.large_cursor_enabled";
    787 // A boolean pref which determines whether the sticky keys feature is enabled.
    788 const char kStickyKeysEnabled[] = "settings.a11y.sticky_keys_enabled";
    789 // A boolean pref which determines whether spoken feedback is enabled.
    790 const char kSpokenFeedbackEnabled[] = "settings.accessibility";
    791 // A boolean pref which determines whether high conrast is enabled.
    792 const char kHighContrastEnabled[] = "settings.a11y.high_contrast_enabled";
    793 // A boolean pref which determines whether screen magnifier is enabled.
    794 const char kScreenMagnifierEnabled[] = "settings.a11y.screen_magnifier";
    795 // A integer pref which determines what type of screen magnifier is enabled.
    796 // Note that: 'screen_magnifier_type' had been used as string pref. Hence,
    797 // we are using another name pref here.
    798 const char kScreenMagnifierType[] = "settings.a11y.screen_magnifier_type2";
    799 // A double pref which determines a zooming scale of the screen magnifier.
    800 const char kScreenMagnifierScale[] = "settings.a11y.screen_magnifier_scale";
    801 // A boolean pref which determines whether virtual keyboard is enabled.
    802 // TODO(hashimoto): Remove this pref.
    803 const char kVirtualKeyboardEnabled[] = "settings.a11y.virtual_keyboard";
    804 // A boolean pref which determines whether the accessibility menu shows
    805 // regardless of the state of a11y features.
    806 const char kShouldAlwaysShowAccessibilityMenu[] = "settings.a11y.enable_menu";
    807 
    808 // A boolean pref which turns on Advanced Filesystem
    809 // (USB support, SD card, etc).
    810 const char kLabsAdvancedFilesystemEnabled[] =
    811     "settings.labs.advanced_filesystem";
    812 
    813 // A boolean pref which turns on the mediaplayer.
    814 const char kLabsMediaplayerEnabled[] = "settings.labs.mediaplayer";
    815 
    816 // A boolean pref that turns on screen locker.
    817 const char kEnableScreenLock[] = "settings.enable_screen_lock";
    818 
    819 // A boolean pref of whether to show mobile plan notifications.
    820 const char kShowPlanNotifications[] =
    821     "settings.internet.mobile.show_plan_notifications";
    822 
    823 // A boolean pref of whether to show 3G promo notification.
    824 const char kShow3gPromoNotification[] =
    825     "settings.internet.mobile.show_3g_promo_notification";
    826 
    827 // A string pref that contains version where "What's new" promo was shown.
    828 const char kChromeOSReleaseNotesVersion[] = "settings.release_notes.version";
    829 
    830 // A boolean pref that controls whether proxy settings from shared network
    831 // settings (accordingly from device policy) are applied or ignored.
    832 const char kUseSharedProxies[] = "settings.use_shared_proxies";
    833 
    834 // Power state of the current displays from the last run.
    835 const char kDisplayPowerState[] = "settings.display.power_state";
    836 // A dictionary pref that stores per display preferences.
    837 const char kDisplayProperties[] = "settings.display.properties";
    838 
    839 // A dictionary pref that specifies per-display layout/offset information.
    840 // Its key is the ID of the display and its value is a dictionary for the
    841 // layout/offset information.
    842 const char kSecondaryDisplays[] = "settings.display.secondary_displays";
    843 
    844 // A preference to keep track of the session start time. The value is set
    845 // after login. When the browser restarts after a crash, the pref value is not
    846 // changed unless it appears corrupted (value unset, value lying in the future,
    847 // zero value).
    848 const char kSessionStartTime[] = "session.start_time";
    849 
    850 // Holds the maximum session time in milliseconds. If this pref is set, the
    851 // user is logged out when the maximum session time is reached. The user is
    852 // informed about the remaining time by a countdown timer shown in the ash
    853 // system tray.
    854 const char kSessionLengthLimit[] = "session.length_limit";
    855 
    856 // Inactivity time in milliseconds while the system is on AC power before
    857 // the screen should be dimmed, turned off, or locked, before an
    858 // IdleActionImminent D-Bus signal should be sent, or before
    859 // kPowerAcIdleAction should be performed.  0 disables the delay (N/A for
    860 // kPowerAcIdleDelayMs).
    861 const char kPowerAcScreenDimDelayMs[] = "power.ac_screen_dim_delay_ms";
    862 const char kPowerAcScreenOffDelayMs[] = "power.ac_screen_off_delay_ms";
    863 const char kPowerAcScreenLockDelayMs[] = "power.ac_screen_lock_delay_ms";
    864 const char kPowerAcIdleWarningDelayMs[] = "power.ac_idle_warning_delay_ms";
    865 const char kPowerAcIdleDelayMs[] = "power.ac_idle_delay_ms";
    866 
    867 // Similar delays while the system is on battery power.
    868 const char kPowerBatteryScreenDimDelayMs[] =
    869     "power.battery_screen_dim_delay_ms";
    870 const char kPowerBatteryScreenOffDelayMs[] =
    871     "power.battery_screen_off_delay_ms";
    872 const char kPowerBatteryScreenLockDelayMs[] =
    873     "power.battery_screen_lock_delay_ms";
    874 const char kPowerBatteryIdleWarningDelayMs[] =
    875     "power.battery_idle_warning_delay_ms";
    876 const char kPowerBatteryIdleDelayMs[] =
    877     "power.battery_idle_delay_ms";
    878 
    879 // Action that should be performed when the idle delay is reached while the
    880 // system is on AC power or battery power.
    881 // Values are from the chromeos::PowerPolicyController::Action enum.
    882 const char kPowerAcIdleAction[] = "power.ac_idle_action";
    883 const char kPowerBatteryIdleAction[] = "power.battery_idle_action";
    884 
    885 // Action that should be performed when the lid is closed.
    886 // Values are from the chromeos::PowerPolicyController::Action enum.
    887 const char kPowerLidClosedAction[] = "power.lid_closed_action";
    888 
    889 // Should audio and video activity be used to disable the above delays?
    890 const char kPowerUseAudioActivity[] = "power.use_audio_activity";
    891 const char kPowerUseVideoActivity[] = "power.use_video_activity";
    892 
    893 // Should extensions be able to use the chrome.power API to override
    894 // screen-related power management (including locking)?
    895 const char kPowerAllowScreenWakeLocks[] = "power.allow_screen_wake_locks";
    896 
    897 // Amount by which the screen-dim delay should be scaled while the system
    898 // is in presentation mode. Values are limited to a minimum of 1.0.
    899 const char kPowerPresentationScreenDimDelayFactor[] =
    900     "power.presentation_screen_dim_delay_factor";
    901 
    902 // Amount by which the screen-dim delay should be scaled when user activity is
    903 // observed while the screen is dimmed or soon after the screen has been turned
    904 // off.  Values are limited to a minimum of 1.0.
    905 const char kPowerUserActivityScreenDimDelayFactor[] =
    906     "power.user_activity_screen_dim_delay_factor";
    907 
    908 // The URL from which the Terms of Service can be downloaded. The value is only
    909 // honored for public accounts.
    910 const char kTermsOfServiceURL[] = "terms_of_service.url";
    911 
    912 // Indicates that the Profile has made navigations that used a certificate
    913 // installed by the system administrator. If that is true then the local cache
    914 // of remote data is tainted (e.g. shared scripts), and future navigations
    915 // show a warning indicating that the organization may track the browsing
    916 // session.
    917 const char kUsedPolicyCertificatesOnce[] = "used_policy_certificates_once";
    918 
    919 // Indicates whether the remote attestation is enabled for the user.
    920 const char kAttestationEnabled[] = "attestation.enabled";
    921 // The list of extensions allowed to use the platformKeysPrivate API for
    922 // remote attestation.
    923 const char kAttestationExtensionWhitelist[] = "attestation.extension_whitelist";
    924 
    925 // A boolean pref indicating whether the projection touch HUD is enabled or not.
    926 const char kTouchHudProjectionEnabled[] = "touch_hud.projection_enabled";
    927 
    928 // A pref to configure networks. Its value must be a list of
    929 // NetworkConfigurations according to the OpenNetworkConfiguration
    930 // specification.
    931 // Currently, this pref is only used to store the policy. The user's
    932 // configuration is still stored in Shill.
    933 const char kOpenNetworkConfiguration[] = "onc";
    934 #endif  // defined(OS_CHROMEOS)
    935 
    936 // The disabled messages in IPC logging.
    937 const char kIpcDisabledMessages[] = "ipc_log_disabled_messages";
    938 
    939 // A boolean pref set to true if a Home button to open the Home pages should be
    940 // visible on the toolbar.
    941 const char kShowHomeButton[] = "browser.show_home_button";
    942 
    943 // A string value which saves short list of recently user selected encodings
    944 // separated with comma punctuation mark.
    945 const char kRecentlySelectedEncoding[] = "profile.recently_selected_encodings";
    946 
    947 // Clear Browsing Data dialog preferences.
    948 const char kDeleteBrowsingHistory[] = "browser.clear_data.browsing_history";
    949 const char kDeleteDownloadHistory[] = "browser.clear_data.download_history";
    950 const char kDeleteCache[] = "browser.clear_data.cache";
    951 const char kDeleteCookies[] = "browser.clear_data.cookies";
    952 const char kDeletePasswords[] = "browser.clear_data.passwords";
    953 const char kDeleteFormData[] = "browser.clear_data.form_data";
    954 const char kDeleteHostedAppsData[] = "browser.clear_data.hosted_apps_data";
    955 const char kDeauthorizeContentLicenses[] =
    956     "browser.clear_data.content_licenses";
    957 const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
    958 const char kLastClearBrowsingDataTime[] =
    959     "browser.last_clear_browsing_data_time";
    960 
    961 // Boolean pref to define the default values for using spellchecker.
    962 const char kEnableContinuousSpellcheck[] = "browser.enable_spellchecking";
    963 
    964 // List of names of the enabled labs experiments (see chrome/browser/labs.cc).
    965 const char kEnabledLabsExperiments[] = "browser.enabled_labs_experiments";
    966 
    967 // Boolean pref to define the default values for using auto spell correct.
    968 const char kEnableAutoSpellCorrect[] = "browser.enable_autospellcorrect";
    969 
    970 // Boolean pref to define the default setting for "block offensive words".
    971 // The old key value is kept to avoid unnecessary migration code.
    972 const char kSpeechRecognitionFilterProfanities[] =
    973     "browser.speechinput_censor_results";
    974 
    975 // List of speech recognition context names (extensions or websites) for which
    976 // the tray notification balloon has already been shown.
    977 const char kSpeechRecognitionTrayNotificationShownContexts[] =
    978     "browser.speechinput_tray_notification_shown_contexts";
    979 
    980 // Boolean controlling whether history saving is disabled.
    981 const char kSavingBrowserHistoryDisabled[] = "history.saving_disabled";
    982 
    983 // Boolean controlling whether deleting browsing and download history is
    984 // permitted.
    985 const char kAllowDeletingBrowserHistory[] = "history.deleting_enabled";
    986 
    987 // Boolean controlling whether SafeSearch is mandatory for Google Web Searches.
    988 const char kForceSafeSearch[] = "settings.force_safesearch";
    989 
    990 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
    991 // Linux specific preference on whether we should match the system theme.
    992 const char kUsesSystemTheme[] = "extensions.theme.use_system";
    993 #endif
    994 const char kCurrentThemePackFilename[] = "extensions.theme.pack";
    995 const char kCurrentThemeID[] = "extensions.theme.id";
    996 const char kCurrentThemeImages[] = "extensions.theme.images";
    997 const char kCurrentThemeColors[] = "extensions.theme.colors";
    998 const char kCurrentThemeTints[] = "extensions.theme.tints";
    999 const char kCurrentThemeDisplayProperties[] = "extensions.theme.properties";
   1000 
   1001 // Boolean pref which persists whether the extensions_ui is in developer mode
   1002 // (showing developer packing tools and extensions details)
   1003 const char kExtensionsUIDeveloperMode[] = "extensions.ui.developer_mode";
   1004 
   1005 // Integer pref that tracks the number of browser actions visible in the browser
   1006 // actions toolbar.
   1007 const char kExtensionToolbarSize[] = "extensions.toolbarsize";
   1008 
   1009 // A preference that tracks browser action toolbar configuration. This is a list
   1010 // object stored in the Preferences file. The extensions are stored by ID.
   1011 const char kExtensionToolbar[] = "extensions.toolbar";
   1012 
   1013 // Dictionary pref that tracks which command belongs to which
   1014 // extension + named command pair.
   1015 const char kExtensionCommands[] = "extensions.commands";
   1016 
   1017 // Pref containing the directory for internal plugins as written to the plugins
   1018 // list (below).
   1019 const char kPluginsLastInternalDirectory[] = "plugins.last_internal_directory";
   1020 
   1021 // List pref containing information (dictionaries) on plugins.
   1022 const char kPluginsPluginsList[] = "plugins.plugins_list";
   1023 
   1024 // List pref containing names of plugins that are disabled by policy.
   1025 const char kPluginsDisabledPlugins[] = "plugins.plugins_disabled";
   1026 
   1027 // List pref containing exceptions to the list of plugins disabled by policy.
   1028 const char kPluginsDisabledPluginsExceptions[] =
   1029     "plugins.plugins_disabled_exceptions";
   1030 
   1031 // List pref containing names of plugins that are enabled by policy.
   1032 const char kPluginsEnabledPlugins[] = "plugins.plugins_enabled";
   1033 
   1034 // When bundled NPAPI Flash is removed, if at that point it is enabled while
   1035 // Pepper Flash is disabled, we would like to turn on Pepper Flash. And we will
   1036 // want to do so only once.
   1037 const char kPluginsMigratedToPepperFlash[] = "plugins.migrated_to_pepper_flash";
   1038 
   1039 // In the early stage of component-updated PPAPI Flash, we did field trials in
   1040 // which it was set to disabled by default. The corresponding settings item may
   1041 // remain in some users' profiles. Currently it affects both the bundled and
   1042 // component-updated PPAPI Flash (since the two share the same enable/disable
   1043 // state). We want to remove this item to get those users to use PPAPI Flash.
   1044 // We will want to do so only once.
   1045 const char kPluginsRemovedOldComponentPepperFlashSettings[] =
   1046     "plugins.removed_old_component_pepper_flash_settings";
   1047 
   1048 #if !defined(OS_ANDROID)
   1049 // Whether about:plugins is shown in the details mode or not.
   1050 const char kPluginsShowDetails[] = "plugins.show_details";
   1051 #endif
   1052 
   1053 // Boolean that indicates whether outdated plugins are allowed or not.
   1054 const char kPluginsAllowOutdated[] = "plugins.allow_outdated";
   1055 
   1056 // Boolean that indicates whether plugins that require authorization should
   1057 // be always allowed or not.
   1058 const char kPluginsAlwaysAuthorize[] = "plugins.always_authorize";
   1059 
   1060 #if defined(ENABLE_PLUGIN_INSTALLATION)
   1061 // Dictionary holding plug-ins metadata.
   1062 const char kPluginsMetadata[] = "plugins.metadata";
   1063 
   1064 // Last update time of plug-ins resource cache.
   1065 const char kPluginsResourceCacheUpdate[] = "plugins.resource_cache_update";
   1066 #endif
   1067 
   1068 // Boolean that indicates whether we should check if we are the default browser
   1069 // on start-up.
   1070 const char kCheckDefaultBrowser[] = "browser.check_default_browser";
   1071 
   1072 #if defined(OS_WIN)
   1073 // By default, setting Chrome as default during first run on Windows 8 will
   1074 // trigger shutting down the current instance and spawning a new (Metro)
   1075 // Chrome. This boolean preference supresses this behaviour.
   1076 const char kSuppressSwitchToMetroModeOnSetDefault[] =
   1077     "browser.suppress_switch_to_metro_mode_on_set_default";
   1078 #endif
   1079 
   1080 // Policy setting whether default browser check should be disabled and default
   1081 // browser registration should take place.
   1082 const char kDefaultBrowserSettingEnabled[] =
   1083     "browser.default_browser_setting_enabled";
   1084 
   1085 #if defined(OS_MACOSX)
   1086 // Boolean that indicates whether the application should show the info bar
   1087 // asking the user to set up automatic updates when Keystone promotion is
   1088 // required.
   1089 const char kShowUpdatePromotionInfoBar[] =
   1090     "browser.show_update_promotion_info_bar";
   1091 #endif
   1092 
   1093 // Boolean that is false if we should show window manager decorations.  If
   1094 // true, we draw a custom chrome frame (thicker title bar and blue border).
   1095 const char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
   1096 
   1097 // The preferred position (which corner of screen) for desktop notifications.
   1098 const char kDesktopNotificationPosition[] =
   1099     "browser.desktop_notification_position";
   1100 
   1101 // Dictionary of content settings applied to all hosts by default.
   1102 const char kDefaultContentSettings[] = "profile.default_content_settings";
   1103 
   1104 // Boolean indicating whether the clear on exit pref was migrated to content
   1105 // settings yet.
   1106 const char kContentSettingsClearOnExitMigrated[] =
   1107     "profile.content_settings.clear_on_exit_migrated";
   1108 
   1109 // Version of the pattern format used to define content settings.
   1110 const char kContentSettingsVersion[] = "profile.content_settings.pref_version";
   1111 
   1112 // Patterns for mapping origins to origin related settings. Default settings
   1113 // will be applied to origins that don't match any of the patterns. The pattern
   1114 // format used is defined by kContentSettingsVersion.
   1115 const char kContentSettingsPatternPairs[] =
   1116     "profile.content_settings.pattern_pairs";
   1117 
   1118 // Version of the content settings whitelist.
   1119 const char kContentSettingsDefaultWhitelistVersion[] =
   1120     "profile.content_settings.whitelist_version";
   1121 
   1122 #if !defined(OS_ANDROID)
   1123 // Which plugins have been whitelisted manually by the user.
   1124 const char kContentSettingsPluginWhitelist[] =
   1125     "profile.content_settings.plugin_whitelist";
   1126 #endif
   1127 
   1128 // Boolean that is true if we should unconditionally block third-party cookies,
   1129 // regardless of other content settings.
   1130 const char kBlockThirdPartyCookies[] = "profile.block_third_party_cookies";
   1131 
   1132 // Boolean that is true when all locally stored site data (e.g. cookies, local
   1133 // storage, etc..) should be deleted on exit.
   1134 const char kClearSiteDataOnExit[] = "profile.clear_site_data_on_exit";
   1135 
   1136 // Double that indicates the default zoom level.
   1137 const char kDefaultZoomLevel[] = "profile.default_zoom_level";
   1138 
   1139 // Dictionary that maps hostnames to zoom levels.  Hosts not in this pref will
   1140 // be displayed at the default zoom level.
   1141 const char kPerHostZoomLevels[] = "profile.per_host_zoom_levels";
   1142 
   1143 // A dictionary that tracks the default data model to use for each section of
   1144 // the dialog.
   1145 const char kAutofillDialogAutofillDefault[] = "autofill.data_model_default";
   1146 
   1147 // Whether a user has ever paid with Wallet via the autofill dialog.
   1148 const char kAutofillDialogHasPaidWithWallet[] = "autofill.has_paid_with_wallet";
   1149 
   1150 // Whether a user opted out of making purchases with Google Wallet; changed via
   1151 // the autofill dialog's account chooser and set explicitly on dialog submission
   1152 // (but not cancel). If this isn't set, the dialog assumes it's the first run.
   1153 const char kAutofillDialogPayWithoutWallet[] = "autofill.pay_without_wallet";
   1154 
   1155 // The number of times the dialog has been shown (all time).
   1156 const char kAutofillDialogShowCount[] = "autofill.show_count";
   1157 
   1158 // The number of times the generated credit card bubble has been shown.
   1159 const char kAutofillGeneratedCardBubbleTimesShown[] =
   1160     "autofill.generated_card_bubble_times_shown";
   1161 
   1162 // A dictionary that tracks the defaults to be set on the next invocation
   1163 // of the requestAutocomplete/Autocheckout dialog.
   1164 const char kAutofillDialogDefaults[] = "autofill.rac_dialog_defaults";
   1165 
   1166 // Modifying bookmarks is completely disabled when this is set to false.
   1167 const char kEditBookmarksEnabled[] = "bookmarks.editing_enabled";
   1168 
   1169 // Boolean that is true when the translate feature is enabled.
   1170 const char kEnableTranslate[] = "translate.enabled";
   1171 
   1172 #if !defined(OS_ANDROID)
   1173 const char kPinnedTabs[] = "pinned_tabs";
   1174 #endif
   1175 
   1176 #if defined(OS_ANDROID)
   1177 // Boolean that controls the enabled-state of Geolocation in content.
   1178 const char kGeolocationEnabled[] = "geolocation.enabled";
   1179 #endif
   1180 
   1181 #if defined(ENABLE_GOOGLE_NOW)
   1182 // Boolean that is true when Google services can use the user's location.
   1183 const char kGoogleGeolocationAccessEnabled[] =
   1184     "googlegeolocationaccess.enabled";
   1185 #endif
   1186 
   1187 // The default audio capture device used by the Media content setting.
   1188 const char kDefaultAudioCaptureDevice[] = "media.default_audio_capture_device";
   1189 
   1190 // The default video capture device used by the Media content setting.
   1191 const char kDefaultVideoCaptureDevice[] = "media.default_video_capture_Device";
   1192 
   1193 // Preference to disable 3D APIs (WebGL, Pepper 3D).
   1194 const char kDisable3DAPIs[] = "disable_3d_apis";
   1195 
   1196 // Whether to enable hyperlink auditing ("<a ping>").
   1197 const char kEnableHyperlinkAuditing[] = "enable_a_ping";
   1198 
   1199 // Whether to enable sending referrers.
   1200 const char kEnableReferrers[] = "enable_referrers";
   1201 
   1202 // Whether to send the DNT header.
   1203 const char kEnableDoNotTrack[] = "enable_do_not_track";
   1204 
   1205 // Boolean to enable reporting memory info to page.
   1206 const char kEnableMemoryInfo[] = "enable_memory_info";
   1207 
   1208 // GL_VENDOR string.
   1209 const char kGLVendorString[] = "gl_vendor_string";
   1210 
   1211 // GL_RENDERER string.
   1212 const char kGLRendererString[] = "gl_renderer_string";
   1213 
   1214 // GL_VERSION string.
   1215 const char kGLVersionString[] = "gl_version_string";
   1216 
   1217 // Boolean that specifies whether to import bookmarks from the default browser
   1218 // on first run.
   1219 const char kImportBookmarks[] = "import_bookmarks";
   1220 
   1221 // Boolean that specifies whether to import the browsing history from the
   1222 // default browser on first run.
   1223 const char kImportHistory[] = "import_history";
   1224 
   1225 // Boolean that specifies whether to import the homepage from the default
   1226 // browser on first run.
   1227 const char kImportHomepage[] = "import_home_page";
   1228 
   1229 // Boolean that specifies whether to import the search engine from the default
   1230 // browser on first run.
   1231 const char kImportSearchEngine[] = "import_search_engine";
   1232 
   1233 // Boolean that specifies whether to import the saved passwords from the default
   1234 // browser on first run.
   1235 const char kImportSavedPasswords[] = "import_saved_passwords";
   1236 
   1237 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
   1238 // The local profile id for this profile.
   1239 const char kLocalProfileId[] = "profile.local_profile_id";
   1240 
   1241 // Whether passwords in external services (e.g. GNOME Keyring) have been tagged
   1242 // with the local profile id yet. (Used for migrating to tagged passwords.)
   1243 const char kPasswordsUseLocalProfileId[] =
   1244     "profile.passwords_use_local_profile_id";
   1245 #endif
   1246 
   1247 // Profile avatar and name
   1248 const char kProfileAvatarIndex[] = "profile.avatar_index";
   1249 const char kProfileName[] = "profile.name";
   1250 
   1251 // Whether the profile is managed.
   1252 const char kProfileIsManaged[] = "profile.is_managed";
   1253 
   1254 // The managed user ID.
   1255 const char kManagedUserId[] = "profile.managed_user_id";
   1256 
   1257 // Indicates if we've already shown a notification that high contrast
   1258 // mode is on, recommending high-contrast extensions and themes.
   1259 const char kInvertNotificationShown[] = "invert_notification_version_2_shown";
   1260 
   1261 // Boolean controlling whether printing is enabled.
   1262 const char kPrintingEnabled[] = "printing.enabled";
   1263 
   1264 // Boolean controlling whether print preview is disabled.
   1265 const char kPrintPreviewDisabled[] = "printing.print_preview_disabled";
   1266 
   1267 // An integer pref specifying the fallback behavior for sites outside of content
   1268 // packs. One of:
   1269 // 0: Allow (does nothing)
   1270 // 1: Warn.
   1271 // 2: Block.
   1272 const char kDefaultManagedModeFilteringBehavior[] =
   1273     "profile.managed.default_filtering_behavior";
   1274 
   1275 // Whether this user is permitted to create managed users.
   1276 const char kManagedUserCreationAllowed[] =
   1277     "profile.managed_user_creation_allowed";
   1278 
   1279 // List pref containing the users managed by this user.
   1280 const char kManagedUsers[] = "profile.managed_users";
   1281 
   1282 // List pref containing the extension ids which are not allowed to send
   1283 // notifications to the message center.
   1284 const char kMessageCenterDisabledExtensionIds[] =
   1285     "message_center.disabled_extension_ids";
   1286 
   1287 // List pref containing the system component ids which are not allowed to send
   1288 // notifications to the message center.
   1289 const char kMessageCenterDisabledSystemComponentIds[] =
   1290     "message_center.disabled_system_component_ids";
   1291 
   1292 // List pref containing the system component ids which are allowed to send
   1293 // notifications to the message center.
   1294 extern const char kMessageCenterEnabledSyncNotifierIds[] =
   1295     "message_center.enabled_sync_notifier_ids";
   1296 
   1297 // *************** LOCAL STATE ***************
   1298 // These are attached to the machine/installation
   1299 
   1300 // A pref to configure networks device-wide. Its value must be a list of
   1301 // NetworkConfigurations according to the OpenNetworkConfiguration
   1302 // specification.
   1303 // Currently, this pref is only used to store the policy. The user's
   1304 // configuration is still stored in Shill.
   1305 const char kDeviceOpenNetworkConfiguration[] = "device_onc";
   1306 
   1307 // Directory of the last profile used.
   1308 const char kProfileLastUsed[] = "profile.last_used";
   1309 
   1310 // List of directories of the profiles last active.
   1311 const char kProfilesLastActive[] = "profile.last_active_profiles";
   1312 
   1313 // Total number of profiles created for this Chrome build. Used to tag profile
   1314 // directories.
   1315 const char kProfilesNumCreated[] = "profile.profiles_created";
   1316 
   1317 // String containing the version of Chrome that the profile was created by.
   1318 // If profile was created before this feature was added, this pref will default
   1319 // to "1.0.0.0".
   1320 const char kProfileCreatedByVersion[] = "profile.created_by_version";
   1321 
   1322 // A map of profile data directory to cached information. This cache can be
   1323 // used to display information about profiles without actually having to load
   1324 // them.
   1325 const char kProfileInfoCache[] = "profile.info_cache";
   1326 
   1327 // Prefs for SSLConfigServicePref.
   1328 const char kCertRevocationCheckingEnabled[] = "ssl.rev_checking.enabled";
   1329 const char kCertRevocationCheckingRequiredLocalAnchors[] =
   1330     "ssl.rev_checking.required_for_local_anchors";
   1331 const char kSSLVersionMin[] = "ssl.version_min";
   1332 const char kSSLVersionMax[] = "ssl.version_max";
   1333 const char kCipherSuiteBlacklist[] = "ssl.cipher_suites.blacklist";
   1334 const char kEnableOriginBoundCerts[] = "ssl.origin_bound_certs.enabled";
   1335 const char kDisableSSLRecordSplitting[] = "ssl.ssl_record_splitting.disabled";
   1336 const char kEnableUnrestrictedSSL3Fallback[] =
   1337     "ssl.unrestricted_ssl3_fallback.enabled";
   1338 
   1339 // A boolean pref of the EULA accepted flag.
   1340 const char kEulaAccepted[] = "EulaAccepted";
   1341 
   1342 // The metrics client GUID, entropy source and session ID.
   1343 const char kMetricsClientID[] = "user_experience_metrics.client_id";
   1344 const char kMetricsSessionID[] = "user_experience_metrics.session_id";
   1345 const char kMetricsLowEntropySource[] =
   1346     "user_experience_metrics.low_entropy_source";
   1347 const char kMetricsPermutedEntropyCache[] =
   1348     "user_experience_metrics.permuted_entropy_cache";
   1349 
   1350 // Date/time when the current metrics profile ID was created
   1351 // (which hopefully corresponds to first run).
   1352 const char kMetricsClientIDTimestamp[] =
   1353     "user_experience_metrics.client_id_timestamp";
   1354 
   1355 // Boolean that specifies whether or not crash reporting and metrics reporting
   1356 // are sent over the network for analysis.
   1357 const char kMetricsReportingEnabled[] =
   1358     "user_experience_metrics.reporting_enabled";
   1359 
   1360 // Boolean that specifies whether or not crash reports are sent
   1361 // over the network for analysis.
   1362 #if defined(OS_ANDROID)
   1363 const char kCrashReportingEnabled[] =
   1364     "user_experience_metrics_crash.reporting_enabled";
   1365 #endif
   1366 
   1367 // Array of strings that are each UMA logs that were supposed to be sent in the
   1368 // first minute of a browser session. These logs include things like crash count
   1369 // info, etc.
   1370 const char kMetricsInitialLogs[] =
   1371     "user_experience_metrics.initial_logs_as_protobufs";
   1372 
   1373 // Array of strings that are each UMA logs that were not sent because the
   1374 // browser terminated before these accumulated metrics could be sent.  These
   1375 // logs typically include histograms and memory reports, as well as ongoing
   1376 // user activities.
   1377 const char kMetricsOngoingLogs[] =
   1378     "user_experience_metrics.ongoing_logs_as_protobufs";
   1379 
   1380 // Boolean that is true when bookmark prompt is enabled.
   1381 const char kBookmarkPromptEnabled[] = "bookmark_prompt_enabled";
   1382 
   1383 // Number of times bookmark prompt displayed.
   1384 const char kBookmarkPromptImpressionCount[] =
   1385     "bookmark_prompt_impression_count";
   1386 
   1387 // 64-bit integer serialization of the base::Time from the last successful seed
   1388 // fetch (i.e. when the Variations server responds with 200 or 304).
   1389 const char kVariationsLastFetchTime[] = "variations_last_fetch_time";
   1390 
   1391 // String for the restrict parameter to be appended to the variations URL.
   1392 const char kVariationsRestrictParameter[] = "variations_restrict_parameter";
   1393 
   1394 // String serialized form of variations seed protobuf.
   1395 const char kVariationsSeed[] = "variations_seed";
   1396 
   1397 // 64-bit integer serialization of the base::Time from the last seed received.
   1398 const char kVariationsSeedDate[] = "variations_seed_date";
   1399 
   1400 // SHA-1 hash of the serialized variations seed data.
   1401 const char kVariationsSeedHash[] = "variations_seed_hash";
   1402 
   1403 // True if the previous run of the program exited cleanly.
   1404 const char kStabilityExitedCleanly[] =
   1405     "user_experience_metrics.stability.exited_cleanly";
   1406 
   1407 // Version string of previous run, which is used to assure that stability
   1408 // metrics reported under current version reflect stability of the same version.
   1409 const char kStabilityStatsVersion[] =
   1410     "user_experience_metrics.stability.stats_version";
   1411 
   1412 // Build time, in seconds since an epoch, which is used to assure that stability
   1413 // metrics reported reflect stability of the same build.
   1414 const char kStabilityStatsBuildTime[] =
   1415     "user_experience_metrics.stability.stats_buildtime";
   1416 
   1417 // False if we received a session end and either we crashed during processing
   1418 // the session end or ran out of time and windows terminated us.
   1419 const char kStabilitySessionEndCompleted[] =
   1420     "user_experience_metrics.stability.session_end_completed";
   1421 
   1422 // Number of times the application was launched since last report.
   1423 const char kStabilityLaunchCount[] =
   1424     "user_experience_metrics.stability.launch_count";
   1425 
   1426 // Number of times the application exited uncleanly since the last report.
   1427 const char kStabilityCrashCount[] =
   1428     "user_experience_metrics.stability.crash_count";
   1429 
   1430 // Number of times the session end did not complete.
   1431 const char kStabilityIncompleteSessionEndCount[] =
   1432     "user_experience_metrics.stability.incomplete_session_end_count";
   1433 
   1434 // Number of times a page load event occurred since the last report.
   1435 const char kStabilityPageLoadCount[] =
   1436     "user_experience_metrics.stability.page_load_count";
   1437 
   1438 // Number of times a renderer process crashed since the last report.
   1439 const char kStabilityRendererCrashCount[] =
   1440     "user_experience_metrics.stability.renderer_crash_count";
   1441 
   1442 // Number of times an extension renderer process crashed since the last report.
   1443 const char kStabilityExtensionRendererCrashCount[] =
   1444     "user_experience_metrics.stability.extension_renderer_crash_count";
   1445 
   1446 // Time when the app was last launched, in seconds since the epoch.
   1447 const char kStabilityLaunchTimeSec[] =
   1448     "user_experience_metrics.stability.launch_time_sec";
   1449 
   1450 // Time when the app was last known to be running, in seconds since
   1451 // the epoch.
   1452 const char kStabilityLastTimestampSec[] =
   1453     "user_experience_metrics.stability.last_timestamp_sec";
   1454 
   1455 // This is the location of a list of dictionaries of plugin stability stats.
   1456 const char kStabilityPluginStats[] =
   1457     "user_experience_metrics.stability.plugin_stats2";
   1458 
   1459 // Number of times the renderer has become non-responsive since the last
   1460 // report.
   1461 const char kStabilityRendererHangCount[] =
   1462     "user_experience_metrics.stability.renderer_hang_count";
   1463 
   1464 // Total number of child process crashes (other than renderer / extension
   1465 // renderer ones, and plugin children, which are counted separately) since the
   1466 // last report.
   1467 const char kStabilityChildProcessCrashCount[] =
   1468     "user_experience_metrics.stability.child_process_crash_count";
   1469 
   1470 // On Chrome OS, total number of non-Chrome user process crashes
   1471 // since the last report.
   1472 const char kStabilityOtherUserCrashCount[] =
   1473     "user_experience_metrics.stability.other_user_crash_count";
   1474 
   1475 // On Chrome OS, total number of kernel crashes since the last report.
   1476 const char kStabilityKernelCrashCount[] =
   1477     "user_experience_metrics.stability.kernel_crash_count";
   1478 
   1479 // On Chrome OS, total number of unclean system shutdowns since the
   1480 // last report.
   1481 const char kStabilitySystemUncleanShutdownCount[] =
   1482     "user_experience_metrics.stability.system_unclean_shutdowns";
   1483 
   1484 // Number of times the browser has been able to register crash reporting.
   1485 const char kStabilityBreakpadRegistrationSuccess[] =
   1486     "user_experience_metrics.stability.breakpad_registration_ok";
   1487 
   1488 // Number of times the browser has failed to register crash reporting.
   1489 const char kStabilityBreakpadRegistrationFail[] =
   1490     "user_experience_metrics.stability.breakpad_registration_fail";
   1491 
   1492 // Number of times the browser has been run under a debugger.
   1493 const char kStabilityDebuggerPresent[] =
   1494     "user_experience_metrics.stability.debugger_present";
   1495 
   1496 // Number of times the browser has not been run under a debugger.
   1497 const char kStabilityDebuggerNotPresent[] =
   1498     "user_experience_metrics.stability.debugger_not_present";
   1499 
   1500 // The keys below are used for the dictionaries in the
   1501 // kStabilityPluginStats list.
   1502 const char kStabilityPluginName[] = "name";
   1503 const char kStabilityPluginLaunches[] = "launches";
   1504 const char kStabilityPluginInstances[] = "instances";
   1505 const char kStabilityPluginCrashes[] = "crashes";
   1506 const char kStabilityPluginLoadingErrors[] = "loading_errors";
   1507 
   1508 // The keys below are strictly increasing counters over the lifetime of
   1509 // a chrome installation. They are (optionally) sent up to the uninstall
   1510 // survey in the event of uninstallation. The installation date is used by some
   1511 // opt-in services such as Wallet and UMA.
   1512 const char kInstallDate[] = "uninstall_metrics.installation_date2";
   1513 const char kUninstallMetricsPageLoadCount[] =
   1514     "uninstall_metrics.page_load_count";
   1515 const char kUninstallLaunchCount[] = "uninstall_metrics.launch_count";
   1516 const char kUninstallMetricsUptimeSec[] = "uninstall_metrics.uptime_sec";
   1517 const char kUninstallLastLaunchTimeSec[] =
   1518     "uninstall_metrics.last_launch_time_sec";
   1519 const char kUninstallLastObservedRunTimeSec[] =
   1520     "uninstall_metrics.last_observed_running_time_sec";
   1521 
   1522 // String containing the version of Chrome for which Chrome will not prompt the
   1523 // user about setting Chrome as the default browser.
   1524 const char kBrowserSuppressDefaultBrowserPrompt[] =
   1525     "browser.suppress_default_browser_prompt_for_version";
   1526 
   1527 // A collection of position, size, and other data relating to the browser
   1528 // window to restore on startup.
   1529 const char kBrowserWindowPlacement[] = "browser.window_placement";
   1530 
   1531 // A collection of position, size, and other data relating to the task
   1532 // manager window to restore on startup.
   1533 const char kTaskManagerWindowPlacement[] = "task_manager.window_placement";
   1534 
   1535 // A collection of position, size, and other data relating to the keyword
   1536 // editor window to restore on startup.
   1537 const char kKeywordEditorWindowPlacement[] = "keyword_editor.window_placement";
   1538 
   1539 // A collection of position, size, and other data relating to the preferences
   1540 // window to restore on startup.
   1541 const char kPreferencesWindowPlacement[] = "preferences.window_placement";
   1542 
   1543 // An integer specifying the total number of bytes to be used by the
   1544 // renderer's in-memory cache of objects.
   1545 const char kMemoryCacheSize[] = "renderer.memory_cache.size";
   1546 
   1547 // String which specifies where to download files to by default.
   1548 const char kDownloadDefaultDirectory[] = "download.default_directory";
   1549 
   1550 // Boolean that records if the download directory was changed by an
   1551 // upgrade a unsafe location to a safe location.
   1552 const char kDownloadDirUpgraded[] = "download.directory_upgrade";
   1553 
   1554 // String which specifies where to save html files to by default.
   1555 const char kSaveFileDefaultDirectory[] = "savefile.default_directory";
   1556 
   1557 // The type used to save the page. See the enum SavePackage::SavePackageType in
   1558 // the chrome/browser/download/save_package.h for the possible values.
   1559 const char kSaveFileType[] = "savefile.type";
   1560 
   1561 // String which specifies the last directory that was chosen for uploading
   1562 // or opening a file.
   1563 const char kSelectFileLastDirectory[] = "selectfile.last_directory";
   1564 
   1565 // Boolean that specifies if file selection dialogs are shown.
   1566 const char kAllowFileSelectionDialogs[] = "select_file_dialogs.allowed";
   1567 
   1568 // Map of default tasks, associated by MIME type.
   1569 const char kDefaultTasksByMimeType[] =
   1570     "filebrowser.tasks.default_by_mime_type";
   1571 
   1572 // Map of default tasks, associated by file suffix.
   1573 const char kDefaultTasksBySuffix[] =
   1574     "filebrowser.tasks.default_by_suffix";
   1575 
   1576 // Extensions which should be opened upon completion.
   1577 const char kDownloadExtensionsToOpen[] = "download.extensions_to_open";
   1578 
   1579 // Integer which specifies the frequency in milliseconds for detecting whether
   1580 // plugin windows are hung.
   1581 const char kHungPluginDetectFrequency[] = "browser.hung_plugin_detect_freq";
   1582 
   1583 // Integer which specifies the timeout value to be used for SendMessageTimeout
   1584 // to detect a hung plugin window.
   1585 const char kPluginMessageResponseTimeout[] =
   1586     "browser.plugin_message_response_timeout";
   1587 
   1588 // String which represents the dictionary name for our spell-checker.
   1589 const char kSpellCheckDictionary[] = "spellcheck.dictionary";
   1590 
   1591 // Boolean pref indicating whether the spelling confirm dialog has been shown.
   1592 const char kSpellCheckConfirmDialogShown[] = "spellcheck.confirm_dialog_shown";
   1593 
   1594 // String which represents whether we use the spelling service.
   1595 const char kSpellCheckUseSpellingService[] = "spellcheck.use_spelling_service";
   1596 
   1597 // Dictionary of schemes used by the external protocol handler.
   1598 // The value is true if the scheme must be ignored.
   1599 const char kExcludedSchemes[] = "protocol_handler.excluded_schemes";
   1600 
   1601 // Keys used for MAC handling of SafeBrowsing requests.
   1602 const char kSafeBrowsingClientKey[] = "safe_browsing.client_key";
   1603 const char kSafeBrowsingWrappedKey[] = "safe_browsing.wrapped_key";
   1604 
   1605 // Integer that specifies the index of the tab the user was on when they
   1606 // last visited the options window.
   1607 const char kOptionsWindowLastTabIndex[] = "options_window.last_tab_index";
   1608 
   1609 // Integer that specifies the index of the tab the user was on when they
   1610 // last visited the content settings window.
   1611 const char kContentSettingsWindowLastTabIndex[] =
   1612     "content_settings_window.last_tab_index";
   1613 
   1614 // Integer that specifies the index of the tab the user was on when they
   1615 // last visited the Certificate Manager window.
   1616 const char kCertificateManagerWindowLastTabIndex[] =
   1617     "certificate_manager_window.last_tab_index";
   1618 
   1619 // Integer that specifies if the first run bubble should be shown.
   1620 // This preference is only registered by the first-run procedure.
   1621 const char kShowFirstRunBubbleOption[] = "show-first-run-bubble-option";
   1622 
   1623 // String containing the last known Google URL.  We re-detect this on startup in
   1624 // most cases, and use it to send traffic to the correct Google host or with the
   1625 // correct Google domain/country code for whatever location the user is in.
   1626 const char kLastKnownGoogleURL[] = "browser.last_known_google_url";
   1627 
   1628 // String containing the last prompted Google URL to the user.
   1629 // If the user is using .x TLD for Google URL and gets prompted about .y TLD
   1630 // for Google URL, and says "no", we should leave the search engine set to .x
   1631 // but not prompt again until the domain changes away from .y.
   1632 const char kLastPromptedGoogleURL[] = "browser.last_prompted_google_url";
   1633 
   1634 // String containing the last known intranet redirect URL, if any.  See
   1635 // intranet_redirect_detector.h for more information.
   1636 const char kLastKnownIntranetRedirectOrigin[] = "browser.last_redirect_origin";
   1637 
   1638 // Integer containing the system Country ID the first time we checked the
   1639 // template URL prepopulate data.  This is used to avoid adding a whole bunch of
   1640 // new search engine choices if prepopulation runs when the user's Country ID
   1641 // differs from their previous Country ID.  This pref does not exist until
   1642 // prepopulation has been run at least once.
   1643 const char kCountryIDAtInstall[] = "countryid_at_install";
   1644 // OBSOLETE. Same as above, but uses the Windows-specific GeoID value instead.
   1645 // Updated if found to the above key.
   1646 const char kGeoIDAtInstall[] = "geoid_at_install";
   1647 
   1648 // An enum value of how the browser was shut down (see browser_shutdown.h).
   1649 const char kShutdownType[] = "shutdown.type";
   1650 // Number of processes that were open when the user shut down.
   1651 const char kShutdownNumProcesses[] = "shutdown.num_processes";
   1652 // Number of processes that were shut down using the slow path.
   1653 const char kShutdownNumProcessesSlow[] = "shutdown.num_processes_slow";
   1654 
   1655 // Whether to restart the current Chrome session automatically as the last thing
   1656 // before shutting everything down.
   1657 const char kRestartLastSessionOnShutdown[] = "restart.last.session.on.shutdown";
   1658 
   1659 // Set before autorestarting Chrome, cleared on clean exit.
   1660 const char kWasRestarted[] = "was.restarted";
   1661 
   1662 #if defined(OS_WIN)
   1663 // On Windows 8 chrome can restart in desktop or in metro mode.
   1664 const char kRestartSwitchMode[] = "restart.switch_mode";
   1665 #endif
   1666 
   1667 // Placeholder preference for disabling voice / video chat if it is ever added.
   1668 // Currently, this does not change any behavior.
   1669 const char kDisableVideoAndChat[] = "disable_video_chat";
   1670 
   1671 // Whether Extensions are enabled.
   1672 const char kDisableExtensions[] = "extensions.disabled";
   1673 
   1674 // Whether the plugin finder that lets you install missing plug-ins is enabled.
   1675 const char kDisablePluginFinder[] = "plugins.disable_plugin_finder";
   1676 
   1677 // Integer boolean representing the width (in pixels) of the container for
   1678 // browser actions.
   1679 const char kBrowserActionContainerWidth[] =
   1680     "extensions.browseractions.container.width";
   1681 
   1682 // Time of the last, and next scheduled, extensions auto-update checks.
   1683 const char kLastExtensionsUpdateCheck[] = "extensions.autoupdate.last_check";
   1684 const char kNextExtensionsUpdateCheck[] = "extensions.autoupdate.next_check";
   1685 
   1686 // Whether we have run the extension-alert system (see ExtensionGlobalError)
   1687 // at least once for this profile.
   1688 const char kExtensionAlertsInitializedPref[] = "extensions.alerts.initialized";
   1689 
   1690 // The sites that are allowed to install extensions. These sites should be
   1691 // allowed to install extensions without the scary dangerous downloads bar.
   1692 // Also, when off-store-extension installs are disabled, these sites are exempt.
   1693 const char kExtensionAllowedInstallSites[] = "extensions.allowed_install_sites";
   1694 
   1695 // A list of allowed extension types. Extensions can only be installed if their
   1696 // type is on this whitelist or alternatively on kExtensionInstallAllowList or
   1697 // kExtensionInstallForceList.
   1698 const char kExtensionAllowedTypes[] = "extensions.allowed_types";
   1699 
   1700 // Version number of last blacklist check.
   1701 const char kExtensionBlacklistUpdateVersion[] =
   1702     "extensions.blacklistupdate.version";
   1703 
   1704 // A whitelist of extension ids the user can install: exceptions from the
   1705 // following blacklist.
   1706 const char kExtensionInstallAllowList[] = "extensions.install.allowlist";
   1707 
   1708 // A blacklist, containing extensions the user cannot install. This list can
   1709 // contain "*" meaning all extensions. This list should not be confused with the
   1710 // extension blacklist, which is Google controlled.
   1711 const char kExtensionInstallDenyList[] = "extensions.install.denylist";
   1712 
   1713 // A list containing extensions that Chrome will silently install
   1714 // at startup time. It is a list of strings, each string contains
   1715 // an extension ID and an update URL, delimited by a semicolon.
   1716 // This preference is set by an admin policy, and meant to be only
   1717 // accessed through extensions::ExternalPolicyProvider.
   1718 const char kExtensionInstallForceList[] = "extensions.install.forcelist";
   1719 
   1720 // Indicates on-disk data might have skeletal data that needs to be cleaned
   1721 // on the next start of the browser.
   1722 const char kExtensionStorageGarbageCollect[] =
   1723     "extensions.storage.garbagecollect";
   1724 
   1725 // Keeps track of which sessions are collapsed in the Other Devices menu.
   1726 const char kNtpCollapsedForeignSessions[] = "ntp.collapsed_foreign_sessions";
   1727 
   1728 // New Tab Page URLs that should not be shown as most visited thumbnails.
   1729 const char kNtpMostVisitedURLsBlacklist[] = "ntp.most_visited_blacklist";
   1730 
   1731 // Last time of update of promo_resource_cache.
   1732 const char kNtpPromoResourceCacheUpdate[] = "ntp.promo_resource_cache_update";
   1733 
   1734 // Serves tips for the NTP.
   1735 const char kNtpTipsResourceServer[] = "ntp.tips_resource_server";
   1736 
   1737 // Serves dates to determine display of elements on the NTP.
   1738 const char kNtpDateResourceServer[] = "ntp.date_resource_server";
   1739 
   1740 // Which bookmarks folder should be visible on the new tab page v4.
   1741 const char kNtpShownBookmarksFolder[] = "ntp.shown_bookmarks_folder";
   1742 
   1743 // Which page should be visible on the new tab page v4
   1744 const char kNtpShownPage[] = "ntp.shown_page";
   1745 
   1746 // True if a desktop sync session was found for this user.
   1747 const char kNtpPromoDesktopSessionFound[] = "ntp.promo_desktop_session_found";
   1748 
   1749 // Boolean indicating whether the web store is active for the current locale.
   1750 const char kNtpWebStoreEnabled[] = "ntp.webstore_enabled";
   1751 
   1752 // The id of the last web store promo actually displayed on the NTP.
   1753 const char kNtpWebStorePromoLastId[] = "ntp.webstore_last_promo_id";
   1754 
   1755 // The id of the current web store promo.
   1756 const char kNtpWebStorePromoId[] = "ntp.webstorepromo.id";
   1757 
   1758 // The header line for the NTP web store promo.
   1759 const char kNtpWebStorePromoHeader[] = "ntp.webstorepromo.header";
   1760 
   1761 // The button text for the NTP web store promo.
   1762 const char kNtpWebStorePromoButton[] = "ntp.webstorepromo.button";
   1763 
   1764 // The button link for the NTP web store promo.
   1765 const char kNtpWebStorePromoLink[] = "ntp.webstorepromo.link";
   1766 
   1767 // The image URL for the NTP web store promo logo.
   1768 const char kNtpWebStorePromoLogo[] = "ntp.webstorepromo.logo";
   1769 
   1770 // The original URL for the NTP web store promo logo.
   1771 const char kNtpWebStorePromoLogoSource[] = "ntp.webstorepromo.logo_source";
   1772 
   1773 // The "hide this" link text for the NTP web store promo.
   1774 const char kNtpWebStorePromoExpire[] = "ntp.webstorepromo.expire";
   1775 
   1776 // Specifies what users should maximize the NTP web store promo.
   1777 const char kNtpWebStorePromoUserGroup[] = "ntp.webstorepromo.usergroup";
   1778 
   1779 // Customized app page names that appear on the New Tab Page.
   1780 const char kNtpAppPageNames[] = "ntp.app_page_names";
   1781 
   1782 // A private RSA key for ADB handshake.
   1783 const char kDevToolsAdbKey[] = "devtools.adb_key";
   1784 
   1785 const char kDevToolsDisabled[] = "devtools.disabled";
   1786 
   1787 // A string specifying the dock location (either 'bottom' or 'right').
   1788 const char kDevToolsDockSide[] = "devtools.dock_side";
   1789 
   1790 // Maps of files edited locally using DevTools.
   1791 const char kDevToolsEditedFiles[] = "devtools.edited_files";
   1792 
   1793 // List of file system paths added in DevTools.
   1794 const char kDevToolsFileSystemPaths[] = "devtools.file_system_paths";
   1795 
   1796 // Integer location of the horizontal split bar in the browser view.
   1797 const char kDevToolsHSplitLocation[] = "devtools.split_location";
   1798 
   1799 // A boolean specifying whether dev tools window should be opened docked.
   1800 const char kDevToolsOpenDocked[] = "devtools.open_docked";
   1801 
   1802 // A boolean specifying whether port forwarding should be enabled.
   1803 const char kDevToolsPortForwardingEnabled[] =
   1804     "devtools.port_forwarding_enabled";
   1805 
   1806 // A dictionary of port->location pairs for port forwarding.
   1807 const char kDevToolsPortForwardingConfig[] = "devtools.port_forwarding_config";
   1808 
   1809 #if defined(OS_ANDROID)
   1810 // A boolean specifying whether remote dev tools debugging is enabled.
   1811 const char kDevToolsRemoteEnabled[] = "devtools.remote_enabled";
   1812 #endif
   1813 
   1814 // Integer location of the vertical split bar in the browser view.
   1815 const char kDevToolsVSplitLocation[] = "devtools.v_split_location";
   1816 
   1817 #if defined(OS_ANDROID) || defined(OS_IOS)
   1818 // A boolean specifying whether a SPDY proxy is enabled.
   1819 const char kSpdyProxyAuthEnabled[] = "spdy_proxy.enabled";
   1820 const char kSpdyProxyAuthWasEnabledBefore[] = "spdy_proxy.was_enabled_before";
   1821 #endif  // defined(OS_ANDROID) || defined(OS_IOS)
   1822 
   1823 // Boolean which stores if the user is allowed to signin to chrome.
   1824 const char kSigninAllowed[] = "signin.allowed";
   1825 
   1826 // 64-bit integer serialization of the base::Time when the last sync occurred.
   1827 const char kSyncLastSyncedTime[] = "sync.last_synced_time";
   1828 
   1829 // Boolean specifying whether the user finished setting up sync.
   1830 const char kSyncHasSetupCompleted[] = "sync.has_setup_completed";
   1831 
   1832 // Boolean specifying whether to automatically sync all data types (including
   1833 // future ones, as they're added).  If this is true, the following preferences
   1834 // (kSyncBookmarks, kSyncPasswords, etc.) can all be ignored.
   1835 const char kSyncKeepEverythingSynced[] = "sync.keep_everything_synced";
   1836 
   1837 // Booleans specifying whether the user has selected to sync the following
   1838 // datatypes.
   1839 const char kSyncAppNotifications[] = "sync.app_notifications";
   1840 const char kSyncAppSettings[] = "sync.app_settings";
   1841 const char kSyncApps[] = "sync.apps";
   1842 const char kSyncAutofillProfile[] = "sync.autofill_profile";
   1843 const char kSyncAutofill[] = "sync.autofill";
   1844 const char kSyncBookmarks[] = "sync.bookmarks";
   1845 const char kSyncDictionary[] = "sync.dictionary";
   1846 const char kSyncExtensionSettings[] = "sync.extension_settings";
   1847 const char kSyncExtensions[] = "sync.extensions";
   1848 const char kSyncFaviconImages[] = "sync.favicon_images";
   1849 const char kSyncFaviconTracking[] = "sync.favicon_tracking";
   1850 const char kSyncHistoryDeleteDirectives[] = "sync.history_delete_directives";
   1851 const char kSyncManagedUserSettings[] = "sync.managed_user_settings";
   1852 const char kSyncManagedUsers[] = "sync.managed_users";
   1853 const char kSyncPasswords[] = "sync.passwords";
   1854 const char kSyncPreferences[] = "sync.preferences";
   1855 const char kSyncPriorityPreferences[] = "sync.priority_preferences";
   1856 const char kSyncSearchEngines[] = "sync.search_engines";
   1857 const char kSyncSessions[] = "sync.sessions";
   1858 const char kSyncSyncedNotifications[] = "sync.synced_notifications";
   1859 const char kSyncTabs[] = "sync.tabs";
   1860 const char kSyncThemes[] = "sync.themes";
   1861 const char kSyncTypedUrls[] = "sync.typed_urls";
   1862 
   1863 // Boolean used by enterprise configuration management in order to lock down
   1864 // sync.
   1865 const char kSyncManaged[] = "sync.managed";
   1866 
   1867 // Boolean to prevent sync from automatically starting up.  This is
   1868 // used when sync is disabled by the user via the privacy dashboard.
   1869 const char kSyncSuppressStart[] = "sync.suppress_start";
   1870 
   1871 // List of the currently acknowledged set of sync types, used to figure out
   1872 // if a new sync type has rolled out so we can notify the user.
   1873 const char kSyncAcknowledgedSyncTypes[] = "sync.acknowledged_types";
   1874 
   1875 // Dictionary from sync model type (as an int) to max invalidation
   1876 // version (int64 represented as a string).
   1877 const char kSyncMaxInvalidationVersions[] = "sync.max_invalidation_versions";
   1878 
   1879 // The GUID session sync will use to identify this client, even across sync
   1880 // disable/enable events.
   1881 const char kSyncSessionsGUID[] = "sync.session_sync_guid";
   1882 
   1883 // An ID to uniquely identify this client to the invalidator service.
   1884 const char kInvalidatorClientId[] = "invalidator.client_id";
   1885 
   1886 // Opaque state from the invalidation subsystem that is persisted via prefs.
   1887 // The value is base 64 encoded.
   1888 const char kInvalidatorInvalidationState[] = "invalidator.invalidation_state";
   1889 
   1890 // List of {source, name, max invalidation version} tuples. source is an int,
   1891 // while max invalidation version is an int64; both are stored as string
   1892 // representations though.
   1893 const char kInvalidatorMaxInvalidationVersions[] =
   1894     "invalidator.max_invalidation_versions";
   1895 
   1896 // A string that can be used to restore sync encryption infrastructure on
   1897 // startup so that the user doesn't need to provide credentials on each start.
   1898 const char kSyncEncryptionBootstrapToken[] =
   1899     "sync.encryption_bootstrap_token";
   1900 
   1901 // Same as kSyncEncryptionBootstrapToken, but derived from the keystore key,
   1902 // so we don't have to do a GetKey command at restart.
   1903 const char kSyncKeystoreEncryptionBootstrapToken[] =
   1904     "sync.keystore_encryption_bootstrap_token";
   1905 
   1906 // Boolean tracking whether the user chose to specify a secondary encryption
   1907 // passphrase.
   1908 const char kSyncUsingSecondaryPassphrase[] = "sync.using_secondary_passphrase";
   1909 
   1910 // String the identifies the last user that logged into sync and other
   1911 // google services. As opposed to kGoogleServicesUsername, this value is not
   1912 // cleared on signout, but while the user is signed in the two values will
   1913 // be the same.
   1914 const char kGoogleServicesLastUsername[] = "google.services.last_username";
   1915 
   1916 // String that identifies the current user logged into sync and other google
   1917 // services.
   1918 const char kGoogleServicesUsername[] = "google.services.username";
   1919 
   1920 // Local state pref containing a string regex that restricts which accounts
   1921 // can be used to log in to chrome (e.g. "*@google.com"). If missing or blank,
   1922 // all accounts are allowed (no restrictions).
   1923 const char kGoogleServicesUsernamePattern[] =
   1924     "google.services.username_pattern";
   1925 
   1926 #if !defined(OS_ANDROID)
   1927 // Tracks the number of times that we have shown the sign in promo at startup.
   1928 const char kSignInPromoStartupCount[] = "sync_promo.startup_count";
   1929 
   1930 // Boolean tracking whether the user chose to skip the sign in promo.
   1931 const char kSignInPromoUserSkipped[] = "sync_promo.user_skipped";
   1932 
   1933 // Boolean that specifies if the sign in promo is allowed to show on first run.
   1934 // This preference is specified in the master preference file to suppress the
   1935 // sign in promo for some installations.
   1936 const char kSignInPromoShowOnFirstRunAllowed[] =
   1937     "sync_promo.show_on_first_run_allowed";
   1938 
   1939 // Boolean that specifies if we should show a bubble in the new tab page.
   1940 // The bubble is used to confirm that the user is signed into sync.
   1941 const char kSignInPromoShowNTPBubble[] = "sync_promo.show_ntp_bubble";
   1942 #endif
   1943 
   1944 // Time when the user's GAIA info was last updated (represented as an int64).
   1945 const char kProfileGAIAInfoUpdateTime[] = "profile.gaia_info_update_time";
   1946 
   1947 // The URL from which the GAIA profile picture was downloaded. This is cached to
   1948 // prevent the same picture from being downloaded multiple times.
   1949 const char kProfileGAIAInfoPictureURL[] = "profile.gaia_info_picture_url";
   1950 
   1951 // Create web application shortcut dialog preferences.
   1952 const char kWebAppCreateOnDesktop[] = "browser.web_app.create_on_desktop";
   1953 const char kWebAppCreateInAppsMenu[] = "browser.web_app.create_in_apps_menu";
   1954 const char kWebAppCreateInQuickLaunchBar[] =
   1955     "browser.web_app.create_in_quick_launch_bar";
   1956 
   1957 // Dictionary that maps Geolocation network provider server URLs to
   1958 // corresponding access token.
   1959 const char kGeolocationAccessToken[] = "geolocation.access_token";
   1960 
   1961 // Boolean that indicates whether to allow firewall traversal while trying to
   1962 // establish the initial connection from the client or host.
   1963 const char kRemoteAccessHostFirewallTraversal[] =
   1964     "remote_access.host_firewall_traversal";
   1965 
   1966 // Boolean controlling whether 2-factor auth should be required when connecting
   1967 // to a host (instead of a PIN).
   1968 const char kRemoteAccessHostRequireTwoFactor[] =
   1969     "remote_access.host_require_two_factor";
   1970 
   1971 // String containing the domain name that hosts must belong to. If blank, then
   1972 // hosts can belong to any domain.
   1973 const char kRemoteAccessHostDomain[] = "remote_access.host_domain";
   1974 
   1975 // String containing the domain name of the Chromoting Directory.
   1976 // Used by Chromoting host and client.
   1977 const char kRemoteAccessHostTalkGadgetPrefix[] =
   1978     "remote_access.host_talkgadget_prefix";
   1979 
   1980 // Boolean controlling whether curtaining is required when connecting to a host.
   1981 const char kRemoteAccessHostRequireCurtain[] =
   1982     "remote_access.host_require_curtain";
   1983 
   1984 // Boolean controlling whether curtaining is required when connecting to a host.
   1985 const char kRemoteAccessHostAllowClientPairing[] =
   1986     "remote_access.host_allow_client_pairing";
   1987 
   1988 // The last used printer and its settings.
   1989 const char kPrintPreviewStickySettings[] =
   1990     "printing.print_preview_sticky_settings";
   1991 // The root URL of the cloud print service.
   1992 const char kCloudPrintServiceURL[] = "cloud_print.service_url";
   1993 
   1994 // The URL to use to sign in to cloud print.
   1995 const char kCloudPrintSigninURL[] = "cloud_print.signin_url";
   1996 
   1997 // The last requested size of the dialog as it was closed.
   1998 const char kCloudPrintDialogWidth[] = "cloud_print.dialog_size.width";
   1999 const char kCloudPrintDialogHeight[] = "cloud_print.dialog_size.height";
   2000 const char kCloudPrintSigninDialogWidth[] =
   2001     "cloud_print.signin_dialog_size.width";
   2002 const char kCloudPrintSigninDialogHeight[] =
   2003     "cloud_print.signin_dialog_size.height";
   2004 
   2005 // The list of BackgroundContents that should be loaded when the browser
   2006 // launches.
   2007 const char kRegisteredBackgroundContents[] = "background_contents.registered";
   2008 
   2009 #if !defined(OS_ANDROID)
   2010 // An int that stores how often we've shown the "Chrome is configured to
   2011 // auto-launch" infobar.
   2012 const char kShownAutoLaunchInfobar[] = "browser.shown_autolaunch_infobar";
   2013 #endif
   2014 
   2015 // String that lists supported HTTP authentication schemes.
   2016 const char kAuthSchemes[] = "auth.schemes";
   2017 
   2018 // Boolean that specifies whether to disable CNAME lookups when generating
   2019 // Kerberos SPN.
   2020 const char kDisableAuthNegotiateCnameLookup[] =
   2021     "auth.disable_negotiate_cname_lookup";
   2022 
   2023 // Boolean that specifies whether to include the port in a generated Kerberos
   2024 // SPN.
   2025 const char kEnableAuthNegotiatePort[] = "auth.enable_negotiate_port";
   2026 
   2027 // Whitelist containing servers for which Integrated Authentication is enabled.
   2028 const char kAuthServerWhitelist[] = "auth.server_whitelist";
   2029 
   2030 // Whitelist containing servers Chrome is allowed to do Kerberos delegation
   2031 // with.
   2032 const char kAuthNegotiateDelegateWhitelist[] =
   2033     "auth.negotiate_delegate_whitelist";
   2034 
   2035 // String that specifies the name of a custom GSSAPI library to load.
   2036 const char kGSSAPILibraryName[] = "auth.gssapi_library_name";
   2037 
   2038 // String that specifies the origin allowed to use SpdyProxy
   2039 // authentication, if any.
   2040 const char kSpdyProxyAuthOrigin[] = "auth.spdyproxy.origin";
   2041 
   2042 // Boolean that specifies whether to allow basic auth prompting on cross-
   2043 // domain sub-content requests.
   2044 const char kAllowCrossOriginAuthPrompt[] = "auth.allow_cross_origin_prompt";
   2045 
   2046 // Boolean that specifies whether the built-in asynchronous DNS client is used.
   2047 const char kBuiltInDnsClientEnabled[] = "async_dns.enabled";
   2048 
   2049 // An int64 pref that contains the total size of all HTTP content that has been
   2050 // received from the network.
   2051 const char kHttpReceivedContentLength[] = "http_received_content_length";
   2052 
   2053 // An int64 pref that contains the total original size of all HTTP content that
   2054 // was received over the network.
   2055 const char kHttpOriginalContentLength[] = "http_original_content_length";
   2056 
   2057 #if defined(OS_ANDROID) || defined(OS_IOS)
   2058 // A List pref that contains daily totals of the original size of all HTTP
   2059 // that was received over the network.
   2060 const char kDailyHttpOriginalContentLength[] =
   2061     "data_reduction.daily_original_length";
   2062 
   2063 // A List pref that contains daily totals of the size of all HTTP content that
   2064 // has been received from the network.
   2065 const char kDailyHttpReceivedContentLength[] =
   2066     "data_reduction.daily_received_length";
   2067 
   2068 // A List pref that contains daily totals of the size of all HTTP content that
   2069 // has been received via the data reduction proxy.
   2070 const char kDailyHttpReceivedContentLengthViaDataReductionProxy[] =
   2071     "data_reduction.daily_received_length_via_data_reduction_proxy";
   2072 
   2073 // A List pref that contains daily totals of the size of all HTTP content that
   2074 // has been received when the data reduction proxy is enabled.
   2075 // Note: this is different from
   2076 // kDailyHttpReceivedContentLengthViaDataReductionProxy because content
   2077 // doesn't necessarily go through the data reduction proxy when it is enabled.
   2078 // E.g., the proxy doesn't handle HTTPS traffic.
   2079 const char kDailyHttpReceivedContentLengthWithDataReductionProxyEnabled[] =
   2080     "data_reduction.daily_received_length_with_data_reduction_proxy_enabled";
   2081 
   2082 // An int64 pref that contains an internal representation of midnight on the
   2083 // date of the last update to |kDailyHttp{Original,Received}ContentLength|.
   2084 const char kDailyHttpContentLengthLastUpdateDate[] =
   2085     "data_reduction.last_update_date";
   2086 #endif  // defined(OS_ANDROID) || defined(OS_IOS)
   2087 
   2088 // A pref holding the value of the policy used to explicitly allow or deny
   2089 // access to audio capture devices.  When enabled or not set, the user is
   2090 // prompted for device access.  When disabled, access to audio capture devices
   2091 // is not allowed and no prompt will be shown.
   2092 // See also kAudioCaptureAllowedUrls.
   2093 const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
   2094 // Holds URL patterns that specify URLs that will be granted access to audio
   2095 // capture devices without prompt.  NOTE: This whitelist is currently only
   2096 // supported when running in kiosk mode.
   2097 // TODO(tommi): Update comment when this is supported for all modes.
   2098 const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
   2099 
   2100 // A pref holding the value of the policy used to explicitly allow or deny
   2101 // access to video capture devices.  When enabled or not set, the user is
   2102 // prompted for device access.  When disabled, access to video capture devices
   2103 // is not allowed and no prompt will be shown.
   2104 const char kVideoCaptureAllowed[] = "hardware.video_capture_enabled";
   2105 // Holds URL patterns that specify URLs that will be granted access to video
   2106 // capture devices without prompt.  NOTE: This whitelist is currently only
   2107 // supported when running in kiosk mode.
   2108 // TODO(tommi): Update comment when this is supported for all modes.
   2109 const char kVideoCaptureAllowedUrls[] = "hardware.video_capture_allowed_urls";
   2110 
   2111 #if defined(OS_CHROMEOS)
   2112 // Dictionary for transient storage of settings that should go into device
   2113 // settings storage before owner has been assigned.
   2114 const char kDeviceSettingsCache[] = "signed_settings_cache";
   2115 
   2116 // The hardware keyboard layout of the device. This should look like
   2117 // "xkb:us::eng".
   2118 const char kHardwareKeyboardLayout[] = "intl.hardware_keyboard";
   2119 
   2120 // An integer pref which shows number of times carrier deal promo
   2121 // notification has been shown to user.
   2122 const char kCarrierDealPromoShown[] =
   2123     "settings.internet.mobile.carrier_deal_promo_shown";
   2124 
   2125 // A boolean pref of the auto-enrollment decision. Its value is only valid if
   2126 // it's not the default value; otherwise, no auto-enrollment decision has been
   2127 // made yet.
   2128 const char kShouldAutoEnroll[] = "ShouldAutoEnroll";
   2129 
   2130 // An integer pref with the maximum number of bits used by the client in a
   2131 // previous auto-enrollment request. If the client goes through an auto update
   2132 // during OOBE and reboots into a version of the OS with a larger maximum
   2133 // modulus, then it will retry auto-enrollment using the updated value.
   2134 const char kAutoEnrollmentPowerLimit[] = "AutoEnrollmentPowerLimit";
   2135 
   2136 // The local state pref that stores device activity times before reporting
   2137 // them to the policy server.
   2138 const char kDeviceActivityTimes[] = "device_status.activity_times";
   2139 
   2140 // A pref holding the last known location when device location reporting is
   2141 // enabled.
   2142 const char kDeviceLocation[] = "device_status.location";
   2143 
   2144 // A string that is used to store first-time sync startup after once sync is
   2145 // disabled. This will be refreshed every sign-in.
   2146 const char kSyncSpareBootstrapToken[] = "sync.spare_bootstrap_token";
   2147 
   2148 // A pref holding the value of the policy used to disable mounting of external
   2149 // storage for the user.
   2150 const char kExternalStorageDisabled[] = "hardware.external_storage_disabled";
   2151 
   2152 // A pref holding the value of the policy used to disable playing audio on
   2153 // ChromeOS devices. This pref overrides |kAudioMute| but does not overwrite
   2154 // it, therefore when the policy is lifted the original mute state is restored.
   2155 const char kAudioOutputAllowed[] = "hardware.audio_output_enabled";
   2156 
   2157 // A dictionary that maps usernames to wallpaper properties.
   2158 const char kUsersWallpaperInfo[] = "user_wallpaper_info";
   2159 
   2160 // Copy of owner swap mouse buttons option to use on login screen.
   2161 const char kOwnerPrimaryMouseButtonRight[] = "owner.mouse.primary_right";
   2162 
   2163 // Copy of owner tap-to-click option to use on login screen.
   2164 const char kOwnerTapToClickEnabled[] = "owner.touchpad.enable_tap_to_click";
   2165 
   2166 // The length of device uptime after which an automatic reboot is scheduled,
   2167 // expressed in seconds.
   2168 const char kUptimeLimit[] = "automatic_reboot.uptime_limit";
   2169 
   2170 // Whether an automatic reboot should be scheduled when an update has been
   2171 // applied and a reboot is required to complete the update process.
   2172 const char kRebootAfterUpdate[] = "automatic_reboot.reboot_after_update";
   2173 
   2174 // An any-api scoped refresh token for enterprise-enrolled devices.  Allows
   2175 // for connection to Google APIs when the user isn't logged in.  Currently used
   2176 // for for getting a cloudprint scoped token to allow printing in Guest mode,
   2177 // Public Accounts and kiosks.
   2178 const char kDeviceRobotAnyApiRefreshToken[] =
   2179     "device_robot_refresh_token.any-api";
   2180 
   2181 // Device requisition for enterprise enrollment.
   2182 const char kDeviceEnrollmentRequisition[] = "enrollment.device_requisition";
   2183 
   2184 // Whether to automatically start the enterprise enrollment step during OOBE.
   2185 const char kDeviceEnrollmentAutoStart[] = "enrollment.auto_start";
   2186 
   2187 // Whether the user may exit enrollment.
   2188 const char kDeviceEnrollmentCanExit[] = "enrollment.can_exit";
   2189 
   2190 // Dictionary of per-user Least Recently Used input method (used at login
   2191 // screen).
   2192 extern const char kUsersLRUInputMethod[] = "UsersLRUInputMethod";
   2193 #endif
   2194 
   2195 // Whether there is a Flash version installed that supports clearing LSO data.
   2196 const char kClearPluginLSODataEnabled[] = "browser.clear_lso_data_enabled";
   2197 
   2198 // Whether we should show Pepper Flash-specific settings.
   2199 const char kPepperFlashSettingsEnabled[] =
   2200     "browser.pepper_flash_settings_enabled";
   2201 
   2202 // String which specifies where to store the disk cache.
   2203 const char kDiskCacheDir[] = "browser.disk_cache_dir";
   2204 // Pref name for the policy specifying the maximal cache size.
   2205 const char kDiskCacheSize[] = "browser.disk_cache_size";
   2206 // Pref name for the policy specifying the maximal media cache size.
   2207 const char kMediaCacheSize[] = "browser.media_cache_size";
   2208 
   2209 // Specifies the release channel that the device should be locked to.
   2210 // Possible values: "stable-channel", "beta-channel", "dev-channel", or an
   2211 // empty string, in which case the value will be ignored.
   2212 // TODO(dubroy): This preference may not be necessary once
   2213 // http://crosbug.com/17015 is implemented and the update engine can just
   2214 // fetch the correct value from the policy.
   2215 const char kChromeOsReleaseChannel[] = "cros.system.releaseChannel";
   2216 
   2217 const char kPerformanceTracingEnabled[] =
   2218     "feedback.performance_tracing_enabled";
   2219 
   2220 // Value of the enums in TabStrip::LayoutType as an int.
   2221 const char kTabStripLayoutType[] = "tab_strip_layout_type";
   2222 
   2223 // If true, cloud policy for the user is not loaded when the user signs in.
   2224 const char kDisableCloudPolicyOnSignin[] =
   2225     "policy.disable_cloud_policy_on_signin";
   2226 
   2227 // Indicates that factory reset was requested from options page.
   2228 const char kFactoryResetRequested[] = "FactoryResetRequested";
   2229 
   2230 // Boolean recording whether we have showed a balloon that calls out the message
   2231 // center for desktop notifications.
   2232 const char kMessageCenterShowedFirstRunBalloon[] =
   2233     "message_center.showed_first_run_balloon";
   2234 
   2235 // *************** SERVICE PREFS ***************
   2236 // These are attached to the service process.
   2237 
   2238 const char kCloudPrintRoot[] = "cloud_print";
   2239 const char kCloudPrintProxyEnabled[] = "cloud_print.enabled";
   2240 // The unique id for this instance of the cloud print proxy.
   2241 const char kCloudPrintProxyId[] = "cloud_print.proxy_id";
   2242 // The GAIA auth token for Cloud Print
   2243 const char kCloudPrintAuthToken[] = "cloud_print.auth_token";
   2244 // The GAIA auth token used by Cloud Print to authenticate with the XMPP server
   2245 // This should eventually go away because the above token should work for both.
   2246 const char kCloudPrintXMPPAuthToken[] = "cloud_print.xmpp_auth_token";
   2247 // The email address of the account used to authenticate with the Cloud Print
   2248 // server.
   2249 const char kCloudPrintEmail[] = "cloud_print.email";
   2250 // Settings specific to underlying print system.
   2251 const char kCloudPrintPrintSystemSettings[] =
   2252     "cloud_print.print_system_settings";
   2253 // A boolean indicating whether we should poll for print jobs when don't have
   2254 // an XMPP connection (false by default).
   2255 const char kCloudPrintEnableJobPoll[] = "cloud_print.enable_job_poll";
   2256 const char kCloudPrintRobotRefreshToken[] = "cloud_print.robot_refresh_token";
   2257 const char kCloudPrintRobotEmail[] = "cloud_print.robot_email";
   2258 // A boolean indicating whether we should connect to cloud print new printers.
   2259 const char kCloudPrintConnectNewPrinters[] =
   2260     "cloud_print.user_settings.connectNewPrinters";
   2261 // A boolean indicating whether we should ping XMPP connection.
   2262 const char kCloudPrintXmppPingEnabled[] = "cloud_print.xmpp_ping_enabled";
   2263 // An int value indicating the average timeout between xmpp pings.
   2264 const char kCloudPrintXmppPingTimeout[] = "cloud_print.xmpp_ping_timeout_sec";
   2265 // Dictionary with settings stored by connector setup page.
   2266 const char kCloudPrintUserSettings[] = "cloud_print.user_settings";
   2267 // List of printers settings.
   2268 extern const char kCloudPrintPrinters[] = "cloud_print.user_settings.printers";
   2269 // A boolean indicating whether submitting jobs to Google Cloud Print is
   2270 // blocked by policy.
   2271 const char kCloudPrintSubmitEnabled[] = "cloud_print.submit_enabled";
   2272 
   2273 // Preference to store proxy settings.
   2274 const char kProxy[] = "proxy";
   2275 const char kMaxConnectionsPerProxy[] = "net.max_connections_per_proxy";
   2276 
   2277 // Preferences that are exclusively used to store managed values for default
   2278 // content settings.
   2279 const char kManagedDefaultCookiesSetting[] =
   2280     "profile.managed_default_content_settings.cookies";
   2281 const char kManagedDefaultImagesSetting[] =
   2282     "profile.managed_default_content_settings.images";
   2283 const char kManagedDefaultJavaScriptSetting[] =
   2284     "profile.managed_default_content_settings.javascript";
   2285 const char kManagedDefaultPluginsSetting[] =
   2286     "profile.managed_default_content_settings.plugins";
   2287 const char kManagedDefaultPopupsSetting[] =
   2288     "profile.managed_default_content_settings.popups";
   2289 const char kManagedDefaultGeolocationSetting[] =
   2290     "profile.managed_default_content_settings.geolocation";
   2291 const char kManagedDefaultNotificationsSetting[] =
   2292     "profile.managed_default_content_settings.notifications";
   2293 const char kManagedDefaultMediaStreamSetting[] =
   2294     "profile.managed_default_content_settings.media_stream";
   2295 
   2296 // Preferences that are exclusively used to store managed
   2297 // content settings patterns.
   2298 const char kManagedCookiesAllowedForUrls[] =
   2299     "profile.managed_cookies_allowed_for_urls";
   2300 const char kManagedCookiesBlockedForUrls[] =
   2301     "profile.managed_cookies_blocked_for_urls";
   2302 const char kManagedCookiesSessionOnlyForUrls[] =
   2303     "profile.managed_cookies_sessiononly_for_urls";
   2304 const char kManagedImagesAllowedForUrls[] =
   2305     "profile.managed_images_allowed_for_urls";
   2306 const char kManagedImagesBlockedForUrls[] =
   2307     "profile.managed_images_blocked_for_urls";
   2308 const char kManagedJavaScriptAllowedForUrls[] =
   2309     "profile.managed_javascript_allowed_for_urls";
   2310 const char kManagedJavaScriptBlockedForUrls[] =
   2311     "profile.managed_javascript_blocked_for_urls";
   2312 const char kManagedPluginsAllowedForUrls[] =
   2313     "profile.managed_plugins_allowed_for_urls";
   2314 const char kManagedPluginsBlockedForUrls[] =
   2315     "profile.managed_plugins_blocked_for_urls";
   2316 const char kManagedPopupsAllowedForUrls[] =
   2317     "profile.managed_popups_allowed_for_urls";
   2318 const char kManagedPopupsBlockedForUrls[] =
   2319     "profile.managed_popups_blocked_for_urls";
   2320 const char kManagedNotificationsAllowedForUrls[] =
   2321     "profile.managed_notifications_allowed_for_urls";
   2322 const char kManagedNotificationsBlockedForUrls[] =
   2323     "profile.managed_notifications_blocked_for_urls";
   2324 const char kManagedAutoSelectCertificateForUrls[] =
   2325     "profile.managed_auto_select_certificate_for_urls";
   2326 
   2327 #if defined(OS_MACOSX)
   2328 // Set to true if the user removed our login item so we should not create a new
   2329 // one when uninstalling background apps.
   2330 const char kUserRemovedLoginItem[] = "background_mode.user_removed_login_item";
   2331 
   2332 // Set to true if Chrome already created a login item, so there's no need to
   2333 // create another one.
   2334 const char kChromeCreatedLoginItem[] =
   2335   "background_mode.chrome_created_login_item";
   2336 
   2337 // Set to true once we've initialized kChromeCreatedLoginItem for the first
   2338 // time.
   2339 const char kMigratedLoginItemPref[] =
   2340   "background_mode.migrated_login_item_pref";
   2341 #endif
   2342 
   2343 // Set to true if background mode is enabled on this browser.
   2344 const char kBackgroundModeEnabled[] = "background_mode.enabled";
   2345 
   2346 // Set to true if hardware acceleration mode is enabled on this browser.
   2347 const char kHardwareAccelerationModeEnabled[] =
   2348   "hardware_acceleration_mode.enabled";
   2349 
   2350 // Hardware acceleration mode from previous browser launch.
   2351 const char kHardwareAccelerationModePrevious[] =
   2352   "hardware_acceleration_mode_previous";
   2353 
   2354 // List of protocol handlers.
   2355 const char kRegisteredProtocolHandlers[] =
   2356   "custom_handlers.registered_protocol_handlers";
   2357 
   2358 // List of protocol handlers the user has requested not to be asked about again.
   2359 const char kIgnoredProtocolHandlers[] =
   2360   "custom_handlers.ignored_protocol_handlers";
   2361 
   2362 // Whether user-specified handlers for protocols and content types can be
   2363 // specified.
   2364 const char kCustomHandlersEnabled[] = "custom_handlers.enabled";
   2365 
   2366 // Integers that specify the policy refresh rate for device- and user-policy in
   2367 // milliseconds. Not all values are meaningful, so it is clamped to a sane range
   2368 // by the cloud policy subsystem.
   2369 const char kDevicePolicyRefreshRate[] = "policy.device_refresh_rate";
   2370 const char kUserPolicyRefreshRate[] = "policy.user_refresh_rate";
   2371 
   2372 // String that represents the recovery component last downloaded version. This
   2373 // takes the usual 'a.b.c.d' notation.
   2374 const char kRecoveryComponentVersion[] = "recovery_component.version";
   2375 
   2376 // String that stores the component updater last known state. This is used for
   2377 // troubleshooting.
   2378 const char kComponentUpdaterState[] = "component_updater.state";
   2379 
   2380 // The next media gallery ID to assign.
   2381 const char kMediaGalleriesUniqueId[] = "media_galleries.gallery_id";
   2382 
   2383 // A list of dictionaries, where each dictionary represents a known media
   2384 // gallery.
   2385 const char kMediaGalleriesRememberedGalleries[] =
   2386     "media_galleries.remembered_galleries";
   2387 
   2388 #if defined(USE_ASH)
   2389 // |kShelfAlignment| and |kShelfAutoHideBehavior| have a local variant. The
   2390 // local variant is not synced and is used if set. If the local variant is not
   2391 // set its value is set from the synced value (once prefs have been
   2392 // synced). This gives a per-machine setting that is initialized from the last
   2393 // set value.
   2394 // These values are default on the machine but can be overridden by per-display
   2395 // values in kShelfPreferences (unless overridden by managed policy).
   2396 // String value corresponding to ash::Shell::ShelfAlignment.
   2397 const char kShelfAlignment[] = "shelf_alignment";
   2398 const char kShelfAlignmentLocal[] = "shelf_alignment_local";
   2399 // String value corresponding to ash::Shell::ShelfAutoHideBehavior.
   2400 const char kShelfAutoHideBehavior[] = "auto_hide_behavior";
   2401 const char kShelfAutoHideBehaviorLocal[] = "auto_hide_behavior_local";
   2402 // This value stores chrome icon's index in the launcher. This should be handled
   2403 // separately with app shortcut's index because of LauncherModel's backward
   2404 // compatability. If we add chrome icon index to |kPinnedLauncherApps|, its
   2405 // index is also stored in the |kPinnedLauncherApp| pref. It may causes
   2406 // creating two chrome icons.
   2407 const char kShelfChromeIconIndex[] = "shelf_chrome_icon_index";
   2408 
   2409 const char kPinnedLauncherApps[] = "pinned_launcher_apps";
   2410 // Boolean value indicating whether to show a logout button in the ash tray.
   2411 const char kShowLogoutButtonInTray[] = "show_logout_button_in_tray";
   2412 // Dictionary value that holds per-display preference of shelf alignment and
   2413 // auto-hide behavior. Key of the dictionary is the id of the display, and
   2414 // its value is a dictionary whose keys are kShelfAlignment and
   2415 // kShelfAutoHideBehavior.
   2416 const char kShelfPreferences[] = "shelf_preferences";
   2417 
   2418 // Tuning for immersive fullscreen.
   2419 const char kImmersiveModeRevealDelayMs[] =
   2420     "immersive_mode.reveal_delay_ms";
   2421 const char kImmersiveModeRevealXThresholdPixels[] =
   2422     "immersive_mode.reveal_x_threshold_pixels";
   2423 #endif
   2424 
   2425 #if defined(USE_AURA)
   2426 // Tuning settings for gestures.
   2427 const char kFlingVelocityCap[] = "gesture.fling_velocity_cap";
   2428 const char kLongPressTimeInSeconds[] =
   2429     "gesture.long_press_time_in_seconds";
   2430 const char kMaxDistanceBetweenTapsForDoubleTap[] =
   2431     "gesture.max_distance_between_taps_for_double_tap";
   2432 const char kMaxDistanceForTwoFingerTapInPixels[] =
   2433     "gesture.max_distance_for_two_finger_tap_in_pixels";
   2434 const char kMaxSecondsBetweenDoubleClick[] =
   2435     "gesture.max_seconds_between_double_click";
   2436 const char kMaxSeparationForGestureTouchesInPixels[] =
   2437     "gesture.max_separation_for_gesture_touches_in_pixels";
   2438 const char kMaxSwipeDeviationRatio[] =
   2439     "gesture.max_swipe_deviation_ratio";
   2440 const char kMaxTouchDownDurationInSecondsForClick[] =
   2441     "gesture.max_touch_down_duration_in_seconds_for_click";
   2442 const char kMaxTouchMoveInPixelsForClick[] =
   2443     "gesture.max_touch_move_in_pixels_for_click";
   2444 const char kMinDistanceForPinchScrollInPixels[] =
   2445     "gesture.min_distance_for_pinch_scroll_in_pixels";
   2446 const char kMinFlickSpeedSquared[] =
   2447     "gesture.min_flick_speed_squared";
   2448 const char kMinPinchUpdateDistanceInPixels[] =
   2449     "gesture.min_pinch_update_distance_in_pixels";
   2450 const char kMinRailBreakVelocity[] =
   2451     "gesture.min_rail_break_velocity";
   2452 const char kMinScrollDeltaSquared[] =
   2453     "gesture.min_scroll_delta_squared";
   2454 const char kMinSwipeSpeed[] =
   2455     "gesture.min_swipe_speed";
   2456 const char kMinTouchDownDurationInSecondsForClick[] =
   2457     "gesture.min_touch_down_duration_in_seconds_for_click";
   2458 const char kPointsBufferedForVelocity[] =
   2459     "gesture.points_buffered_for_velocity";
   2460 const char kRailBreakProportion[] =
   2461     "gesture.rail_break_proportion";
   2462 const char kRailStartProportion[] =
   2463     "gesture.rail_start_proportion";
   2464 const char kScrollPredictionSeconds[] =
   2465     "gesture.scroll_prediction_seconds";
   2466 const char kSemiLongPressTimeInSeconds[] =
   2467     "gesture.semi_long_press_time_in_seconds";
   2468 const char kTabScrubActivationDelayInMS[] =
   2469     "gesture.tab_scrub_activation_delay_in_ms";
   2470 const char kFlingAccelerationCurveCoefficient0[] =
   2471     "gesture.fling_acceleration_curve_coefficient_0";
   2472 const char kFlingAccelerationCurveCoefficient1[] =
   2473     "gesture.fling_acceleration_curve_coefficient_1";
   2474 const char kFlingAccelerationCurveCoefficient2[] =
   2475     "gesture.fling_acceleration_curve_coefficient_2";
   2476 const char kFlingAccelerationCurveCoefficient3[] =
   2477     "gesture.fling_acceleration_curve_coefficient_3";
   2478 const char kFlingCurveTouchpadAlpha[] = "flingcurve.touchpad_alpha";
   2479 const char kFlingCurveTouchpadBeta[] = "flingcurve.touchpad_beta";
   2480 const char kFlingCurveTouchpadGamma[] = "flingcurve.touchpad_gamma";
   2481 const char kFlingCurveTouchscreenAlpha[] = "flingcurve.touchscreen_alpha";
   2482 const char kFlingCurveTouchscreenBeta[] = "flingcurve.touchscreen_beta";
   2483 const char kFlingCurveTouchscreenGamma[] = "flingcurve.touchscreen_gamma";
   2484 const char kFlingMaxCancelToDownTimeInMs[] =
   2485     "gesture.fling_max_cancel_to_down_time_in_ms";
   2486 const char kFlingMaxTapGapTimeInMs[] =
   2487     "gesture.fling_max_tap_gap_time_in_ms";
   2488 const char kOverscrollHorizontalThresholdComplete[] =
   2489     "overscroll.horizontal_threshold_complete";
   2490 const char kOverscrollVerticalThresholdComplete[] =
   2491     "overscroll.vertical_threshold_complete";
   2492 const char kOverscrollMinimumThresholdStart[] =
   2493     "overscroll.minimum_threshold_start";
   2494 const char kOverscrollVerticalThresholdStart[] =
   2495     "overscroll.vertical_threshold_start";
   2496 const char kOverscrollHorizontalResistThreshold[] =
   2497     "overscroll.horizontal_resist_threshold";
   2498 const char kOverscrollVerticalResistThreshold[] =
   2499     "overscroll.vertical_resist_threshold";
   2500 // TODO(mohsen): Remove following pref in M32. By then, gesture prefs will have
   2501 // been cleared for majority of the users: crbug.com/269292.
   2502 // A temporary pref to do a one-time wipe of gesture preferences.
   2503 const char kGestureConfigIsTrustworthy[] = "gesture.config_is_trustworthy";
   2504 #endif
   2505 
   2506 // Counts how many more times the 'profile on a network share' warning should be
   2507 // shown to the user before the next silence period.
   2508 const char kNetworkProfileWarningsLeft[] = "network_profile.warnings_left";
   2509 // Tracks the time of the last shown warning. Used to reset
   2510 // |network_profile.warnings_left| after a silence period.
   2511 const char kNetworkProfileLastWarningTime[] =
   2512     "network_profile.last_warning_time";
   2513 
   2514 // 64-bit serialization of the time last policy usage statistics were collected
   2515 // by UMA_HISTOGRAM_ENUMERATION.
   2516 const char kLastPolicyStatisticsUpdate[] = "policy.last_statistics_update";
   2517 
   2518 #if defined(OS_CHROMEOS)
   2519 // The RLZ brand code, if enabled.
   2520 const char kRLZBrand[] = "rlz.brand";
   2521 // Whether RLZ pings are disabled.
   2522 const char kRLZDisabled[] = "rlz.disabled";
   2523 #endif
   2524 
   2525 // The directory in user data dir that contains the profile to be used with the
   2526 // app launcher.
   2527 extern const char kAppListProfile[] = "app_list.profile";
   2528 
   2529 // Whether to show the app list on a browser relaunch. Used when switching out
   2530 // of metro mode after a user gesture requests showing the app list.
   2531 const char kRestartWithAppList[] = "app_list.show_on_relaunch";
   2532 
   2533 // The number of times the app launcher was launched since last ping and
   2534 // the time of the last ping.
   2535 extern const char kAppListLaunchCount[] = "app_list.launch_count";
   2536 extern const char kLastAppListLaunchPing[] = "app_list.last_launch_ping";
   2537 
   2538 // The number of times the an app was launched from the app launcher since last
   2539 // ping and the time of the last ping.
   2540 extern const char kAppListAppLaunchCount[] = "app_list.app_launch_count";
   2541 extern const char kLastAppListAppLaunchPing[] = "app_list.last_app_launch_ping";
   2542 
   2543 // How often the bubble has been shown.
   2544 extern const char kModuleConflictBubbleShown[] = "module_conflict.bubble_shown";
   2545 
   2546 // A string pref for storing the salt used to compute the pepper device ID.
   2547 const char kDRMSalt[] = "settings.privacy.drm_salt";
   2548 // A boolean pref that enables the (private) pepper GetDeviceID() call.
   2549 const char kEnableDRM[] = "settings.privacy.drm_enabled";
   2550 
   2551 // A dictionary pref which maps profile names to dictionary values which hold
   2552 // hashes of profile prefs that we track to detect changes that happen outside
   2553 // of Chrome.
   2554 const char kProfilePreferenceHashes[] = "profile.preference_hashes";
   2555 
   2556 }  // namespace prefs
   2557