1 // Copyright 2019 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 package org.chromium.chrome.browser.preferences;
6 
7 import org.chromium.base.annotations.CheckDiscard;
8 
9 import java.util.Arrays;
10 import java.util.List;
11 
12 /**
13  * Contains String and {@link KeyPrefix} constants with the SharedPreferences keys used by Chrome.
14  *
15  * All Chrome layer SharedPreferences keys should be declared in this class.
16  *
17  * To add a new key:
18  * 1. Declare it as a String constant in this class. Its value should follow the format
19  *    "Chrome.[Feature].[Key]" and the constants names should be in alphabetical order.
20  * 2. Add it to {@link #getKeysInUse()}.
21  *
22  * To deprecate a key that is not used anymore:
23  * 1. Add its constant value to {@link DeprecatedChromePreferenceKeys#getKeysForTesting()}, in
24  * alphabetical order by value.
25  * 2. Remove the key from {@link #getKeysInUse()} or {@link
26  * GrandfatheredChromePreferenceKeys#getKeysInUse()}.
27  * 3. Delete the constant.
28  *
29  * To add a new KeyPrefix:
30  * 1. Declare it as a KeyPrefix constant in this class. Its value should follow the format
31  *    "Chrome.[Feature].[KeyPrefix].*" and the constants names should be in alphabetical order.
32  * 2. Add PREFIX_CONSTANT.pattern() to {@link #getKeysInUse()}}.
33  *
34  * To deprecate a KeyPrefix that is not used anymore:
35  * 1. Add its String value to {@link DeprecatedChromePreferenceKeys#getPrefixesForTesting()},
36  * including the ".*", in alphabetical order by value.
37  * 2. Remove it from {@link #getKeysInUse()} or {@link
38  * GrandfatheredChromePreferenceKeys#getPrefixesInUse()}.
39  * 3. Delete the KeyPrefix constant.
40  *
41  * Tests in ChromePreferenceKeysTest and checks in {@link ChromePreferenceKeyChecker} ensure the
42  * sanity of this file.
43  */
44 public final class ChromePreferenceKeys {
45     /**
46      * Whether the simplified tab switcher is enabled when accessibility mode is enabled. Keep in
47      * sync with accessibility_preferences.xml.
48      * Default value is true.
49      */
50     public static final String ACCESSIBILITY_TAB_SWITCHER = "accessibility_tab_switcher";
51 
52     public static final String ACCOUNT_PICKER_BOTTOM_SHEET_SHOWN_COUNT =
53             "Chrome.AccountPickerBottomSheet.ShownCount";
54 
55     /** The language code to override application language with. */
56     public static final String APPLICATION_OVERRIDE_LANGUAGE =
57             "Chrome.Language.ApplicationOverrideLanguage";
58 
59     public static final String APP_LOCALE = "locale";
60 
61     /** Assistant voice search keys. */
62     public static final String ASSISTANT_LAST_VERSION = "Chrome.Assistant.LastVersion";
63     public static final String ASSISTANT_VOICE_SEARCH_SUPPORTED = "Chrome.Assistant.Supported";
64     public static final String ASSISTANT_VOICE_SEARCH_ENABLED = "Chrome.Assistant.Enabled";
65 
66     /** Whether Autofill Assistant is enabled */
67     public static final String AUTOFILL_ASSISTANT_ENABLED = "autofill_assistant_switch";
68     /** Whether the Autofill Assistant onboarding has been accepted. */
69     public static final String AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED =
70             "AUTOFILL_ASSISTANT_ONBOARDING_ACCEPTED";
71     /** Whether the user has seen a lite-script before or is a first-time user. */
72     public static final String AUTOFILL_ASSISTANT_FIRST_TIME_LITE_SCRIPT_USER =
73             "Chrome.AutofillAssistant.LiteScriptFirstTimeUser";
74     /** The number of times a user has explicitly canceled a lite script. */
75     public static final String AUTOFILL_ASSISTANT_NUMBER_OF_LITE_SCRIPTS_CANCELED =
76             "Chrome.AutofillAssistant.NumberOfLiteScriptsCanceled";
77     /** Whether proactive help is enabled. */
78     public static final String AUTOFILL_ASSISTANT_PROACTIVE_HELP =
79             "Chrome.AutofillAssistant.ProactiveHelp";
80     /**
81      * LEGACY preference indicating whether "do not show again" was checked in the autofill
82      * assistant onboarding
83      */
84     public static final String AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN =
85             "AUTOFILL_ASSISTANT_SKIP_INIT_SCREEN";
86 
87     public static final String BACKUP_FIRST_BACKUP_DONE = "first_backup_done";
88 
89     public static final String BOOKMARKS_LAST_MODIFIED_FOLDER_ID = "last_bookmark_folder_id";
90     public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url";
91     public static final String BOOKMARKS_LAST_USED_PARENT =
92             "enhanced_bookmark_last_used_parent_folder";
93 
94     /**
95      * Whether Chrome is set as the default browser.
96      * Default value is false.
97      */
98     public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser";
99 
100     /**
101      * The URI of Chrome shared to Android system clibpoard, we only need this preference for the
102      * Android O and O_MR1 version.
103      */
104     public static final String CLIPBOARD_SHARED_URI = "Chrome.Clipboard.SharedUri";
105 
106     /**
107      * Saves a counter of how many continuous feature sessions in which a user has dismissed
108      * conditional tab strip.
109      */
110     public static final String CONDITIONAL_TAB_STRIP_CONTINUOUS_DISMISS_COUNTER =
111             "Chrome.ConditionalTabStrip.ContinuousDismissCounter";
112 
113     /**
114      * Saves the feature status of conditional tab strip.
115      */
116     public static final String CONDITIONAL_TAB_STRIP_FEATURE_STATUS =
117             "Chrome.ConditionalTabStrip.FeatureStatus";
118 
119     /**
120      * Saves the timestamp of the last time that conditional tab strip shows.
121      */
122     public static final String CONDITIONAL_TAB_STRIP_LAST_SHOWN_TIMESTAMP =
123             "Chrome.ConditionalTabStrip.LastShownTimeStamp";
124 
125     /**
126      * Saves whether a user has chosen to opt-out the conditional tab strip feature.
127      */
128     public static final String CONDITIONAL_TAB_STRIP_OPT_OUT = "Chrome.ConditionalTabStrip.OptOut";
129 
130     /**
131      * Marks that the content suggestions surface has been shown.
132      * Default value is false.
133      */
134     public static final String CONTENT_SUGGESTIONS_SHOWN = "content_suggestions_shown";
135 
136     /** An all-time counter of Contextual Search panel opens triggered by any gesture.*/
137     public static final String CONTEXTUAL_SEARCH_ALL_TIME_OPEN_COUNT =
138             "contextual_search_all_time_open_count";
139     /** An all-time counter of taps that triggered the Contextual Search peeking panel. */
140     public static final String CONTEXTUAL_SEARCH_ALL_TIME_TAP_COUNT =
141             "contextual_search_all_time_tap_count";
142     /**
143      * The number of times a tap gesture caused a Contextual Search Quick Answer to be shown.
144      * Cumulative, starting at M-69.
145      */
146     public static final String CONTEXTUAL_SEARCH_ALL_TIME_TAP_QUICK_ANSWER_COUNT =
147             "contextual_search_all_time_tap_quick_answer_count";
148     public static final KeyPrefix CONTEXTUAL_SEARCH_CLICKS_WEEK_PREFIX =
149             new KeyPrefix("contextual_search_clicks_week_*");
150     public static final String CONTEXTUAL_SEARCH_CURRENT_WEEK_NUMBER =
151             "contextual_search_current_week_number";
152     /**
153      * The entity-data impressions count for Contextual Search, i.e. thumbnails shown in the Bar.
154      * Cumulative, starting at M-69.
155      */
156     public static final String CONTEXTUAL_SEARCH_ENTITY_IMPRESSIONS_COUNT =
157             "contextual_search_entity_impressions_count";
158     /**
159      * The entity-data opens count for Contextual Search, e.g. Panel opens following thumbnails
160      * shown in the Bar. Cumulative, starting at M-69.
161      */
162     public static final String CONTEXTUAL_SEARCH_ENTITY_OPENS_COUNT =
163             "contextual_search_entity_opens_count";
164     public static final KeyPrefix CONTEXTUAL_SEARCH_IMPRESSIONS_WEEK_PREFIX =
165             new KeyPrefix("contextual_search_impressions_week_*");
166     public static final String CONTEXTUAL_SEARCH_LAST_ANIMATION_TIME =
167             "contextual_search_last_animation_time";
168     public static final String CONTEXTUAL_SEARCH_NEWEST_WEEK = "contextual_search_newest_week";
169     public static final String CONTEXTUAL_SEARCH_OLDEST_WEEK = "contextual_search_oldest_week";
170     /**
171      * An encoded set of outcomes of user interaction with Contextual Search, stored as an int.
172      */
173     public static final String CONTEXTUAL_SEARCH_PREVIOUS_INTERACTION_ENCODED_OUTCOMES =
174             "contextual_search_previous_interaction_encoded_outcomes";
175     /**
176      * A user interaction event ID for interaction with Contextual Search, stored as a long.
177      */
178     public static final String CONTEXTUAL_SEARCH_PREVIOUS_INTERACTION_EVENT_ID =
179             "contextual_search_previous_interaction_event_id";
180     /**
181      * A timestamp indicating when we updated the user interaction with Contextual Search, stored
182      * as a long, with resolution in days.
183      */
184     public static final String CONTEXTUAL_SEARCH_PREVIOUS_INTERACTION_TIMESTAMP =
185             "contextual_search_previous_interaction_timestamp";
186     /**
187      * The number of times the Contextual Search panel was opened with the opt-in promo visible.
188      */
189     public static final String CONTEXTUAL_SEARCH_PROMO_OPEN_COUNT =
190             "contextual_search_promo_open_count";
191     /**
192      * The Quick Actions ignored count, i.e. phone numbers available but not dialed.
193      * Cumulative, starting at M-69.
194      */
195     public static final String CONTEXTUAL_SEARCH_QUICK_ACTIONS_IGNORED_COUNT =
196             "contextual_search_quick_actions_ignored_count";
197     /**
198      * The Quick Actions taken count for Contextual Search, i.e. phone numbers dialed and similar
199      * actions. Cumulative, starting at M-69.
200      */
201     public static final String CONTEXTUAL_SEARCH_QUICK_ACTIONS_TAKEN_COUNT =
202             "contextual_search_quick_actions_taken_count";
203     /**
204      * The Quick Action impressions count for Contextual Search, i.e. actions presented in the Bar.
205      * Cumulative, starting at M-69.
206      */
207     public static final String CONTEXTUAL_SEARCH_QUICK_ACTION_IMPRESSIONS_COUNT =
208             "contextual_search_quick_action_impressions_count";
209     /**
210      * The number of times that a tap triggered the Contextual Search panel to peek since the last
211      * time the panel was opened.  Note legacy string value without "open".
212      */
213     public static final String CONTEXTUAL_SEARCH_TAP_SINCE_OPEN_COUNT =
214             "contextual_search_tap_count";
215     /**
216      * The number of times a tap gesture caused a Contextual Search Quick Answer to be shown since
217      * the last time the panel was opened.  Note legacy string value without "open".
218      */
219     public static final String CONTEXTUAL_SEARCH_TAP_SINCE_OPEN_QUICK_ANSWER_COUNT =
220             "contextual_search_tap_quick_answer_count";
221     public static final String CONTEXTUAL_SEARCH_TAP_TRIGGERED_PROMO_COUNT =
222             "contextual_search_tap_triggered_promo_count";
223 
224     /**
225      * Keys that indicates if an item in the context menu has been clicked or not.
226      * Used to hide the "new" tag for the items after they are clicked.
227      */
228     public static final String CONTEXT_MENU_OPEN_IMAGE_IN_EPHEMERAL_TAB_CLICKED =
229             "Chrome.Contextmenu.OpenImageInEphemeralTabClicked";
230     public static final String CONTEXT_MENU_OPEN_IN_EPHEMERAL_TAB_CLICKED =
231             "Chrome.Contextmenu.OpenInEphemeralTabClicked";
232     public static final String CONTEXT_MENU_SEARCH_WITH_GOOGLE_LENS_CLICKED =
233             "Chrome.ContextMenu.SearchWithGoogleLensClicked";
234 
235     public static final String CONTEXT_MENU_SHOP_SIMILAR_PRODUCTS_CLICKED =
236             "Chrome.ContextMenu.ShopSimilarProductsClicked";
237 
238     public static final String CONTEXT_MENU_SHOP_IMAGE_WITH_GOOGLE_LENS_CLICKED =
239             "Chrome.ContextMenu.ShopImageWithGoogleLensClicked";
240 
241     public static final String CONTEXT_MENU_SEARCH_SIMILAR_PRODUCTS_CLICKED =
242             "Chrome.ContextMenu.SearchSimilarProductsClicked";
243 
244     public static final String CRASH_UPLOAD_FAILURE_BROWSER = "browser_crash_failure_upload";
245     public static final String CRASH_UPLOAD_FAILURE_GPU = "gpu_crash_failure_upload";
246     public static final String CRASH_UPLOAD_FAILURE_OTHER = "other_crash_failure_upload";
247     public static final String CRASH_UPLOAD_FAILURE_RENDERER = "renderer_crash_failure_upload";
248     public static final String CRASH_UPLOAD_SUCCESS_BROWSER = "browser_crash_success_upload";
249     public static final String CRASH_UPLOAD_SUCCESS_GPU = "gpu_crash_success_upload";
250     public static final String CRASH_UPLOAD_SUCCESS_OTHER = "other_crash_success_upload";
251     public static final String CRASH_UPLOAD_SUCCESS_RENDERER = "renderer_crash_success_upload";
252 
253     public static final String CRYPTID_LAST_RENDER_TIMESTAMP = "Chrome.Cryptid.LastRenderTimestamp";
254 
255     public static final KeyPrefix CUSTOM_TABS_DEX_LAST_UPDATE_TIME_PREF_PREFIX =
256             new KeyPrefix("pref_local_custom_tabs_module_dex_last_update_time_*");
257     public static final String CUSTOM_TABS_LAST_URL = "pref_last_custom_tab_url";
258 
259     /**
260      * Key used to save the time in milliseconds since epoch that the first run experience or second
261      * run promo was shown.
262      */
263     public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_TIME_MS =
264             "displayed_data_reduction_promo_time_ms";
265     /**
266      * Key used to save the Chrome version the first run experience or second run promo was shown
267      * in.
268      */
269     public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_PROMO_VERSION =
270             "displayed_data_reduction_promo_version";
271     /**
272      * Key used to save whether the first run experience or second run promo screen has been shown.
273      */
274     public static final String DATA_REDUCTION_DISPLAYED_FRE_OR_SECOND_RUN_PROMO =
275             "displayed_data_reduction_promo";
276     /**
277      * Key used to save whether the infobar promo has been shown.
278      */
279     public static final String DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO =
280             "displayed_data_reduction_infobar_promo";
281     /**
282      * Key used to save the Chrome version the infobar promo was shown in.
283      */
284     public static final String DATA_REDUCTION_DISPLAYED_INFOBAR_PROMO_VERSION =
285             "displayed_data_reduction_infobar_promo_version";
286     /**
287      * Key used to save the saved bytes when the milestone promo was last shown. This value is
288      * initialized to the bytes saved for data saver users that had data saver turned on when this
289      * pref was added. This prevents us from showing promo for savings that have already happened
290      * for existing users.
291      * Note: For historical reasons, this pref key is misnamed. This promotion used to be conveyed
292      * in a snackbar but was moved to an IPH in M74.
293      */
294     public static final String DATA_REDUCTION_DISPLAYED_MILESTONE_PROMO_SAVED_BYTES =
295             "displayed_data_reduction_snackbar_promo_saved_bytes";
296 
297     // Visible for backup and restore
298     public static final String DATA_REDUCTION_ENABLED = "BANDWIDTH_REDUCTION_PROXY_ENABLED";
299     public static final String DATA_REDUCTION_FIRST_ENABLED_TIME =
300             "BANDWIDTH_REDUCTION_FIRST_ENABLED_TIME";
301     /**
302      * Key used to save whether the user opted out of the data reduction proxy in the FRE promo.
303      */
304     public static final String DATA_REDUCTION_FRE_PROMO_OPT_OUT = "fre_promo_opt_out";
305     /**
306      * Key used to save the date on which the site breakdown should be shown. If the user has
307      * historical data saver stats, the site breakdown cannot be shown for MAXIMUM_DAYS_IN_CHART.
308      */
309     public static final String DATA_REDUCTION_SITE_BREAKDOWN_ALLOWED_DATE =
310             "data_reduction_site_breakdown_allowed_date";
311 
312     /**
313      * Keys used to save whether it is ready to promo.
314      */
315     public static final String DEFAULT_BROWSER_PROMO_SESSION_COUNT =
316             "Chrome.DefaultBrowserPromo.SessionCount";
317     public static final String DEFAULT_BROWSER_PROMO_PROMOED_COUNT =
318             "Chrome.DefaultBrowserPromo.PromoedCount";
319     public static final String DEFAULT_BROWSER_PROMO_LAST_DEFAULT_STATE =
320             "Chrome.DefaultBrowserPromo.LastDefaultState";
321     public static final String DEFAULT_BROWSER_PROMO_LAST_PROMO_TIME =
322             "Chrome.DefaultBrowserPromo.LastPromoTime";
323     public static final String DEFAULT_BROWSER_PROMO_PROMOED_BY_SYSTEM_SETTINGS =
324             "Chrome.DefaultBrowserPromo.PromoedBySystemSettings";
325 
326     public static final String DOWNLOAD_AUTO_RESUMPTION_ATTEMPT_LEFT = "ResumptionAttemptLeft";
327     public static final String DOWNLOAD_FOREGROUND_SERVICE_OBSERVERS = "ForegroundServiceObservers";
328     public static final String DOWNLOAD_IS_DOWNLOAD_HOME_ENABLED =
329             "org.chromium.chrome.browser.download.IS_DOWNLOAD_HOME_ENABLED";
330     public static final String DOWNLOAD_NEXT_DOWNLOAD_NOTIFICATION_ID =
331             "NextDownloadNotificationId";
332     public static final String DOWNLOAD_PENDING_DOWNLOAD_NOTIFICATIONS =
333             "PendingDownloadNotifications";
334     public static final String DOWNLOAD_PENDING_OMA_DOWNLOADS = "PendingOMADownloads";
335     public static final String DOWNLOAD_UMA_ENTRY = "DownloadUmaEntry";
336 
337     /**
338      * Indicates whether or not there are prefetched content in chrome that can be viewed offline.
339      */
340     public static final String EXPLORE_OFFLINE_CONTENT_AVAILABILITY_STATUS =
341             "Chrome.NTPExploreOfflineCard.HasExploreOfflineContent";
342 
343     /**
344      * The Feed articles visibility. This value is used as a pre-native cache and should be kept
345      * consistent with {@link Pref.ARTICLES_LIST_VISIBLE}.
346      */
347     public static final String FEED_ARTICLES_LIST_VISIBLE = "Chrome.Feed.ArticlesListVisible";
348     public static final String FEED_PLACEHOLDER_DENSE = "Chrome.Feed.PlaceholderIsDense";
349 
350     public static final String FIRST_RUN_CACHED_TOS_ACCEPTED = "first_run_tos_accepted";
351     public static final String FIRST_RUN_FLOW_COMPLETE = "first_run_flow";
352     public static final String FIRST_RUN_FLOW_SIGNIN_ACCOUNT_NAME = "first_run_signin_account_name";
353     public static final String FIRST_RUN_FLOW_SIGNIN_COMPLETE = "first_run_signin_complete";
354     // Needed by ChromeBackupAgent
355     public static final String FIRST_RUN_FLOW_SIGNIN_SETUP = "first_run_signin_setup";
356     public static final String FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE = "lightweight_first_run_flow";
357     public static final String FIRST_RUN_SKIP_WELCOME_PAGE = "skip_welcome_page";
358 
359     /**
360      * Cached feature flags generated by CachedFeatureFlags use this prefix.
361      */
362     public static final KeyPrefix FLAGS_CACHED = new KeyPrefix("Chrome.Flags.CachedFlag.*");
363 
364     /**
365      * Cached field trial parameters generated by CachedFeatureFlags use this prefix.
366      */
367     public static final KeyPrefix FLAGS_FIELD_TRIAL_PARAM_CACHED =
368             new KeyPrefix("Chrome.Flags.FieldTrialParamCached.*");
369 
370     /**
371      * Whether or not the adaptive toolbar is enabled.
372      * Default value is true.
373      */
374     public static final String FLAGS_CACHED_ADAPTIVE_TOOLBAR_ENABLED = "adaptive_toolbar_enabled";
375 
376     /**
377      * Whether or not command line on non-rooted devices is enabled.
378      * Default value is false.
379      */
380     public static final String FLAGS_CACHED_COMMAND_LINE_ON_NON_ROOTED_ENABLED =
381             "command_line_on_non_rooted_enabled";
382     /**
383      * Whether or not the download auto-resumption is enabled in native.
384      * Default value is true.
385      */
386     public static final String FLAGS_CACHED_DOWNLOAD_AUTO_RESUMPTION_IN_NATIVE =
387             "download_auto_resumption_in_native";
388     /**
389      * Whether or not the grid tab switcher is enabled.
390      * Default value is false.
391      */
392     public static final String FLAGS_CACHED_GRID_TAB_SWITCHER_ENABLED = "grid_tab_switcher_enabled";
393     /**
394      * Key to cache whether immersive ui mode is enabled.
395      */
396     public static final String FLAGS_CACHED_IMMERSIVE_UI_MODE_ENABLED = "immersive_ui_mode_enabled";
397     /**
398      * Whether warming up network service is enabled.
399      * Default value is false.
400      */
401     public static final String FLAGS_CACHED_NETWORK_SERVICE_WARM_UP_ENABLED =
402             "network_service_warm_up_enabled";
403     /**
404      * Whether or not bootstrap tasks should be prioritized (i.e. bootstrap task prioritization
405      * experiment is enabled). Default value is true.
406      */
407     public static final String FLAGS_CACHED_PRIORITIZE_BOOTSTRAP_TASKS =
408             "prioritize_bootstrap_tasks";
409     /**
410      * Key for whether PrefetchBackgroundTask should load native in service manager only mode.
411      * Default value is false.
412      */
413     public static final String FLAGS_CACHED_SERVICE_MANAGER_FOR_BACKGROUND_PREFETCH =
414             "service_manager_for_background_prefetch";
415     /**
416      * Key for whether DownloadResumptionBackgroundTask should load native in service manager only
417      * mode.
418      * Default value is false.
419      */
420     public static final String FLAGS_CACHED_SERVICE_MANAGER_FOR_DOWNLOAD_RESUMPTION =
421             "service_manager_for_download_resumption";
422     /**
423      * Whether or not the start surface is enabled.
424      * Default value is false.
425      */
426     public static final String FLAGS_CACHED_START_SURFACE_ENABLED = "start_surface_enabled";
427 
428     /**
429      * Key to cache whether SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT is enabled.
430      */
431     public static final String FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT =
432             "swap_pixel_format_to_fix_convert_from_translucent";
433     /**
434      * Whether or not the tab group is enabled.
435      * Default value is false.
436      */
437     public static final String FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED =
438             "tab_group_android_enabled";
439 
440     public static final String FONT_USER_FONT_SCALE_FACTOR = "user_font_scale_factor";
441     public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
442 
443     public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
444 
445     /** Keys used to save settings related to homepage. */
446     public static final String HOMEPAGE_CUSTOM_URI = "homepage_custom_uri";
447     public static final String HOMEPAGE_ENABLED = "homepage";
448     public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
449     public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
450 
451     /**
452      * Key used to save homepage location set by enterprise policy
453      */
454     public static final String HOMEPAGE_LOCATION_POLICY = "Chrome.Policy.HomepageLocation";
455 
456     /**
457      * Used for get image descriptions feature, track "Just once"/"Don't ask again" choice.
458      */
459     public static final String IMAGE_DESCRIPTIONS_JUST_ONCE_COUNT =
460             "Chrome.ImageDescriptions.JustOnceCount";
461     public static final String IMAGE_DESCRIPTIONS_DONT_ASK_AGAIN =
462             "Chrome.ImageDescriptions.DontAskAgain";
463 
464     public static final String INCOGNITO_SHORTCUT_ADDED = "incognito-shortcut-added";
465 
466     /**
467      * When the user is shown a badge that the current Android OS version is unsupported, and they
468      * tap it to display the menu (which has additional information), we store the current version
469      * of Chrome to this preference to ensure we only show the badge once. The value is cleared
470      * if the Chrome version later changes.
471      */
472     public static final String LATEST_UNSUPPORTED_VERSION = "android_os_unsupported_chrome_version";
473 
474     public static final String LOCALE_MANAGER_AUTO_SWITCH = "LocaleManager_PREF_AUTO_SWITCH";
475     public static final String LOCALE_MANAGER_PROMO_SHOWN = "LocaleManager_PREF_PROMO_SHOWN";
476     public static final String LOCALE_MANAGER_SEARCH_ENGINE_PROMO_SHOW_STATE =
477             "com.android.chrome.SEARCH_ENGINE_PROMO_SHOWN";
478     public static final String LOCALE_MANAGER_WAS_IN_SPECIAL_LOCALE =
479             "LocaleManager_WAS_IN_SPECIAL_LOCALE";
480 
481     public static final String MEDIA_WEBRTC_NOTIFICATION_IDS = "WebRTCNotificationIds";
482 
483     public static final String METRICS_MAIN_INTENT_LAUNCH_COUNT = "MainIntent.LaunchCount";
484     public static final String METRICS_MAIN_INTENT_LAUNCH_TIMESTAMP = "MainIntent.LaunchTimestamp";
485 
486     public static final String NOTIFICATIONS_CHANNELS_VERSION = "channels_version_key";
487     public static final String NOTIFICATIONS_LAST_SHOWN_NOTIFICATION_TYPE =
488             "NotificationUmaTracker.LastShownNotificationType";
489     public static final String NOTIFICATIONS_NEXT_TRIGGER =
490             "notification_trigger_scheduler.next_trigger";
491 
492     public static final String NTP_SNIPPETS_IS_SCHEDULED = "ntp_snippets.is_scheduled";
493 
494     // Name of an application preference variable used to track whether or not the in-progress
495     // notification is being shown. This is an alternative to
496     // NotificationManager.getActiveNotifications, which isn't available prior to API level 23.
497     public static final String OFFLINE_AUTO_FETCH_SHOWING_IN_PROGRESS =
498             "offline_auto_fetch_showing_in_progress";
499     // The application preference variable which is set to the NotificationAction that triggered the
500     // cancellation, when a cancellation is requested by the user.
501     public static final String OFFLINE_AUTO_FETCH_USER_CANCEL_ACTION_IN_PROGRESS =
502             "offline_auto_fetch_user_cancel_action_in_progress";
503 
504     /**
505      * Key to cache whether offline indicator v2 (persistent offline indicator) is enabled.
506      */
507     public static final String OFFLINE_INDICATOR_V2_ENABLED = "offline_indicator_v2_enabled";
508 
509     /** The shared preference for the 'save card to device' checkbox status. */
510     public static final String PAYMENTS_CHECK_SAVE_CARD_TO_DEVICE = "check_save_card_to_device";
511 
512     /** Prefix of the preferences to persist use count of the payment instruments. */
513     public static final KeyPrefix PAYMENTS_PAYMENT_INSTRUMENT_USE_COUNT =
514             new KeyPrefix("payment_instrument_use_count_*");
515 
516     /** Prefix of the preferences to persist last use date of the payment instruments. */
517     public static final KeyPrefix PAYMENTS_PAYMENT_INSTRUMENT_USE_DATE =
518             new KeyPrefix("payment_instrument_use_date_*");
519 
520     /** Preference to indicate whether payment request has been completed successfully once.*/
521     public static final String PAYMENTS_PAYMENT_COMPLETE_ONCE = "payment_complete_once";
522 
523     /**
524      * Indicates whether or not there is any persistent (i.e. non-transient) content in chrome that
525      * can be viewed offline.
526      */
527     public static final String PERSISTENT_OFFLINE_CONTENT_AVAILABILITY_STATUS =
528             "Chrome.OfflineIndicatorV2.HasPersistentOfflineContent";
529 
530     public static final String PREFETCH_HAS_NEW_PAGES = "prefetch_notification_has_new_pages";
531     public static final String PREFETCH_IGNORED_NOTIFICATION_COUNTER =
532             "prefetch_notification_ignored_counter";
533     public static final String PREFETCH_NOTIFICATION_ENABLED = "prefetch_notification_enabled";
534     public static final String PREFETCH_NOTIFICATION_TIME = "prefetch_notification_shown_time";
535     public static final String PREFETCH_OFFLINE_COUNTER = "prefetch_notification_offline_counter";
536 
537     /**
538      * Whether users disable the PriceWelcomeMessageCard.
539      */
540     public static final String PRICE_TRACKING_PRICE_WELCOME_MESSAGE_CARD =
541             "Chrome.PriceTracking.PriceWelcome";
542     /**
543      * Whether users turn on the feature track prices on tabs.
544      */
545     public static final String PRICE_TRACKING_TRACK_PRICES_ON_TABS =
546             "Chrome.PriceTracking.TrackPricesOnTabs";
547 
548     public static final String PRIVACY_METRICS_REPORTING = "metrics_reporting";
549     public static final String PRIVACY_METRICS_IN_SAMPLE = "in_metrics_sample";
550     public static final String PRIVACY_NETWORK_PREDICTIONS = "network_predictions";
551     public static final String PRIVACY_BANDWIDTH_OLD = "prefetch_bandwidth";
552     public static final String PRIVACY_BANDWIDTH_NO_CELLULAR_OLD = "prefetch_bandwidth_no_cellular";
553     public static final String PRIVACY_ALLOW_PRERENDER_OLD = "allow_prefetch";
554 
555     public static final String PROFILES_BOOT_TIMESTAMP =
556             "com.google.android.apps.chrome.ChromeMobileApplication.BOOT_TIMESTAMP";
557 
558     /**
559      * Key prefix for base promo component. Used in {@link
560      * org.chromium.components.browser_ui.widget.promo.PromoCardCoordinator} to store related state
561      * or statistics.
562      */
563     public static final KeyPrefix PROMO_IS_DISMISSED =
564             new KeyPrefix("Chrome.PromoCard.IsDismissed.*");
565     public static final KeyPrefix PROMO_TIMES_SEEN = new KeyPrefix("Chrome.PromoCard.TimesSeen.*");
566 
567     /**
568      * Whether the promotion for data reduction has been skipped on first invocation.
569      * Default value is false.
570      */
571     public static final String PROMOS_SKIPPED_ON_FIRST_START = "promos_skipped_on_first_start";
572 
573     /**
574      * Contains a trial group that was used to determine whether the reached code profiler should be
575      * enabled.
576      */
577     public static final String REACHED_CODE_PROFILER_GROUP = "reached_code_profiler_group";
578 
579     public static final String RLZ_NOTIFIED = "rlz_first_search_notified";
580 
581     /** Key used to store the default Search Engine Type before choice is presented. */
582     public static final String SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE =
583             "search_engine_choice_default_type_before";
584     /** Key used to store the version of Chrome in which the choice was presented. */
585     public static final String SEARCH_ENGINE_CHOICE_PRESENTED_VERSION =
586             "search_engine_choice_presented_version";
587     /** Key used to store the date of when search engine choice was requested. */
588     public static final String SEARCH_ENGINE_CHOICE_REQUESTED_TIMESTAMP =
589             "search_engine_choice_requested_timestamp";
590 
591     public static final String SEARCH_WIDGET_IS_VOICE_SEARCH_AVAILABLE =
592             "org.chromium.chrome.browser.searchwidget.IS_VOICE_SEARCH_AVAILABLE";
593     public static final String SEARCH_WIDGET_NUM_CONSECUTIVE_CRASHES =
594             "org.chromium.chrome.browser.searchwidget.NUM_CONSECUTIVE_CRASHES";
595     public static final String SEARCH_WIDGET_SEARCH_ENGINE_SHORTNAME =
596             "org.chromium.chrome.browser.searchwidget.SEARCH_ENGINE_SHORTNAME";
597 
598     // Tracks which GUIDs there is an active notification for.
599     public static final String SEND_TAB_TO_SELF_ACTIVE_NOTIFICATIONS =
600             "send_tab_to_self.notification.active";
601     public static final String SEND_TAB_TO_SELF_NEXT_NOTIFICATION_ID =
602             "send_tab_to_self.notification.next_id";
603 
604     public static final String SETTINGS_DEVELOPER_ENABLED = "developer";
605     public static final String SETTINGS_DEVELOPER_TRACING_CATEGORIES = "tracing_categories";
606     public static final String SETTINGS_DEVELOPER_TRACING_MODE = "tracing_mode";
607 
608     /**
609      * SharedPreference name for the preference that disables signing out of Chrome.
610      * Signing out is forever disabled once Chrome signs the user in automatically
611      * if the device has a child account or if the device is an Android EDU device.
612      */
613     public static final String SETTINGS_SYNC_SIGN_OUT_ALLOWED = "auto_signed_in_school_account";
614 
615     public static final String SETTINGS_PRIVACY_OTHER_FORMS_OF_HISTORY_DIALOG_SHOWN =
616             "org.chromium.chrome.browser.settings.privacy."
617             + "PREF_OTHER_FORMS_OF_HISTORY_DIALOG_SHOWN";
618 
619     /** Stores the timestamp of the last performed Safety check. */
620     public static final String SETTINGS_SAFETY_CHECK_LAST_RUN_TIMESTAMP =
621             "Chrome.SafetyCheck.LastRunTimestamp";
622 
623     /** Stores the number of times the user has performed Safety check. */
624     public static final String SETTINGS_SAFETY_CHECK_RUN_COUNTER = "Chrome.SafetyCheck.RunCounter";
625 
626     public static final String SETTINGS_WEBSITE_FAILED_BUILD_VERSION =
627             "ManagedSpace.FailedBuildVersion";
628 
629     public static final String SHARING_LAST_SHARED_CLASS_NAME = "last_shared_class_name";
630     public static final String SHARING_LAST_SHARED_PACKAGE_NAME = "last_shared_package_name";
631 
632     public static final String SIGNIN_ACCOUNTS_CHANGED = "prefs_sync_accounts_changed";
633 
634     /**
635      * Holds the new account's name if the currently signed in account has been renamed.
636      */
637     public static final String SIGNIN_ACCOUNT_RENAMED = "prefs_sync_account_renamed";
638 
639     /**
640      * Holds the last read index of all the account changed events of the current signed in account.
641      */
642     public static final String SIGNIN_ACCOUNT_RENAME_EVENT_INDEX =
643             "prefs_sync_account_rename_event_index";
644 
645     /**
646      * Generic signin and sync promo preferences.
647      */
648     public static final String SIGNIN_AND_SYNC_PROMO_SHOW_COUNT =
649             "enhanced_bookmark_signin_promo_show_count";
650 
651     public static final String SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS =
652             "signin_promo_impressions_count_bookmarks";
653     public static final String SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP =
654             "Chrome.SigninPromo.NTPImpressions";
655     public static final String SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS =
656             "signin_promo_impressions_count_settings";
657     public static final String SIGNIN_PROMO_LAST_SHOWN_ACCOUNT_NAMES =
658             "signin_promo_last_shown_account_names";
659     public static final String SIGNIN_PROMO_LAST_SHOWN_MAJOR_VERSION =
660             "signin_promo_last_shown_chrome_version";
661     /**
662      * Whether the user dismissed the personalized sign in promo from the new tab page.
663      * Default value is false.
664      */
665     public static final String SIGNIN_PROMO_NTP_PROMO_DISMISSED =
666             "ntp.personalized_signin_promo_dismissed";
667     public static final String SIGNIN_PROMO_NTP_PROMO_SUPPRESSION_PERIOD_START =
668             "ntp.signin_promo_suppression_period_start";
669     /**
670      * Personalized signin promo preference.
671      */
672     public static final String SIGNIN_PROMO_PERSONALIZED_DECLINED =
673             "signin_promo_bookmarks_declined";
674     /**
675      * Whether the user dismissed the personalized sign in promo from the Settings.
676      * Default value is false.
677      */
678     public static final String SIGNIN_PROMO_SETTINGS_PERSONALIZED_DISMISSED =
679             "settings_personalized_signin_promo_dismissed";
680 
681     // TODO(https://crbug.com/1091858): Remove this after migrating the legacy code that uses
682     //                                  the sync account before the native is loaded.
683     public static final String SIGNIN_LEGACY_SYNC_ACCOUNT_EMAIL = "google.services.username";
684 
685     public static final String SNAPSHOT_DATABASE_REMOVED = "snapshot_database_removed";
686 
687     public static final String SURVEY_DATE_LAST_ROLLED = "last_rolled_for_chrome_survey_key";
688     /**
689      *  The survey questions for this survey are the same as those in the survey used for Chrome
690      *  Home, so we reuse the old infobar key to prevent the users from seeing the same survey more
691      *  than once.
692      */
693     public static final String SURVEY_INFO_BAR_DISPLAYED = "chrome_home_survey_info_bar_displayed";
694 
695     public static final String SYNC_SESSIONS_UUID = "chromium.sync.sessions.id";
696 
697     public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF =
698             "ChromeTabbedActivity.BackgroundTimeMs";
699 
700     public static final String TABMODEL_ACTIVE_TAB_ID =
701             "org.chromium.chrome.browser.tabmodel.TabPersistentStore.ACTIVE_TAB_ID";
702     public static final String TABMODEL_HAS_COMPUTED_MAX_ID =
703             "org.chromium.chrome.browser.tabmodel.TabPersistentStore.HAS_COMPUTED_MAX_ID";
704     public static final String TABMODEL_HAS_RUN_FILE_MIGRATION =
705             "org.chromium.chrome.browser.tabmodel.TabPersistentStore.HAS_RUN_FILE_MIGRATION";
706     public static final String TABMODEL_HAS_RUN_MULTI_INSTANCE_FILE_MIGRATION =
707             "org.chromium.chrome.browser.tabmodel.TabPersistentStore."
708             + "HAS_RUN_MULTI_INSTANCE_FILE_MIGRATION";
709 
710     public static final String TAB_ID_MANAGER_NEXT_ID =
711             "org.chromium.chrome.browser.tab.TabIdManager.NEXT_ID";
712 
713     public static final String TOS_ACKED_ACCOUNTS = "ToS acknowledged accounts";
714 
715     /**
716      * Keys for deferred recording of the outcomes of showing the clear data dialog after
717      * Trusted Web Activity client apps are uninstalled or have their data cleared.
718      */
719     public static final String TWA_DIALOG_NUMBER_OF_DISMISSALS_ON_CLEAR_DATA =
720             "twa_dialog_number_of_dismissals_on_clear_data";
721     public static final String TWA_DIALOG_NUMBER_OF_DISMISSALS_ON_UNINSTALL =
722             "twa_dialog_number_of_dismissals_on_uninstall";
723     public static final String TWA_DISCLOSURE_ACCEPTED_PACKAGES =
724             "trusted_web_activity_disclosure_accepted_packages";
725     public static final String TWA_DISCLOSURE_SEEN_PACKAGES =
726             "Chrome.TrustedWebActivities.DisclosureAcceptedPackages";
727 
728     /**
729      * Whether or not darken websites is enabled.
730      * Default value is false.
731      */
732     public static final String UI_THEME_DARKEN_WEBSITES_ENABLED = "darken_websites_enabled";
733     /**
734      * The current theme setting in the user settings.
735      * Default value is -1. Use NightModeUtils#getThemeSetting() to retrieve current setting or
736      * default theme.
737      */
738     public static final String UI_THEME_SETTING = "ui_theme_setting";
739 
740     public static final String VERIFIED_DIGITAL_ASSET_LINKS = "verified_digital_asset_links";
741 
742     public static final String VIDEO_TUTORIALS_SHARE_URL_SET = "Chrome.VideoTutorials.ShareUrls";
743     public static final String VR_EXIT_TO_2D_COUNT = "VR_EXIT_TO_2D_COUNT";
744     public static final String VR_FEEDBACK_OPT_OUT = "VR_FEEDBACK_OPT_OUT";
745 
746     /**
747      * Whether VR assets component should be registered on startup.
748      * Default value is false.
749      */
750     public static final String VR_SHOULD_REGISTER_ASSETS_COMPONENT_ON_STARTUP =
751             "should_register_vr_assets_component_on_startup";
752 
753     /**
754      * Name of the shared preference for the version number of the dynamically loaded dex.
755      */
756     public static final String WEBAPK_EXTRACTED_DEX_VERSION =
757             "org.chromium.chrome.browser.webapps.extracted_dex_version";
758 
759     /**
760      * Name of the shared preference for the Android OS version at the time that the dex was last
761      * extracted from Chrome's assets and optimized.
762      */
763     public static final String WEBAPK_LAST_SDK_VERSION =
764             "org.chromium.chrome.browser.webapps.last_sdk_version";
765 
766     /** Key for deferred recording of list of uninstalled WebAPK packages. */
767     public static final String WEBAPK_UNINSTALLED_PACKAGES = "webapk_uninstalled_packages";
768 
769     /** Cached Suggestions and Suggestion Headers. */
770     public static final String KEY_ZERO_SUGGEST_LIST_SIZE = "zero_suggest_list_size";
771     public static final KeyPrefix KEY_ZERO_SUGGEST_URL_PREFIX = new KeyPrefix("zero_suggest_url*");
772     public static final KeyPrefix KEY_ZERO_SUGGEST_DISPLAY_TEXT_PREFIX =
773             new KeyPrefix("zero_suggest_display_text*");
774     public static final KeyPrefix KEY_ZERO_SUGGEST_DESCRIPTION_PREFIX =
775             new KeyPrefix("zero_suggest_description*");
776     public static final KeyPrefix KEY_ZERO_SUGGEST_NATIVE_TYPE_PREFIX =
777             new KeyPrefix("zero_suggest_native_type*");
778     public static final KeyPrefix KEY_ZERO_SUGGEST_NATIVE_SUBTYPES_PREFIX =
779             new KeyPrefix("zero_suggest_native_subtypes*");
780     public static final KeyPrefix KEY_ZERO_SUGGEST_IS_SEARCH_TYPE_PREFIX =
781             new KeyPrefix("zero_suggest_is_search*");
782     public static final KeyPrefix KEY_ZERO_SUGGEST_ANSWER_TEXT_PREFIX =
783             new KeyPrefix("zero_suggest_answer_text*");
784     public static final KeyPrefix KEY_ZERO_SUGGEST_GROUP_ID_PREFIX =
785             new KeyPrefix("zero_suggest_group_id*");
786     @Deprecated
787     public static final KeyPrefix KEY_ZERO_SUGGEST_IS_DELETABLE_PREFIX =
788             new KeyPrefix("zero_suggest_is_deletable*");
789     public static final KeyPrefix KEY_ZERO_SUGGEST_IS_STARRED_PREFIX =
790             new KeyPrefix("zero_suggest_is_starred*");
791     public static final KeyPrefix KEY_ZERO_SUGGEST_POST_CONTENT_TYPE_PREFIX =
792             new KeyPrefix("zero_suggest_post_content_type*");
793     public static final KeyPrefix KEY_ZERO_SUGGEST_POST_CONTENT_DATA_PREFIX =
794             new KeyPrefix("zero_suggest_post_content_data*");
795     public static final String KEY_ZERO_SUGGEST_HEADER_LIST_SIZE = "zero_suggest_header_list_size";
796     public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_ID_PREFIX =
797             new KeyPrefix("zero_suggest_header_group_id*");
798     public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_TITLE_PREFIX =
799             new KeyPrefix("zero_suggest_header_group_title*");
800     public static final KeyPrefix KEY_ZERO_SUGGEST_HEADER_GROUP_COLLAPSED_BY_DEFAULT_PREFIX =
801             new KeyPrefix("zero_suggest_header_group_collapsed_by_default*");
802 
803     /**
804      * These values are currently used as SharedPreferences keys, along with the keys in
805      * {@link GrandfatheredChromePreferenceKeys#getKeysInUse()}. Add new SharedPreferences keys
806      * here.
807      *
808      * @return The list of [keys in use] conforming to the format.
809      */
810     @CheckDiscard("Validation is performed in tests and in debug builds.")
getKeysInUse()811     static List<String> getKeysInUse() {
812         // clang-format off
813         return Arrays.asList(
814                 ACCOUNT_PICKER_BOTTOM_SHEET_SHOWN_COUNT,
815                 ASSISTANT_LAST_VERSION,
816                 ASSISTANT_VOICE_SEARCH_ENABLED,
817                 ASSISTANT_VOICE_SEARCH_SUPPORTED,
818                 AUTOFILL_ASSISTANT_FIRST_TIME_LITE_SCRIPT_USER,
819                 AUTOFILL_ASSISTANT_NUMBER_OF_LITE_SCRIPTS_CANCELED,
820                 AUTOFILL_ASSISTANT_PROACTIVE_HELP,
821                 APPLICATION_OVERRIDE_LANGUAGE,
822                 CLIPBOARD_SHARED_URI,
823                 CONDITIONAL_TAB_STRIP_CONTINUOUS_DISMISS_COUNTER,
824                 CONDITIONAL_TAB_STRIP_FEATURE_STATUS,
825                 CONDITIONAL_TAB_STRIP_LAST_SHOWN_TIMESTAMP,
826                 CONDITIONAL_TAB_STRIP_OPT_OUT,
827                 CONTEXT_MENU_OPEN_IMAGE_IN_EPHEMERAL_TAB_CLICKED,
828                 CONTEXT_MENU_OPEN_IN_EPHEMERAL_TAB_CLICKED,
829                 CONTEXT_MENU_SEARCH_WITH_GOOGLE_LENS_CLICKED,
830                 CONTEXT_MENU_SHOP_IMAGE_WITH_GOOGLE_LENS_CLICKED,
831                 CONTEXT_MENU_SHOP_SIMILAR_PRODUCTS_CLICKED,
832                 CONTEXT_MENU_SEARCH_SIMILAR_PRODUCTS_CLICKED,
833                 CRYPTID_LAST_RENDER_TIMESTAMP,
834                 DEFAULT_BROWSER_PROMO_LAST_DEFAULT_STATE,
835                 DEFAULT_BROWSER_PROMO_LAST_PROMO_TIME,
836                 DEFAULT_BROWSER_PROMO_PROMOED_BY_SYSTEM_SETTINGS,
837                 DEFAULT_BROWSER_PROMO_PROMOED_COUNT,
838                 DEFAULT_BROWSER_PROMO_SESSION_COUNT,
839                 EXPLORE_OFFLINE_CONTENT_AVAILABILITY_STATUS,
840                 FEED_ARTICLES_LIST_VISIBLE,
841                 FEED_PLACEHOLDER_DENSE,
842                 FLAGS_CACHED.pattern(),
843                 FLAGS_FIELD_TRIAL_PARAM_CACHED.pattern(),
844                 HOMEPAGE_LOCATION_POLICY,
845                 HOMEPAGE_USE_CHROME_NTP,
846                 IMAGE_DESCRIPTIONS_JUST_ONCE_COUNT,
847                 IMAGE_DESCRIPTIONS_DONT_ASK_AGAIN,
848                 PERSISTENT_OFFLINE_CONTENT_AVAILABILITY_STATUS,
849                 PRICE_TRACKING_PRICE_WELCOME_MESSAGE_CARD,
850                 PRICE_TRACKING_TRACK_PRICES_ON_TABS,
851                 PROMO_IS_DISMISSED.pattern(),
852                 PROMO_TIMES_SEEN.pattern(),
853                 SETTINGS_SAFETY_CHECK_LAST_RUN_TIMESTAMP,
854                 SETTINGS_SAFETY_CHECK_RUN_COUNTER,
855                 SIGNIN_PROMO_IMPRESSIONS_COUNT_NTP,
856                 TWA_DISCLOSURE_SEEN_PACKAGES,
857                 VIDEO_TUTORIALS_SHARE_URL_SET
858         );
859         // clang-format on
860     }
861 
ChromePreferenceKeys()862     private ChromePreferenceKeys() {}
863 }
864