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 // If set to true profiles are created in ephemeral mode and do not store their
     31 // data in the profile folder on disk but only in memory.
     32 const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
     33 
     34 // A boolean specifying whether the New Tab page is the home page or not.
     35 const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
     36 
     37 // This is the URL of the page to load when opening new tabs.
     38 const char kHomePage[] = "homepage";
     39 
     40 // An integer that keeps track of the profile icon version. This allows us to
     41 // determine the state of the profile icon for icon format changes.
     42 const char kProfileIconVersion[] = "profile.icon_version";
     43 
     44 // Used to determine if the last session exited cleanly. Set to false when
     45 // first opened, and to true when closing. On startup if the value is false,
     46 // it means the profile didn't exit cleanly.
     47 // DEPRECATED: this is replaced by kSessionExitType and exists for backwards
     48 // compatibility.
     49 const char kSessionExitedCleanly[] = "profile.exited_cleanly";
     50 
     51 // A string pref whose values is one of the values defined by
     52 // |ProfileImpl::kPrefExitTypeXXX|. Set to |kPrefExitTypeCrashed| on startup and
     53 // one of |kPrefExitTypeNormal| or |kPrefExitTypeSessionEnded| during
     54 // shutdown. Used to determine the exit type the last time the profile was open.
     55 const char kSessionExitType[] = "profile.exit_type";
     56 
     57 // An integer pref. Holds one of several values:
     58 // 0: (deprecated) open the homepage on startup.
     59 // 1: restore the last session.
     60 // 2: this was used to indicate a specific session should be restored. It is
     61 //    no longer used, but saved to avoid conflict with old preferences.
     62 // 3: unused, previously indicated the user wants to restore a saved session.
     63 // 4: restore the URLs defined in kURLsToRestoreOnStartup.
     64 // 5: open the New Tab Page on startup.
     65 const char kRestoreOnStartup[] = "session.restore_on_startup";
     66 
     67 // A preference to keep track of whether we have already checked whether we
     68 // need to migrate the user from kRestoreOnStartup=0 to kRestoreOnStartup=4.
     69 // We only need to do this check once, on upgrade from m18 or lower to m19 or
     70 // higher.
     71 const char kRestoreOnStartupMigrated[] = "session.restore_on_startup_migrated";
     72 
     73 // Serialized migration time of kURLsToRestoreOnStartup (see
     74 // base::Time::ToInternalValue for details on serialization format).
     75 const char kRestoreStartupURLsMigrationTime[] =
     76     "session.startup_urls_migration_time";
     77 
     78 // The URLs to restore on startup or when the home button is pressed. The URLs
     79 // are only restored on startup if kRestoreOnStartup is 4.
     80 const char kURLsToRestoreOnStartup[] = "session.startup_urls";
     81 
     82 // Old startup url pref name for kURLsToRestoreOnStartup.
     83 const char kURLsToRestoreOnStartupOld[] = "session.urls_to_restore_on_startup";
     84 
     85 // Stores the email address associated with the google account of the custodian
     86 // of the supervised user, set when the supervised user is created.
     87 const char kSupervisedUserCustodianEmail[] = "profile.managed.custodian_email";
     88 
     89 // Stores the display name associated with the google account of the custodian
     90 // of the supervised user, updated (if possible) each time the supervised user
     91 // starts a session.
     92 const char kSupervisedUserCustodianName[] = "profile.managed.custodian_name";
     93 
     94 // Stores the URL of the profile image associated with the google account of the
     95 // custodian of the supervised user.
     96 const char kSupervisedUserCustodianProfileImageURL[] =
     97     "profile.managed.custodian_profile_image_url";
     98 
     99 // Stores the URL of the profile associated with the google account of the
    100 // custodian of the supervised user.
    101 const char kSupervisedUserCustodianProfileURL[] =
    102     "profile.managed.custodian_profile_url";
    103 
    104 // Maps host names to whether the host is manually allowed or blocked.
    105 const char kSupervisedUserManualHosts[] = "profile.managed.manual_hosts";
    106 
    107 // Maps URLs to whether the URL is manually allowed or blocked.
    108 const char kSupervisedUserManualURLs[] = "profile.managed.manual_urls";
    109 
    110 // Stores the email address associated with the google account of the secondary
    111 // custodian of the supervised user, set when the supervised user is created.
    112 const char kSupervisedUserSecondCustodianEmail[] =
    113     "profile.managed.second_custodian_email";
    114 
    115 // Stores the display name associated with the google account of the secondary
    116 // custodian of the supervised user, updated (if possible) each time the
    117 // supervised user starts a session.
    118 const char kSupervisedUserSecondCustodianName[] =
    119     "profile.managed.second_custodian_name";
    120 
    121 // Stores the URL of the profile image associated with the google account of the
    122 // secondary custodian of the supervised user.
    123 const char kSupervisedUserSecondCustodianProfileImageURL[] =
    124     "profile.managed.second_custodian_profile_image_url";
    125 
    126 // Stores the URL of the profile associated with the google account of the
    127 // secondary custodian of the supervised user.
    128 const char kSupervisedUserSecondCustodianProfileURL[] =
    129     "profile.managed.second_custodian_profile_url";
    130 
    131 // Stores settings that can be modified both by a supervised user and their
    132 // manager. See SupervisedUserSharedSettingsService for a description of
    133 // the format.
    134 const char kSupervisedUserSharedSettings[] = "profile.managed.shared_settings";
    135 
    136 // The application locale.
    137 // For OS_CHROMEOS we maintain kApplicationLocale property in both local state
    138 // and user's profile.  Global property determines locale of login screen,
    139 // while user's profile determines his personal locale preference.
    140 const char kApplicationLocale[] = "intl.app_locale";
    141 #if defined(OS_CHROMEOS)
    142 // Locale preference of device' owner.  ChromeOS device appears in this locale
    143 // after startup/wakeup/signout.
    144 const char kOwnerLocale[] = "intl.owner_locale";
    145 // Locale accepted by user.  Non-syncable.
    146 // Used to determine whether we need to show Locale Change notification.
    147 const char kApplicationLocaleAccepted[] = "intl.app_locale_accepted";
    148 // Non-syncable item.
    149 // It is used in two distinct ways.
    150 // (1) Used for two-step initialization of locale in ChromeOS
    151 //     because synchronization of kApplicationLocale is not instant.
    152 // (2) Used to detect locale change.  Locale change is detected by
    153 //     LocaleChangeGuard in case values of kApplicationLocaleBackup and
    154 //     kApplicationLocale are both non-empty and differ.
    155 // Following is a table showing how state of those prefs may change upon
    156 // common real-life use cases:
    157 //                                  AppLocale Backup Accepted
    158 // Initial login                       -        A       -
    159 // Sync                                B        A       -
    160 // Accept (B)                          B        B       B
    161 // -----------------------------------------------------------
    162 // Initial login                       -        A       -
    163 // No sync and second login            A        A       -
    164 // Change options                      B        B       -
    165 // -----------------------------------------------------------
    166 // Initial login                       -        A       -
    167 // Sync                                A        A       -
    168 // Locale changed on login screen      A        C       -
    169 // Accept (A)                          A        A       A
    170 // -----------------------------------------------------------
    171 // Initial login                       -        A       -
    172 // Sync                                B        A       -
    173 // Revert                              A        A       -
    174 const char kApplicationLocaleBackup[] = "intl.app_locale_backup";
    175 #endif
    176 
    177 // The default character encoding to assume for a web page in the
    178 // absence of MIME charset specification
    179 const char kDefaultCharset[] = "intl.charset_default";
    180 
    181 // The value to use for Accept-Languages HTTP header when making an HTTP
    182 // request.
    183 const char kAcceptLanguages[] = "intl.accept_languages";
    184 
    185 // The value to use for showing locale-dependent encoding list for different
    186 // locale, it's initialized from the corresponding string resource that is
    187 // stored in non-translatable part of the resource bundle.
    188 const char kStaticEncodings[] = "intl.static_encodings";
    189 
    190 // If these change, the corresponding enums in the extension API
    191 // experimental.fontSettings.json must also change.
    192 const char* const kWebKitScriptsForFontFamilyMaps[] = {
    193 #define EXPAND_SCRIPT_FONT(x, script_name) script_name ,
    194 #include "chrome/common/pref_font_script_names-inl.h"
    195 ALL_FONT_SCRIPTS("unused param")
    196 #undef EXPAND_SCRIPT_FONT
    197 };
    198 
    199 const size_t kWebKitScriptsForFontFamilyMapsLength =
    200     arraysize(kWebKitScriptsForFontFamilyMaps);
    201 
    202 // Strings for WebKit font family preferences. If these change, the pref prefix
    203 // in pref_names_util.cc and the pref format in font_settings_api.cc must also
    204 // change.
    205 const char kWebKitStandardFontFamilyMap[] =
    206     WEBKIT_WEBPREFS_FONTS_STANDARD;
    207 const char kWebKitFixedFontFamilyMap[] =
    208     WEBKIT_WEBPREFS_FONTS_FIXED;
    209 const char kWebKitSerifFontFamilyMap[] =
    210     WEBKIT_WEBPREFS_FONTS_SERIF;
    211 const char kWebKitSansSerifFontFamilyMap[] =
    212     WEBKIT_WEBPREFS_FONTS_SANSERIF;
    213 const char kWebKitCursiveFontFamilyMap[] =
    214     WEBKIT_WEBPREFS_FONTS_CURSIVE;
    215 const char kWebKitFantasyFontFamilyMap[] =
    216     WEBKIT_WEBPREFS_FONTS_FANTASY;
    217 const char kWebKitPictographFontFamilyMap[] =
    218     WEBKIT_WEBPREFS_FONTS_PICTOGRAPH;
    219 const char kWebKitStandardFontFamilyArabic[] =
    220     "webkit.webprefs.fonts.standard.Arab";
    221 const char kWebKitFixedFontFamilyArabic[] =
    222     "webkit.webprefs.fonts.fixed.Arab";
    223 const char kWebKitSerifFontFamilyArabic[] =
    224     "webkit.webprefs.fonts.serif.Arab";
    225 const char kWebKitSansSerifFontFamilyArabic[] =
    226     "webkit.webprefs.fonts.sansserif.Arab";
    227 const char kWebKitStandardFontFamilyCyrillic[] =
    228     "webkit.webprefs.fonts.standard.Cyrl";
    229 const char kWebKitFixedFontFamilyCyrillic[] =
    230     "webkit.webprefs.fonts.fixed.Cyrl";
    231 const char kWebKitSerifFontFamilyCyrillic[] =
    232     "webkit.webprefs.fonts.serif.Cyrl";
    233 const char kWebKitSansSerifFontFamilyCyrillic[] =
    234     "webkit.webprefs.fonts.sansserif.Cyrl";
    235 const char kWebKitStandardFontFamilyGreek[] =
    236     "webkit.webprefs.fonts.standard.Grek";
    237 const char kWebKitFixedFontFamilyGreek[] =
    238     "webkit.webprefs.fonts.fixed.Grek";
    239 const char kWebKitSerifFontFamilyGreek[] =
    240     "webkit.webprefs.fonts.serif.Grek";
    241 const char kWebKitSansSerifFontFamilyGreek[] =
    242     "webkit.webprefs.fonts.sansserif.Grek";
    243 const char kWebKitStandardFontFamilyJapanese[] =
    244     "webkit.webprefs.fonts.standard.Jpan";
    245 const char kWebKitFixedFontFamilyJapanese[] =
    246     "webkit.webprefs.fonts.fixed.Jpan";
    247 const char kWebKitSerifFontFamilyJapanese[] =
    248     "webkit.webprefs.fonts.serif.Jpan";
    249 const char kWebKitSansSerifFontFamilyJapanese[] =
    250     "webkit.webprefs.fonts.sansserif.Jpan";
    251 const char kWebKitStandardFontFamilyKorean[] =
    252     "webkit.webprefs.fonts.standard.Hang";
    253 const char kWebKitFixedFontFamilyKorean[] =
    254     "webkit.webprefs.fonts.fixed.Hang";
    255 const char kWebKitSerifFontFamilyKorean[] =
    256     "webkit.webprefs.fonts.serif.Hang";
    257 const char kWebKitSansSerifFontFamilyKorean[] =
    258     "webkit.webprefs.fonts.sansserif.Hang";
    259 const char kWebKitCursiveFontFamilyKorean[] =
    260     "webkit.webprefs.fonts.cursive.Hang";
    261 const char kWebKitStandardFontFamilySimplifiedHan[] =
    262     "webkit.webprefs.fonts.standard.Hans";
    263 const char kWebKitFixedFontFamilySimplifiedHan[] =
    264     "webkit.webprefs.fonts.fixed.Hans";
    265 const char kWebKitSerifFontFamilySimplifiedHan[] =
    266     "webkit.webprefs.fonts.serif.Hans";
    267 const char kWebKitSansSerifFontFamilySimplifiedHan[] =
    268     "webkit.webprefs.fonts.sansserif.Hans";
    269 const char kWebKitStandardFontFamilyTraditionalHan[] =
    270     "webkit.webprefs.fonts.standard.Hant";
    271 const char kWebKitFixedFontFamilyTraditionalHan[] =
    272     "webkit.webprefs.fonts.fixed.Hant";
    273 const char kWebKitSerifFontFamilyTraditionalHan[] =
    274     "webkit.webprefs.fonts.serif.Hant";
    275 const char kWebKitSansSerifFontFamilyTraditionalHan[] =
    276     "webkit.webprefs.fonts.sansserif.Hant";
    277 
    278 // WebKit preferences.
    279 const char kWebKitWebSecurityEnabled[] = "webkit.webprefs.web_security_enabled";
    280 const char kWebKitDomPasteEnabled[] = "webkit.webprefs.dom_paste_enabled";
    281 const char kWebKitShrinksStandaloneImagesToFit[] =
    282     "webkit.webprefs.shrinks_standalone_images_to_fit";
    283 const char kWebKitUsesUniversalDetector[] =
    284     "webkit.webprefs.uses_universal_detector";
    285 const char kWebKitTextAreasAreResizable[] =
    286     "webkit.webprefs.text_areas_are_resizable";
    287 const char kWebKitJavaEnabled[] = "webkit.webprefs.java_enabled";
    288 const char kWebkitTabsToLinks[] = "webkit.webprefs.tabs_to_links";
    289 const char kWebKitAllowDisplayingInsecureContent[] =
    290     "webkit.webprefs.allow_displaying_insecure_content";
    291 const char kWebKitAllowRunningInsecureContent[] =
    292     "webkit.webprefs.allow_running_insecure_content";
    293 #if defined(OS_ANDROID)
    294 const char kWebKitFontScaleFactor[] = "webkit.webprefs.font_scale_factor";
    295 const char kWebKitForceEnableZoom[] = "webkit.webprefs.force_enable_zoom";
    296 const char kWebKitPasswordEchoEnabled[] =
    297     "webkit.webprefs.password_echo_enabled";
    298 #endif
    299 
    300 const char kWebKitCommonScript[] = "Zyyy";
    301 const char kWebKitStandardFontFamily[] = "webkit.webprefs.fonts.standard.Zyyy";
    302 const char kWebKitFixedFontFamily[] = "webkit.webprefs.fonts.fixed.Zyyy";
    303 const char kWebKitSerifFontFamily[] = "webkit.webprefs.fonts.serif.Zyyy";
    304 const char kWebKitSansSerifFontFamily[] =
    305     "webkit.webprefs.fonts.sansserif.Zyyy";
    306 const char kWebKitCursiveFontFamily[] = "webkit.webprefs.fonts.cursive.Zyyy";
    307 const char kWebKitFantasyFontFamily[] = "webkit.webprefs.fonts.fantasy.Zyyy";
    308 const char kWebKitPictographFontFamily[] =
    309     "webkit.webprefs.fonts.pictograph.Zyyy";
    310 const char kWebKitDefaultFontSize[] = "webkit.webprefs.default_font_size";
    311 const char kWebKitDefaultFixedFontSize[] =
    312     "webkit.webprefs.default_fixed_font_size";
    313 const char kWebKitMinimumFontSize[] = "webkit.webprefs.minimum_font_size";
    314 const char kWebKitMinimumLogicalFontSize[] =
    315     "webkit.webprefs.minimum_logical_font_size";
    316 const char kWebKitJavascriptEnabled[] = "webkit.webprefs.javascript_enabled";
    317 const char kWebKitJavascriptCanOpenWindowsAutomatically[] =
    318     "webkit.webprefs.javascript_can_open_windows_automatically";
    319 const char kWebKitLoadsImagesAutomatically[] =
    320     "webkit.webprefs.loads_images_automatically";
    321 const char kWebKitPluginsEnabled[] = "webkit.webprefs.plugins_enabled";
    322 
    323 // Boolean that is true when SafeBrowsing is enabled.
    324 const char kSafeBrowsingEnabled[] = "safebrowsing.enabled";
    325 
    326 // Boolean that tell us whether Safe Browsing extended reporting is enabled.
    327 const char kSafeBrowsingExtendedReportingEnabled[] =
    328     "safebrowsing.extended_reporting_enabled";
    329 
    330 // Boolean that is true when the SafeBrowsing interstitial should not allow
    331 // users to proceed anyway.
    332 const char kSafeBrowsingProceedAnywayDisabled[] =
    333     "safebrowsing.proceed_anyway_disabled";
    334 
    335 // Boolean that is true when SafeBrowsing has sent an incident report.
    336 const char kSafeBrowsingIncidentReportSent[] =
    337     "safebrowsing.incident_report_sent";
    338 
    339 // A dictionary mapping incident types to a dict of incident key:digest pairs.
    340 const char kSafeBrowsingIncidentsSent[] = "safebrowsing.incidents_sent";
    341 
    342 // Enum that specifies whether Incognito mode is:
    343 // 0 - Enabled. Default behaviour. Default mode is available on demand.
    344 // 1 - Disabled. Used cannot browse pages in Incognito mode.
    345 // 2 - Forced. All pages/sessions are forced into Incognito.
    346 const char kIncognitoModeAvailability[] = "incognito.mode_availability";
    347 
    348 // Boolean that is true when Suggest support is enabled.
    349 const char kSearchSuggestEnabled[] = "search.suggest_enabled";
    350 
    351 #if defined(OS_ANDROID)
    352 // String indicating the Contextual Search enabled state.
    353 // "false" - opt-out (disabled)
    354 // "" (empty string) - undecided
    355 // "true" - opt-in (enabled)
    356 const char kContextualSearchEnabled[] = "search.contextual_search_enabled";
    357 #endif
    358 
    359 // Boolean that indicates whether the browser should put up a confirmation
    360 // window when the user is attempting to quit. Mac only.
    361 const char kConfirmToQuitEnabled[] = "browser.confirm_to_quit";
    362 
    363 // OBSOLETE.  Enum that specifies whether to enforce a third-party cookie
    364 // blocking policy.  This has been superseded by kDefaultContentSettings +
    365 // kBlockThirdPartyCookies.
    366 // 0 - allow all cookies.
    367 // 1 - block third-party cookies
    368 // 2 - block all cookies
    369 const char kCookieBehavior[] = "security.cookie_behavior";
    370 
    371 // Boolean which specifies whether we should ask the user if we should download
    372 // a file (true) or just download it automatically.
    373 const char kPromptForDownload[] = "download.prompt_for_download";
    374 
    375 // A boolean pref set to true if we're using Link Doctor error pages.
    376 const char kAlternateErrorPagesEnabled[] = "alternate_error_pages.enabled";
    377 
    378 // OBSOLETE: new pref now stored with user prefs instead of profile, as
    379 // kDnsPrefetchingStartupList.
    380 const char kDnsStartupPrefetchList[] = "StartupDNSPrefetchList";
    381 
    382 // An adaptively identified list of domain names to be pre-fetched during the
    383 // next startup, based on what was actually needed during this startup.
    384 const char kDnsPrefetchingStartupList[] = "dns_prefetching.startup_list";
    385 
    386 // OBSOLETE: new pref now stored with user prefs instead of profile, as
    387 // kDnsPrefetchingHostReferralList.
    388 const char kDnsHostReferralList[] = "HostReferralList";
    389 
    390 // A list of host names used to fetch web pages, and their commonly used
    391 // sub-resource hostnames (and expected latency benefits from pre-resolving, or
    392 // preconnecting to, such sub-resource hostnames).
    393 // This list is adaptively grown and pruned.
    394 const char kDnsPrefetchingHostReferralList[] =
    395     "dns_prefetching.host_referral_list";
    396 
    397 // Disables the SPDY protocol.
    398 const char kDisableSpdy[] = "spdy.disabled";
    399 
    400 // Prefs for persisting HttpServerProperties.
    401 const char kHttpServerProperties[] = "net.http_server_properties";
    402 
    403 // Prefs for server names that support SPDY protocol.
    404 const char kSpdyServers[] = "spdy.servers";
    405 
    406 // Prefs for servers that support Alternate-Protocol.
    407 const char kAlternateProtocolServers[] = "spdy.alternate_protocol";
    408 
    409 // Disables the listed protocol schemes.
    410 const char kDisabledSchemes[] = "protocol.disabled_schemes";
    411 
    412 #if defined(OS_ANDROID) || defined(OS_IOS)
    413 // Last time that a check for cloud policy management was done. This time is
    414 // recorded on Android so that retries aren't attempted on every startup.
    415 // Instead the cloud policy registration is retried at least 1 or 3 days later.
    416 const char kLastPolicyCheckTime[] = "policy.last_policy_check_time";
    417 #endif
    418 
    419 // Prefix URL for the experimental Instant ZeroSuggest provider.
    420 const char kInstantUIZeroSuggestUrlPrefix[] =
    421     "instant_ui.zero_suggest_url_prefix";
    422 
    423 // Used to migrate preferences from local state to user preferences to
    424 // enable multiple profiles.
    425 // BITMASK with possible values (see browser_prefs.cc for enum):
    426 // 0: No preferences migrated.
    427 // 1: DNS preferences migrated: kDnsPrefetchingStartupList and HostReferralList
    428 // 2: Browser window preferences migrated: kDevToolsSplitLocation and
    429 //    kBrowserWindowPlacement
    430 const char kMultipleProfilePrefMigration[] =
    431     "local_state.multiple_profile_prefs_version";
    432 
    433 // A boolean pref set to true if prediction of network actions is allowed.
    434 // Actions include DNS prefetching, TCP and SSL preconnection, prerendering
    435 // of web pages, and resource prefetching.
    436 // NOTE: The "dns_prefetching.enabled" value is used so that historical user
    437 // preferences are not lost.
    438 // TODO(bnc): Remove kNetworkPredictionEnabled once kNetworkPredictionOptions
    439 // is functioning as per crbug.com/334602.
    440 const char kNetworkPredictionEnabled[] = "dns_prefetching.enabled";
    441 
    442 // A preference of enum chrome_browser_net::NetworkPredictionOptions shows
    443 // if prediction of network actions is allowed, depending on network type.
    444 // Actions include DNS prefetching, TCP and SSL preconnection, prerendering
    445 // of web pages, and resource prefetching.
    446 // TODO(bnc): Implement this preference as per crbug.com/334602.
    447 const char kNetworkPredictionOptions[] = "net.network_prediction_options";
    448 
    449 // An integer representing the state of the default apps installation process.
    450 // This value is persisted in the profile's user preferences because the process
    451 // is async, and the user may have stopped chrome in the middle.  The next time
    452 // the profile is opened, the process will continue from where it left off.
    453 //
    454 // See possible values in external_provider_impl.cc.
    455 const char kDefaultAppsInstallState[] = "default_apps_install_state";
    456 
    457 // A boolean pref set to true if the Chrome Web Store icons should be hidden
    458 // from the New Tab Page and app launcher.
    459 const char kHideWebStoreIcon[] = "hide_web_store_icon";
    460 
    461 #if defined(OS_CHROMEOS)
    462 // A dictionary pref to hold the mute setting for all the currently known
    463 // audio devices.
    464 const char kAudioDevicesMute[] = "settings.audio.devices.mute";
    465 
    466 // A dictionary pref storing the volume settings for all the currently known
    467 // audio devices.
    468 const char kAudioDevicesVolumePercent[] =
    469     "settings.audio.devices.volume_percent";
    470 
    471 // An integer pref to initially mute volume if 1. This pref is ignored if
    472 // |kAudioOutputAllowed| is set to false, but its value is preserved, therefore
    473 // when the policy is lifted the original mute state is restored.  This setting
    474 // is here only for migration purposes now. It is being replaced by the
    475 // |kAudioDevicesMute| setting.
    476 const char kAudioMute[] = "settings.audio.mute";
    477 
    478 // A double pref storing the user-requested volume. This setting is here only
    479 // for migration purposes now. It is being replaced by the
    480 // |kAudioDevicesVolumePercent| setting.
    481 const char kAudioVolumePercent[] = "settings.audio.volume_percent";
    482 
    483 // An integer pref to record user's spring charger check result.
    484 // 0 - unknown charger, not checked yet.
    485 // 1 - confirmed safe charger.
    486 // 2 - confirmed original charger and declined to order new charger.
    487 // 3 - confirmed original charger and ordered new charger online.
    488 // 4 - confirmed original charger and ordered new charger by phone.
    489 // 5 - confirmed original charger, ordered a new one online, but continue to use
    490 //     the old one.
    491 // 6 - confirmed original charger, ordered a new one by phone, but continue to
    492 //     use the old one.
    493 const char kSpringChargerCheck[] = "settings.spring_charger.check_result";
    494 
    495 // A boolean pref set to true if touchpad tap-to-click is enabled.
    496 const char kTapToClickEnabled[] = "settings.touchpad.enable_tap_to_click";
    497 
    498 // A boolean pref set to true if touchpad tap-dragging is enabled.
    499 const char kTapDraggingEnabled[] = "settings.touchpad.enable_tap_dragging";
    500 
    501 // A boolean pref set to true if touchpad three-finger-click is enabled.
    502 const char kEnableTouchpadThreeFingerClick[] =
    503     "settings.touchpad.enable_three_finger_click";
    504 
    505 // A boolean pref set to true if touchpad natural scrolling is enabled.
    506 const char kNaturalScroll[] = "settings.touchpad.natural_scroll";
    507 
    508 // A boolean pref set to true if primary mouse button is the left button.
    509 const char kPrimaryMouseButtonRight[] = "settings.mouse.primary_right";
    510 
    511 // A integer pref for the touchpad sensitivity.
    512 const char kMouseSensitivity[] = "settings.mouse.sensitivity2";
    513 
    514 // A integer pref for the touchpad sensitivity.
    515 const char kTouchpadSensitivity[] = "settings.touchpad.sensitivity2";
    516 
    517 // A boolean pref set to true if time should be displayed in 24-hour clock.
    518 const char kUse24HourClock[] = "settings.clock.use_24hour_clock";
    519 
    520 // A boolean pref to disable Google Drive integration.
    521 // The pref prefix should remain as "gdata" for backward compatibility.
    522 const char kDisableDrive[] = "gdata.disabled";
    523 
    524 // A boolean pref to disable Drive over cellular connections.
    525 // The pref prefix should remain as "gdata" for backward compatibility.
    526 const char kDisableDriveOverCellular[] = "gdata.cellular.disabled";
    527 
    528 // A boolean pref to disable hosted files on Drive.
    529 // The pref prefix should remain as "gdata" for backward compatibility.
    530 const char kDisableDriveHostedFiles[] = "gdata.hosted_files.disabled";
    531 
    532 // A string pref set to the current input method.
    533 const char kLanguageCurrentInputMethod[] =
    534     "settings.language.current_input_method";
    535 
    536 // A string pref set to the previous input method.
    537 const char kLanguagePreviousInputMethod[] =
    538     "settings.language.previous_input_method";
    539 
    540 // A string pref (comma-separated list) set to the "next engine in menu"
    541 // hot-key lists.
    542 const char kLanguageHotkeyNextEngineInMenu[] =
    543     "settings.language.hotkey_next_engine_in_menu";
    544 
    545 // A string pref (comma-separated list) set to the "previous engine"
    546 // hot-key lists.
    547 const char kLanguageHotkeyPreviousEngine[] =
    548     "settings.language.hotkey_previous_engine";
    549 
    550 // A string pref (comma-separated list) set to the preferred language IDs
    551 // (ex. "en-US,fr,ko").
    552 const char kLanguagePreferredLanguages[] =
    553     "settings.language.preferred_languages";
    554 
    555 // A string pref (comma-separated list) set to the preloaded (active) input
    556 // method IDs (ex. "pinyin,mozc").
    557 const char kLanguagePreloadEngines[] = "settings.language.preload_engines";
    558 
    559 // A List pref (comma-separated list) set to the extension IMEs to be enabled.
    560 const char kLanguageEnabledExtensionImes[] =
    561     "settings.language.enabled_extension_imes";
    562 
    563 // Integer prefs which determine how we remap modifier keys (e.g. swap Alt and
    564 // Control.) Possible values for these prefs are 0-4. See ModifierKey enum in
    565 // src/chrome/browser/chromeos/input_method/xkeyboard.h
    566 const char kLanguageRemapSearchKeyTo[] =
    567     // Note: we no longer use XKB for remapping these keys, but we can't change
    568     // the pref names since the names are already synced with the cloud.
    569     "settings.language.xkb_remap_search_key_to";
    570 const char kLanguageRemapControlKeyTo[] =
    571     "settings.language.xkb_remap_control_key_to";
    572 const char kLanguageRemapAltKeyTo[] =
    573     "settings.language.xkb_remap_alt_key_to";
    574 const char kLanguageRemapCapsLockKeyTo[] =
    575     "settings.language.remap_caps_lock_key_to";
    576 const char kLanguageRemapDiamondKeyTo[] =
    577     "settings.language.remap_diamond_key_to";
    578 
    579 // A boolean pref that causes top-row keys to be interpreted as function keys
    580 // instead of as media keys.
    581 const char kLanguageSendFunctionKeys[] =
    582     "settings.language.send_function_keys";
    583 
    584 // A boolean pref which determines whether key repeat is enabled.
    585 const char kLanguageXkbAutoRepeatEnabled[] =
    586     "settings.language.xkb_auto_repeat_enabled_r2";
    587 // A integer pref which determines key repeat delay (in ms).
    588 const char kLanguageXkbAutoRepeatDelay[] =
    589     "settings.language.xkb_auto_repeat_delay_r2";
    590 // A integer pref which determines key repeat interval (in ms).
    591 const char kLanguageXkbAutoRepeatInterval[] =
    592     "settings.language.xkb_auto_repeat_interval_r2";
    593 // "_r2" suffixes were added to the three prefs above when we changed the
    594 // preferences to not be user-configurable or sync with the cloud. The prefs are
    595 // now user-configurable and syncable again, but we don't want to overwrite the
    596 // current values with the old synced values, so we continue to use this suffix.
    597 
    598 // A boolean pref which determines whether the large cursor feature is enabled.
    599 const char kAccessibilityLargeCursorEnabled[] =
    600     "settings.a11y.large_cursor_enabled";
    601 
    602 // A boolean pref which determines whether the sticky keys feature is enabled.
    603 const char kAccessibilityStickyKeysEnabled[] =
    604     "settings.a11y.sticky_keys_enabled";
    605 // A boolean pref which determines whether spoken feedback is enabled.
    606 const char kAccessibilitySpokenFeedbackEnabled[] = "settings.accessibility";
    607 // A boolean pref which determines whether high conrast is enabled.
    608 const char kAccessibilityHighContrastEnabled[] =
    609     "settings.a11y.high_contrast_enabled";
    610 // A boolean pref which determines whether screen magnifier is enabled.
    611 const char kAccessibilityScreenMagnifierEnabled[] =
    612     "settings.a11y.screen_magnifier";
    613 // A integer pref which determines what type of screen magnifier is enabled.
    614 // Note that: 'screen_magnifier_type' had been used as string pref. Hence,
    615 // we are using another name pref here.
    616 const char kAccessibilityScreenMagnifierType[] =
    617     "settings.a11y.screen_magnifier_type2";
    618 // A double pref which determines a zooming scale of the screen magnifier.
    619 const char kAccessibilityScreenMagnifierScale[] =
    620     "settings.a11y.screen_magnifier_scale";
    621 // A boolean pref which determines whether the virtual keyboard is enabled for
    622 // accessibility.  This feature is separate from displaying an onscreen keyboard
    623 // due to lack of a physical keyboard.
    624 const char kAccessibilityVirtualKeyboardEnabled[] =
    625     "settings.a11y.virtual_keyboard";
    626 // A boolean pref which determines whether autoclick is enabled.
    627 const char kAccessibilityAutoclickEnabled[] = "settings.a11y.autoclick";
    628 // An integer pref which determines time in ms between when the mouse cursor
    629 // stops and when an autoclick is triggered.
    630 const char kAccessibilityAutoclickDelayMs[] =
    631     "settings.a11y.autoclick_delay_ms";
    632 // A boolean pref which determines whether the accessibility menu shows
    633 // regardless of the state of a11y features.
    634 const char kShouldAlwaysShowAccessibilityMenu[] = "settings.a11y.enable_menu";
    635 
    636 // A boolean pref which turns on Advanced Filesystem
    637 // (USB support, SD card, etc).
    638 const char kLabsAdvancedFilesystemEnabled[] =
    639     "settings.labs.advanced_filesystem";
    640 
    641 // A boolean pref which turns on the mediaplayer.
    642 const char kLabsMediaplayerEnabled[] = "settings.labs.mediaplayer";
    643 
    644 // A boolean pref that turns on automatic screen locking.
    645 const char kEnableAutoScreenLock[] = "settings.enable_screen_lock";
    646 
    647 // A boolean pref of whether to show mobile plan notifications.
    648 const char kShowPlanNotifications[] =
    649     "settings.internet.mobile.show_plan_notifications";
    650 
    651 // A boolean pref of whether to show 3G promo notification.
    652 const char kShow3gPromoNotification[] =
    653     "settings.internet.mobile.show_3g_promo_notification";
    654 
    655 // A string pref that contains version where "What's new" promo was shown.
    656 const char kChromeOSReleaseNotesVersion[] = "settings.release_notes.version";
    657 
    658 // A boolean pref that controls whether proxy settings from shared network
    659 // settings (accordingly from device policy) are applied or ignored.
    660 const char kUseSharedProxies[] = "settings.use_shared_proxies";
    661 
    662 // Power state of the current displays from the last run.
    663 const char kDisplayPowerState[] = "settings.display.power_state";
    664 // A dictionary pref that stores per display preferences.
    665 const char kDisplayProperties[] = "settings.display.properties";
    666 
    667 // A dictionary pref that specifies per-display layout/offset information.
    668 // Its key is the ID of the display and its value is a dictionary for the
    669 // layout/offset information.
    670 const char kSecondaryDisplays[] = "settings.display.secondary_displays";
    671 
    672 // A dictionary pref that specifies the state of the rotation lock, and the
    673 // display orientation, for the internal display.
    674 const char kDisplayRotationLock[] = "settings.display.rotation_lock";
    675 
    676 // A boolean pref indicating whether user activity has been observed in the
    677 // current session already. The pref is used to restore information about user
    678 // activity after browser crashes.
    679 const char kSessionUserActivitySeen[] = "session.user_activity_seen";
    680 
    681 // A preference to keep track of the session start time. If the session length
    682 // limit is configured to start running after initial user activity has been
    683 // observed, the pref is set after the first user activity in a session.
    684 // Otherwise, it is set immediately after session start. The pref is used to
    685 // restore the session start time after browser crashes. The time is expressed
    686 // as the serialization obtained from base::TimeTicks::ToInternalValue().
    687 const char kSessionStartTime[] = "session.start_time";
    688 
    689 // Holds the maximum session time in milliseconds. If this pref is set, the
    690 // user is logged out when the maximum session time is reached. The user is
    691 // informed about the remaining time by a countdown timer shown in the ash
    692 // system tray.
    693 const char kSessionLengthLimit[] = "session.length_limit";
    694 
    695 // Whether the session length limit should start running only after the first
    696 // user activity has been observed in a session.
    697 const char kSessionWaitForInitialUserActivity[] =
    698     "session.wait_for_initial_user_activity";
    699 
    700 // Inactivity time in milliseconds while the system is on AC power before
    701 // the screen should be dimmed, turned off, or locked, before an
    702 // IdleActionImminent D-Bus signal should be sent, or before
    703 // kPowerAcIdleAction should be performed.  0 disables the delay (N/A for
    704 // kPowerAcIdleDelayMs).
    705 const char kPowerAcScreenDimDelayMs[] = "power.ac_screen_dim_delay_ms";
    706 const char kPowerAcScreenOffDelayMs[] = "power.ac_screen_off_delay_ms";
    707 const char kPowerAcScreenLockDelayMs[] = "power.ac_screen_lock_delay_ms";
    708 const char kPowerAcIdleWarningDelayMs[] = "power.ac_idle_warning_delay_ms";
    709 const char kPowerAcIdleDelayMs[] = "power.ac_idle_delay_ms";
    710 
    711 // Similar delays while the system is on battery power.
    712 const char kPowerBatteryScreenDimDelayMs[] =
    713     "power.battery_screen_dim_delay_ms";
    714 const char kPowerBatteryScreenOffDelayMs[] =
    715     "power.battery_screen_off_delay_ms";
    716 const char kPowerBatteryScreenLockDelayMs[] =
    717     "power.battery_screen_lock_delay_ms";
    718 const char kPowerBatteryIdleWarningDelayMs[] =
    719     "power.battery_idle_warning_delay_ms";
    720 const char kPowerBatteryIdleDelayMs[] =
    721     "power.battery_idle_delay_ms";
    722 
    723 // Action that should be performed when the idle delay is reached while the
    724 // system is on AC power or battery power.
    725 // Values are from the chromeos::PowerPolicyController::Action enum.
    726 const char kPowerAcIdleAction[] = "power.ac_idle_action";
    727 const char kPowerBatteryIdleAction[] = "power.battery_idle_action";
    728 
    729 // Action that should be performed when the lid is closed.
    730 // Values are from the chromeos::PowerPolicyController::Action enum.
    731 const char kPowerLidClosedAction[] = "power.lid_closed_action";
    732 
    733 // Should audio and video activity be used to disable the above delays?
    734 const char kPowerUseAudioActivity[] = "power.use_audio_activity";
    735 const char kPowerUseVideoActivity[] = "power.use_video_activity";
    736 
    737 // Should extensions be able to use the chrome.power API to override
    738 // screen-related power management (including locking)?
    739 const char kPowerAllowScreenWakeLocks[] = "power.allow_screen_wake_locks";
    740 
    741 // Amount by which the screen-dim delay should be scaled while the system
    742 // is in presentation mode. Values are limited to a minimum of 1.0.
    743 const char kPowerPresentationScreenDimDelayFactor[] =
    744     "power.presentation_screen_dim_delay_factor";
    745 
    746 // Amount by which the screen-dim delay should be scaled when user activity is
    747 // observed while the screen is dimmed or soon after the screen has been turned
    748 // off.  Values are limited to a minimum of 1.0.
    749 const char kPowerUserActivityScreenDimDelayFactor[] =
    750     "power.user_activity_screen_dim_delay_factor";
    751 
    752 // Whether the power management delays should start running only after the first
    753 // user activity has been observed in a session.
    754 const char kPowerWaitForInitialUserActivity[] =
    755     "power.wait_for_initial_user_activity";
    756 
    757 // The URL from which the Terms of Service can be downloaded. The value is only
    758 // honored for public accounts.
    759 const char kTermsOfServiceURL[] = "terms_of_service.url";
    760 
    761 // Indicates that the Profile has made navigations that used a certificate
    762 // installed by the system administrator. If that is true then the local cache
    763 // of remote data is tainted (e.g. shared scripts), and future navigations
    764 // show a warning indicating that the organization may track the browsing
    765 // session.
    766 const char kUsedPolicyCertificatesOnce[] = "used_policy_certificates_once";
    767 
    768 // Indicates whether the remote attestation is enabled for the user.
    769 const char kAttestationEnabled[] = "attestation.enabled";
    770 // The list of extensions allowed to use the platformKeysPrivate API for
    771 // remote attestation.
    772 const char kAttestationExtensionWhitelist[] = "attestation.extension_whitelist";
    773 
    774 // A boolean pref indicating whether the projection touch HUD is enabled or not.
    775 const char kTouchHudProjectionEnabled[] = "touch_hud.projection_enabled";
    776 
    777 // A pref to configure networks. Its value must be a list of
    778 // NetworkConfigurations according to the OpenNetworkConfiguration
    779 // specification.
    780 // Currently, this pref is only used to store the policy. The user's
    781 // configuration is still stored in Shill.
    782 const char kOpenNetworkConfiguration[] = "onc";
    783 
    784 // A boolean pref that tracks whether the user has already given consent for
    785 // enabling remote attestation for content protection.
    786 const char kRAConsentFirstTime[] = "settings.privacy.ra_consent";
    787 
    788 // A boolean pref recording whether user has dismissed the multiprofile
    789 // itroduction dialog show.
    790 const char kMultiProfileNeverShowIntro[] =
    791     "settings.multi_profile_never_show_intro";
    792 
    793 // A boolean pref recording whether user has dismissed the multiprofile
    794 // teleport warning dialog show.
    795 const char kMultiProfileWarningShowDismissed[] =
    796     "settings.multi_profile_warning_show_dismissed";
    797 
    798 // A string pref that holds string enum values of how the user should behave
    799 // in a multiprofile session. See ChromeOsMultiProfileUserBehavior policy
    800 // for more details of the valid values.
    801 const char kMultiProfileUserBehavior[] = "settings.multiprofile_user_behavior";
    802 
    803 // A boolean preference indicating whether user has seen first-run tutorial
    804 // already.
    805 const char kFirstRunTutorialShown[] = "settings.first_run_tutorial_shown";
    806 
    807 // Indicates the amount of time for which a user authenticated via SAML can use
    808 // offline authentication against a cached password before being forced to go
    809 // through online authentication against GAIA again. The time is expressed in
    810 // seconds. A value of -1 indicates no limit, allowing the user to use offline
    811 // authentication indefinitely. The limit is in effect only if GAIA redirected
    812 // the user to a SAML IdP during the last online authentication.
    813 const char kSAMLOfflineSigninTimeLimit[] = "saml.offline_signin_time_limit";
    814 
    815 // A preference to keep track of the last time the user authenticated against
    816 // GAIA using SAML. The preference is updated whenever the user authenticates
    817 // against GAIA: If GAIA redirects to a SAML IdP, the preference is set to the
    818 // current time. If GAIA performs the authentication itself, the preference is
    819 // cleared. The time is expressed as the serialization obtained from
    820 // base::Time::ToInternalValue().
    821 const char kSAMLLastGAIASignInTime[] = "saml.last_gaia_sign_in_time";
    822 
    823 // The total number of seconds that the machine has spent sitting on the
    824 // OOBE screen.
    825 const char kTimeOnOobe[] = "settings.time_on_oobe";
    826 
    827 // The app/extension name who sets the current wallpaper. If current wallpaper
    828 // is set by the component wallpaper picker, it is set to an empty string.
    829 const char kCurrentWallpaperAppName[] = "wallpaper.app.name";
    830 
    831 // List of mounted file systems via the File System Provider API. Used to
    832 // restore them after a reboot.
    833 const char kFileSystemProviderMounted[] = "file_system_provider.mounted";
    834 
    835 // A boolean pref set to true if the virtual keyboard should be enabled.
    836 const char kTouchVirtualKeyboardEnabled[] = "ui.touch_virtual_keyboard_enabled";
    837 
    838 #endif  // defined(OS_CHROMEOS)
    839 
    840 // The disabled messages in IPC logging.
    841 const char kIpcDisabledMessages[] = "ipc_log_disabled_messages";
    842 
    843 // A boolean pref set to true if a Home button to open the Home pages should be
    844 // visible on the toolbar.
    845 const char kShowHomeButton[] = "browser.show_home_button";
    846 
    847 // A string value which saves short list of recently user selected encodings
    848 // separated with comma punctuation mark.
    849 const char kRecentlySelectedEncoding[] = "profile.recently_selected_encodings";
    850 
    851 // Clear Browsing Data dialog preferences.
    852 const char kDeleteBrowsingHistory[] = "browser.clear_data.browsing_history";
    853 const char kDeleteDownloadHistory[] = "browser.clear_data.download_history";
    854 const char kDeleteCache[] = "browser.clear_data.cache";
    855 const char kDeleteCookies[] = "browser.clear_data.cookies";
    856 const char kDeletePasswords[] = "browser.clear_data.passwords";
    857 const char kDeleteFormData[] = "browser.clear_data.form_data";
    858 const char kDeleteHostedAppsData[] = "browser.clear_data.hosted_apps_data";
    859 const char kDeauthorizeContentLicenses[] =
    860     "browser.clear_data.content_licenses";
    861 const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
    862 const char kLastClearBrowsingDataTime[] =
    863     "browser.last_clear_browsing_data_time";
    864 
    865 // Boolean pref to define the default values for using spellchecker.
    866 const char kEnableContinuousSpellcheck[] = "browser.enable_spellchecking";
    867 
    868 // List of names of the enabled labs experiments (see chrome/browser/labs.cc).
    869 const char kEnabledLabsExperiments[] = "browser.enabled_labs_experiments";
    870 
    871 // Boolean pref to define the default values for using auto spell correct.
    872 const char kEnableAutoSpellCorrect[] = "browser.enable_autospellcorrect";
    873 
    874 // Boolean pref to define the default setting for "block offensive words".
    875 // The old key value is kept to avoid unnecessary migration code.
    876 const char kSpeechRecognitionFilterProfanities[] =
    877     "browser.speechinput_censor_results";
    878 
    879 // List of speech recognition context names (extensions or websites) for which
    880 // the tray notification balloon has already been shown.
    881 const char kSpeechRecognitionTrayNotificationShownContexts[] =
    882     "browser.speechinput_tray_notification_shown_contexts";
    883 
    884 // Boolean controlling whether history saving is disabled.
    885 const char kSavingBrowserHistoryDisabled[] = "history.saving_disabled";
    886 
    887 // Boolean controlling whether deleting browsing and download history is
    888 // permitted.
    889 const char kAllowDeletingBrowserHistory[] = "history.deleting_enabled";
    890 
    891 // Boolean controlling whether SafeSearch is mandatory for Google Web Searches.
    892 const char kForceSafeSearch[] = "settings.force_safesearch";
    893 
    894 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
    895 // Linux specific preference on whether we should match the system theme.
    896 const char kUsesSystemTheme[] = "extensions.theme.use_system";
    897 #endif
    898 const char kCurrentThemePackFilename[] = "extensions.theme.pack";
    899 const char kCurrentThemeID[] = "extensions.theme.id";
    900 const char kCurrentThemeImages[] = "extensions.theme.images";
    901 const char kCurrentThemeColors[] = "extensions.theme.colors";
    902 const char kCurrentThemeTints[] = "extensions.theme.tints";
    903 const char kCurrentThemeDisplayProperties[] = "extensions.theme.properties";
    904 
    905 // Boolean pref which persists whether the extensions_ui is in developer mode
    906 // (showing developer packing tools and extensions details)
    907 const char kExtensionsUIDeveloperMode[] = "extensions.ui.developer_mode";
    908 
    909 // Boolean pref which indicates whether the Chrome Apps & Extensions Developer
    910 // Tool promotion has been dismissed by the user.
    911 const char kExtensionsUIDismissedADTPromo[] =
    912     "extensions.ui.dismissed_adt_promo";
    913 
    914 // Dictionary pref that tracks which command belongs to which
    915 // extension + named command pair.
    916 const char kExtensionCommands[] = "extensions.commands";
    917 
    918 // Pref containing the directory for internal plugins as written to the plugins
    919 // list (below).
    920 const char kPluginsLastInternalDirectory[] = "plugins.last_internal_directory";
    921 
    922 // List pref containing information (dictionaries) on plugins.
    923 const char kPluginsPluginsList[] = "plugins.plugins_list";
    924 
    925 // List pref containing names of plugins that are disabled by policy.
    926 const char kPluginsDisabledPlugins[] = "plugins.plugins_disabled";
    927 
    928 // List pref containing exceptions to the list of plugins disabled by policy.
    929 const char kPluginsDisabledPluginsExceptions[] =
    930     "plugins.plugins_disabled_exceptions";
    931 
    932 // List pref containing names of plugins that are enabled by policy.
    933 const char kPluginsEnabledPlugins[] = "plugins.plugins_enabled";
    934 
    935 // When bundled NPAPI Flash is removed, if at that point it is enabled while
    936 // Pepper Flash is disabled, we would like to turn on Pepper Flash. And we will
    937 // want to do so only once.
    938 const char kPluginsMigratedToPepperFlash[] = "plugins.migrated_to_pepper_flash";
    939 
    940 // In the early stage of component-updated PPAPI Flash, we did field trials in
    941 // which it was set to disabled by default. The corresponding settings item may
    942 // remain in some users' profiles. Currently it affects both the bundled and
    943 // component-updated PPAPI Flash (since the two share the same enable/disable
    944 // state). We want to remove this item to get those users to use PPAPI Flash.
    945 // We will want to do so only once.
    946 const char kPluginsRemovedOldComponentPepperFlashSettings[] =
    947     "plugins.removed_old_component_pepper_flash_settings";
    948 
    949 #if !defined(OS_ANDROID)
    950 // Whether about:plugins is shown in the details mode or not.
    951 const char kPluginsShowDetails[] = "plugins.show_details";
    952 #endif
    953 
    954 // Boolean that indicates whether outdated plugins are allowed or not.
    955 const char kPluginsAllowOutdated[] = "plugins.allow_outdated";
    956 
    957 // Boolean that indicates whether plugins that require authorization should
    958 // be always allowed or not.
    959 const char kPluginsAlwaysAuthorize[] = "plugins.always_authorize";
    960 
    961 #if defined(ENABLE_PLUGIN_INSTALLATION)
    962 // Dictionary holding plug-ins metadata.
    963 const char kPluginsMetadata[] = "plugins.metadata";
    964 
    965 // Last update time of plug-ins resource cache.
    966 const char kPluginsResourceCacheUpdate[] = "plugins.resource_cache_update";
    967 #endif
    968 
    969 // Boolean that indicates whether we should check if we are the default browser
    970 // on start-up.
    971 const char kCheckDefaultBrowser[] = "browser.check_default_browser";
    972 
    973 // Policy setting whether default browser check should be disabled and default
    974 // browser registration should take place.
    975 const char kDefaultBrowserSettingEnabled[] =
    976     "browser.default_browser_setting_enabled";
    977 
    978 #if defined(OS_MACOSX)
    979 // Boolean that indicates whether the application should show the info bar
    980 // asking the user to set up automatic updates when Keystone promotion is
    981 // required.
    982 const char kShowUpdatePromotionInfoBar[] =
    983     "browser.show_update_promotion_info_bar";
    984 #endif
    985 
    986 // Boolean that is false if we should show window manager decorations.  If
    987 // true, we draw a custom chrome frame (thicker title bar and blue border).
    988 const char kUseCustomChromeFrame[] = "browser.custom_chrome_frame";
    989 
    990 // Dictionary of content settings applied to all hosts by default.
    991 const char kDefaultContentSettings[] = "profile.default_content_settings";
    992 
    993 // Dictionary of content settings that can globally disallow all hosts by
    994 // default. If a value is set, it means the setting is globally disallowed.
    995 // If a value is not set, it means the setting is allowed.
    996 const char kOverrideContentSettings[] = "profile.override_content_settings";
    997 
    998 // Boolean indicating whether the clear on exit pref was migrated to content
    999 // settings yet.
   1000 const char kContentSettingsClearOnExitMigrated[] =
   1001     "profile.content_settings.clear_on_exit_migrated";
   1002 
   1003 // Version of the pattern format used to define content settings.
   1004 const char kContentSettingsVersion[] = "profile.content_settings.pref_version";
   1005 
   1006 // Patterns for mapping origins to origin related settings. Default settings
   1007 // will be applied to origins that don't match any of the patterns. The pattern
   1008 // format used is defined by kContentSettingsVersion.
   1009 const char kContentSettingsPatternPairs[] =
   1010     "profile.content_settings.pattern_pairs";
   1011 
   1012 #if !defined(OS_ANDROID)
   1013 // Which plugins have been whitelisted manually by the user.
   1014 const char kContentSettingsPluginWhitelist[] =
   1015     "profile.content_settings.plugin_whitelist";
   1016 #endif
   1017 
   1018 // Boolean that is true if we should unconditionally block third-party cookies,
   1019 // regardless of other content settings.
   1020 const char kBlockThirdPartyCookies[] = "profile.block_third_party_cookies";
   1021 
   1022 // Boolean that is true when all locally stored site data (e.g. cookies, local
   1023 // storage, etc..) should be deleted on exit.
   1024 const char kClearSiteDataOnExit[] = "profile.clear_site_data_on_exit";
   1025 
   1026 // Double that indicates the default zoom level.
   1027 const char kDefaultZoomLevel[] = "profile.default_zoom_level";
   1028 
   1029 // Dictionary that maps hostnames to zoom levels.  Hosts not in this pref will
   1030 // be displayed at the default zoom level.
   1031 const char kPerHostZoomLevels[] = "profile.per_host_zoom_levels";
   1032 
   1033 // A dictionary that tracks the default data model to use for each section of
   1034 // the dialog.
   1035 const char kAutofillDialogAutofillDefault[] = "autofill.data_model_default";
   1036 
   1037 // Whether a user opted out of making purchases with Google Wallet; changed via
   1038 // the autofill dialog's account chooser and set explicitly on dialog submission
   1039 // (but not cancel). If this isn't set, the dialog assumes it's the first run.
   1040 const char kAutofillDialogPayWithoutWallet[] = "autofill.pay_without_wallet";
   1041 
   1042 // Which GAIA users have accepted that use of Google Wallet implies their
   1043 // location will be shared with fraud protection services.
   1044 const char kAutofillDialogWalletLocationAcceptance[] =
   1045     "autofill.wallet_location_disclosure";
   1046 
   1047 // Whether a user wants to save data locally in Autofill.
   1048 const char kAutofillDialogSaveData[] = "autofill.save_data";
   1049 
   1050 // Whether the user has selected "Same as billing" for the shipping address when
   1051 // using Google Wallet.
   1052 const char kAutofillDialogWalletShippingSameAsBilling[] =
   1053     "autofill.wallet_shipping_same_as_billing";
   1054 
   1055 // The number of times the generated credit card bubble has been shown.
   1056 const char kAutofillGeneratedCardBubbleTimesShown[] =
   1057     "autofill.generated_card_bubble_times_shown";
   1058 
   1059 // A dictionary that tracks the defaults to be set on the next invocation
   1060 // of the requestAutocomplete dialog.
   1061 const char kAutofillDialogDefaults[] = "autofill.rac_dialog_defaults";
   1062 
   1063 #if !defined(OS_ANDROID)
   1064 const char kPinnedTabs[] = "pinned_tabs";
   1065 #endif
   1066 
   1067 #if defined(OS_ANDROID)
   1068 // Boolean that controls the enabled-state of Geolocation in content.
   1069 const char kGeolocationEnabled[] = "geolocation.enabled";
   1070 #endif
   1071 
   1072 #if defined(ENABLE_GOOGLE_NOW)
   1073 // Boolean that is true when Google services can use the user's location.
   1074 const char kGoogleGeolocationAccessEnabled[] =
   1075     "googlegeolocationaccess.enabled";
   1076 #endif
   1077 
   1078 // The default audio capture device used by the Media content setting.
   1079 const char kDefaultAudioCaptureDevice[] = "media.default_audio_capture_device";
   1080 
   1081 // The default video capture device used by the Media content setting.
   1082 const char kDefaultVideoCaptureDevice[] = "media.default_video_capture_Device";
   1083 
   1084 // The salt used for creating random MediaSource IDs.
   1085 const char kMediaDeviceIdSalt[] = "media.device_id_salt";
   1086 
   1087 // Preference to disable 3D APIs (WebGL, Pepper 3D).
   1088 const char kDisable3DAPIs[] = "disable_3d_apis";
   1089 
   1090 const char kEnableDeprecatedWebPlatformFeatures[] =
   1091     "enable_deprecated_web_platform_features";
   1092 
   1093 // Whether to enable hyperlink auditing ("<a ping>").
   1094 const char kEnableHyperlinkAuditing[] = "enable_a_ping";
   1095 
   1096 // Whether to enable sending referrers.
   1097 const char kEnableReferrers[] = "enable_referrers";
   1098 
   1099 // Whether to send the DNT header.
   1100 const char kEnableDoNotTrack[] = "enable_do_not_track";
   1101 
   1102 // GL_VENDOR string.
   1103 const char kGLVendorString[] = "gl_vendor_string";
   1104 
   1105 // GL_RENDERER string.
   1106 const char kGLRendererString[] = "gl_renderer_string";
   1107 
   1108 // GL_VERSION string.
   1109 const char kGLVersionString[] = "gl_version_string";
   1110 
   1111 // Boolean that specifies whether to import the form data for autofill from the
   1112 // default browser on first run.
   1113 const char kImportAutofillFormData[] = "import_autofill_form_data";
   1114 
   1115 // Boolean that specifies whether to import bookmarks from the default browser
   1116 // on first run.
   1117 const char kImportBookmarks[] = "import_bookmarks";
   1118 
   1119 // Boolean that specifies whether to import the browsing history from the
   1120 // default browser on first run.
   1121 const char kImportHistory[] = "import_history";
   1122 
   1123 // Boolean that specifies whether to import the homepage from the default
   1124 // browser on first run.
   1125 const char kImportHomepage[] = "import_home_page";
   1126 
   1127 // Boolean that specifies whether to import the saved passwords from the default
   1128 // browser on first run.
   1129 const char kImportSavedPasswords[] = "import_saved_passwords";
   1130 
   1131 // Boolean that specifies whether to import the search engine from the default
   1132 // browser on first run.
   1133 const char kImportSearchEngine[] = "import_search_engine";
   1134 
   1135 // Profile avatar and name
   1136 const char kProfileAvatarIndex[] = "profile.avatar_index";
   1137 const char kProfileName[] = "profile.name";
   1138 // Whether a profile is using a default avatar name (eg. Pickles or Person 1)
   1139 // because it was randomly assigned at profile creation time.
   1140 const char kProfileUsingDefaultName[] = "profile.using_default_name";
   1141 // Whether a profile is using an avatar without having explicitely chosen it
   1142 // (i.e. was assigned by default by legacy profile creation).
   1143 const char kProfileUsingDefaultAvatar[] = "profile.using_default_avatar";
   1144 const char kProfileUsingGAIAAvatar[] = "profile.using_gaia_avatar";
   1145 
   1146 // The supervised user ID.
   1147 const char kSupervisedUserId[] = "profile.managed_user_id";
   1148 
   1149 // 64-bit integer serialization of the base::Time when the user's GAIA info
   1150 // was last updated.
   1151 const char kProfileGAIAInfoUpdateTime[] = "profile.gaia_info_update_time";
   1152 
   1153 // The URL from which the GAIA profile picture was downloaded. This is cached to
   1154 // prevent the same picture from being downloaded multiple times.
   1155 const char kProfileGAIAInfoPictureURL[] = "profile.gaia_info_picture_url";
   1156 
   1157 // Integer that specifies the number of times that we have shown the upgrade
   1158 // tutorial card in the avatar menu bubble.
   1159 const char kProfileAvatarTutorialShown[] =
   1160     "profile.avatar_bubble_tutorial_shown";
   1161 
   1162 // Indicates if we've already shown a notification that high contrast
   1163 // mode is on, recommending high-contrast extensions and themes.
   1164 const char kInvertNotificationShown[] = "invert_notification_version_2_shown";
   1165 
   1166 // Boolean controlling whether printing is enabled.
   1167 const char kPrintingEnabled[] = "printing.enabled";
   1168 
   1169 // Boolean controlling whether print preview is disabled.
   1170 const char kPrintPreviewDisabled[] = "printing.print_preview_disabled";
   1171 
   1172 // An integer pref specifying the fallback behavior for sites outside of content
   1173 // packs. One of:
   1174 // 0: Allow (does nothing)
   1175 // 1: Warn.
   1176 // 2: Block.
   1177 const char kDefaultSupervisedUserFilteringBehavior[] =
   1178     "profile.managed.default_filtering_behavior";
   1179 
   1180 // Whether this user is permitted to create supervised users.
   1181 const char kSupervisedUserCreationAllowed[] =
   1182     "profile.managed_user_creation_allowed";
   1183 
   1184 // List pref containing the users supervised by this user.
   1185 const char kSupervisedUsers[] = "profile.managed_users";
   1186 
   1187 // String that indicates that the profile reset prompt has already been shown to
   1188 // the user (profile).
   1189 const char kProfileResetPromptMementoInProfilePrefs[] =
   1190     "profile.reset_prompt_memento";
   1191 
   1192 // List pref containing the extension ids which are not allowed to send
   1193 // notifications to the message center.
   1194 const char kMessageCenterDisabledExtensionIds[] =
   1195     "message_center.disabled_extension_ids";
   1196 
   1197 // List pref containing the system component ids which are not allowed to send
   1198 // notifications to the message center.
   1199 const char kMessageCenterDisabledSystemComponentIds[] =
   1200     "message_center.disabled_system_component_ids";
   1201 
   1202 // Boolean pref indicating the Chrome Now welcome notification was dismissed
   1203 // by the user. Syncable.
   1204 // Note: This is now read-only. The welcome notification writes the _local
   1205 // version, below.
   1206 extern const char kWelcomeNotificationDismissed[] =
   1207     "message_center.welcome_notification_dismissed";
   1208 
   1209 // Boolean pref indicating the Chrome Now welcome notification was dismissed
   1210 // by the user on this machine.
   1211 extern const char kWelcomeNotificationDismissedLocal[] =
   1212     "message_center.welcome_notification_dismissed_local";
   1213 
   1214 // Boolean pref indicating the welcome notification was previously popped up.
   1215 extern const char kWelcomeNotificationPreviouslyPoppedUp[] =
   1216     "message_center.welcome_notification_previously_popped_up";
   1217 
   1218 // Integer pref containing the expiration timestamp of the welcome notification.
   1219 extern const char kWelcomeNotificationExpirationTimestamp[] =
   1220     "message_center.welcome_notification_expiration_timestamp";
   1221 
   1222 // Boolean pref that determines whether the user can enter fullscreen mode.
   1223 // Disabling fullscreen mode also makes kiosk mode unavailable on desktop
   1224 // platforms.
   1225 extern const char kFullscreenAllowed[] = "fullscreen.allowed";
   1226 
   1227 // Enable notifications for new devices on the local network that can be
   1228 // registered to the user's account, e.g. Google Cloud Print printers.
   1229 const char kLocalDiscoveryNotificationsEnabled[] =
   1230     "local_discovery.notifications_enabled";
   1231 
   1232 // A timestamp (stored in base::Time::ToInternalValue format) of the last time
   1233 // a preference was reset.
   1234 const char kPreferenceResetTime[] = "prefs.preference_reset_time";
   1235 
   1236 // The GCM channel's enabled state.
   1237 const char kGCMChannelEnabled[] = "gcm.channel_enabled";
   1238 
   1239 // How many Service Workers are registered with the Push API (could be zero).
   1240 const char kPushMessagingRegistrationCount[] =
   1241     "gcm.push_messaging_registration_count";
   1242 
   1243 // Whether Easy Unlock is enabled.
   1244 const char kEasyUnlockEnabled[] = "easy_unlock.enabled";
   1245 
   1246 // Whether to show the Easy Unlock first run tutorial.
   1247 const char kEasyUnlockShowTutorial[] = "easy_unlock.show_tutorial";
   1248 
   1249 // Preference storing Easy Unlock pairing data.
   1250 const char kEasyUnlockPairing[] = "easy_unlock.pairing";
   1251 
   1252 // Whether a user is allowed to use Easy Unlock.
   1253 const char kEasyUnlockAllowed[] = "easy_unlock.allowed";
   1254 
   1255 // A cache of zero suggest results using JSON serialized into a string.
   1256 const char kZeroSuggestCachedResults[] = "zerosuggest.cachedresults";
   1257 
   1258 // *************** LOCAL STATE ***************
   1259 // These are attached to the machine/installation
   1260 
   1261 // A pref to configure networks device-wide. Its value must be a list of
   1262 // NetworkConfigurations according to the OpenNetworkConfiguration
   1263 // specification.
   1264 // Currently, this pref is only used to store the policy. The user's
   1265 // configuration is still stored in Shill.
   1266 const char kDeviceOpenNetworkConfiguration[] = "device_onc";
   1267 
   1268 // Directory of the last profile used.
   1269 const char kProfileLastUsed[] = "profile.last_used";
   1270 
   1271 // List of directories of the profiles last active.
   1272 const char kProfilesLastActive[] = "profile.last_active_profiles";
   1273 
   1274 // Total number of profiles created for this Chrome build. Used to tag profile
   1275 // directories.
   1276 const char kProfilesNumCreated[] = "profile.profiles_created";
   1277 
   1278 // String containing the version of Chrome that the profile was created by.
   1279 // If profile was created before this feature was added, this pref will default
   1280 // to "1.0.0.0".
   1281 const char kProfileCreatedByVersion[] = "profile.created_by_version";
   1282 
   1283 // A map of profile data directory to cached information. This cache can be
   1284 // used to display information about profiles without actually having to load
   1285 // them.
   1286 const char kProfileInfoCache[] = "profile.info_cache";
   1287 
   1288 // Dictionary that maps profile keys to strings that indicate that the profile
   1289 // reset prompt has already been shown to the corresponding user (profile).
   1290 // This is semantically similar to kProfileResetPromptMementoInProfilePrefs, see
   1291 // chrome/browser/profile_resetter/automatic_profile_resetter_mementos.h for an
   1292 // explanation of why this redundancy is needed.
   1293 const char kProfileResetPromptMementosInLocalState[] =
   1294     "profile.reset_prompt_mementos";
   1295 
   1296 // Prefs for SSLConfigServicePref.
   1297 const char kCertRevocationCheckingEnabled[] = "ssl.rev_checking.enabled";
   1298 const char kCertRevocationCheckingRequiredLocalAnchors[] =
   1299     "ssl.rev_checking.required_for_local_anchors";
   1300 const char kSSLVersionMin[] = "ssl.version_min";
   1301 const char kSSLVersionMax[] = "ssl.version_max";
   1302 const char kSSLVersionFallbackMin[] = "ssl.version_fallback_min";
   1303 const char kCipherSuiteBlacklist[] = "ssl.cipher_suites.blacklist";
   1304 const char kDisableSSLRecordSplitting[] = "ssl.ssl_record_splitting.disabled";
   1305 
   1306 // Dictionary of dates when a site's SSL blocking interstitial was proceeded
   1307 // through.
   1308 const char kSSLBlockingBypassed[] = "ssl.ssl_blocking_bypassed";
   1309 
   1310 // A boolean pref of the EULA accepted flag.
   1311 const char kEulaAccepted[] = "EulaAccepted";
   1312 
   1313 // Boolean that specifies whether or not crash reporting and metrics reporting
   1314 // are sent over the network for analysis.
   1315 const char kMetricsReportingEnabled[] =
   1316     "user_experience_metrics.reporting_enabled";
   1317 
   1318 // Boolean that specifies whether or not crash reports are sent
   1319 // over the network for analysis.
   1320 #if defined(OS_ANDROID)
   1321 const char kCrashReportingEnabled[] =
   1322     "user_experience_metrics_crash.reporting_enabled";
   1323 #endif
   1324 
   1325 // 64-bit integer serialization of the base::Time from the last successful seed
   1326 // fetch (i.e. when the Variations server responds with 200 or 304).
   1327 const char kVariationsLastFetchTime[] = "variations_last_fetch_time";
   1328 
   1329 // String for the restrict parameter to be appended to the variations URL.
   1330 const char kVariationsRestrictParameter[] = "variations_restrict_parameter";
   1331 
   1332 // String serialized form of variations seed protobuf.
   1333 const char kVariationsSeed[] = "variations_seed";
   1334 
   1335 // 64-bit integer serialization of the base::Time from the last seed received.
   1336 const char kVariationsSeedDate[] = "variations_seed_date";
   1337 
   1338 // SHA-1 hash of the serialized variations seed data (hex encoded).
   1339 const char kVariationsSeedHash[] = "variations_seed_hash";
   1340 
   1341 // Digital signature of the binary variations seed data, base64-encoded.
   1342 const char kVariationsSeedSignature[] = "variations_seed_signature";
   1343 
   1344 // Number of times a page load event occurred since the last report.
   1345 const char kStabilityPageLoadCount[] =
   1346     "user_experience_metrics.stability.page_load_count";
   1347 
   1348 // Number of times a renderer process crashed since the last report.
   1349 const char kStabilityRendererCrashCount[] =
   1350     "user_experience_metrics.stability.renderer_crash_count";
   1351 
   1352 // Number of times an extension renderer process crashed since the last report.
   1353 const char kStabilityExtensionRendererCrashCount[] =
   1354     "user_experience_metrics.stability.extension_renderer_crash_count";
   1355 
   1356 // This is the location of a list of dictionaries of plugin stability stats.
   1357 const char kStabilityPluginStats[] =
   1358     "user_experience_metrics.stability.plugin_stats2";
   1359 
   1360 // Number of times the renderer has become non-responsive since the last
   1361 // report.
   1362 const char kStabilityRendererHangCount[] =
   1363     "user_experience_metrics.stability.renderer_hang_count";
   1364 
   1365 // Total number of child process crashes (other than renderer / extension
   1366 // renderer ones, and plugin children, which are counted separately) since the
   1367 // last report.
   1368 const char kStabilityChildProcessCrashCount[] =
   1369     "user_experience_metrics.stability.child_process_crash_count";
   1370 
   1371 // On Chrome OS, total number of non-Chrome user process crashes
   1372 // since the last report.
   1373 const char kStabilityOtherUserCrashCount[] =
   1374     "user_experience_metrics.stability.other_user_crash_count";
   1375 
   1376 // On Chrome OS, total number of kernel crashes since the last report.
   1377 const char kStabilityKernelCrashCount[] =
   1378     "user_experience_metrics.stability.kernel_crash_count";
   1379 
   1380 // On Chrome OS, total number of unclean system shutdowns since the
   1381 // last report.
   1382 const char kStabilitySystemUncleanShutdownCount[] =
   1383     "user_experience_metrics.stability.system_unclean_shutdowns";
   1384 
   1385 #if defined(OS_ANDROID)
   1386 // Activity type that is currently in the foreground for the UMA session.
   1387 // Uses the ActivityTypeIds::Type enum.
   1388 const char kStabilityForegroundActivityType[] =
   1389     "user_experience_metrics.stability.current_foreground_activity_type";
   1390 
   1391 // Tracks which Activities were launched during the last session.
   1392 // See |metrics_service_android.cc| for its usage.
   1393 const char kStabilityLaunchedActivityFlags[] =
   1394     "user_experience_metrics.stability.launched_activity_flags";
   1395 
   1396 // List pref: Counts how many times each Activity was launched.
   1397 // Indexed into by ActivityTypeIds::Type.
   1398 const char kStabilityLaunchedActivityCounts[] =
   1399     "user_experience_metrics.stability.launched_activity_counts";
   1400 
   1401 // List pref: Counts how many times each Activity type was in the foreground
   1402 // when a UMA session failed to be shut down properly.
   1403 // Indexed into by ActivityTypeIds::Type.
   1404 const char kStabilityCrashedActivityCounts[] =
   1405     "user_experience_metrics.stability.crashed_activity_counts";
   1406 #endif
   1407 
   1408 // The keys below are used for the dictionaries in the
   1409 // kStabilityPluginStats list.
   1410 const char kStabilityPluginName[] = "name";
   1411 const char kStabilityPluginLaunches[] = "launches";
   1412 const char kStabilityPluginInstances[] = "instances";
   1413 const char kStabilityPluginCrashes[] = "crashes";
   1414 const char kStabilityPluginLoadingErrors[] = "loading_errors";
   1415 
   1416 // The keys below are strictly increasing counters over the lifetime of
   1417 // a chrome installation. They are (optionally) sent up to the uninstall
   1418 // survey in the event of uninstallation.
   1419 const char kUninstallMetricsPageLoadCount[] =
   1420     "uninstall_metrics.page_load_count";
   1421 const char kUninstallLastLaunchTimeSec[] =
   1422     "uninstall_metrics.last_launch_time_sec";
   1423 const char kUninstallLastObservedRunTimeSec[] =
   1424     "uninstall_metrics.last_observed_running_time_sec";
   1425 
   1426 // String containing the version of Chrome for which Chrome will not prompt the
   1427 // user about setting Chrome as the default browser.
   1428 const char kBrowserSuppressDefaultBrowserPrompt[] =
   1429     "browser.suppress_default_browser_prompt_for_version";
   1430 
   1431 // A collection of position, size, and other data relating to the browser
   1432 // window to restore on startup.
   1433 const char kBrowserWindowPlacement[] = "browser.window_placement";
   1434 
   1435 // Browser window placement for popup windows.
   1436 const char kBrowserWindowPlacementPopup[] = "browser.window_placement_popup";
   1437 
   1438 // A collection of position, size, and other data relating to the task
   1439 // manager window to restore on startup.
   1440 const char kTaskManagerWindowPlacement[] = "task_manager.window_placement";
   1441 
   1442 // A collection of position, size, and other data relating to app windows to
   1443 // restore on startup.
   1444 const char kAppWindowPlacement[] = "browser.app_window_placement";
   1445 
   1446 // An integer specifying the total number of bytes to be used by the
   1447 // renderer's in-memory cache of objects.
   1448 const char kMemoryCacheSize[] = "renderer.memory_cache.size";
   1449 
   1450 // String which specifies where to download files to by default.
   1451 const char kDownloadDefaultDirectory[] = "download.default_directory";
   1452 
   1453 // Boolean that records if the download directory was changed by an
   1454 // upgrade a unsafe location to a safe location.
   1455 const char kDownloadDirUpgraded[] = "download.directory_upgrade";
   1456 
   1457 #if defined(OS_WIN)
   1458 // Whether downloaded PDFs should be opened in Adobe Acrobat Reader.
   1459 const char kOpenPdfDownloadInAdobeReader[] =
   1460     "download.open_pdf_in_adobe_reader";
   1461 #endif
   1462 
   1463 // String which specifies where to save html files to by default.
   1464 const char kSaveFileDefaultDirectory[] = "savefile.default_directory";
   1465 
   1466 // The type used to save the page. See the enum SavePackage::SavePackageType in
   1467 // the chrome/browser/download/save_package.h for the possible values.
   1468 const char kSaveFileType[] = "savefile.type";
   1469 
   1470 // String which specifies the last directory that was chosen for uploading
   1471 // or opening a file.
   1472 const char kSelectFileLastDirectory[] = "selectfile.last_directory";
   1473 
   1474 // Boolean that specifies if file selection dialogs are shown.
   1475 const char kAllowFileSelectionDialogs[] = "select_file_dialogs.allowed";
   1476 
   1477 // Map of default tasks, associated by MIME type.
   1478 const char kDefaultTasksByMimeType[] =
   1479     "filebrowser.tasks.default_by_mime_type";
   1480 
   1481 // Map of default tasks, associated by file suffix.
   1482 const char kDefaultTasksBySuffix[] =
   1483     "filebrowser.tasks.default_by_suffix";
   1484 
   1485 // Extensions which should be opened upon completion.
   1486 const char kDownloadExtensionsToOpen[] = "download.extensions_to_open";
   1487 
   1488 // Integer which specifies the frequency in milliseconds for detecting whether
   1489 // plugin windows are hung.
   1490 const char kHungPluginDetectFrequency[] = "browser.hung_plugin_detect_freq";
   1491 
   1492 // Integer which specifies the timeout value to be used for SendMessageTimeout
   1493 // to detect a hung plugin window.
   1494 const char kPluginMessageResponseTimeout[] =
   1495     "browser.plugin_message_response_timeout";
   1496 
   1497 // String which represents the dictionary name for our spell-checker.
   1498 const char kSpellCheckDictionary[] = "spellcheck.dictionary";
   1499 
   1500 // String which represents whether we use the spelling service.
   1501 const char kSpellCheckUseSpellingService[] = "spellcheck.use_spelling_service";
   1502 
   1503 // Dictionary of schemes used by the external protocol handler.
   1504 // The value is true if the scheme must be ignored.
   1505 const char kExcludedSchemes[] = "protocol_handler.excluded_schemes";
   1506 
   1507 // Keys used for MAC handling of SafeBrowsing requests.
   1508 const char kSafeBrowsingClientKey[] = "safe_browsing.client_key";
   1509 const char kSafeBrowsingWrappedKey[] = "safe_browsing.wrapped_key";
   1510 
   1511 // Integer that specifies the index of the tab the user was on when they
   1512 // last visited the options window.
   1513 const char kOptionsWindowLastTabIndex[] = "options_window.last_tab_index";
   1514 
   1515 // Integer that specifies the index of the tab the user was on when they
   1516 // last visited the content settings window.
   1517 const char kContentSettingsWindowLastTabIndex[] =
   1518     "content_settings_window.last_tab_index";
   1519 
   1520 // Integer that specifies the index of the tab the user was on when they
   1521 // last visited the Certificate Manager window.
   1522 const char kCertificateManagerWindowLastTabIndex[] =
   1523     "certificate_manager_window.last_tab_index";
   1524 
   1525 // Integer that specifies if the first run bubble should be shown.
   1526 // This preference is only registered by the first-run procedure.
   1527 const char kShowFirstRunBubbleOption[] = "show-first-run-bubble-option";
   1528 
   1529 // String containing the last known intranet redirect URL, if any.  See
   1530 // intranet_redirect_detector.h for more information.
   1531 const char kLastKnownIntranetRedirectOrigin[] = "browser.last_redirect_origin";
   1532 
   1533 // An enum value of how the browser was shut down (see browser_shutdown.h).
   1534 const char kShutdownType[] = "shutdown.type";
   1535 // Number of processes that were open when the user shut down.
   1536 const char kShutdownNumProcesses[] = "shutdown.num_processes";
   1537 // Number of processes that were shut down using the slow path.
   1538 const char kShutdownNumProcessesSlow[] = "shutdown.num_processes_slow";
   1539 
   1540 // Whether to restart the current Chrome session automatically as the last thing
   1541 // before shutting everything down.
   1542 const char kRestartLastSessionOnShutdown[] = "restart.last.session.on.shutdown";
   1543 
   1544 // Set before autorestarting Chrome, cleared on clean exit.
   1545 const char kWasRestarted[] = "was.restarted";
   1546 
   1547 #if defined(OS_WIN)
   1548 // Preference to be used while relaunching Chrome. This preference dictates if
   1549 // Chrome should be launched in Metro or Desktop mode.
   1550 // For more info take a look at ChromeRelaunchMode enum.
   1551 const char kRelaunchMode[] = "relaunch.mode";
   1552 #endif
   1553 
   1554 // Placeholder preference for disabling voice / video chat if it is ever added.
   1555 // Currently, this does not change any behavior.
   1556 const char kDisableVideoAndChat[] = "disable_video_chat";
   1557 
   1558 // Whether Extensions are enabled.
   1559 const char kDisableExtensions[] = "extensions.disabled";
   1560 
   1561 // Whether the plugin finder that lets you install missing plug-ins is enabled.
   1562 const char kDisablePluginFinder[] = "plugins.disable_plugin_finder";
   1563 
   1564 // Customized app page names that appear on the New Tab Page.
   1565 const char kNtpAppPageNames[] = "ntp.app_page_names";
   1566 
   1567 // Keeps track of currently open tabs collapsed state in the Other Devices menu.
   1568 const char kNtpCollapsedCurrentlyOpenTabs[] = "ntp.collapsed_open_tabs";
   1569 
   1570 // Keeps track of which sessions are collapsed in the Other Devices menu.
   1571 const char kNtpCollapsedForeignSessions[] = "ntp.collapsed_foreign_sessions";
   1572 
   1573 // Keeps track of recently closed tabs collapsed state in the Other Devices
   1574 // menu.
   1575 const char kNtpCollapsedRecentlyClosedTabs[] =
   1576     "ntp.collapsed_recently_closed_tabs";
   1577 
   1578 // Keeps track of snapshot documents collapsed state in the Other Devices menu.
   1579 const char kNtpCollapsedSnapshotDocument[] = "ntp.collapsed_snapshot_document";
   1580 
   1581 // Keeps track of sync promo collapsed state in the Other Devices menu.
   1582 const char kNtpCollapsedSyncPromo[] = "ntp.collapsed_sync_promo";
   1583 
   1584 // Serves dates to determine display of elements on the NTP.
   1585 const char kNtpDateResourceServer[] = "ntp.date_resource_server";
   1586 
   1587 // New Tab Page URLs that should not be shown as most visited thumbnails.
   1588 const char kNtpMostVisitedURLsBlacklist[] = "ntp.most_visited_blacklist";
   1589 
   1590 // True if a desktop sync session was found for this user.
   1591 const char kNtpPromoDesktopSessionFound[] = "ntp.promo_desktop_session_found";
   1592 
   1593 // Last time of update of promo_resource_cache.
   1594 const char kNtpPromoResourceCacheUpdate[] = "ntp.promo_resource_cache_update";
   1595 
   1596 // Which bookmarks folder should be visible on the new tab page v4.
   1597 const char kNtpShownBookmarksFolder[] = "ntp.shown_bookmarks_folder";
   1598 
   1599 // Which page should be visible on the new tab page v4
   1600 const char kNtpShownPage[] = "ntp.shown_page";
   1601 
   1602 // Serves tips for the NTP.
   1603 const char kNtpTipsResourceServer[] = "ntp.tips_resource_server";
   1604 
   1605 // Boolean indicating whether the web store is active for the current locale.
   1606 const char kNtpWebStoreEnabled[] = "ntp.webstore_enabled";
   1607 
   1608 // A private RSA key for ADB handshake.
   1609 const char kDevToolsAdbKey[] = "devtools.adb_key";
   1610 
   1611 const char kDevToolsDisabled[] = "devtools.disabled";
   1612 
   1613 // Determines whether devtools should be discovering usb devices for
   1614 // remote debugging at chrome://inspect.
   1615 const char kDevToolsDiscoverUsbDevicesEnabled[] =
   1616     "devtools.discover_usb_devices";
   1617 
   1618 // Maps of files edited locally using DevTools.
   1619 const char kDevToolsEditedFiles[] = "devtools.edited_files";
   1620 
   1621 // List of file system paths added in DevTools.
   1622 const char kDevToolsFileSystemPaths[] = "devtools.file_system_paths";
   1623 
   1624 // A boolean specifying whether dev tools window should be opened docked.
   1625 const char kDevToolsOpenDocked[] = "devtools.open_docked";
   1626 
   1627 // A boolean specifying whether port forwarding should be enabled.
   1628 const char kDevToolsPortForwardingEnabled[] =
   1629     "devtools.port_forwarding_enabled";
   1630 
   1631 // A boolean specifying whether default port forwarding configuration has been
   1632 // set.
   1633 const char kDevToolsPortForwardingDefaultSet[] =
   1634     "devtools.port_forwarding_default_set";
   1635 
   1636 // A dictionary of port->location pairs for port forwarding.
   1637 const char kDevToolsPortForwardingConfig[] = "devtools.port_forwarding_config";
   1638 
   1639 #if defined(OS_ANDROID)
   1640 // A boolean specifying whether remote dev tools debugging is enabled.
   1641 const char kDevToolsRemoteEnabled[] = "devtools.remote_enabled";
   1642 #endif
   1643 
   1644 // Boolean indicating that TiclInvalidationService should use GCM channel.
   1645 // False or lack of settings means XMPPPushClient channel.
   1646 const char kInvalidationServiceUseGCMChannel[] =
   1647     "invalidation_service.use_gcm_channel";
   1648 
   1649 // Local hash of authentication password, used for off-line authentication
   1650 // when on-line authentication is not available.
   1651 const char kGoogleServicesPasswordHash[] = "google.services.password_hash";
   1652 
   1653 #if !defined(OS_ANDROID)
   1654 // Tracks the number of times that we have shown the sign in promo at startup.
   1655 const char kSignInPromoStartupCount[] = "sync_promo.startup_count";
   1656 
   1657 // Boolean tracking whether the user chose to skip the sign in promo.
   1658 const char kSignInPromoUserSkipped[] = "sync_promo.user_skipped";
   1659 
   1660 // Boolean that specifies if the sign in promo is allowed to show on first run.
   1661 // This preference is specified in the master preference file to suppress the
   1662 // sign in promo for some installations.
   1663 const char kSignInPromoShowOnFirstRunAllowed[] =
   1664     "sync_promo.show_on_first_run_allowed";
   1665 
   1666 // Boolean that specifies if we should show a bubble in the new tab page.
   1667 // The bubble is used to confirm that the user is signed into sync.
   1668 const char kSignInPromoShowNTPBubble[] = "sync_promo.show_ntp_bubble";
   1669 #endif
   1670 
   1671 // Create web application shortcut dialog preferences.
   1672 const char kWebAppCreateOnDesktop[] = "browser.web_app.create_on_desktop";
   1673 const char kWebAppCreateInAppsMenu[] = "browser.web_app.create_in_apps_menu";
   1674 const char kWebAppCreateInQuickLaunchBar[] =
   1675     "browser.web_app.create_in_quick_launch_bar";
   1676 
   1677 // Dictionary that maps Geolocation network provider server URLs to
   1678 // corresponding access token.
   1679 const char kGeolocationAccessToken[] = "geolocation.access_token";
   1680 
   1681 // Boolean that indicates whether to allow firewall traversal while trying to
   1682 // establish the initial connection from the client or host.
   1683 const char kRemoteAccessHostFirewallTraversal[] =
   1684     "remote_access.host_firewall_traversal";
   1685 
   1686 // Boolean controlling whether 2-factor auth should be required when connecting
   1687 // to a host (instead of a PIN).
   1688 const char kRemoteAccessHostRequireTwoFactor[] =
   1689     "remote_access.host_require_two_factor";
   1690 
   1691 // String containing the domain name that hosts must belong to. If blank, then
   1692 // hosts can belong to any domain.
   1693 const char kRemoteAccessHostDomain[] = "remote_access.host_domain";
   1694 
   1695 // String containing the domain name of the Chromoting Directory.
   1696 // Used by Chromoting host and client.
   1697 const char kRemoteAccessHostTalkGadgetPrefix[] =
   1698     "remote_access.host_talkgadget_prefix";
   1699 
   1700 // Boolean controlling whether curtaining is required when connecting to a host.
   1701 const char kRemoteAccessHostRequireCurtain[] =
   1702     "remote_access.host_require_curtain";
   1703 
   1704 // Boolean controlling whether curtaining is required when connecting to a host.
   1705 const char kRemoteAccessHostAllowClientPairing[] =
   1706     "remote_access.host_allow_client_pairing";
   1707 
   1708 // Whether Chrome Remote Desktop can proxy gnubby authentication traffic.
   1709 const char kRemoteAccessHostAllowGnubbyAuth[] =
   1710     "remote_access.host_allow_gnubby_auth";
   1711 
   1712 // Boolean that indicates whether the Chromoting host should allow connections
   1713 // using relay servers.
   1714 const char kRemoteAccessHostAllowRelayedConnection[] =
   1715     "remote_access.host_allow_relayed_connection";
   1716 
   1717 // String containing the UDP port range that the Chromoting host should used
   1718 // when connecting to clients. The port range should be in the form:
   1719 // <min_port>-<max_port>. E.g. 12400-12409.
   1720 const char kRemoteAccessHostUdpPortRange[] =
   1721     "remote_access.host_udp_port_range";
   1722 
   1723 // The last used printer and its settings.
   1724 const char kPrintPreviewStickySettings[] =
   1725     "printing.print_preview_sticky_settings";
   1726 
   1727 // The last requested size of the dialog as it was closed.
   1728 const char kCloudPrintDialogWidth[] = "cloud_print.dialog_size.width";
   1729 const char kCloudPrintDialogHeight[] = "cloud_print.dialog_size.height";
   1730 const char kCloudPrintSigninDialogWidth[] =
   1731     "cloud_print.signin_dialog_size.width";
   1732 const char kCloudPrintSigninDialogHeight[] =
   1733     "cloud_print.signin_dialog_size.height";
   1734 
   1735 // The list of BackgroundContents that should be loaded when the browser
   1736 // launches.
   1737 const char kRegisteredBackgroundContents[] = "background_contents.registered";
   1738 
   1739 #if !defined(OS_ANDROID)
   1740 // An int that stores how often we've shown the "Chrome is configured to
   1741 // auto-launch" infobar.
   1742 const char kShownAutoLaunchInfobar[] = "browser.shown_autolaunch_infobar";
   1743 #endif
   1744 
   1745 // String that lists supported HTTP authentication schemes.
   1746 const char kAuthSchemes[] = "auth.schemes";
   1747 
   1748 // Boolean that specifies whether to disable CNAME lookups when generating
   1749 // Kerberos SPN.
   1750 const char kDisableAuthNegotiateCnameLookup[] =
   1751     "auth.disable_negotiate_cname_lookup";
   1752 
   1753 // Boolean that specifies whether to include the port in a generated Kerberos
   1754 // SPN.
   1755 const char kEnableAuthNegotiatePort[] = "auth.enable_negotiate_port";
   1756 
   1757 // Whitelist containing servers for which Integrated Authentication is enabled.
   1758 const char kAuthServerWhitelist[] = "auth.server_whitelist";
   1759 
   1760 // Whitelist containing servers Chrome is allowed to do Kerberos delegation
   1761 // with.
   1762 const char kAuthNegotiateDelegateWhitelist[] =
   1763     "auth.negotiate_delegate_whitelist";
   1764 
   1765 // String that specifies the name of a custom GSSAPI library to load.
   1766 const char kGSSAPILibraryName[] = "auth.gssapi_library_name";
   1767 
   1768 // Boolean that specifies whether to allow basic auth prompting on cross-
   1769 // domain sub-content requests.
   1770 const char kAllowCrossOriginAuthPrompt[] = "auth.allow_cross_origin_prompt";
   1771 
   1772 // Boolean that specifies whether the built-in asynchronous DNS client is used.
   1773 const char kBuiltInDnsClientEnabled[] = "async_dns.enabled";
   1774 
   1775 // A pref holding the value of the policy used to explicitly allow or deny
   1776 // access to audio capture devices.  When enabled or not set, the user is
   1777 // prompted for device access.  When disabled, access to audio capture devices
   1778 // is not allowed and no prompt will be shown.
   1779 // See also kAudioCaptureAllowedUrls.
   1780 const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
   1781 // Holds URL patterns that specify URLs that will be granted access to audio
   1782 // capture devices without prompt.  NOTE: This whitelist is currently only
   1783 // supported when running in kiosk mode.
   1784 // TODO(tommi): Update comment when this is supported for all modes.
   1785 const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
   1786 
   1787 // A pref holding the value of the policy used to explicitly allow or deny
   1788 // access to video capture devices.  When enabled or not set, the user is
   1789 // prompted for device access.  When disabled, access to video capture devices
   1790 // is not allowed and no prompt will be shown.
   1791 const char kVideoCaptureAllowed[] = "hardware.video_capture_enabled";
   1792 // Holds URL patterns that specify URLs that will be granted access to video
   1793 // capture devices without prompt.  NOTE: This whitelist is currently only
   1794 // supported when running in kiosk mode.
   1795 // TODO(tommi): Update comment when this is supported for all modes.
   1796 const char kVideoCaptureAllowedUrls[] = "hardware.video_capture_allowed_urls";
   1797 
   1798 // A boolean pref that controls the enabled-state of hotword search voice
   1799 // trigger.
   1800 const char kHotwordSearchEnabled[] = "hotword.search_enabled_2";
   1801 
   1802 // A boolean pref that controls the enabled-state of hotword search voice
   1803 // trigger from any screen.
   1804 const char kHotwordAlwaysOnSearchEnabled[] = "hotword.always_on_search_enabled";
   1805 
   1806 // A boolean pref that controls whether the sound of "Ok, Google" plus a few
   1807 // seconds of audio data before is sent back to improve voice search.
   1808 const char kHotwordAudioLoggingEnabled[] = "hotword.audio_logging_enabled";
   1809 
   1810 // A string holding the locale information under which Hotword was installed.
   1811 // It is used for comparison since the hotword voice search trigger must be
   1812 // reinstalled to handle a new language.
   1813 const char kHotwordPreviousLanguage[] = "hotword.previous_language";
   1814 
   1815 #if defined(OS_ANDROID)
   1816 // Boolean that controls the global enabled-state of protected media identifier.
   1817 const char kProtectedMediaIdentifierEnabled[] =
   1818     "protected_media_identifier.enabled";
   1819 #endif
   1820 
   1821 #if defined(OS_CHROMEOS)
   1822 // Dictionary for transient storage of settings that should go into device
   1823 // settings storage before owner has been assigned.
   1824 const char kDeviceSettingsCache[] = "signed_settings_cache";
   1825 
   1826 // The hardware keyboard layout of the device. This should look like
   1827 // "xkb:us::eng".
   1828 const char kHardwareKeyboardLayout[] = "intl.hardware_keyboard";
   1829 
   1830 // An integer pref which shows number of times carrier deal promo
   1831 // notification has been shown to user.
   1832 const char kCarrierDealPromoShown[] =
   1833     "settings.internet.mobile.carrier_deal_promo_shown";
   1834 
   1835 // A boolean pref of the auto-enrollment decision. Its value is only valid if
   1836 // it's not the default value; otherwise, no auto-enrollment decision has been
   1837 // made yet.
   1838 const char kShouldAutoEnroll[] = "ShouldAutoEnroll";
   1839 
   1840 // An integer pref with the maximum number of bits used by the client in a
   1841 // previous auto-enrollment request. If the client goes through an auto update
   1842 // during OOBE and reboots into a version of the OS with a larger maximum
   1843 // modulus, then it will retry auto-enrollment using the updated value.
   1844 const char kAutoEnrollmentPowerLimit[] = "AutoEnrollmentPowerLimit";
   1845 
   1846 // The local state pref that stores device activity times before reporting
   1847 // them to the policy server.
   1848 const char kDeviceActivityTimes[] = "device_status.activity_times";
   1849 
   1850 // A pref holding the last known location when device location reporting is
   1851 // enabled.
   1852 const char kDeviceLocation[] = "device_status.location";
   1853 
   1854 // A pref holding the value of the policy used to disable mounting of external
   1855 // storage for the user.
   1856 const char kExternalStorageDisabled[] = "hardware.external_storage_disabled";
   1857 
   1858 // A pref holding the value of the policy used to disable playing audio on
   1859 // ChromeOS devices. This pref overrides |kAudioMute| but does not overwrite
   1860 // it, therefore when the policy is lifted the original mute state is restored.
   1861 const char kAudioOutputAllowed[] = "hardware.audio_output_enabled";
   1862 
   1863 // A dictionary that maps usernames to wallpaper properties.
   1864 const char kUsersWallpaperInfo[] = "user_wallpaper_info";
   1865 
   1866 // Copy of owner swap mouse buttons option to use on login screen.
   1867 const char kOwnerPrimaryMouseButtonRight[] = "owner.mouse.primary_right";
   1868 
   1869 // Copy of owner tap-to-click option to use on login screen.
   1870 const char kOwnerTapToClickEnabled[] = "owner.touchpad.enable_tap_to_click";
   1871 
   1872 // The length of device uptime after which an automatic reboot is scheduled,
   1873 // expressed in seconds.
   1874 const char kUptimeLimit[] = "automatic_reboot.uptime_limit";
   1875 
   1876 // Whether an automatic reboot should be scheduled when an update has been
   1877 // applied and a reboot is required to complete the update process.
   1878 const char kRebootAfterUpdate[] = "automatic_reboot.reboot_after_update";
   1879 
   1880 // An any-api scoped refresh token for enterprise-enrolled devices.  Allows
   1881 // for connection to Google APIs when the user isn't logged in.  Currently used
   1882 // for for getting a cloudprint scoped token to allow printing in Guest mode,
   1883 // Public Accounts and kiosks.
   1884 const char kDeviceRobotAnyApiRefreshToken[] =
   1885     "device_robot_refresh_token.any-api";
   1886 
   1887 // Device requisition for enterprise enrollment.
   1888 const char kDeviceEnrollmentRequisition[] = "enrollment.device_requisition";
   1889 
   1890 // Whether to automatically start the enterprise enrollment step during OOBE.
   1891 const char kDeviceEnrollmentAutoStart[] = "enrollment.auto_start";
   1892 
   1893 // Whether the user may exit enrollment.
   1894 const char kDeviceEnrollmentCanExit[] = "enrollment.can_exit";
   1895 
   1896 // How many times HID detection OOBE dialog was shown.
   1897 const char kTimesHIDDialogShown[] = "HIDDialog.shown_how_many_times";
   1898 
   1899 // Dictionary of per-user Least Recently Used input method (used at login
   1900 // screen).
   1901 extern const char kUsersLRUInputMethod[] = "UsersLRUInputMethod";
   1902 
   1903 // A dictionary pref of the echo offer check flag. It sets offer info when
   1904 // an offer is checked.
   1905 extern const char kEchoCheckedOffers[] = "EchoCheckedOffers";
   1906 
   1907 // Key name of a dictionary in local state to store cached multiprofle user
   1908 // behavior policy value.
   1909 const char kCachedMultiProfileUserBehavior[] = "CachedMultiProfileUserBehavior";
   1910 
   1911 // A string pref with initial locale set in VPD or manifest.
   1912 const char kInitialLocale[] = "intl.initial_locale";
   1913 
   1914 // A boolean pref of the OOBE complete flag (first OOBE part before login).
   1915 const char kOobeComplete[] = "OobeComplete";
   1916 
   1917 // The name of the screen that has to be shown if OOBE has been interrupted.
   1918 const char kOobeScreenPending[] = "OobeScreenPending";
   1919 
   1920 // A boolean pref of the device registered flag (second part after first login).
   1921 const char kDeviceRegistered[] = "DeviceRegistered";
   1922 
   1923 // Boolean pref to signal corrupted enrollment to force the device through
   1924 // enrollment recovery flow upon next boot.
   1925 const char kEnrollmentRecoveryRequired[] = "EnrollmentRecoveryRequired";
   1926 
   1927 // List of usernames that used certificates pushed by policy before.
   1928 // This is used to prevent these users from joining multiprofile sessions.
   1929 const char kUsedPolicyCertificates[] = "policy.used_policy_certificates";
   1930 
   1931 // A dictionary containing server-provided device state pulled form the cloud
   1932 // after recovery.
   1933 const char kServerBackedDeviceState[] = "server_backed_device_state";
   1934 
   1935 // Customized wallpaper URL, which is already downloaded and scaled.
   1936 // The URL from this preference must never be fetched. It is compared to the
   1937 // URL from customization document to check if wallpaper URL has changed
   1938 // since wallpaper was cached.
   1939 const char kCustomizationDefaultWallpaperURL[] =
   1940     "customization.default_wallpaper_url";
   1941 
   1942 // System uptime, when last logout started.
   1943 // This is saved to file and cleared after chrome process starts.
   1944 const char kLogoutStartedLast[] = "chromeos.logout-started";
   1945 
   1946 // An integer pref of the current consumer management enrollment stage. The
   1947 // meaning of the value is defined in the enum EnrollmentStage in:
   1948 //   chrome/browser/chromeos/policy/consumer_management_service.h
   1949 const char kConsumerManagementEnrollmentStage[] =
   1950     "consumer_management.enrollment_stage";
   1951 #endif
   1952 
   1953 // Whether there is a Flash version installed that supports clearing LSO data.
   1954 const char kClearPluginLSODataEnabled[] = "browser.clear_lso_data_enabled";
   1955 
   1956 // Whether we should show Pepper Flash-specific settings.
   1957 const char kPepperFlashSettingsEnabled[] =
   1958     "browser.pepper_flash_settings_enabled";
   1959 
   1960 // String which specifies where to store the disk cache.
   1961 const char kDiskCacheDir[] = "browser.disk_cache_dir";
   1962 // Pref name for the policy specifying the maximal cache size.
   1963 const char kDiskCacheSize[] = "browser.disk_cache_size";
   1964 // Pref name for the policy specifying the maximal media cache size.
   1965 const char kMediaCacheSize[] = "browser.media_cache_size";
   1966 
   1967 // Specifies the release channel that the device should be locked to.
   1968 // Possible values: "stable-channel", "beta-channel", "dev-channel", or an
   1969 // empty string, in which case the value will be ignored.
   1970 // TODO(dubroy): This preference may not be necessary once
   1971 // http://crosbug.com/17015 is implemented and the update engine can just
   1972 // fetch the correct value from the policy.
   1973 const char kChromeOsReleaseChannel[] = "cros.system.releaseChannel";
   1974 
   1975 const char kPerformanceTracingEnabled[] =
   1976     "feedback.performance_tracing_enabled";
   1977 
   1978 // Boolean indicating whether tabstrip uses stacked layout (on touch devices).
   1979 // Defaults to false.
   1980 const char kTabStripStackedLayout[] = "tab-strip-stacked-layout";
   1981 
   1982 // Indicates that factory reset was requested from options page or reset screen.
   1983 const char kFactoryResetRequested[] = "FactoryResetRequested";
   1984 
   1985 // Boolean recording whether we have showed a balloon that calls out the message
   1986 // center for desktop notifications.
   1987 const char kMessageCenterShowedFirstRunBalloon[] =
   1988     "message_center.showed_first_run_balloon";
   1989 
   1990 // Boolean recording whether the user has disabled the notifications
   1991 // menubar or systray icon.
   1992 const char kMessageCenterShowIcon[] = "message_center.show_icon";
   1993 
   1994 const char kMessageCenterForcedOnTaskbar[] =
   1995     "message_center.was_forced_on_taskbar";
   1996 
   1997 // *************** SERVICE PREFS ***************
   1998 // These are attached to the service process.
   1999 
   2000 const char kCloudPrintRoot[] = "cloud_print";
   2001 const char kCloudPrintProxyEnabled[] = "cloud_print.enabled";
   2002 // The unique id for this instance of the cloud print proxy.
   2003 const char kCloudPrintProxyId[] = "cloud_print.proxy_id";
   2004 // The GAIA auth token for Cloud Print
   2005 const char kCloudPrintAuthToken[] = "cloud_print.auth_token";
   2006 // The GAIA auth token used by Cloud Print to authenticate with the XMPP server
   2007 // This should eventually go away because the above token should work for both.
   2008 const char kCloudPrintXMPPAuthToken[] = "cloud_print.xmpp_auth_token";
   2009 // The email address of the account used to authenticate with the Cloud Print
   2010 // server.
   2011 const char kCloudPrintEmail[] = "cloud_print.email";
   2012 // Settings specific to underlying print system.
   2013 const char kCloudPrintPrintSystemSettings[] =
   2014     "cloud_print.print_system_settings";
   2015 // A boolean indicating whether we should poll for print jobs when don't have
   2016 // an XMPP connection (false by default).
   2017 const char kCloudPrintEnableJobPoll[] = "cloud_print.enable_job_poll";
   2018 const char kCloudPrintRobotRefreshToken[] = "cloud_print.robot_refresh_token";
   2019 const char kCloudPrintRobotEmail[] = "cloud_print.robot_email";
   2020 // A boolean indicating whether we should connect to cloud print new printers.
   2021 const char kCloudPrintConnectNewPrinters[] =
   2022     "cloud_print.user_settings.connectNewPrinters";
   2023 // A boolean indicating whether we should ping XMPP connection.
   2024 const char kCloudPrintXmppPingEnabled[] = "cloud_print.xmpp_ping_enabled";
   2025 // An int value indicating the average timeout between xmpp pings.
   2026 const char kCloudPrintXmppPingTimeout[] = "cloud_print.xmpp_ping_timeout_sec";
   2027 // Dictionary with settings stored by connector setup page.
   2028 const char kCloudPrintUserSettings[] = "cloud_print.user_settings";
   2029 // List of printers settings.
   2030 extern const char kCloudPrintPrinters[] = "cloud_print.user_settings.printers";
   2031 // A boolean indicating whether submitting jobs to Google Cloud Print is
   2032 // blocked by policy.
   2033 const char kCloudPrintSubmitEnabled[] = "cloud_print.submit_enabled";
   2034 
   2035 // Preference to store proxy settings.
   2036 const char kProxy[] = "proxy";
   2037 const char kMaxConnectionsPerProxy[] = "net.max_connections_per_proxy";
   2038 
   2039 // Preferences that are exclusively used to store managed values for default
   2040 // content settings.
   2041 const char kManagedDefaultCookiesSetting[] =
   2042     "profile.managed_default_content_settings.cookies";
   2043 const char kManagedDefaultImagesSetting[] =
   2044     "profile.managed_default_content_settings.images";
   2045 const char kManagedDefaultJavaScriptSetting[] =
   2046     "profile.managed_default_content_settings.javascript";
   2047 const char kManagedDefaultPluginsSetting[] =
   2048     "profile.managed_default_content_settings.plugins";
   2049 const char kManagedDefaultPopupsSetting[] =
   2050     "profile.managed_default_content_settings.popups";
   2051 const char kManagedDefaultGeolocationSetting[] =
   2052     "profile.managed_default_content_settings.geolocation";
   2053 const char kManagedDefaultNotificationsSetting[] =
   2054     "profile.managed_default_content_settings.notifications";
   2055 const char kManagedDefaultMediaStreamSetting[] =
   2056     "profile.managed_default_content_settings.media_stream";
   2057 
   2058 // Preferences that are exclusively used to store managed
   2059 // content settings patterns.
   2060 const char kManagedCookiesAllowedForUrls[] =
   2061     "profile.managed_cookies_allowed_for_urls";
   2062 const char kManagedCookiesBlockedForUrls[] =
   2063     "profile.managed_cookies_blocked_for_urls";
   2064 const char kManagedCookiesSessionOnlyForUrls[] =
   2065     "profile.managed_cookies_sessiononly_for_urls";
   2066 const char kManagedImagesAllowedForUrls[] =
   2067     "profile.managed_images_allowed_for_urls";
   2068 const char kManagedImagesBlockedForUrls[] =
   2069     "profile.managed_images_blocked_for_urls";
   2070 const char kManagedJavaScriptAllowedForUrls[] =
   2071     "profile.managed_javascript_allowed_for_urls";
   2072 const char kManagedJavaScriptBlockedForUrls[] =
   2073     "profile.managed_javascript_blocked_for_urls";
   2074 const char kManagedPluginsAllowedForUrls[] =
   2075     "profile.managed_plugins_allowed_for_urls";
   2076 const char kManagedPluginsBlockedForUrls[] =
   2077     "profile.managed_plugins_blocked_for_urls";
   2078 const char kManagedPopupsAllowedForUrls[] =
   2079     "profile.managed_popups_allowed_for_urls";
   2080 const char kManagedPopupsBlockedForUrls[] =
   2081     "profile.managed_popups_blocked_for_urls";
   2082 const char kManagedNotificationsAllowedForUrls[] =
   2083     "profile.managed_notifications_allowed_for_urls";
   2084 const char kManagedNotificationsBlockedForUrls[] =
   2085     "profile.managed_notifications_blocked_for_urls";
   2086 const char kManagedAutoSelectCertificateForUrls[] =
   2087     "profile.managed_auto_select_certificate_for_urls";
   2088 
   2089 #if defined(OS_MACOSX)
   2090 // Set to true if the user removed our login item so we should not create a new
   2091 // one when uninstalling background apps.
   2092 const char kUserRemovedLoginItem[] = "background_mode.user_removed_login_item";
   2093 
   2094 // Set to true if Chrome already created a login item, so there's no need to
   2095 // create another one.
   2096 const char kChromeCreatedLoginItem[] =
   2097   "background_mode.chrome_created_login_item";
   2098 
   2099 // Set to true once we've initialized kChromeCreatedLoginItem for the first
   2100 // time.
   2101 const char kMigratedLoginItemPref[] =
   2102   "background_mode.migrated_login_item_pref";
   2103 
   2104 // A boolean that tracks whether to show a notification when trying to quit
   2105 // while there are apps running.
   2106 const char kNotifyWhenAppsKeepChromeAlive[] =
   2107     "apps.notify-when-apps-keep-chrome-alive";
   2108 #endif
   2109 
   2110 // Set to true if background mode is enabled on this browser.
   2111 const char kBackgroundModeEnabled[] = "background_mode.enabled";
   2112 
   2113 // Set to true if hardware acceleration mode is enabled on this browser.
   2114 const char kHardwareAccelerationModeEnabled[] =
   2115   "hardware_acceleration_mode.enabled";
   2116 
   2117 // Hardware acceleration mode from previous browser launch.
   2118 const char kHardwareAccelerationModePrevious[] =
   2119   "hardware_acceleration_mode_previous";
   2120 
   2121 // List of protocol handlers.
   2122 const char kRegisteredProtocolHandlers[] =
   2123   "custom_handlers.registered_protocol_handlers";
   2124 
   2125 // List of protocol handlers the user has requested not to be asked about again.
   2126 const char kIgnoredProtocolHandlers[] =
   2127   "custom_handlers.ignored_protocol_handlers";
   2128 
   2129 // List of protocol handlers registered by policy.
   2130 const char kPolicyRegisteredProtocolHandlers[] =
   2131     "custom_handlers.policy.registered_protocol_handlers";
   2132 
   2133 // List of protocol handlers the policy has requested to be ignored.
   2134 const char kPolicyIgnoredProtocolHandlers[] =
   2135     "custom_handlers.policy.ignored_protocol_handlers";
   2136 
   2137 // Whether user-specified handlers for protocols and content types can be
   2138 // specified.
   2139 const char kCustomHandlersEnabled[] = "custom_handlers.enabled";
   2140 
   2141 // Integer that specifies the policy refresh rate for device-policy in
   2142 // milliseconds. Not all values are meaningful, so it is clamped to a sane range
   2143 // by the cloud policy subsystem.
   2144 const char kDevicePolicyRefreshRate[] = "policy.device_refresh_rate";
   2145 
   2146 // A boolean where true means that the browser has previously attempted to
   2147 // enable autoupdate and failed, so the next out-of-date browser start should
   2148 // not prompt the user to enable autoupdate, it should offer to reinstall Chrome
   2149 // instead.
   2150 const char kAttemptedToEnableAutoupdate[] =
   2151     "browser.attempted_to_enable_autoupdate";
   2152 
   2153 // The next media gallery ID to assign.
   2154 const char kMediaGalleriesUniqueId[] = "media_galleries.gallery_id";
   2155 
   2156 // A list of dictionaries, where each dictionary represents a known media
   2157 // gallery.
   2158 const char kMediaGalleriesRememberedGalleries[] =
   2159     "media_galleries.remembered_galleries";
   2160 
   2161 // The last time a media scan completed.
   2162 const char kMediaGalleriesLastScanTime[] = "media_galleries.last_scan_time";
   2163 
   2164 #if defined(USE_ASH)
   2165 // |kShelfAlignment| and |kShelfAutoHideBehavior| have a local variant. The
   2166 // local variant is not synced and is used if set. If the local variant is not
   2167 // set its value is set from the synced value (once prefs have been
   2168 // synced). This gives a per-machine setting that is initialized from the last
   2169 // set value.
   2170 // These values are default on the machine but can be overridden by per-display
   2171 // values in kShelfPreferences (unless overridden by managed policy).
   2172 // String value corresponding to ash::Shell::ShelfAlignment.
   2173 const char kShelfAlignment[] = "shelf_alignment";
   2174 const char kShelfAlignmentLocal[] = "shelf_alignment_local";
   2175 // String value corresponding to ash::Shell::ShelfAutoHideBehavior.
   2176 const char kShelfAutoHideBehavior[] = "auto_hide_behavior";
   2177 const char kShelfAutoHideBehaviorLocal[] = "auto_hide_behavior_local";
   2178 // This value stores chrome icon's index in the launcher. This should be handled
   2179 // separately with app shortcut's index because of ShelfModel's backward
   2180 // compatibility. If we add chrome icon index to |kPinnedLauncherApps|, its
   2181 // index is also stored in the |kPinnedLauncherApp| pref. It may causes
   2182 // creating two chrome icons.
   2183 const char kShelfChromeIconIndex[] = "shelf_chrome_icon_index";
   2184 // Dictionary value that holds per-display preference of shelf alignment and
   2185 // auto-hide behavior. Key of the dictionary is the id of the display, and
   2186 // its value is a dictionary whose keys are kShelfAlignment and
   2187 // kShelfAutoHideBehavior.
   2188 const char kShelfPreferences[] = "shelf_preferences";
   2189 
   2190 // Integer value in milliseconds indicating the length of time for which a
   2191 // confirmation dialog should be shown when the user presses the logout button.
   2192 // A value of 0 indicates that logout should happen immediately, without showing
   2193 // a confirmation dialog.
   2194 const char kLogoutDialogDurationMs[] = "logout_dialog_duration_ms";
   2195 const char kPinnedLauncherApps[] = "pinned_launcher_apps";
   2196 // Boolean value indicating whether to show a logout button in the ash tray.
   2197 const char kShowLogoutButtonInTray[] = "show_logout_button_in_tray";
   2198 #endif
   2199 
   2200 #if defined(USE_AURA)
   2201 // Tuning settings for gestures.
   2202 const char kMaxSeparationForGestureTouchesInPixels[] =
   2203     "gesture.max_separation_for_gesture_touches_in_pixels";
   2204 const char kSemiLongPressTimeInSeconds[] =
   2205     "gesture.semi_long_press_time_in_seconds";
   2206 const char kTabScrubActivationDelayInMS[] =
   2207     "gesture.tab_scrub_activation_delay_in_ms";
   2208 const char kFlingMaxCancelToDownTimeInMs[] =
   2209     "gesture.fling_max_cancel_to_down_time_in_ms";
   2210 const char kFlingMaxTapGapTimeInMs[] =
   2211     "gesture.fling_max_tap_gap_time_in_ms";
   2212 const char kOverscrollHorizontalThresholdComplete[] =
   2213     "overscroll.horizontal_threshold_complete";
   2214 const char kOverscrollVerticalThresholdComplete[] =
   2215     "overscroll.vertical_threshold_complete";
   2216 const char kOverscrollMinimumThresholdStart[] =
   2217     "overscroll.minimum_threshold_start";
   2218 const char kOverscrollMinimumThresholdStartTouchpad[] =
   2219     "overscroll.minimum_threshold_start_touchpad";
   2220 const char kOverscrollVerticalThresholdStart[] =
   2221     "overscroll.vertical_threshold_start";
   2222 const char kOverscrollHorizontalResistThreshold[] =
   2223     "overscroll.horizontal_resist_threshold";
   2224 const char kOverscrollVerticalResistThreshold[] =
   2225     "overscroll.vertical_resist_threshold";
   2226 #endif
   2227 
   2228 // Counts how many more times the 'profile on a network share' warning should be
   2229 // shown to the user before the next silence period.
   2230 const char kNetworkProfileWarningsLeft[] = "network_profile.warnings_left";
   2231 // Tracks the time of the last shown warning. Used to reset
   2232 // |network_profile.warnings_left| after a silence period.
   2233 const char kNetworkProfileLastWarningTime[] =
   2234     "network_profile.last_warning_time";
   2235 
   2236 #if defined(OS_CHROMEOS)
   2237 // The RLZ brand code, if enabled.
   2238 const char kRLZBrand[] = "rlz.brand";
   2239 // Whether RLZ pings are disabled.
   2240 const char kRLZDisabled[] = "rlz.disabled";
   2241 #endif
   2242 
   2243 #if defined(ENABLE_APP_LIST)
   2244 // The directory in user data dir that contains the profile to be used with the
   2245 // app launcher.
   2246 const char kAppListProfile[] = "app_list.profile";
   2247 
   2248 // The number of times the app launcher was launched since last ping and
   2249 // the time of the last ping.
   2250 const char kAppListLaunchCount[] = "app_list.launch_count";
   2251 const char kLastAppListLaunchPing[] = "app_list.last_launch_ping";
   2252 
   2253 // The number of times the an app was launched from the app launcher since last
   2254 // ping and the time of the last ping.
   2255 const char kAppListAppLaunchCount[] = "app_list.app_launch_count";
   2256 const char kLastAppListAppLaunchPing[] = "app_list.last_app_launch_ping";
   2257 
   2258 // A boolean that tracks whether the user has ever enabled the app launcher.
   2259 const char kAppLauncherHasBeenEnabled[] =
   2260     "apps.app_launcher.has_been_enabled";
   2261 
   2262 // An enum indicating how the app launcher was enabled. E.g., via webstore, app
   2263 // install, command line, etc. For UMA.
   2264 const char kAppListEnableMethod[] = "app_list.how_enabled";
   2265 
   2266 // The time that the app launcher was enabled. Cleared when UMA is recorded.
   2267 const char kAppListEnableTime[] = "app_list.when_enabled";
   2268 
   2269 // TODO(calamity): remove this pref since app launcher will always be
   2270 // installed.
   2271 // Local state caching knowledge of whether the app launcher is installed.
   2272 const char kAppLauncherIsEnabled[] =
   2273     "apps.app_launcher.should_show_apps_page";
   2274 
   2275 // Integer representing the version of the app launcher shortcut installed on
   2276 // the system. Incremented, e.g., when embedded icons change.
   2277 const char kAppLauncherShortcutVersion[] = "apps.app_launcher.shortcut_version";
   2278 
   2279 // A boolean identifying if we should show the app launcher promo or not.
   2280 const char kShowAppLauncherPromo[] = "app_launcher.show_promo";
   2281 
   2282 // A dictionary that tracks the Drive app to Chrome app mapping. The key is
   2283 // a Drive app id and the value is the corresponding Chrome app id. The pref
   2284 // is unsynable and used to track local mappings only.
   2285 const char kAppLauncherDriveAppMapping[] =
   2286     "apps.app_launcher.drive_app_mapping";
   2287 #endif
   2288 
   2289 // If set, the user requested to launch the app with this extension id while
   2290 // in Metro mode, and then relaunched to Desktop mode to start it.
   2291 const char kAppLaunchForMetroRestart[] = "apps.app_launch_for_metro_restart";
   2292 
   2293 // Set with |kAppLaunchForMetroRestart|, the profile whose loading triggers
   2294 // launch of the specified app when restarting Chrome in desktop mode.
   2295 const char kAppLaunchForMetroRestartProfile[] =
   2296     "apps.app_launch_for_metro_restart_profile";
   2297 
   2298 // An integer that is incremented whenever changes are made to app shortcuts.
   2299 // Increasing this causes all app shortcuts to be recreated.
   2300 const char kAppShortcutsVersion[] = "apps.shortcuts_version";
   2301 
   2302 // How often the bubble has been shown.
   2303 extern const char kModuleConflictBubbleShown[] = "module_conflict.bubble_shown";
   2304 
   2305 // A string pref for storing the salt used to compute the pepper device ID.
   2306 const char kDRMSalt[] = "settings.privacy.drm_salt";
   2307 // A boolean pref that enables the (private) pepper GetDeviceID() call and
   2308 // enables the use of remote attestation for content protection.
   2309 const char kEnableDRM[] = "settings.privacy.drm_enabled";
   2310 
   2311 // An integer per-profile pref that signals if the watchdog extension is
   2312 // installed and active. We need to know if the watchdog extension active for
   2313 // ActivityLog initialization before the extension system is initialized.
   2314 const char kWatchdogExtensionActive[] =
   2315     "profile.extensions.activity_log.num_consumers_active";
   2316 // The old version was a bool.
   2317 const char kWatchdogExtensionActiveOld[] =
   2318     "profile.extensions.activity_log.watchdog_extension_active";
   2319 
   2320 #if defined(OS_ANDROID)
   2321 // A list of partner bookmark rename/remove mappings.
   2322 // Each list item is a dictionary containing a "url", a "provider_title" and
   2323 // "mapped_title" entries, detailing the bookmark target URL (if any), the title
   2324 // given by the PartnerBookmarksProvider and either the user-visible renamed
   2325 // title or an empty string if the bookmark node was removed.
   2326 const char kPartnerBookmarkMappings[] = "partnerbookmarks.mappings";
   2327 #endif
   2328 
   2329 // Whether DNS Quick Check is disabled in proxy resolution.
   2330 const char kQuickCheckEnabled[] = "proxy.quick_check_enabled";
   2331 
   2332 // Whether Guest Mode is enabled within the browser.
   2333 const char kBrowserGuestModeEnabled[] = "profile.browser_guest_enabled";
   2334 
   2335 // Whether Adding a new Person is enabled within the user manager.
   2336 const char kBrowserAddPersonEnabled[] = "profile.add_person_enabled";
   2337 
   2338 // A dictionary that maps user id to hardlock state.
   2339 const char kEasyUnlockHardlockState[] = "easy_unlock.hardlock_state";
   2340 
   2341 }  // namespace prefs
   2342