[{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"AAPMBlocksWebGPU","variable":"kAAPMBlocksWebGPU","defaultStatus":true,"line":281,"comment":"Feature enforces WebGPU security in Android Advanced Protection Mode. Disable feature by default for Finch testing."},{"type":"feature","file":"media/audio/audio_features.cc","name":"AAudioPerStreamDeviceSelection","variable":"kAAudioPerStreamDeviceSelection","defaultStatus":false,"line":32,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables selection of audio devices for each individual AAudio stream instead of using communication streams and managing the system-wide communication route. This is not fully reliable on all Android devices. Requires `UseAAudioDriver` and `UseAAudioInput`, otherwise it will have no effect."},{"type":"feature","file":"media/audio/audio_features.cc","name":"AAudioVariableSizedCallbacks","variable":"kAAudioVariableSizedCallbacks","defaultStatus":false,"line":46,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables support for variable sized callbacks in AAudio."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AblateSearchProviderWarmup","variable":"kAblateSearchProviderWarmup","defaultStatus":false,"line":308,"comment":"Search and Suggest requests and params."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AbortNavigationsFromTabClosures","variable":"kAbortNavigationsFromTabClosures","defaultStatus":true,"line":29,"comment":"All features in alphabetical order. The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AbusiveNotificationPermissionRevocation","variable":"kAbusiveNotificationPermissionRevocation","defaultStatus":true,"line":1424,"comment":"Enables notification permission revocation for abusive origins."},{"type":"feature","file":"media/base/media_switches.cc","name":"AcceleratedVideoDecodeLinux","variable":"kAcceleratedVideoDecodeLinux","defaultStatus":[{"condition":"BUILDFLAG(USE_VAAPI)","value":true}],"line":805,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Enable vaapi/v4l2 video decoding on linux. This is already enabled by default on chromeos, but needs an experiment on linux."},{"type":"feature","file":"media/base/media_switches.cc","name":"AcceleratedVideoDecodeLinuxGL","variable":"kAcceleratedVideoDecodeLinuxGL","defaultStatus":true,"line":813},{"type":"feature","file":"media/base/media_switches.cc","name":"AcceleratedVideoEncodeLinux","variable":"kAcceleratedVideoEncodeLinux","defaultStatus":false,"line":815},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityAccelerator","variable":"kAccessibilityAccelerator","defaultStatus":true,"line":229,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Adds option to enable Accessibility accelerator."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityAndroidMath","variable":"kAccessibilityAndroidMath","defaultStatus":false,"line":345,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables MathML support for Android."},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"AccessibilityAnnotationReducerOnePResolver","variable":"kAccessibilityAnnotationReducerOnePResolver","defaultStatus":false,"line":111},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"AccessibilityAnnotator","variable":"kAccessibilityAnnotator","defaultStatus":false,"line":81},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"AccessibilityAnnotatorDatabaseStorage","variable":"kAccessibilityAnnotatorDatabaseStorage","defaultStatus":false,"line":123,"todos":["TODO(crbug.com/484049558): Remove this feature once the SQLite database storage is ready with the initial schema as default storage. Enables the accessibility annotator database storage. This will allow the accessibility annotator backend to create the SQLite database."]},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"AccessibilityAnnotatorGetEntities","variable":"kAccessibilityAnnotatorGetEntities","defaultStatus":false,"line":89},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"AccessibilityAnnotatorLiveTabContext","variable":"kAccessibilityAnnotatorLiveTabContext","defaultStatus":false,"line":92},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityAtomicLiveRegions","variable":"kAccessibilityAtomicLiveRegions","defaultStatus":true,"line":1412,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, supports atomic announcements, meaning that when aria-atomic=true, the entire live region will be announced not just the node that changed."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityBlockFlowIterator","variable":"kAccessibilityBlockFlowIterator","defaultStatus":true,"line":38,"comment":"A replacement algorithm for AbstractInlineTextBox + InlineCursor for AXInlineTextBox creation."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityCanvas","variable":"kAccessibilityCanvas","defaultStatus":false,"line":159,"comment":"Controls canvas accessibility mode."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityCaptionsOnBrailleDisplay","variable":"kAccessibilityCaptionsOnBrailleDisplay","defaultStatus":true,"line":266,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Show captions on a braille display."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityCheckJavaNodeCacheFreshness","variable":"kAccessibilityCheckJavaNodeCacheFreshness","defaultStatus":false,"line":1340,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, will unconditionally poll the C++ cache to check Java node cache freshness to test correctness of Java node cache."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityChromeVoxJapaneseBraille","variable":"kAccessibilityChromeVoxJapaneseBraille","defaultStatus":true,"line":320,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityDeprecateJavaNodeCache","variable":"kAccessibilityDeprecateJavaNodeCache","defaultStatus":false,"line":1343,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityDeprecateTypeAnnounce","variable":"kAccessibilityDeprecateTypeAnnounce","defaultStatus":true,"line":1357,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, TYPE_ANNOUNCE events will no longer be sent for live regions in the web contents."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityDisableTouchpad","variable":"kAccessibilityDisableTouchpad","defaultStatus":true,"line":274,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether the disable touchpad feature is enabled."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityExposeSummaryAsHeading","variable":"kAccessibilityExposeSummaryAsHeading","defaultStatus":false,"line":31,"comment":"Expose <summary>\" as a heading instead of a button. Two reasons to try this: 1. Unlike for a button, JAWS will not enforce leafiness for a heading, so that things like child links will still be presented to the user. 2. The user can use heading navigation for summaries. We may decide to scale this back for use cases such as a summary inside of a table or a list. Experiment until we validate the approach with ATs and ARIA WG."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityExtendedSelection","variable":"kAccessibilityExtendedSelection","defaultStatus":false,"line":1362,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, extended selections are sent to Android through setSelection API."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityFlashScreenFeature","variable":"kAccessibilityFlashScreenFeature","defaultStatus":true,"line":280,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether the flash screen for notifications feature is available."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityHandleOccludingViews","variable":"kAccessibilityHandleOccludingViews","defaultStatus":false,"line":56,"comment":"Enables handling of occluding views belonging to overlaid \" \"browser's UI."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityImeGetFormattedText","variable":"kAccessibilityImeGetFormattedText","defaultStatus":false,"line":1367,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When this feature is enabled, the InputConnection will request formatted text from the TextInputState."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityImproveLiveRegionAnnounce","variable":"kAccessibilityImproveLiveRegionAnnounce","defaultStatus":true,"line":1375,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, WINDOW_CONTENT_CHANGED events will be sent for each LIVE_REGION_NODE_CHANGED rather than TYPE_ANNOUNCEMENT. kAccessibilityDeprecateTypeAnnounce also encompasses ariaNotify, whereas this flag does not. This flag focuses solely on the LIVE_REGION_NODE_CHANGED generated events."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityInlineLineSeparators","variable":"kAccessibilityInlineLineSeparators","defaultStatus":false,"line":331,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When populating the AccessibilityNodeInfo on Android, Clank will insert Line Separator U+2028 characters in the text to denote soft line breaks."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityInvertedMouseCursor","variable":"kAccessibilityInvertedMouseCursor","defaultStatus":true,"line":287,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether the inverted mouse cursor feature is available."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityLabeledBy","variable":"kAccessibilityLabeledBy","defaultStatus":false,"line":69,"comment":"Enables the addition of `labeledby` relationships in the accessibility tree."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityMagnificationFollowsFocus","variable":"kAccessibilityMagnificationFollowsFocus","defaultStatus":true,"line":338,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Propagate bounding rectangles of cursor moves and input focus changes to the Android platform to allow Magnification to follow them. For compatibility with older behaviour, Android SDK levels before Baklava 36.1 will only be notified on cursor moves."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityMagnifierFollowsChromeVox","variable":"kAccessibilityMagnifierFollowsChromeVox","defaultStatus":true,"line":254,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Whether the screen magnifier can follow the ChromeVox focus."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityManageBroadcastReceiverOnBackground","variable":"kAccessibilityManageBroadcastReceiverOnBackground","defaultStatus":true,"line":1438,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables posting registering, unregistering the broadcast receiver to the background thread."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityManifestV3ChromeVox","variable":"kAccessibilityManifestV3ChromeVox","defaultStatus":false,"line":299,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityManifestV3EspeakNGTts","variable":"kAccessibilityManifestV3EspeakNGTts","defaultStatus":true,"line":306,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityManifestV3GoogleTts","variable":"kAccessibilityManifestV3GoogleTts","defaultStatus":true,"line":313,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityMeterEventsOnAndroid","variable":"kAccessibilityMeterEventsOnAndroid","defaultStatus":true,"line":1381,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, allows Android to fire WINDOW_CONTENT_CHANGED events for value changes made to ARIA meter controls.","todos":["TODO(crbug.com/493195387): Remove killswitch after stability period."]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityMouseKeys","variable":"kAccessibilityMouseKeys","defaultStatus":true,"line":261,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Control mouse with keyboard."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityOnScreenMode","variable":"kAccessibilityOnScreenMode","defaultStatus":false,"line":151,"comment":"Enable the experimental on-screen AXMode .","todos":["TODO(accessibility): Only turn on the experimental On-Screen mode for when screen readers are not running. This is an experimental mode for now, so this is fine for now."]},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityPageZoomV2","variable":"kAccessibilityPageZoomV2","defaultStatus":false,"line":1417,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the second iteration of AccessibilityPageZoom, which continues the work completed in the first experiment and the subsequent fast-follow. This version of the experiment explores enabling OS-level adjustments."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityPdfOcrForSelectToSpeak","variable":"kAccessibilityPdfOcrForSelectToSpeak","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":18,"comment":"Enable PDF OCR for Select-to-Speak. It will be disabled by default on platforms other than ChromeOS as STS is available only on ChromeOS."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityPerformanceMeasurementExperiment","variable":"kAccessibilityPerformanceMeasurementExperiment","defaultStatus":false,"line":79,"comment":"Experiment to measure the performance impact of various accessibility changes."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityPopulateSupplementalDescriptionApi","variable":"kAccessibilityPopulateSupplementalDescriptionApi","defaultStatus":true,"line":1421,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables populating the supplemental description information via the Android supplemental description API."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityPruneRedundantInlineConnectivity","variable":"kAccessibilityPruneRedundantInlineConnectivity","defaultStatus":false,"line":44},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityReducedAnimations","variable":"kAccessibilityReducedAnimations","defaultStatus":true,"line":234,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Adds option to limit the movement on the screen."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityReducedAnimationsInKiosk","variable":"kAccessibilityReducedAnimationsInKiosk","defaultStatus":true,"line":240,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Adds reduced animations toggle to kiosk quick settings."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityRemoteUIApp","variable":"kAccessibilityRemoteUIApp","defaultStatus":true,"line":525,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Set NSAccessibilityRemoteUIElement's RemoteUIApp to YES to fix some accessibility bugs in PWA Mac. (Note: When enabling NSAccessibilityRemoteUIElement's RemoteUIApp previously, chromium would hang. See: https://crbug.com/1491329)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityRequestLayoutBasedActions","variable":"kAccessibilityRequestLayoutBasedActions","defaultStatus":true,"line":1388,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When this feature is enabled, the accessibility tree will be requested to layout based on the actions that are performed on the renderer side. In particular this will be used to determine whether or not a node is clickable or not."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityRequestScopedContentChangedEvents","variable":"kAccessibilityRequestScopedContentChangedEvents","defaultStatus":false,"line":1395,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When this feature is enabled, the accessibility tree will be requested to signal content changed events next to a boolean value that will determine if this event should cause a nodes's children to be rerendered if there've been structural changes."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilitySequentialFocus","variable":"kAccessibilitySequentialFocus","defaultStatus":true,"line":1426,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the reactive synchronization of accessibility and keyboard focus, relying on new Android framework behavior."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilitySetSelectableOnAllNodesWithText","variable":"kAccessibilitySetSelectableOnAllNodesWithText","defaultStatus":false,"line":1430,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, set selectable on all nodes with text, and support ACTION_SET_SELECTION."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityShakeToLocate","variable":"kAccessibilityShakeToLocate","defaultStatus":false,"line":294,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether the shake cursor to locate feature is available."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityTextChangeTypes","variable":"kAccessibilityTextChangeTypes","defaultStatus":true,"line":63,"comment":"Enables text change types for text changed events."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityTextFormatting","variable":"kAccessibilityTextFormatting","defaultStatus":true,"line":51,"comment":"Enables the addition of text formatting information to the Android AccessibilityNodeInfo accessibility tree."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityTreeForViews","variable":"kAccessibilityTreeForViews","defaultStatus":false,"line":74,"comment":"Expose the accessibility tree for views via an AXTree of AXNodes."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AccessibilityUnifiedSnapshots","variable":"kAccessibilityUnifiedSnapshots","defaultStatus":false,"line":1434,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the use of a unified code path for AXTree snapshots."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AccessibilityWinAXFragmentRootParent","variable":"kAccessibilityWinAXFragmentRootParent","defaultStatus":true,"line":193,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"This is a killswitch. Controls whether HWNDMessageHandler::GetParentOfAXFragmentRoot returns nullptr (legacy) or delegates to GetParentNativeViewAccessible()."},{"type":"feature","file":"pdf/pdf_features.cc","name":"AccessiblePDFForm","variable":"kAccessiblePDFForm","defaultStatus":false,"line":18},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"AccountRetrievalWaitsForRestoration","variable":"kAccountRetrievalWaitsForRestoration","defaultStatus":false,"line":51,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/account_settings/account_settings_features.cc","name":"AccountSettingContextKillSwitch","variable":"kAccountSettingContextKillSwitch","defaultStatus":true,"line":10,"comment":"Kill switch to gate context-related account settings."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorBindCreatedTabToTask","variable":"kActorBindCreatedTabToTask","defaultStatus":true,"line":147,"comment":"Kill switch for binding the created tab to the task that created it."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorBypassTOUValidationForGuestView","variable":"kActorBypassTOUValidationForGuestView","defaultStatus":true,"line":33},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ActorFormFillingServiceEnableCreditCard","variable":"kActorFormFillingServiceEnableCreditCard","defaultStatus":true,"line":33,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"]},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorFormScriptToolInterrupt","variable":"kActorFormScriptToolInterrupt","defaultStatus":true,"line":187,"todos":["TODO(crbug.com/484367299): Implement a proper actor task state for interrupt-with-user-control."]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLogin","variable":"kActorLogin","defaultStatus":true,"line":14,"buildflags":["!BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLogin","variable":"kActorLogin","defaultStatus":false,"line":22,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginConflictingPermissionCleanup","variable":"kActorLoginConflictingPermissionCleanup","defaultStatus":true,"line":15,"buildflags":["!BUILDFLAG(IS_IOS)"],"comment":"Killswitch for the conflicting permission cleanup. Conflicting permissions are the ones granted for 2 different accounts on the same website."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginConflictingPermissionCleanup","variable":"kActorLoginConflictingPermissionCleanup","defaultStatus":false,"line":23,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Killswitch for the conflicting permission cleanup. Conflicting permissions are the ones granted for 2 different accounts on the same website."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginLocalClassificationModel","variable":"kActorLoginLocalClassificationModel","defaultStatus":true,"line":17,"buildflags":["!BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginLocalClassificationModel","variable":"kActorLoginLocalClassificationModel","defaultStatus":false,"line":25,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginNoPermanentPermissionsAndroid","variable":"kActorLoginNoPermanentPermissionsAndroid","defaultStatus":false,"line":33,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, it completely ignores existing permanent permissions and does not store new ones.","todos":["TODO(crbug.com/507403760): Remove once the permissions management UI is available."]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginPermissionsUi","variable":"kActorLoginPermissionsUi","defaultStatus":true,"line":35,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the Actor Login Permissions Settings UI on Android."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginQualityLogs","variable":"kActorLoginQualityLogs","defaultStatus":true,"line":39,"buildflags":["!BUILDFLAG(IS_IOS)"],"comment":"Enables logging quality for actor login."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ActorLoginSyncsPasswordPermissions","variable":"kActorLoginSyncsPasswordPermissions","defaultStatus":true,"line":29,"comment":"Enables syncing password permissions."},{"type":"feature","file":"components/password_manager/core/common/password_manager_features.cc","name":"ActorLoginTreatFillingAsUserInput","variable":"kActorLoginTreatFillingAsUserInput","defaultStatus":true,"line":24,"comment":"All features in alphabetical order. The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorObservePageContentDefault","variable":"kActorObservePageContentDefault","defaultStatus":true,"line":193},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorObserveScreenshotDefault","variable":"kActorObserveScreenshotDefault","defaultStatus":true,"line":192},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorRestartObservationDelayControllerOnNavigate","variable":"kActorRestartObservationDelayControllerOnNavigate","defaultStatus":true,"line":151},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorScriptToolDelayObservation","variable":"kActorScriptToolDelayObservation","defaultStatus":false,"line":181},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorScriptToolSkipPageContent","variable":"kActorScriptToolSkipPageContent","defaultStatus":false,"line":196},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorScriptToolSkipScreenshot","variable":"kActorScriptToolSkipScreenshot","defaultStatus":false,"line":195},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"ActorSendBrowserSignalForAction","variable":"kActorSendBrowserSignalForAction","defaultStatus":true,"line":154,"comment":"Kill switch to disable sending a browser signal (which is used for user interaction) before sending action to renderer."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ActorUiThemed","variable":"kActorUiThemed","defaultStatus":true,"line":288,"comment":"Controls theming updates for Actor UI, including the tab indicator spinner and other elements."},{"type":"feature","file":"base/task/task_features.cc","name":"AddTaskLeewayFeature","variable":"kAddTaskLeewayFeature","defaultStatus":true,"line":29,"comment":"Under this feature, a non-zero leeway is added to delayed tasks. Along with DelayPolicy, this affects the time at which a delayed task runs."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"AdjustGpuProcessPriority","variable":"kAdjustGpuProcessPriority","defaultStatus":false,"line":215,"buildflags":["BUILDFLAG(IS_MAC) || BUILDFLAG(IS_IOS)"],"comment":"If enabled, the TASK_CATEGORY_POLICY value of the GPU process will be adjusted to match the one from the browser process every time it changes."},{"type":"feature","file":"components/subresource_filter/core/browser/subresource_filter_features.cc","name":"AdsInterventionsEnforced","variable":"kAdsInterventionsEnforced","defaultStatus":false,"line":252,"comment":"Enables the blocking of ads on sites that have ads violations."},{"type":"feature","file":"components/subresource_filter/core/common/common_features.cc","name":"AdTagging","variable":"kAdTagging","defaultStatus":true,"line":9,"comment":"Enables the tagging of ad frames and resource requests by using the subresource_filter component in dry-run mode."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"AggressiveShaderCacheLimits","variable":"kAggressiveShaderCacheLimits","defaultStatus":false,"line":121,"comment":"All features in alphabetical order. The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"Aim3pEntrypoint","variable":"kAim3pEntrypoint","defaultStatus":false,"line":201,"comment":"Enables the AIM entrypoint for third party search engines."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimCoBrowseEligibilityCheckEnabled","variable":"kAimCoBrowseEligibilityCheckEnabled","defaultStatus":true,"line":15,"comment":"If enabled, requires the AIM Eligibility Service to provide a positive answer to whether Co-Browse eligibility is enabled."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AimEligibilityComponentExtension","variable":"kAimEligibilityComponentExtension","defaultStatus":false,"line":175,"comment":"Omnibox UI - these affect the UI or function of the location bar (not the popup)."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimEligibilityServiceDebounce","variable":"kAimEligibilityServiceDebounce","defaultStatus":true,"line":88,"comment":"If enabled, debounces server requests by a short duration to prevent duplicate requests."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimEligibilityServiceIdentityImprovements","variable":"kAimEligibilityServiceIdentityImprovements","defaultStatus":true,"line":73,"comment":"If enabled, the AimEligibilityService will omit cookies and fetch OAuth tokens for server requests."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimEnabled","variable":"kAimEnabled","defaultStatus":true,"line":11,"comment":"If disabled, AIM is completely turned off (kill switch)."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimFuseboxEligibilityCheckEnabled","variable":"kAimFuseboxEligibilityCheckEnabled","defaultStatus":true,"line":18,"comment":"If enabled, uses the server response for AIM Fusebox eligibility."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"AiModeEntryPointAlwaysNavigates","variable":"kAiModeEntryPointAlwaysNavigates","defaultStatus":false,"line":65,"comment":"When enabled, clicking aim button in omnibox always navigates directly to g.com/aimode, e.g. instead of opening the AI Mode popup (`omnibox::internal::kWebUIOmniboxAimPopup`)."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"AiModePageActionOptimization","variable":"kAiModePageActionOptimization","defaultStatus":false,"line":337,"comment":"Gates the optimization for AI Mode page action to reduce mouse pressed latency."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"AiModeSpaceDoesNotActivate","variable":"kAiModeSpaceDoesNotActivate","defaultStatus":false,"line":69,"comment":"If enabled, pressing space when the AI mode button has fake focus will insert a space into the omnibox and restore focus to the omnibox instead of interacting with the button."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AiModeStartPack","variable":"kAiModeStartPack","defaultStatus":false,"line":305,"comment":"Enables an '@aimode' starter pack keyword for eligible users only."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilityCustomRetryPolicyEnabled","variable":"kAimServerEligibilityCustomRetryPolicyEnabled","defaultStatus":false,"line":29,"comment":"If enabled, uses a custom retry policy for the server request."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilityEnabled","variable":"kAimServerEligibilityEnabled","defaultStatus":true,"line":13,"comment":"If enabled, uses the server response for AIM eligibility for all locales."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilityForPrimaryAccountEnabled","variable":"kAimServerEligibilityForPrimaryAccountEnabled","defaultStatus":false,"line":32,"comment":"If enabled, AIM eligibility is obtained for the primary account."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilityIncludeClientCountry","variable":"kAimServerEligibilityIncludeClientCountry","defaultStatus":true,"line":70,"comment":"Configures whether to include the client country in the AIM eligibility request."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilityIncludeClientLocale","variable":"kAimServerEligibilityIncludeClientLocale","defaultStatus":true,"line":52,"comment":"Configures whether to include the client locale in the AIM eligibility request."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilitySendCoBrowseUserAgentSuffixEnabled","variable":"kAimServerEligibilitySendCoBrowseUserAgentSuffixEnabled","defaultStatus":true,"line":23,"comment":"If enabled, adds the User-Agent header suffix for Co-Browse to all AIM Eligibility Service requests."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerEligibilitySendFullVersionListEnabled","variable":"kAimServerEligibilitySendFullVersionListEnabled","defaultStatus":true,"line":26,"comment":"If enabled, adds the Sec-CH-UA-Full-Version-List header to all AIM Eligibility Service requests."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerRequestOnIdentityChangeEnabled","variable":"kAimServerRequestOnIdentityChangeEnabled","defaultStatus":true,"line":41,"comment":"If enabled, makes a server request on identity changes."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimServerRequestOnStartupEnabled","variable":"kAimServerRequestOnStartupEnabled","defaultStatus":true,"line":35,"comment":"If enabled, makes a server request on service startup."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimStartupRequestDelayedUntilNetworkAvailableEnabled","variable":"kAimStartupRequestDelayedUntilNetworkAvailableEnabled","defaultStatus":false,"line":38,"comment":"If enabled, delays the startup server request until the network is available."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AIMSuppressVerbatimMatch","variable":"kAIMSuppressVerbatimMatch","defaultStatus":false,"line":207,"comment":"When enabled, AI mode will remove verbatim suggestions from the suggestions list."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AimUrlInterceptPassthrough","variable":"kAimUrlInterceptPassthrough","defaultStatus":false,"line":434,"comment":"A flag that allows params from experiment configs to be passed through to the AIM eligibility service to control aspects of URL interception."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimUrlNavigationFetchEnabled","variable":"kAimUrlNavigationFetchEnabled","defaultStatus":true,"line":21,"comment":"If enabled, creates the navigation throttle that fetches AIM eligibility responses on AIM URL navigations."},{"type":"feature","file":"components/omnibox/browser/aim_eligibility_service_features.cc","name":"AimUsePecApi","variable":"kAimUsePecApi","defaultStatus":true,"line":50,"comment":"If enabled, all composebox context menus will use the `SearchboxConfig` aka PEC API response in the AIM eligibility response."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"AiOverlayDialog","variable":"kAiOverlayDialog","defaultStatus":false,"line":506,"comment":"Note: This feature is meant for prototyping and takes shortcuts that mean it cannot be put into production in its current state. Do not enable. crbug.com/502801064"},{"type":"feature","file":"third_party/blink/renderer/modules/ai/ai_features.cc","name":"AIRelaxUserActivationReqs","variable":"kAIRelaxUserActivationReqs","defaultStatus":true,"line":9,"comment":"Feature flag to relax user activation requirements for AI features."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"AiSettingsPageForceAvailable","variable":"kAiSettingsPageForceAvailable","defaultStatus":false,"line":126,"comment":"Force show the AI page and all AI feature sub-pages in settings, even if they would be unavailable otherwise. This is meant for development and test purposes only."},{"type":"feature","file":"printing/printing_features.cc","name":"AlignPdfDefaultPrintSettingsWithHTML","variable":"kAlignPdfDefaultPrintSettingsWithHTML","defaultStatus":false,"line":17,"comment":"Align PDF default print settings (scale&center) with HTML."},{"type":"feature","file":"base/task/task_features.cc","name":"AlignWakeUps","variable":"kAlignWakeUps","defaultStatus":false,"line":42,"comment":"Under this feature, wake ups are aligned at a 8ms boundary when allowed per DelayPolicy."},{"type":"feature","file":"components/bookmarks/common/bookmark_features.cc","name":"AllBookmarksBaselineFolderVisibility","variable":"kAllBookmarksBaselineFolderVisibility","defaultStatus":false,"line":16,"comment":"This feature controls the default visibility for permanent folders when empty. It effectively swaps in \"other bookmarks\" as the default-visible empty folder on mobile. This flag has no effect for desktop."},{"type":"feature","file":"components/memory_system/memory_system_features.cc","name":"AllocationTraceRecorder","variable":"kAllocationTraceRecorder","defaultStatus":[{"condition":"BUILDFLAG(CLANG_PGO_PROFILING) || BUILDFLAG(USE_CLANG_COVERAGE)","value":true},{"condition":"!(BUILDFLAG(CLANG_PGO_PROFILING) || BUILDFLAG(USE_CLANG_COVERAGE))","value":false}],"line":14},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AllowAmbientEQ","variable":"kAllowAmbientEQ","defaultStatus":false,"line":27,"comment":"Enables the UI to support Ambient EQ if the device supports it. See https://crbug.com/1021193 for more details."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"AllowANGLEPassthroughShaders","variable":"kAllowANGLEPassthroughShaders","defaultStatus":true,"line":245,"comment":"Killswitch feature for allowing ANGLE to pass untranslated shaders to the driver."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AllowApnModificationPolicy","variable":"kAllowApnModificationPolicy","defaultStatus":true,"line":55,"comment":"Adds support for allowing or disabling APN modification by policy."},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowAudioPlaybackCapture","variable":"kAllowAudioPlaybackCapture","defaultStatus":true,"line":1171,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows audio playback capture on Android."},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled","variable":"kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled","defaultStatus":false,"line":1418,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION)"],"comment":"When ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION is enabled at build time and `kPlatformEncryptedDolbyVision` is enabled at run time, encrypted Dolby Vision is allowed in Media Source while clear Dolby Vision is not allowed. In this case, this feature allows the support of clear Dolby Vision in Media Source, which is useful to work around some JavaScript player limitations. Otherwise, this feature has no effect and neither encrypted nor clear Dolby Vision is allowed."},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowClearDolbyVisionViaMFT","variable":"kAllowClearDolbyVisionViaMFT","defaultStatus":false,"line":1423,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION)"],"comment":"Enables clear Dolby Vision playback through a pure MFT processor in the GPU process, working together with the D3D11 video decoder."},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"AllowClientCertificateReportingForUsers","variable":"kAllowClientCertificateReportingForUsers","defaultStatus":true,"line":9,"comment":"Allows the reporting of client certificates for managed users."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AllowCrossDeviceFeatureSuite","variable":"kAllowCrossDeviceFeatureSuite","defaultStatus":true,"line":34,"comment":"Enables Cross-Device features, e.g. Nearby Share, Smart Lock, Fast Pair, Quick Start, etc. This flag is used to disable Cross-Device on platforms where we cannot yet guarantee a good experience with the stock Bluetooth hardware (e.g. Reven / ChromeOS Flex). Access through IsCrossDeviceFeatureSuiteAllowed()."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"AllowD3D11WarpFallback","variable":"kAllowD3D11WarpFallback","defaultStatus":true,"line":348,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowDelayedAudioFocusGainAndroid","variable":"kAllowDelayedAudioFocusGainAndroid","defaultStatus":true,"line":1175,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows media playback to start when the audio focus request is delayed (e.g. during a phone call)."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"AllowDownloadResumptionWithoutStrongValidators","variable":"kAllowDownloadResumptionWithoutStrongValidators","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":57,"comment":"Whether download resumption is allowed when there are no strong validators."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"AllowedMixedContentInlinePdf","variable":"kAllowedMixedContentInlinePdf","defaultStatus":true,"line":73,"comment":"Whether mixed-content PDF links can be downloaded if opening inline."},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowEnhancedPipTransition","variable":"kAllowEnhancedPipTransition","defaultStatus":true,"line":1180,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows the enhanced picture-in-picture transition animation that depend on the sourceRectHint PictureInPictureParam."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"AllowEyeDropperWGCScreenCapture","variable":"kAllowEyeDropperWGCScreenCapture","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":36,"comment":"Enables the use of WGC for the Eye Dropper screen capture."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"AllowFileBufferSizeControl","variable":"kAllowFileBufferSizeControl","defaultStatus":true,"line":71,"comment":"Whether to allow changing the size of file buffer."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"AllowlistHidrawGamepads","variable":"kAllowlistHidrawGamepads","defaultStatus":true,"line":41,"buildflags":["BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)"],"comment":"Enabling this feature causes GamepadPlatformDataFetcherLinux to check device IDs before opening the hidraw device node to avoid interfering with devices that are not gamepads or do not require hidraw access."},{"type":"feature","file":"media/base/media_switches.cc","name":"AllowMediaCodecSoftwareDecoder","variable":"kAllowMediaCodecSoftwareDecoder","defaultStatus":false,"line":1266,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allow the media pipeline to prioritize the software decoder provided by MediaCodec, instead of the built-in software decoders. This is only enabled for platforms which shows worse performance when using the built-in software decoders, e.g. Cast on ATV."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AllowReentryFromRespondToDelegate","variable":"kAllowReentryFromRespondToDelegate","defaultStatus":true,"line":11,"comment":"Enables the fix to allow reentry in PaymentsNetworkInterface::IssueRequest() from PaymentsRequest::RespondToDelegate()."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"AllowSoftwareGLFallbackDueToCrashes","variable":"kAllowSoftwareGLFallbackDueToCrashes","defaultStatus":false,"line":366},{"type":"feature","file":"ui/gl/gl_features.cc","name":"AllowSwiftShaderFallback","variable":"kAllowSwiftShaderFallback","defaultStatus":false,"line":323,"buildflags":["BUILDFLAG(ENABLE_SWIFTSHADER)"],"comment":"Allow fallback to SwfitShader without command line flags during the deprecation period."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"AllowUnmutedAutoplayForTWA","variable":"kAllowUnmutedAutoplayForTWA","defaultStatus":true,"line":16,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Kill switch for allowing TWAs to autoplay with sound without requiring a user gesture to unlock, for parity with PWAs."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"AllowUserMediaAccess","variable":"kAllowUserMediaAccess","defaultStatus":false,"line":128,"comment":"Add Cast Features here."},{"type":"feature","file":"ui/views/views_features.cc","name":"AllowWindowCaptureExclusionInRemoteSessions","variable":"kAllowWindowCaptureExclusionInRemoteSessions","defaultStatus":false,"line":19,"comment":"Please keep alphabetized."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"AllowWithholdingExtensionPermissionsOnInstall","variable":"kAllowWithholdingExtensionPermissionsOnInstall","defaultStatus":false,"line":89,"comment":"Enables the UI in the install prompt which lets a user choose to withhold requested host permissions by default."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"AlmanacLauncherPayload","variable":"kAlmanacLauncherPayload","defaultStatus":false,"line":30,"comment":"Enables MPS to push payload to chrome devices."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AltClickAndSixPackCustomization","variable":"kAltClickAndSixPackCustomization","defaultStatus":true,"line":42},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AlwaysReinstallSystemWebApps","variable":"kAlwaysReinstallSystemWebApps","defaultStatus":false,"line":38,"comment":"Always reinstall system web apps, instead of only doing so after version upgrade or locale changes."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"AlwaysTrackNativeWindowOcclusionForTest","variable":"kAlwaysTrackNativeWindowOcclusionForTest","defaultStatus":false,"line":49,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"If enabled, native window occlusion tracking will always be used, even if CHROME_HEADLESS is set."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"AlwaysUpdateKAnon","variable":"kAlwaysUpdateKAnon","defaultStatus":true,"line":15,"comment":"Please keep features in alphabetical order."},{"type":"feature","file":"media/audio/audio_features.cc","name":"AlwaysUseAudioManagerOutputFramesPerBuffer","variable":"kAlwaysUseAudioManagerOutputFramesPerBuffer","defaultStatus":false,"line":37,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Use buffer size from AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER for optimal output frame size."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AmbientEQDefaultOff","variable":"kAmbientEQDefaultOff","defaultStatus":false,"line":47,"comment":"This feature changes the default setting of Ambient EQ to off. This feature has no effect if `kAllowAmbientEQ` is not also enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AmbientModeDevUseProdFeature","variable":"kAmbientModeDevUseProdFeature","defaultStatus":false,"line":50,"comment":"Controls whether to allow Dev channel to use Prod server feature."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"AndroidAnimatedProgressBarInBrowser","variable":"kAndroidAnimatedProgressBarInBrowser","defaultStatus":false,"line":494,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/android_autofill/browser/android_autofill_features.cc","name":"AndroidAutofillFieldsUpdatedOnSelect","variable":"kAndroidAutofillFieldsUpdatedOnSelect","defaultStatus":true,"line":47,"comment":"If enabled, fields are updated whenever a user interacts with a <select>.","todos":["TODO(crbug.com/502346855): Remove in M152 or later."]},{"type":"feature","file":"components/android_autofill/browser/android_autofill_features.cc","name":"AndroidAutofillImprovedVisibilityDetection","variable":"kAndroidAutofillImprovedVisibilityDetection","defaultStatus":true,"line":37,"comment":"If enabled, an additional custom \"visible\" attribute in each node's HtmlInfo is set and sent to the framework."},{"type":"feature","file":"components/android_autofill/browser/android_autofill_features.cc","name":"AndroidAutofillLazyFrameworkWrapper","variable":"kAndroidAutofillLazyFrameworkWrapper","defaultStatus":false,"line":32,"comment":"If enabled, the AutofillManagerWrapper class will not be initialized when the AutofillProvider Java class is initialized. Some apps do not use Autofill at all, yet they incur the latency cost of initializing the wrapper. This experiment tests whether lazily initializing the wrapper will cause any issues."},{"type":"feature","file":"components/android_autofill/browser/android_autofill_features.cc","name":"AndroidAutofillSupportForHttpAuthOrigin","variable":"kAndroidAutofillSupportForHttpAuthOrigin","defaultStatus":true,"line":53,"comment":"LINT.IfChange If enabled, the origin of the challenger is passed to the HttpAuth dialog for autofill purposes. Remove in or after M153."},{"type":"feature","file":"components/android_autofill/browser/android_autofill_features.cc","name":"AndroidAutofillUpdateContextForWebContents","variable":"kAndroidAutofillUpdateContextForWebContents","defaultStatus":true,"line":42,"comment":"If enabled, the native autofill provider is updated when the web contents change."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidBlockGrammarSuggestionSpanInCompositionMode","variable":"kAndroidBlockGrammarSuggestionSpanInCompositionMode","defaultStatus":false,"line":88,"comment":"Blocks the grammar suggestion span in composition mode."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidBlockMisspellingSuggestionSpanInCompositionMode","variable":"kAndroidBlockMisspellingSuggestionSpanInCompositionMode","defaultStatus":false,"line":84,"comment":"Blocks the misspelling suggestion span in composition mode."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidCaptureKeyEvents","variable":"kAndroidCaptureKeyEvents","defaultStatus":true,"line":37,"comment":"Capture Android key event objects to send them to the web contents when the IME sends composition texts."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"AndroidDesktopAimGate","variable":"kAndroidDesktopAimGate","defaultStatus":false,"line":198,"comment":"An additional gate to the behavior of OmniboxMultimodalInput on desktop."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidDesktopZoomScaling","variable":"kAndroidDesktopZoomScaling","defaultStatus":true,"line":1443,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the ability to specify a platform-specific zoom scaling that will apply transparently to all pages."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidDevToolsFrontend","variable":"kAndroidDevToolsFrontend","defaultStatus":false,"line":40,"comment":"DevTools frontend for Android."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidDisplayCursor","variable":"kAndroidDisplayCursor","defaultStatus":true,"line":1451,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Implementation of the DisplayCursor API in RenderWidgetHostViewInput on Android."},{"type":"feature","file":"media/base/media_switches.cc","name":"AndroidEnableBackgroundMediaCapturing","variable":"kAndroidEnableBackgroundMediaCapturing","defaultStatus":false,"line":1167,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables media capturing to continue in the background."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidEnableBackgroundMediaLargeFormFactors","variable":"kAndroidEnableBackgroundMediaLargeFormFactors","defaultStatus":true,"line":43,"comment":"Enables media to continue playing in the background."},{"type":"feature","file":"chrome/browser/enterprise/platform_auth/platform_auth_features.cc","name":"AndroidEntraSSO","variable":"kAndroidEntraSSO","defaultStatus":true,"line":13},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidFallbackToNextSlot","variable":"kAndroidFallbackToNextSlot","defaultStatus":true,"line":48,"comment":"Fallback to next named service slot if launching a privileged service process hangs. In practice, this means if GPU launch hanges, then retry it once."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidForceTextInputStateUpdateUponFocus","variable":"kAndroidForceTextInputStateUpdateUponFocus","defaultStatus":true,"line":52,"comment":"Forces an active text input state update calculation and push from the renderer process to browser whenever an editable view container gains focus."},{"type":"feature","file":"components/spellcheck/common/spellcheck_features.cc","name":"AndroidGrammarCheck","variable":"kAndroidGrammarCheck","defaultStatus":false,"line":51,"buildflags":["BUILDFLAG(ENABLE_SPELLCHECK)","BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidHDR","variable":"kAndroidHDR","defaultStatus":true,"line":10,"comment":"Feature controlling whether or not HDR is enabled on Android.","todos":["TODO(crbug.com/40263227): Leave this as a kill switch until Android U ships."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AndroidKeepProfilePartitionDirsInCacheDir","variable":"kAndroidKeepProfilePartitionDirsInCacheDir","defaultStatus":true,"line":90,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, GetUserCacheDirectory on Android will append the relative path of non-default partitions to the cache directory."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"AndroidLimitRgb565DisplayToApi32","variable":"kAndroidLimitRgb565DisplayToApi32","defaultStatus":true,"line":379,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidMediaInsertion","variable":"kAndroidMediaInsertion","defaultStatus":false,"line":56,"comment":"Enables IMEs to insert media content such as images, gifs and stickers."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidNavigationBlurTransitionAnimation","variable":"kAndroidNavigationBlurTransitionAnimation","defaultStatus":false,"line":59,"comment":"Enables a blur animation of the current page when navigating away from it."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidPkAutocorrectUnderline","variable":"kAndroidPkAutocorrectUnderline","defaultStatus":false,"line":72,"comment":"Enables the physical keyboard autocorrect underline feature."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidPkAutocorrectUnderlineV2","variable":"kAndroidPkAutocorrectUnderlineV2","defaultStatus":false,"line":75,"comment":"Enables the physical keyboard autocorrect underline feature V2."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidRemoveSetLocalFocusWorkaroundOnBaklava","variable":"kAndroidRemoveSetLocalFocusWorkaroundOnBaklava","defaultStatus":true,"line":80,"comment":"Removes the setLocalFocus workaround and delay for multi-display setups on Baklava and above."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"AndroidSmsOtpFilling","variable":"kAndroidSmsOtpFilling","defaultStatus":true,"line":43,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables filling of OTPs received via SMS on Android."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"AndroidSurfaceControl","variable":"kAndroidSurfaceControl","defaultStatus":true,"line":127,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Use android SurfaceControl API for managing display compositor's buffer queue and using overlays on Android. Also used by webview to disable surface SurfaceControl."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidTouchpadOverscrollHistoryNavigation","variable":"kAndroidTouchpadOverscrollHistoryNavigation","defaultStatus":true,"line":64,"comment":"Enables touchpad overscroll for history navigation."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidUpdateDisplayForContext","variable":"kAndroidUpdateDisplayForContext","defaultStatus":true,"line":56,"comment":"Update display for context on configuration changed and activity resumed."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidUseCorrectDisplayWorkArea","variable":"kAndroidUseCorrectDisplayWorkArea","defaultStatus":false,"line":12,"comment":"Feature controlling how to compute work area on Android.","todos":["TODO(crbug.com/372385871): Cleanup flag after investigating nothing is broken after changing the default behavior for availWidth/availHeight/availTop/availLeft."]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidUseCorrectWindowBounds","variable":"kAndroidUseCorrectWindowBounds","defaultStatus":true,"line":15,"comment":"Use Android WindowManager's WindowMetrics as the data source for top-level browser window bounds in Blink."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidUseDisplayTopology","variable":"kAndroidUseDisplayTopology","defaultStatus":false,"line":17,"comment":"Enables usage of the display topology API to obtain information about all displays."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AndroidWarmUpSpareRendererWithTimeout","variable":"kAndroidWarmUpSpareRendererWithTimeout","defaultStatus":false,"line":92,"comment":"Warm up a spare renderer after each navigation on Android."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"AndroidWindowOcclusion","variable":"kAndroidWindowOcclusion","defaultStatus":false,"line":19,"comment":"Enables using occlusion information from Android to save CPU and memory."},{"type":"feature","file":"media/base/media_switches.cc","name":"AndroidZeroCopyVideoCapture","variable":"kAndroidZeroCopyVideoCapture","defaultStatus":false,"line":1201,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables zero-copy video capture on Android."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"ANGLEPerContextBlobCache","variable":"kANGLEPerContextBlobCache","defaultStatus":false,"line":868},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"AnnotatedPageContentExtraction","variable":"kAnnotatedPageContentExtraction","defaultStatus":false,"line":118},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"AnnotatedPageContentExtractionOnHideFix","variable":"kAnnotatedPageContentExtractionOnHideFix","defaultStatus":true,"line":121},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"AnnotatedPageContentNonSalientFiltering","variable":"kAnnotatedPageContentNonSalientFiltering","defaultStatus":true,"line":127},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"AnnotatedPageContentPDFTextExtraction","variable":"kAnnotatedPageContentPDFTextExtraction","defaultStatus":true,"line":133},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"AnnotatedPageContentWithActionableElements","variable":"kAnnotatedPageContentWithActionableElements","defaultStatus":false,"line":130},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"AnnotatedPageContentWithMediaData","variable":"kAnnotatedPageContentWithMediaData","defaultStatus":false,"line":133},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AnnotatorMode","variable":"kAnnotatorMode","defaultStatus":true,"line":58,"comment":"Controls whether the annotator feature is enabled in ChromeOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"AomVpxUsePresentationThreadType","variable":"kAomVpxUsePresentationThreadType","defaultStatus":false,"line":1710,"comment":"Controls whether AOM/VPX decoders should use the presentation thread type."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiAlarmsCreateLengthLimit","variable":"kApiAlarmsCreateLengthLimit","defaultStatus":true,"line":17,"comment":"Controls the limit for alarms.create() API input."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiContentSettingsClipboard","variable":"kApiContentSettingsClipboard","defaultStatus":true,"line":19,"comment":"Controls the availability of contentSettings.clipboard."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiContextualTasksPrivate","variable":"kApiContextualTasksPrivate","defaultStatus":false,"line":29,"comment":"Controls the availability of the contextualTasksPrivate API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiEnterpriseKioskInput","variable":"kApiEnterpriseKioskInput","defaultStatus":true,"line":21,"comment":"Controls the availability of the enterprise.kioskInput API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiEnterpriseReportingPrivateOnDataMaskingRulesTriggered","variable":"kApiEnterpriseReportingPrivateOnDataMaskingRulesTriggered","defaultStatus":true,"line":33,"comment":"Controls the availability of the `enterprise.reportingPrivate.onDataMaskingRulesTriggered` API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiGlicAccessFromGoogleWebpage","variable":"kApiGlicAccessFromGoogleWebpage","defaultStatus":false,"line":36,"comment":"Controls the availability of Glic access from Google webpages."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiGlicAccessFromPromotionPage","variable":"kApiGlicAccessFromPromotionPage","defaultStatus":false,"line":39,"comment":"Controls the availability of Glic access from Chrome promotion pages."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiGlicPrivate","variable":"kApiGlicPrivate","defaultStatus":true,"line":31,"comment":"Controls the availability of the glicPrivate API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiMimeHandler","variable":"kApiMimeHandler","defaultStatus":true,"line":23,"comment":"Controls the availability of registering public MIME handlers via the mimeHandler manifest key."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiOdfsConfigPrivate","variable":"kApiOdfsConfigPrivate","defaultStatus":true,"line":27,"comment":"Controls the availability of the odfsConfigPrivate API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiProxyOverrideRulesPrivate","variable":"kApiProxyOverrideRulesPrivate","defaultStatus":true,"line":73,"comment":"Controls the availability of the new `proxyOverrideRulesPrivate` API."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiRuntimeActionData","variable":"kApiRuntimeActionData","defaultStatus":false,"line":25,"comment":"Controls the availability of the runtime.actionData API.","todos":["TODO(crbug.com/376354347): Remove this when the experiment is finished."]},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ApiRuntimeGetPlatformInfoNaClArch","variable":"kApiRuntimeGetPlatformInfoNaClArch","defaultStatus":true,"line":75,"comment":"Controls the availability of the deprecated nacl_arch in runtime.getPlatformInfo() API."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ApnRevamp","variable":"kApnRevamp","defaultStatus":true,"line":60},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AppLaunchShortcut","variable":"kAppLaunchShortcut","defaultStatus":true,"line":841,"comment":"Enables the App launch keyboard shortcut."},{"type":"feature","file":"media/base/media_switches.cc","name":"ApplicationAudioCaptureMac","variable":"kApplicationAudioCaptureMac","defaultStatus":true,"line":471,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables application audio capture for getDisplayMedia (gDM) window capture in macOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"ApplicationAudioCaptureWin","variable":"kApplicationAudioCaptureWin","defaultStatus":true,"line":451,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables application audio capture for getDisplayMedia (gDM) window capture in Windows."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ApplyClientsideModelPredictionsForPasswordTypes","variable":"kApplyClientsideModelPredictionsForPasswordTypes","defaultStatus":false,"line":46,"comment":"Enables using clientside form classifier predictions for password forms."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"ApplyDeviceChoiceRenewal","variable":"kApplyDeviceChoiceRenewal","defaultStatus":false,"line":86,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ui/views/views_features.cc","name":"ApplyInitialUrlToWebContents","variable":"kApplyInitialUrlToWebContents","defaultStatus":true,"line":26,"comment":"Used to apply the initial URL to the WebContents in WebView. This is a kill switch for this new logic, see crbug.com/456058558.","todos":["TODO(https://crbug.com/456058558): Remove this flag once the feature becomes stable."]},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ApplyNativeOcclusionToCompositor","variable":"kApplyNativeOcclusionToCompositor","defaultStatus":false,"line":44,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Once enabled, the exact behavior is dictated by the field trial param name `kApplyNativeOcclusionToCompositorType`."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"AppMenuGlowUp","variable":"kAppMenuGlowUp","defaultStatus":false,"line":70},{"type":"feature","file":"ash/public/cpp/app_list/app_list_features.cc","name":"AppsCollections","variable":"kAppsCollections","defaultStatus":false,"line":19,"comment":"Enables the Launcher Apps Collection UI in ChromeOS - a modular view with different categories filled with predefined apps."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AppShimLaunchChromeSilently","variable":"kAppShimLaunchChromeSilently","defaultStatus":true,"line":57,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"When enabled, app shims try to launch chrome silently if chrome isn't already running, rather than have chrome launch visibly with a new tab/profile selector. https://crbug.com/40180521"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AppShimNewCloseBehavior","variable":"kAppShimNewCloseBehavior","defaultStatus":false,"line":51,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"This is used to control the new app close behavior on macOS wherein closing all windows for an app leaves the app running. https://crbug.com/40130206"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AppShimNotificationAttribution","variable":"kAppShimNotificationAttribution","defaultStatus":false,"line":62,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"When enabled, notifications coming from PWAs will be displayed via their app shim processes, rather than directly by chrome. https://crbug.com/40616749"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AppShimRemoteCocoa","variable":"kAppShimRemoteCocoa","defaultStatus":true,"line":46,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Can be used to disable RemoteCocoa (hosting NSWindows for apps in the app process). For debugging purposes only."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AppSpecificNotifications","variable":"kAppSpecificNotifications","defaultStatus":true,"line":37,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, notifications from PWA's will use the PWA icon and name, as long as the PWA is on the start menu. b/40285965."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ArcAdbSideloadingFeature","variable":"kArcAdbSideloadingFeature","defaultStatus":false,"line":63,"comment":"Controls whether to enable ARC ADB sideloading support."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ArcExchangeVersionOnMojoHandshake","variable":"kArcExchangeVersionOnMojoHandshake","defaultStatus":false,"line":13,"comment":"Please keep alphabetized."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ArcOnDemandV2","variable":"kArcOnDemandV2","defaultStatus":true,"line":20,"comment":"Controls whether to always start ARC automatically, or wait for the user's action to start it later in an on-demand manner. Already enabled by default for managed users. In V2, it will be expand to more users such as unmanaged users."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ArcVmGki","variable":"kArcVmGki","defaultStatus":false,"line":47,"comment":"Controls whether to start ARC with the GKI kernel."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ArcVmPvclock","variable":"kArcVmPvclock","defaultStatus":true,"line":206,"comment":"Controls whether to enable virtio-pvclock in ARCVM"},{"type":"feature","file":"chrome/browser/ash/chromebox_for_meetings/artemis/artemis_features.cc","name":"ArtemisConfig","variable":"kArtemisConfig","defaultStatus":false,"line":29,"comment":"Configures various fetch/upload parameters in Artemis."},{"type":"feature","file":"chrome/browser/ash/chromebox_for_meetings/artemis/artemis_features.cc","name":"ArtemisDynamicCloudLogging","variable":"kArtemisDynamicCloudLogging","defaultStatus":false,"line":13,"comment":"Enables dynamic cloud logging for Artemis."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ArtificialUIDelay","variable":"kArtificialUIDelay","defaultStatus":false,"line":596,"comment":"Used to add an artificial delay for UI rendering during testing and debugging."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"AsanBrpDereferenceCheck","variable":"kAsanBrpDereferenceCheck","defaultStatus":true,"line":276},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"AsanBrpExtractionCheck","variable":"kAsanBrpExtractionCheck","defaultStatus":false,"line":277},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"AsanBrpInstantiationCheck","variable":"kAsanBrpInstantiationCheck","defaultStatus":true,"line":279},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AshSessionRestoreDeferOccludedActiveTabLoad","variable":"kAshSessionRestoreDeferOccludedActiveTabLoad","defaultStatus":true,"line":69,"comment":"Controls whether to defer loading of active tabs of background (occluded) browser windows during session restore."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AssistMultiWord","variable":"kAssistMultiWord","defaultStatus":true,"line":73,"comment":"Controls whether to enable assistive multi word suggestions."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"AsyncFullscreenWindowState","variable":"kAsyncFullscreenWindowState","defaultStatus":false,"line":446,"comment":"If enabled, fullscreen window state is updated asynchronously."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"AsyncLiveResize","variable":"kAsyncLiveResize","defaultStatus":false,"line":89,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Make live-resize of an NSWindow be asynchronous (so it doesn't block the UI thread)."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"AsyncPredictorDbUpdate","variable":"kAsyncPredictorDbUpdate","defaultStatus":true,"line":21,"comment":"Whether to update the predictor database asynchronously."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"AsyncVirtualFileExtraction","variable":"kAsyncVirtualFileExtraction","defaultStatus":true,"line":489},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AtMemoryNoDeviceReauthCheck","variable":"kAtMemoryNoDeviceReauthCheck","defaultStatus":false,"line":16,"comment":"When enabled, SPII data is not removed from AtMemory search results when the client does not support device reauth."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AtMemorySkipEnablementChecks","variable":"kAtMemorySkipEnablementChecks","defaultStatus":false,"line":20,"comment":"Bypasses the eligibility checks (PersonalContext, Gemini subscription tier and other) for local testing and teamfooding."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AttachUnownedInnerWebContents","variable":"kAttachUnownedInnerWebContents","defaultStatus":false,"line":149,"comment":"Whether to allow attaching an inner WebContents not owned by the outer WebContents. This is for prototyping purposes and should not be enabled in production."},{"type":"feature","file":"media/base/media_switches.cc","name":"AudioDuckingWin","variable":"kAudioDuckingWin","defaultStatus":true,"line":1559,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables ducking of other Windows applications."},{"type":"feature","file":"media/base/media_switches.cc","name":"AudioFlexibleLoopbackForSystemLoopback","variable":"kAudioFlexibleLoopbackForSystemLoopback","defaultStatus":true,"line":617,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"AudioFocusDuckFlash","variable":"kAudioFocusDuckFlash","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":1564,"comment":"Enables flash to be ducked by audio focus. This is enabled on Chrome OS which has audio focus enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AudioFocusSetting","variable":"kAudioFocusSetting","defaultStatus":false,"line":79,"comment":"Controls whether to enable the audio focus enforcement toggle in settings."},{"type":"feature","file":"media/base/media_switches.cc","name":"AudioOffload","variable":"kAudioOffload","defaultStatus":false,"line":1690,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables audio offload when supported by endpoints."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AudioSelectionImprovement","variable":"kAudioSelectionImprovement","defaultStatus":false,"line":76,"comment":"Enables audio I/O selection improvement algorithm. http://launch/4301655."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AudioServiceOutOfProcess","variable":"kAudioServiceOutOfProcess","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX))","value":false}],"line":152,"comment":"Runs the audio service in a separate process."},{"type":"feature","file":"content/public/common/content_features.cc","name":"AudioServiceSandbox","variable":"kAudioServiceSandbox","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA)","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA))","value":false}],"line":162,"comment":"Enables the audio-service sandbox. This feature has an effect only when the kAudioServiceOutOfProcess feature is enabled."},{"type":"feature","file":"media/audio/audio_features.cc","name":"AudioStereoInputStreamParameters","variable":"kAudioStereoInputStreamParameters","defaultStatus":false,"line":42,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Use stereo channel layout for input stream parameters.","todos":["TODO(crbug.com/440210010): Remove when the experiment is done."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AuthPanelUsingAuthHub","variable":"kAuthPanelUsingAuthHub","defaultStatus":false,"line":1836,"comment":"This features toggles `AuthHub` is used as authentication backend by `AuthPanel` on ChromeOS."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"AutoApproveSharedPasswordUpdatesFromSameSender","variable":"kAutoApproveSharedPasswordUpdatesFromSameSender","defaultStatus":false,"line":49,"comment":"When enabled, updates to shared existing passwords from the same sender are auto-approved."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"AutocompleteActionPredictorConfidenceCutoff","variable":"kAutocompleteActionPredictorConfidenceCutoff","defaultStatus":false,"line":21,"comment":"This is used to enable an experiment for modifying confidence cutoff of prerender and preconnect for autocomplete action predictor."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutocorrectByDefault","variable":"kAutocorrectByDefault","defaultStatus":true,"line":99,"comment":"Enables using a toggle for enabling autocorrect on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutocorrectParamsTuning","variable":"kAutocorrectParamsTuning","defaultStatus":false,"line":96,"comment":"Enables params tuning experiment for autocorrect on ChromeOS."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"AutoDeElevate","variable":"kAutoDeElevate","defaultStatus":true,"line":229,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, the browser process will re-launch itself when launched with an elevated linked token. The re-launched browser will use the token from the Windows Shell (explorer.exe), which is typically non-elevated."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoDocPiPPermissionPromptAndroid","variable":"kAutoDocPiPPermissionPromptAndroid","defaultStatus":false,"line":1184,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables automatic Picture-in-Picture permission prompt on Android for document picture-in-picture."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAcceptDomMutationAfterAutofillSubmission","variable":"kAutofillAcceptDomMutationAfterAutofillSubmission","defaultStatus":false,"line":38,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, we start forwarding submissions with source DOM_MUTATION_AFTER_AUTOFILL, even for non-password forms."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAcrossIframesIos","variable":"kAutofillAcrossIframesIos","defaultStatus":true,"line":44,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"LINT.IfChange(autofill_across_iframes_ios) Controls whether to flatten and fill cross-iframe forms on iOS.","todos":["TODO(crbug.com/40266699) Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAcrossIframesIosThrottling","variable":"kAutofillAcrossIframesIosThrottling","defaultStatus":true,"line":50,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Throttles child frame extraction to a maximum number of child frames that can be extracted by applying the following rules: (1) remove the child frames from an individual form that busts the limit and (2) stop extracting child frames on other forms once the limit is reached across forms."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAcrossIframesIosTriggerFormExtraction","variable":"kAutofillAcrossIframesIosTriggerFormExtraction","defaultStatus":true,"line":57,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether to trigger form extraction when detecting a form activity on a xframe form. Only effective when Autofill is enabled across iframes (kAutofillAcrossIframesIos)."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillActorFormFillingSplitOutContactInfo","variable":"kAutofillActorFormFillingSplitOutContactInfo","defaultStatus":false,"line":63,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, ActorFormFillingServiceImpl will attempt to split requests for a form section fill (when relevant) into two sub-fills - one for a \"contact info\" sub-section and one for an \"address\" sub-section."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillActorMode","variable":"kAutofillActorMode","defaultStatus":true,"line":69,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch: If enabled, `ChromeAutofillClient` may enter the actor mode, changing how the UI, parsing and the server predictions work. For more context see: go/autofill-actor-mode-implementation"},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillActorRewriteCreditCardTriggerField","variable":"kAutofillActorRewriteCreditCardTriggerField","defaultStatus":true,"line":73,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether to rewrite the credit card trigger field to the first credit card number field in the same section."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillActorSuppressImport","variable":"kAutofillActorSuppressImport","defaultStatus":false,"line":79,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether all import tasks are suppressed when an Actor task is active on the tab in question. This also suppresses silent updates and saving to Autocomplete."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAddressSuggestionsOnTyping","variable":"kAutofillAddressSuggestionsOnTyping","defaultStatus":false,"line":86,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag to control displaying of Autofill suggestions on unclassified fields based on prefix matching. These suggestions are displayed after the user typed a certain number of characters that match some data stored in the user's profile.","todos":["TODO(crbug.com/381994105): Cleanup when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAddressSuggestionsOnTypingHasStrikeDatabase","variable":"kAutofillAddressSuggestionsOnTypingHasStrikeDatabase","defaultStatus":false,"line":138,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag to controls whether Autofill on typing suggestions will have a strike database."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AutofillAddressSurvey","variable":"kAutofillAddressSurvey","defaultStatus":false,"line":78,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\"],"comment":"Enables or disables the Autofill survey triggered by opening a prompt to save address info."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAddressUserDeclinedSaveSurvey","variable":"kAutofillAddressUserDeclinedSaveSurvey","defaultStatus":false,"line":144,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag controlling the display of surveys when a user declines the save prompt of Autofill address and a user does not have any address stored. The goal is to understand the reason and work towards improving acceptance."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAddressUserDeclinedSuggestionSurvey","variable":"kAutofillAddressUserDeclinedSuggestionSurvey","defaultStatus":false,"line":150,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag controlling the display of surveys when a user does not accept an Autofill suggestion. The goal is to understand the reason and work towards improving acceptance."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAddressUserPerceptionSurvey","variable":"kAutofillAddressUserPerceptionSurvey","defaultStatus":false,"line":160,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag to control the displaying of an ongoing hats survey that measures users perception of Autofill. Differently from other surveys, the Autofill user perception survey will not have a specific target number of answers where it will be fully stop, instead, it will run indefinitely. A target number of full answers exists, but per quarter. The goal is to have a go to place to understand how users are perceiving autofill across quarters."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiAlwaysTriggerServerModel","variable":"kAutofillAiAlwaysTriggerServerModel","defaultStatus":false,"line":168,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled (and if `AutofillAiServerModel` is also enabled), this ignores the `may_run_server_model` boolean sent by the Autofill server and, instead, queries the server model for every encountered form that is not already cached locally. Only intended for testing."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiAvailableByDefault","variable":"kAutofillAiAvailableByDefault","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":174,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled Autofill AI becomes available by default and the previous enable toggle controls whether online model runs and MQLS logging are allowed.","todos":["TODO(crbug.com/440488776): Remove once clean up happens."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillAiBasedAmountExtractionIgnoreSeenTermsForTesting","variable":"kAutofillAiBasedAmountExtractionIgnoreSeenTermsForTesting","defaultStatus":false,"line":17,"comment":"When enabled, the BNPL flow acts as if the user has not yet seen the AI terms. This allows the AI terms to be shown as bold font repeatedly for testing purposes, regardless of the actual stored user preference."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiDedupeEntities","variable":"kAutofillAiDedupeEntities","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":179,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi entities will be deduped on every major milestone."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillAiDisableReauthRequirement","variable":"kAutofillAiDisableReauthRequirement","defaultStatus":false,"line":23,"comment":"When enabled, Wallet private passes are supported on devices without re-auth."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiEditEntitiesFromSaveUpdatePrompt","variable":"kAutofillAiEditEntitiesFromSaveUpdatePrompt","defaultStatus":false,"line":186,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)","BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the entity save/update prompt displays an edit button that opens the entity editor on click."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiFillingSurvey","variable":"kAutofillAiFillingSurvey","defaultStatus":false,"line":193,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after a walletable suggestion is displayed and the form submitted. The survey does not require the suggestion to be accepted."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillAiForceOptIn","variable":"kAutofillAiForceOptIn","defaultStatus":false,"line":28,"comment":"When enabled, the user will be considered to be opted-in to Autofill AI by default. Used for development purposes."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiIgnoreGeoIp","variable":"kAutofillAiIgnoreGeoIp","defaultStatus":true,"line":209,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, no GeoIp requirements are imposed for AutofillAi. Note that this feature can be modified as follows (all assuming that `kAutofillAiIgnoreGeoIp` is enabled): - If both `kAutofillAiIgnoreGeoIpAllowlist` and `kAutofillAiIgnoreGeoIpBlocklist` are empty, then all geo IPs are permitted. - If only `kAutofillAiIgnoreGeoIpBlocklist` is non-empty, then all geo ips but those in `kAutofillAiIgnoreGeoIpBlocklist` are permitted. - If `kAutofillAiIgnoreGeoIpAllowlist` is non-empty, then only geo ips in `kAutofillAiIgnoreGeoIpAllowlist` are permitted. Both the allowlist and the blocklist are expected to consist of comma-separated uppercase two-digit country codes (see documentation of `GeoIpCountryCode`.)"},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiNoFillingIconsExperiment","variable":"kAutofillAiNoFillingIconsExperiment","defaultStatus":false,"line":227,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, Autofill AI filling suggestion do not have an icon."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiOnlineModelToggleNewTitle","variable":"kAutofillAiOnlineModelToggleNewTitle","defaultStatus":true,"line":232,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, Autofill AI Settings Page title uses \"Smarter form understanding\" instead of \"Enhanced autofill\"."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiOrder","variable":"kAutofillAiOrder","defaultStatus":true,"line":236,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi supports order entities."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiPrivateAiShadowMetric","variable":"kAutofillAiPrivateAiShadowMetric","defaultStatus":false,"line":242,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When inference through the non-PI AutofillAi online model is run (implying that AutofillAiUsePrivateAi is disabled) and this flag is enabled, an additional inference request through the PI stack is run to compute shadow metrics between the two results."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiReauthRequired","variable":"kAutofillAiReauthRequired","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":249,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi requires re-auth when filling/viewing sensitive fields. As part of this feature sensitive fields are also obfuscated during suggestion generation time.","todos":["TODO(crbug.com/468236932): Remove once feature is launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiSavePromptSurvey","variable":"kAutofillAiSavePromptSurvey","defaultStatus":false,"line":255,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the save prompt for a walletable entity was interacted with."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiServerModel","variable":"kAutofillAiServerModel","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":271,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the client may trigger the server model for AutofillAI type predictions."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiShipment","variable":"kAutofillAiShipment","defaultStatus":true,"line":323,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi supports shipment entities."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiShowDialogInSettingsWhenUpstreamingFails","variable":"kAutofillAiShowDialogInSettingsWhenUpstreamingFails","defaultStatus":true,"line":328,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)","BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, the user is notified about a failure to upstream data to Wallet via a dialog instead of a snackbar."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiShowWalletDisabledBanner","variable":"kAutofillAiShowWalletDisabledBanner","defaultStatus":false,"line":334,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether a banner is shown in settings when wallet data sharing is disabled."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiUsePrivateAi","variable":"kAutofillAiUsePrivateAi","defaultStatus":false,"line":339,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the client may trigger the server model for AutofillAI type predictions using Private AI Compute."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiVoteForFormatStringsForFlightNumbers","variable":"kAutofillAiVoteForFormatStringsForFlightNumbers","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":344,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, votes for the format of flight number fields are uploaded. For example, if there is a flight number \"LH89\" on file, a submitted value of \"89\" on a field with type `FLIGHT_RESERVATION_FLIGHT_NUMBER` uploads \"N\"."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWalletFlightReservation","variable":"kAutofillAiWalletFlightReservation","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":350,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi supports flight reservation entities from Google Wallet."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWalletPassBranding2026","variable":"kAutofillAiWalletPassBranding2026","defaultStatus":false,"line":355,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables the 2026 Autofill AI Wallet Pass Branding Updates."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWalletPrivatePassesCapability","variable":"kAutofillAiWalletPrivatePassesCapability","defaultStatus":false,"line":365,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, account-related eligibility criteria (minor status, location) are determined based on a capability, rather than approximated through signals that were readily available in Chrome prior to the Autofill-specific capability (e.g., using geo-location)."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWalletShopping","variable":"kAutofillAiWalletShopping","defaultStatus":false,"line":373,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, Autofill AI Shopping entities are surfaced from Google Wallet."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWalletVehicleRegistration","variable":"kAutofillAiWalletVehicleRegistration","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":377,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AutofillAi supports vehicle registration entities from Google Wallet."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAiWithDataSchema","variable":"kAutofillAiWithDataSchema","defaultStatus":[{"condition":"","value":true},{"condition":"","value":false}],"line":382,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables the second iteration AutofillAI."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAllowFillingModifiedInitialValues","variable":"kAutofillAllowFillingModifiedInitialValues","defaultStatus":true,"line":388,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, autofill will fill not skip filling fields that had an initial value which was modified."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAmbientAutofill","variable":"kAutofillAmbientAutofill","defaultStatus":false,"line":392,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the ambient autofill experience is enabled in Chrome."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillAmbientAutofillSkipEligibilityChecks","variable":"kAutofillAmbientAutofillSkipEligibilityChecks","defaultStatus":false,"line":32,"comment":"When enabled, all ambient autofill eligibility checks will be overridden and return true. Used for development purposes."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAndroidDesktopKeyboardAccessoryRevamp","variable":"kAutofillAndroidDesktopKeyboardAccessoryRevamp","defaultStatus":false,"line":419,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, on Android desktop, the Autofill keyboard accessory will have a new behavior and design.","todos":["TODO(crbug.com/438125774): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAndroidDesktopSuppressAccessoryOnEmpty","variable":"kAutofillAndroidDesktopSuppressAccessoryOnEmpty","defaultStatus":false,"line":424,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, on Android desktop, Autofill keyboard accessory will be suppressed when there are no autofill suggestions."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAndroidDisableSuggestionsOnJSFocus","variable":"kAutofillAndroidDisableSuggestionsOnJSFocus","defaultStatus":false,"line":436,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether user tap on an element is needed to show autofill suggestions. If enabled, this flag would disable android autofill suggestions if the focus on an element is Javascript-originated. DidReceiveLeftMouseDownOrGestureTapInNode() will show suggestions if the focus change occurred as a result of a gesture. See crbug.com/730764 for why showing autofill suggestions as a result of JavaScript changing focus is enabled on WebView.","todos":["TODO(crbug.com/40286775) Clean up autofill feature flag `kAutofillAndroidDisableSuggestionsOnJSFocus`"]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAndroidFormDataCompareFieldGlobalId","variable":"kAutofillAndroidFormDataCompareFieldGlobalId","defaultStatus":true,"line":443,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, on Android, form fields are retrieved by comparing FormFieldIds instead of the set of attributes. This flag affects some of the logic in AndroidAutofillProvider.","todos":["TODO(crbug.com/456526604): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAndroidKeyboardAccessoryDynamicPositioning","variable":"kAutofillAndroidKeyboardAccessoryDynamicPositioning","defaultStatus":false,"line":451,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, on Android, the Autofill keyboard accessory will not be displayed attached to the keyboard but will be placed below or above the focused field. It works only for large form factor devices like tablets or desktops.","todos":["TODO(crbug.com/438125774): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAtMemory","variable":"kAutofillAtMemory","defaultStatus":false,"line":455,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Feature flag for kAutofillAtMemory."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAtMemoryInactivityNudge","variable":"kAutofillAtMemoryInactivityNudge","defaultStatus":false,"line":483,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether the Autosuggest nudging logic is used. If enabled, user are encouraged to use the AtMemory feature."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillAtMemoryTriggerShortcut","variable":"kAutofillAtMemoryTriggerShortcut","defaultStatus":false,"line":488,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, AtMemory can be triggered with a keyboard shortcut like Ctrl+Space."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillBetterLocalHeuristicPlaceholderSupport","variable":"kAutofillBetterLocalHeuristicPlaceholderSupport","defaultStatus":false,"line":497,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the placeholder is not considered a label fallback on the renderer side anymore. Instead, local heuristic will match regexes against either the label or the placeholder, depending on how high quality the label is. If no matche is found, local heuristics fall back to the other value. This feature can be thought of as \"lightweight\" multi-label support.","todos":["TODO(crbug.com/320965828): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillCapturedSiteTestsMetricsScraper","variable":"kAutofillCapturedSiteTestsMetricsScraper","defaultStatus":false,"line":47,"comment":"Testing tool that collects metrics during a run of the captured site tests and dumps the collected metrics into a specified output directory. For each test, a file named {test-name}.txt is created. It contains all the collected metrics in the following format. histogram-name-1 bucket value ... histogram-name-2 ... The set of metrics can be restricted using `kAutofillCapturedSiteTestsMetricsScraperMetricNames`. It is helpful in conjunction with `tools/captured_sites/metrics-scraper.py`."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillCapturedSiteTestsUseAutofillFlow","variable":"kAutofillCapturedSiteTestsUseAutofillFlow","defaultStatus":false,"line":67,"comment":"If enabled, Captured Site Tests will use 'AutofillFlow' utility to trigger the autofill action. This feature is for testing purposes and is not supposed to be launched."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AutofillCardSurvey","variable":"kAutofillCardSurvey","defaultStatus":false,"line":81,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\"],"comment":"Enables or disables the Autofill survey triggered by opening a prompt to save credit card info."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillCreditCardScannerIos","variable":"kAutofillCreditCardScannerIos","defaultStatus":false,"line":23,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"When enabled, users are given the option to use their phone camera to scan their credit card when adding it via Autofill iOS settings."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillCreditCardUserPerceptionSurvey","variable":"kAutofillCreditCardUserPerceptionSurvey","defaultStatus":false,"line":501,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Same as `kAutofillAddressUserPerceptionSurvey` but for credit card forms."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillDelayApcForPredictions","variable":"kAutofillDelayApcForPredictions","defaultStatus":false,"line":509,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, `FormPredictionsTracker` will wait up to 1 second for Autofill to finish parsing forms pesent on a given tab before capturing APC. For more context see: go/autofill-actor-mode-implementation","todos":["TODO(crbug.com/479794574): Convert to killswitch if no regressions are spotted."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillDisableAddressImport","variable":"kAutofillDisableAddressImport","defaultStatus":false,"line":513,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch for Autofill address import."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillDisableBnplCountryCheckForTesting","variable":"kAutofillDisableBnplCountryCheckForTesting","defaultStatus":false,"line":28,"comment":"Enables testing BNPL in countries where it would otherwise be disabled. This is a testing flag that should never be enabled."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillDisableFilling","variable":"kAutofillDisableFilling","defaultStatus":false,"line":516,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch for Autofill filling."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillDisableProfileUpdates","variable":"kAutofillDisableProfileUpdates","defaultStatus":false,"line":73,"comment":"If enabled, Autofill will not apply updates to address profiles based on data extracted from submitted forms. This feature is mostly for debugging and testing purposes and is not supposed to be launched."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillDisableSilentProfileUpdates","variable":"kAutofillDisableSilentProfileUpdates","defaultStatus":false,"line":78,"comment":"If enabled, Autofill will not apply silent updates to the structure of addresses and names. This feature is mostly for debugging and testing purposes and is not supposed to be launched."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillDisableSuggestionStrikeDatabase","variable":"kAutofillDisableSuggestionStrikeDatabase","defaultStatus":false,"line":83,"comment":"Kill switch for disabling suppressing suggestions based on the strike database."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillDisallowMoreHyphenLikeLabels","variable":"kAutofillDisallowMoreHyphenLikeLabels","defaultStatus":false,"line":523,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"LINT.IfChange(autofill_disallow_more_hyphen_like_labels) When enabled, the list of characters a label cannot exclusively consist of includes more hyphen-like characters: em-dash, minus sign and fullwidth hyphen-minus.","todos":["TODO(crbug.com/440039204): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillDoNotUpdateAutofillAvailabilityOnFocusEvents","variable":"kAutofillDoNotUpdateAutofillAvailabilityOnFocusEvents","defaultStatus":true,"line":529,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, autofill availability event will not be updated in BrowserAutofillManager::OnFocusOnFormField()."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableAblationStudy","variable":"kAutofillEnableAblationStudy","defaultStatus":false,"line":534,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls an ablation study in which autofill for addresses and payment data can be suppressed."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableAddressFieldParserNG","variable":"kAutofillEnableAddressFieldParserNG","defaultStatus":false,"line":602,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables a new implementation for address field parsing that is based on backtracking."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableAiBasedAmountExtraction","variable":"kAutofillEnableAiBasedAmountExtraction","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":33,"comment":"When enabled, Chrome will extract the checkout amount from the checkout page using server-side AI."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableAiCardRecommendation","variable":"kAutofillEnableAiCardRecommendation","defaultStatus":false,"line":44,"comment":"When enabled, AI-based card recommendations will be offered on Autofill when at least two credit card suggestions are shown."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableAmountExtraction","variable":"kAutofillEnableAmountExtraction","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":49,"comment":"When enabled, Chrome will extract the checkout amount from the checkout page of the allowlisted merchant websites."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableAmountExtractionTesting","variable":"kAutofillEnableAmountExtractionTesting","defaultStatus":false,"line":61,"comment":"Enables testing of the result of checkout amount extraction on desktop. This flag will allow amount extraction to run on any website when a CC form is clicked. This flag should never be enabled."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableAutofillSettingsEnterprisePolicy","variable":"kAutofillEnableAutofillSettingsEnterprisePolicy","defaultStatus":false,"line":607,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, Autofill will support per domain and per data type enterprise policy."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBnplAffirmInternationalization","variable":"kAutofillEnableBnplAffirmInternationalization","defaultStatus":false,"line":66,"comment":"When enabled, buy now pay later (BNPL) for Affirm will be offered in international markets."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBnplKlarnaInternationalization","variable":"kAutofillEnableBnplKlarnaInternationalization","defaultStatus":false,"line":71,"comment":"When enabled, buy now pay later (BNPL) for Klarna will be offered in international markets."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBottomSheetScanCardAndFill","variable":"kAutofillEnableBottomSheetScanCardAndFill","defaultStatus":true,"line":77,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"When enabled, users are given the bottom sheet suggestion to scan credit card, and save and fill the card information."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBuyNowPayLater","variable":"kAutofillEnableBuyNowPayLater","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":82,"comment":"When enabled, buy now pay later (BNPL) in Autofill will be offered."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBuyNowPayLaterForExternallyLinked","variable":"kAutofillEnableBuyNowPayLaterForExternallyLinked","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":93,"comment":"When enabled, additional steps are required to autofill buy now pay later (BNPL) issuers that are externally linked."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBuyNowPayLaterForKlarna","variable":"kAutofillEnableBuyNowPayLaterForKlarna","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":104,"comment":"When enabled, buy now pay later (BNPL) for Klarna in Autofill will be offered."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBuyNowPayLaterSyncing","variable":"kAutofillEnableBuyNowPayLaterSyncing","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":114,"comment":"When enabled, buy now pay later (BNPL) data will be synced to Chrome clients."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineString","variable":"kAutofillEnableBuyNowPayLaterUpdatedSuggestionSecondLineString","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":125,"comment":"When enabled, the second line string in a BNPL suggestion is updated to include the issuer names for better brand recognition."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableCardBenefitsForAmericanExpress","variable":"kAutofillEnableCardBenefitsForAmericanExpress","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS)","value":false}],"line":136,"comment":"When enabled, card benefits offered by American Express will be shown in Payments Autofill UI."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableCardBenefitsForBmo","variable":"kAutofillEnableCardBenefitsForBmo","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":145,"comment":"When enabled, card benefits offered by BMO will be shown in Payments Autofill UI."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableCardBenefitsSync","variable":"kAutofillEnableCardBenefitsSync","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS)","value":false}],"line":156,"comment":"When enabled, Chrome will show metadata along with other card information when the virtual card is presented to users."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableCvcStorageAndFillingStandaloneFormEnhancement","variable":"kAutofillEnableCvcStorageAndFillingStandaloneFormEnhancement","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS)","value":true}],"line":165,"comment":"When enabled, this will enhance the CVV storage project. The enhancement will enable CVV storage suggestions for standalone CVC fields."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableDeduplicationOnBackgroundThread","variable":"kAutofillEnableDeduplicationOnBackgroundThread","defaultStatus":false,"line":613,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether the deduplication process for Autofill profiles is run on a background thread to avoid blocking the UI thread.","todos":["TODO(crbug.com/496889243): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableDownstreamCardAwarenessIph","variable":"kAutofillEnableDownstreamCardAwarenessIph","defaultStatus":false,"line":174,"comment":"When enabled, in-product help UI will be shown the first time a card added outside of Chrome appears in Autofill card suggestions.\""},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableExpirationDateImprovements","variable":"kAutofillEnableExpirationDateImprovements","defaultStatus":false,"line":621,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables a couple of improvements to credit card expiration date handling: - The autocomplete attribute values are rationalized with format strings like MM/YY from placeholders and labels in mind. - more fill follow.","todos":["TODO(crbug.com/40266396): Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableFlatRateCardBenefitsBlocklist","variable":"kAutofillEnableFlatRateCardBenefitsBlocklist","defaultStatus":true,"line":179,"comment":"When enabled, card flat rate benefit will not be shown on merchants in the blocklist."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableFlatRateCardBenefitsFromCurinos","variable":"kAutofillEnableFlatRateCardBenefitsFromCurinos","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":184,"comment":"When enabled, flat rate card benefits sourced from Curinos will be shown in Payments Autofill UI."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableFpanRiskBasedAuthentication","variable":"kAutofillEnableFpanRiskBasedAuthentication","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID) || \\","value":true}],"line":195,"comment":"When enabled, server card retrieval will begin with a risk-based check instead of jumping straight to CVC or biometric auth."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableGermanTransliteration","variable":"kAutofillEnableGermanTransliteration","defaultStatus":false,"line":626,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Control if Autofill supports German transliteration.","todos":["TODO(crbug.com/328968064): Remove when/if launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableGradientGoogleLogos","variable":"kAutofillEnableGradientGoogleLogos","defaultStatus":false,"line":204,"comment":"When enabled, gradient-style GPay and Wallet branding logos will be used."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableImportOfUnchangedValuesForCountryAndState","variable":"kAutofillEnableImportOfUnchangedValuesForCountryAndState","defaultStatus":false,"line":632,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the import of unchanged values for ADDRESS_HOME_COUNTRY and ADDRESS_HOME_STATE fields is enabled.","todos":["TODO(crbug.com/40137859): Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableImportWhenMultiplePhoneNumbers","variable":"kAutofillEnableImportWhenMultiplePhoneNumbers","defaultStatus":false,"line":638,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether to save the first number in a form with multiple phone numbers instead of aborting the import.","todos":["TODO(crbug.com/40742746) Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableNewAmexNetworkArt","variable":"kAutofillEnableNewAmexNetworkArt","defaultStatus":true,"line":208,"comment":"When enabled, updates the American Express network art in Autofill."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableNewCardBenefitsToggleText","variable":"kAutofillEnableNewCardBenefitsToggleText","defaultStatus":true,"line":212,"comment":"When enabled, the card benefits toggle in settings will show updated text."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableNewFopDisplayAndroid","variable":"kAutofillEnableNewFopDisplayAndroid","defaultStatus":false,"line":217,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, card and IBAN autofill will be shown in new FOP style."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableNonAffiliatedLoyaltyCardsFilling","variable":"kAutofillEnableNonAffiliatedLoyaltyCardsFilling","defaultStatus":false,"line":643,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, Autofill will help users fill in non-affiliated loyalty cards on loyalty card only fields."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableOffersInClankKeyboardAccessory","variable":"kAutofillEnableOffersInClankKeyboardAccessory","defaultStatus":false,"line":223,"comment":"When enabled, offers will be displayed in the Clank keyboard accessory during downstream."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableOmniboxAutofill","variable":"kAutofillEnableOmniboxAutofill","defaultStatus":false,"line":228,"comment":"When enabled, an \"Autofill payments\" omnibox chip will appear for relevant payment checkout forms."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableOneTimeCodeHeuristics","variable":"kAutofillEnableOneTimeCodeHeuristics","defaultStatus":false,"line":647,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, Autofill will use heuristics to identify OTP fields."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnablePayNowPayLaterTabs","variable":"kAutofillEnablePayNowPayLaterTabs","defaultStatus":false,"line":233,"comment":"When enabled, Chrome will use the Pay Now Pay Later tabs UI for payments autofill when buy now pay later options are available for the merchant webpage."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnablePrefetchingRiskDataForRetrieval","variable":"kAutofillEnablePrefetchingRiskDataForRetrieval","defaultStatus":false,"line":238,"comment":"When enabled, risk data is prefetched during payments autofill flows to reduce user-perceived latency."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableResurrectingPaymentsUsers","variable":"kAutofillEnableResurrectingPaymentsUsers","defaultStatus":false,"line":243,"comment":"When enabled, users that have previously turned off payments autofill will be prompted to turn it back on in instances where they can benefit from it."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableSaveAndFill","variable":"kAutofillEnableSaveAndFill","defaultStatus":false,"line":248,"comment":"When enabled, the 'Save and Fill' suggestion will be offered in the credit card dropdown menu for users who don't have any cards saved in Autofill."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableSecurityTouchEventFilteringAndroid","variable":"kAutofillEnableSecurityTouchEventFilteringAndroid","defaultStatus":false,"line":653,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)","BUILDFLAG(IS_ANDROID)"],"comment":"Controls if Chrome Autofill UI surfaces ignore touch events if something is fully or partially obscuring the Chrome window."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableSeparatePixPreferenceItem","variable":"kAutofillEnableSeparatePixPreferenceItem","defaultStatus":false,"line":253,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, show Pix settings as a separate preference menu item instead of bundling them together with the non-card payment preference menu item."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableSkippingUnrecognizedAttribute","variable":"kAutofillEnableSkippingUnrecognizedAttribute","defaultStatus":true,"line":659,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch: If enabled, `AutofillField` may not suppress suggestions on field that has autocomplete=unrecognized attribute."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillEnableStreetAddressMergeModes","variable":"kAutofillEnableStreetAddressMergeModes","defaultStatus":false,"line":666,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the missing merge modes will be re-enabled on nodes. To do that, MergeMode::kMergeChildrenAndReformatIfNeeded will be also added to all the nodes where required.","todos":["TODO(crbug.com/447111009): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableTouchToFillReshowForBnpl","variable":"kAutofillEnableTouchToFillReshowForBnpl","defaultStatus":true,"line":260,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the Touch To Fill bottom sheet on Android can be reshown after a BNPL flow is dismissed by a user."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableTravelCategoryAndMerchantBenefitsFromCurinos","variable":"kAutofillEnableTravelCategoryAndMerchantBenefitsFromCurinos","defaultStatus":false,"line":266,"comment":"When enabled, travel category and merchant benefits sourced from Curinos will be shown in Autofill."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableVcn3dsAuthentication","variable":"kAutofillEnableVcn3dsAuthentication","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":272,"comment":"When enabled, Chrome will trigger 3DS authentication during a virtual card retrieval if a challenge is required, 3DS authentication is available for the card, and FIDO is not."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableVirtualCardJavaPaymentsDataManager","variable":"kAutofillEnableVirtualCardJavaPaymentsDataManager","defaultStatus":true,"line":286,"comment":"When enabled, the Virtual Card enrollment bottom sheet uses the Java payments data manager and associated image fetcher to retrieve the cached card art images (when available on Android). When not enabled, the native payments data manager and associated image fetcher are used, where the image is not cached."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableWalletBranding","variable":"kAutofillEnableWalletBranding","defaultStatus":true,"line":291,"comment":"When enabled, certain strings and logos referencing Google Account, Google Payments, and Google Pay will instead reference Google Wallet."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillEnableWalletBrandingV2","variable":"kAutofillEnableWalletBrandingV2","defaultStatus":false,"line":295,"comment":"When enabled, further brings certain strings and images referencing Google Pay and Google Wallet into consistency with branding requirements."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillExtendZipCodeValidation","variable":"kAutofillExtendZipCodeValidation","defaultStatus":false,"line":671,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables extended zip code validation.","todos":["TODO(crbug.com/434140055): Clean up when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillExtractOnlyNonAdFrames","variable":"kAutofillExtractOnlyNonAdFrames","defaultStatus":false,"line":680,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, only non-ad frames are extracted. Otherwise, non-ad frames as well as *visible* ad frames are extracted. \"Extracted\" means that FormFieldData::child_frames is populated, which is necessary for flattening these forms. The forms in those frames are extracted either way.","todos":["TODO(crbug.com/40196220): Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillFilterPlaceholderValuesOnImport","variable":"kAutofillFilterPlaceholderValuesOnImport","defaultStatus":true,"line":686,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, removes address field values that contain words \"select\", \"choose\", or \"optional\" during profile import.","todos":["TODO(crbug.com/485170688): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillFixCivilStateMisclassificationForESPT","variable":"kAutofillFixCivilStateMisclassificationForESPT","defaultStatus":false,"line":692,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, improves heuristic regexes for state classification to avoid misclassification as civil state.","todos":["TODO(crbug.com/465491175): Cleanup when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillFixCvcImport","variable":"kAutofillFixCvcImport","defaultStatus":false,"line":302,"comment":"If enabled, PaymentsFormDataImporter prefers FormFieldData::user_input() over FormFieldData::value() for import to avoid silently importing obfuscated values.","todos":["TODO(crbug.com/526738761): Clean up after launch."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillFixRewriterRules","variable":"kAutofillFixRewriterRules","defaultStatus":false,"line":697,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the rewriter uses updated rewrite rules.","todos":["TODO(crbug.com/445863287): Cleanup when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillFixStateCountryMisclassification","variable":"kAutofillFixStateCountryMisclassification","defaultStatus":true,"line":702,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the rationalization engine will fix misclassifications where a field is detected as a COUNTRY when it should be a STATE or vice versa.","todos":["TODO(crbug.com/444180493): Cleanup when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillForceActorMode","variable":"kAutofillForceActorMode","defaultStatus":false,"line":88,"comment":"When enabled `ChromeAutofillClient` will always behave as if there is an active `ActorTask`."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillGreekRegexes","variable":"kAutofillGreekRegexes","defaultStatus":true,"line":706,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, Greek regexes are used for parsing in branded builds."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillIgnoreCheckableElements","variable":"kAutofillIgnoreCheckableElements","defaultStatus":true,"line":713,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"LINT.IfChange(autofill_ignore_checkable_elements) If enabled, checkboxes and radio buttons aren't extracted anymore.","todos":["TODO(crbug.com/40283901): Remove once launched. Also remove - autofill::FormControlType::kInputCheckbox - autofill::FormControlType::kInputRadio"]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillIntroduceGlobalEmptyValueRewriterRules","variable":"kAutofillIntroduceGlobalEmptyValueRewriterRules","defaultStatus":false,"line":720,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, global rules are applied to rewrite empty string values like \"null\" to an empty string. These rules are applied for all types during address normalization."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillLabelSensitiveAutocomplete","variable":"kAutofillLabelSensitiveAutocomplete","defaultStatus":false,"line":725,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"todos":["TODO(crbug.com/346507576): Remove once the experiment is over. When enabled, makes autocomplete label sensitive."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillLogToTerminal","variable":"kAutofillLogToTerminal","defaultStatus":false,"line":91,"comment":"Enables logging the content of chrome://autofill-internals to the terminal."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillModelPredictions","variable":"kAutofillModelPredictions","defaultStatus":false,"line":740,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, all behaviours related to the on-device machine learning model for field type predictions will be guarded.","todos":["TODO(crbug.com/40276177): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillMoveSmallFormLogicToClient","variable":"kAutofillMoveSmallFormLogicToClient","defaultStatus":false,"line":764,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When Enabled Autofill server will stop applying small form rule and Chrome will take care of this logic."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillNewSuggestionGeneration","variable":"kAutofillNewSuggestionGeneration","defaultStatus":false,"line":769,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the new suggestion generation logic is used.","todos":["TODO(crbug.com/409962888): Remove once launched."]},{"type":"feature","file":"components/autofill/ios/common/autofill_optimization_features.cc","name":"AutofillOptimizationFormSearchIos","variable":"kAutofillOptimizationFormSearchIos","defaultStatus":false,"line":9,"comment":"Improves the form extraction performance by 2x by optimizing the traversal and processing of form elements. The feature avoids interacting with the full DOM (document.all, getElementsByTagName) and instead works with a specific HTML element subset. It also avoids memory allocations by using a single loop instead of chaining array methods."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillOptimizeIsNormalizedNameVariantOf","variable":"kAutofillOptimizeIsNormalizedNameVariantOf","defaultStatus":false,"line":775,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, `IsNormalizedNameVariantOf()` uses a linear-time greedy algorithm instead of an exponential one that generates all name variants.","todos":["TODO(crbug.com/479905438) Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillOverridePredictions","variable":"kAutofillOverridePredictions","defaultStatus":false,"line":106,"comment":"Allows passing a set of overrides for Autofill server predictions. Example command line to override server predictions manually: chrome --enable-features=AutofillOverridePredictions:spec/1_2_4-7_8_9 This creates two manual overrides that supersede server predictions as follows: * The server prediction for the field with signature 2 in the form with signature 1 is overridden to be 4 (NAME_MIDDLE). * The server prediction for the field with signature 8 in the form with signature 7 is overridden to be 9 (EMAIL_ADDRESS). See components/autofill/core/browser/crowdsourcing/server_prediction_overrides.h for more examples and details on how to specify overrides."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPageLanguageDetection","variable":"kAutofillPageLanguageDetection","defaultStatus":false,"line":780,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables detection of language from Translate.","todos":["TODO(crbug.com/40158074): Cleanup when launched."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"AutofillPasswordSurvey","variable":"kAutofillPasswordSurvey","defaultStatus":false,"line":84,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\"],"comment":"Enables or disables the Autofill survey triggered by opening a prompt to save password info."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"AutofillPasswordUserPerceptionSurvey","variable":"kAutofillPasswordUserPerceptionSurvey","defaultStatus":false,"line":53,"buildflags":["!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)"],"comment":"Feature flag to control the displaying of an ongoing hats survey that measures users perception of autofilling password forms. Differently from other surveys, the Autofill user perception surveys will not have a specific target number of answers where it will be fully stop, instead, it will run indefinitely. A target number of full answers exists, but per quarter. The goal is to have a go to place to understand how users are perceiving autofill across quarters."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPaymentsFieldSwapping","variable":"kAutofillPaymentsFieldSwapping","defaultStatus":false,"line":785,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, focusing on a credit card number field that was traditionally autofilled will yield all credit card suggestions.","todos":["TODO(crbug.com/354175563): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPolicyControlledFeatureAutofill","variable":"kAutofillPolicyControlledFeatureAutofill","defaultStatus":false,"line":795,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether Autofill may fill across origins. In payment forms, the cardholder name field is often on the merchant's origin while the credit card number and CVC are in iframes hosted by a payment service provider. By enabling the policy-controlled feature \"autofill\" in those iframes, the merchant's website enable Autofill to fill the credit card number and CVC fields from the cardholder name field, even though this autofill operation crosses origins.","todos":["TODO(crbug.com/40178859): Enable this feature."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPolicyControlledFeatureManualText","variable":"kAutofillPolicyControlledFeatureManualText","defaultStatus":false,"line":803,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Controls whether Autofill warns about manual text input in cross-origin frames. This feature lives in Autofill code because of its close relationship to `kAutofillCrossOriginAutofill`.","todos":["TODO(crbug.com/40178859): Enable this feature."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPopupCheckHtmlFormPopupOverlap","variable":"kAutofillPopupCheckHtmlFormPopupOverlap","defaultStatus":true,"line":810,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If the feature is enabled, Autofill popups perform additional check to detect if they are obscured by top-level HTML form popups (e.g color picker). If so, Autofill Popup won't be shown.","todos":["TODO(crbug.com/417052041): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPopupDontAcceptNonVisibleEnoughSuggestion","variable":"kAutofillPopupDontAcceptNonVisibleEnoughSuggestion","defaultStatus":false,"line":818,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If the feature is enabled, before triggering suggestion acceptance, the row view checks that a substantial portion of its content was visible for some minimum required period.","todos":["TODO(crbug.com/337222641): During cleaning up, in the popup row view remove emitting of \"Autofill.AcceptedSuggestionDesktopRowViewVisibleEnough\"."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillPreferBuyNowPayLaterBlocklists","variable":"kAutofillPreferBuyNowPayLaterBlocklists","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":307,"comment":"When enabled, Payments Autofill Buy Now Pay Later (BNPL) will use each corresponding issuer's blocklist instead of allowlist to check for website eligibility."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillPreventAutofillFromSavingToAutocomplete","variable":"kAutofillPreventAutofillFromSavingToAutocomplete","defaultStatus":true,"line":824,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch. When enabled, fields populated by standard Autofill or Autofill AI products are not saved to the Autocomplete database at form submission.","todos":["TODO(crbug.com/533411686): Remove in M154."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillPrioritizeSaveCardOverMandatoryReauth","variable":"kAutofillPrioritizeSaveCardOverMandatoryReauth","defaultStatus":true,"line":318,"comment":"When enabled, this feature prioritizes showing the save card bubble over the mandatory re-auth bubble when both are applicable."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillReplaceFormElementObserver","variable":"kAutofillReplaceFormElementObserver","defaultStatus":false,"line":831,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Replaces blink::WebFormElementObserver usage in FormTracker by updated logic for tracking the disappearance of forms as well as other submission triggering events.","todos":["TODO(crbug.com/40281981): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillRestrictOtpToSameTldPlusOne","variable":"kAutofillRestrictOtpToSameTldPlusOne","defaultStatus":false,"line":836,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Restricts OTP fields detection and fetching to forms that are in a frame with the same TLD+1 as the main frame."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillRetryImageFetchOnFailure","variable":"kAutofillRetryImageFetchOnFailure","defaultStatus":true,"line":325,"comment":"When enabled, Chrome will try to fetch payment account image resources again upon failure. The number of attempts is a controllable parameter. This is a kill-switch.","todos":["TODO(crbug.com/40276036): Clean up after M139 branch (June 23, 2025)."]},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillSaveCardBottomSheetStrikeLimitIos","variable":"kAutofillSaveCardBottomSheetStrikeLimitIos","defaultStatus":false,"line":332,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"When enabled, the strike limit for showing the save card bottom sheet on iOS is increased from 1 to the value specified in the parameter and the default value of the strike is 3."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillServerCommunication","variable":"kAutofillServerCommunication","defaultStatus":true,"line":130,"comment":"Enables or Disables (mostly for hermetic testing) autofill server communication. The URL of the autofill server can further be controlled via the autofill-server-url param. The given URL should specify the complete autofill server API url up to the parent \"directory\" of the \"query\" and \"upload\" resources. i.e., https://other.autofill.server:port/tbproxy/af/"},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillServerExperimentalSignatures","variable":"kAutofillServerExperimentalSignatures","defaultStatus":true,"line":841,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"todos":["TODO(crbug.com/435646513) - Clean-up after feature lands at 100% Stable. Enables the new experimental server-side signatures for evaluation purposes."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillServerQueryPredictionsEarly","variable":"kAutofillServerQueryPredictionsEarly","defaultStatus":false,"line":847,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"todos":["TODO(crbug.com/470949499) - Clean-up after feature lands at 100% Stable. Enables querying the server for predictions before the form has been parsed locally."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillServerUploadMoreData","variable":"kAutofillServerUploadMoreData","defaultStatus":true,"line":852,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables uploading of more data to the Autofill server to use for computing signatures: go/autofill-signatures-more-data."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillShowBubblesBasedOnPriorities","variable":"kAutofillShowBubblesBasedOnPriorities","defaultStatus":true,"line":857,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, password manager and autofill bubbles will be shown based on the priorities of the bubbles.","todos":["TODO(crbug.com/432429605): Remove when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillShowTypePredictions","variable":"kAutofillShowTypePredictions","defaultStatus":false,"line":134,"comment":"Controls attaching the autofill type predictions to their respective element in the DOM."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSimplifyFocusCheck","variable":"kAutofillSimplifyFocusCheck","defaultStatus":true,"line":863,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch: If enabled, the focus check in AutofillPopupControllerImpl and AutofillKeyboardAccessoryControllerImpl is simplified.","todos":["TODO(crbug.com/530190112): Clean up after September 1, 2026."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillSkipDeduplicationRequirements","variable":"kAutofillSkipDeduplicationRequirements","defaultStatus":false,"line":157,"comment":"If enabled, forces the deduplication pipeline to run on every startup, bypassing the 'once per milestone' limit."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillSkipSaveCardForTabModalPopup","variable":"kAutofillSkipSaveCardForTabModalPopup","defaultStatus":true,"line":342,"comment":"Kill switch, when enabled, will prevent the display of the save card bubble within a tab modal pop-up window."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSmsOtpCrowdsourcing","variable":"kAutofillSmsOtpCrowdsourcing","defaultStatus":true,"line":867,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, upload votes for sms otp.","todos":["TODO(crbug.com/453999673): Clean up when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSmsOtpCrowdsourcingFetchFromGmscore","variable":"kAutofillSmsOtpCrowdsourcingFetchFromGmscore","defaultStatus":true,"line":871,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, fetch sms otp from gmscore and upload votes for sms otp.","todos":["TODO(crbug.com/453999673): Clean up when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillStructuredFieldsDisableAddressLines","variable":"kAutofillStructuredFieldsDisableAddressLines","defaultStatus":false,"line":882,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If this feature is enabled, the AddressFieldParser does NOT try to parse address lines once it has found a street name and house number or other combinations of fields that indicate that an address form uses structured addresses. This should be the default in all countries with fully supported structured addresses. However, if a country is not sufficiently modeled, autofill may still do the right thing if it recognizes \"Street name, house number, address line 2\" as a sequence.","todos":["TODO(crbug.com/40266693) Remove once launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSupportCombinedZipAndCityFR","variable":"kAutofillSupportCombinedZipAndCityFR","defaultStatus":false,"line":888,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables parsing of fields that combine postal code and city in France, e.g. a single field containing \"75008 Paris\".","todos":["TODO(crbug.com/465119085): Clean up when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSupportSplitZipCode","variable":"kAutofillSupportSplitZipCode","defaultStatus":false,"line":894,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables splitting two-part zip codes into two fields while filling and importing split zip codes from two adjacent fields.","todos":["TODO(crbug.com/369503318): Clean up when launched."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillSupportStandaloneZipCodeGlobally","variable":"kAutofillSupportStandaloneZipCodeGlobally","defaultStatus":false,"line":898,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, standalone zip code fields are classified by local heuristics globally, instead of just a handful of countries."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillSyncEwalletAccounts","variable":"kAutofillSyncEwalletAccounts","defaultStatus":true,"line":348,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, eWallet accounts are synced from the Google Payments servers and displayed on the payment methods settings page."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillThrottleBruteForceProbing","variable":"kAutofillThrottleBruteForceProbing","defaultStatus":true,"line":903,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Mitigates side-channel brute-force probing of autofill data by rate-limiting AskForValuesToFill() invocations per RenderFrame via a token bucket."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillTouchToFillShowManualFillForVcnFix","variable":"kAutofillTouchToFillShowManualFillForVcnFix","defaultStatus":true,"line":350,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/autofill/ios/common/autofill_optimization_features.cc","name":"AutofillTrackFormMutationsOptimizationIos","variable":"kAutofillTrackFormMutationsOptimizationIos","defaultStatus":false,"line":12,"comment":"Optimizes form mutation tracking by using a diffing strategy based on live HTMLCollections and tracking disconnected elements, avoiding expensive subtree crawls and DOM-wrapper allocations."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillTrackSelectFieldEdits","variable":"kAutofillTrackSelectFieldEdits","defaultStatus":false,"line":919,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables tracking of user edits to <select> fields that were not autofilled."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUKMExperimentalFields","variable":"kAutofillUKMExperimentalFields","defaultStatus":false,"line":921,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillUnionTypesSingleTypeInAutofillInformation","variable":"kAutofillUnionTypesSingleTypeInAutofillInformation","defaultStatus":false,"line":166,"comment":"If enabled, ensures that the \"autofill-information\" attribute only contains a single FieldType in \"overall type: <FieldTypes>\". For example, \"overall type: NAME_FULL, USERNAME\" becomes \"overall type: NAME_FULL\" if the feature is enabled.","todos":["TODO(crbug.com/435354393): Migrate the infrastructure to union types and remove this feature."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUploadManualFallbackFieldsToServer","variable":"kAutofillUploadManualFallbackFieldsToServer","defaultStatus":true,"line":950,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables uploading fields that were autofilled with fallback types.","todos":["TODO: crbug.com/444147005 - Clean up after this feature is rolled out."]},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"AutofillUploadThrottling","variable":"kAutofillUploadThrottling","defaultStatus":true,"line":173,"comment":"Autofill upload throttling limits uploading a form to the Autofill server more than once over a `kAutofillUploadThrottlingPeriodInDays` period. This feature is for testing purposes and is not supposed to be launched."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillUpstream","variable":"kAutofillUpstream","defaultStatus":false,"line":359,"comment":"Controls offering credit card upload to Google Payments. Cannot ever be ENABLED_BY_DEFAULT because the feature state depends on the user's country. The set of launched countries is listed in autofill_experiments.cc, and this flag remains as a way to easily enable upload credit card save for testers, as well as enable non-fully-launched countries on a trial basis."},{"type":"feature","file":"components/autofill/core/common/autofill_payments_features.cc","name":"AutofillUpstreamEnforceStrikeDelay","variable":"kAutofillUpstreamEnforceStrikeDelay","defaultStatus":false,"line":363,"comment":"When enabled, users should not see offers to save the same credit card twice in a week, as the strike database enforces a 7-day delay between strikes."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUseINAddressModel","variable":"kAutofillUseINAddressModel","defaultStatus":false,"line":954,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Enables using a custom address model for India, overriding the legacy one."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUseNegativePatternForAllAttributes","variable":"kAutofillUseNegativePatternForAllAttributes","defaultStatus":false,"line":958,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the form field parser won't try to match other attributes if any of the negative patterns matched."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUseOriginalPayloadIos","variable":"kAutofillUseOriginalPayloadIos","defaultStatus":true,"line":965,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch: If enabled, use the original suggestion payload. If disabled, use a default GUID for payloads without a GUID [iOS specific].","todos":["TODO(crbug.com/525996248): Remove after M154 branchpoint if there are no issues."]},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"AutofillUseStructuralSignatureInsteadOfSecondary","variable":"kAutofillUseStructuralSignatureInsteadOfSecondary","defaultStatus":true,"line":970,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Replaces the secondary signature with the structural signature for Uploads. For Queries still only the secondary (alternative) signature is used.","todos":["TODO(crbug.com/431737839): Clean up when roll out finishes successfully."]},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"AutomaticUsbDetach","variable":"kAutomaticUsbDetach","defaultStatus":true,"line":179,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether Chrome will try to automatically detach kernel drivers when a USB interface is busy."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"AutomaticUsbDetach","variable":"kAutomaticUsbDetach","defaultStatus":false,"line":181,"buildflags":["BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutoNightLight","variable":"kAutoNightLight","defaultStatus":false,"line":85,"comment":"Enables the Auto Night Light feature which sets the default schedule type to sunset-to-sunrise until the user changes it to something else. This feature is not exposed to the end user, and is enabled only via cros_config for certain devices."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoPictureInPictureAndroid","variable":"kAutoPictureInPictureAndroid","defaultStatus":false,"line":1190,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables automatic Picture-in-Picture on Android for supported websites. This triggers for active video playback or camera/microphone usage on sites that have registered an auto picture-in-picture action."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoPictureInPictureOnWindowOccluded","variable":"kAutoPictureInPictureOnWindowOccluded","defaultStatus":false,"line":1113,"comment":"Allows the AutoPictureInPictureTabHelper to automatically enter picture-in-picture when a webpage is occluded by another window."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoPictureInPicturePageInfoDetails","variable":"kAutoPictureInPicturePageInfoDetails","defaultStatus":true,"line":1120,"comment":"Enables showing auto picture-in-picture permission details in page info."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoPictureInPictureSurveys","variable":"kAutoPictureInPictureSurveys","defaultStatus":false,"line":1117,"comment":"Enables Happiness Tracking Surveys for Auto Picture-in-Picture."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoplayBypassForMicCamera","variable":"kAutoplayBypassForMicCamera","defaultStatus":true,"line":1138,"comment":"Allows media to autoplay without a user gesture if the site has been granted microphone or camera permissions."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoplayDisableSettings","variable":"kAutoplayDisableSettings","defaultStatus":false,"line":1141,"comment":"Whether we should show a setting to disable autoplay policy."},{"type":"feature","file":"media/base/media_switches.cc","name":"AutoplayPoliciesAndroid","variable":"kAutoplayPoliciesAndroid","defaultStatus":true,"line":1522,"comment":"Enables the Enterprise Autoplay policies (AutoplayAllowed and AutoplayAllowlist) on Android."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutoScreenBrightness","variable":"kAutoScreenBrightness","defaultStatus":true,"line":89,"comment":"Enables or disables auto screen-brightness adjustment when ambient light changes."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutoSignOut","variable":"kAutoSignOut","defaultStatus":true,"line":93,"comment":"Enables a setting to automatically sign out a user when their account signs in on a new device."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"AutozoomNudgeSessionReset","variable":"kAutozoomNudgeSessionReset","defaultStatus":false,"line":103,"comment":"If enabled, the autozoom nudge shown prefs will be reset at the start of each new user session."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"AvatarButtonSyncPromoForTesting","variable":"kAvatarButtonSyncPromoForTesting","defaultStatus":false,"line":57,"comment":"Convenient testing flag for `kAvatarButtonSyncPromo` on all platforms. Also reduces the minimum cookie age to 30 seconds."},{"type":"feature","file":"media/base/media_switches.cc","name":"AVDColorSpaceChanges","variable":"kAVDColorSpaceChanges","defaultStatus":true,"line":1144,"comment":"Whether we should allow color space changes to flush AcceleratedVideoDecoder."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"AvoidAutoTriggerListAccountsOnStale","variable":"kAvoidAutoTriggerListAccountsOnStale","defaultStatus":false,"line":84},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"AvoidBluetoothPromptInGetPorts","variable":"kAvoidBluetoothPromptInGetPorts","defaultStatus":true,"line":39,"comment":"Avoid triggering the macOS Bluetooth permission prompt when navigator.serial.getPorts() is called and permission is undetermined."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"AvoidCloneArgsOnExtensionFunctionDispatch","variable":"kAvoidCloneArgsOnExtensionFunctionDispatch","defaultStatus":true,"line":221,"comment":"When enabled, a call to base::ListValue::Clone is avoided when dispatching an extension function. Behind a feature to assess impact (go/chrome-performance-work-should-be-finched).","todos":["TODO(crbug.com/424432184): Clean up when experiment is complete."]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"AwaitPageStabilityForPasswordChange","variable":"kAwaitPageStabilityForPasswordChange","defaultStatus":false,"line":56,"buildflags":["!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)"],"comment":"Waits for the page to reach stability before triggering any password change actions."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AXRandomizedStressTests","variable":"kAXRandomizedStressTests","defaultStatus":false,"line":146,"comment":"Randomly turn the accessibility engine on based on certain conditions. We do not put this flag in chrome://flags so we can get the cleanest data possible."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"AXTreeFixing","variable":"kAXTreeFixing","defaultStatus":false,"line":358,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Use the AXTree fixing code, which may be an assortment of different tools/methods to fix the AXTree. This is not available on Android."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BabelOrca","variable":"kBabelOrca","defaultStatus":true,"line":111,"comment":"Determines if BabelOrca captions are available."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardCache","variable":"kBackForwardCache","defaultStatus":true,"line":174,"comment":"Enable using the BackForwardCache."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardCacheCCNSIgnoreUnchangedCookies","variable":"kBackForwardCacheCCNSIgnoreUnchangedCookies","defaultStatus":false,"line":202,"comment":"WHen this flag is enabled, the cookies modification without cookie value change will not cause eviction of the back/forward cache entries with Cache-control: no-store header."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardCacheEntryTimeout","variable":"kBackForwardCacheEntryTimeout","defaultStatus":true,"line":178,"comment":"Set a time limit for the page to enter the cache. Disabling this prevents flakes during testing."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardCacheMemoryControls","variable":"kBackForwardCacheMemoryControls","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":190,"comment":"BackForwardCacheMemoryControls is enabled only on Android to disable BackForwardCache for lower memory devices due to memory limitations."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardTransitionsCrossDocSharedImage","variable":"kBackForwardTransitionsCrossDocSharedImage","defaultStatus":true,"line":208,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables getting screenshots as shared images for back forward transitions in cross-document navigations."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackForwardTransitionsNativePageSharedImage","variable":"kBackForwardTransitionsNativePageSharedImage","defaultStatus":true,"line":212,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables getting screenshots as shared images for back forward transitions to native pages."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackgroundFetch","variable":"kBackgroundFetch","defaultStatus":true,"line":171,"comment":"Kill switch for Background Fetch."},{"type":"feature","file":"media/base/media_switches.cc","name":"BackgroundListening","variable":"kBackgroundListening","defaultStatus":false,"line":1428,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables the new media player features."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"BackoffInDownloading","variable":"kBackoffInDownloading","defaultStatus":false,"line":22,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)"],"comment":"Whether we allow the download job resume in a backoff."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BackToAdIntervention","variable":"kBackToAdIntervention","defaultStatus":false,"line":220,"comment":"If enabled, skips over ad-related entries that were silently inserted into session history when navigating via back/forward buttons. This extends the existing history manipulation intervention logic. See https://crbug.com/375523824."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"BatteryBadgeIcon","variable":"kBatteryBadgeIcon","defaultStatus":true,"line":17,"comment":"Enables smaller battery badge icons to improve legibility of the battery percentage."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BatterySaver","variable":"kBatterySaver","defaultStatus":true,"line":106,"comment":"Make Battery Saver available."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BatterySaverAlwaysOn","variable":"kBatterySaverAlwaysOn","defaultStatus":false,"line":132,"comment":"Make Battery Saver on all the time, even when charged or charging."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BatterySaverModeAlignWakeUps","variable":"kBatterySaverModeAlignWakeUps","defaultStatus":false,"line":223,"comment":"If enabled, makes battery saver request heavy align wake ups."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"BatteryStatusManagerBroadcastReceiverInBackground","variable":"kBatteryStatusManagerBroadcastReceiverInBackground","defaultStatus":true,"line":118,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables registering & unregistering of the Battery Status Manager broadcast receiver to the background thread."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"BeforeFirstRunDesktopRefreshSurvey","variable":"kBeforeFirstRunDesktopRefreshSurvey","defaultStatus":false,"line":88,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"BiometricTouchToFill","variable":"kBiometricTouchToFill","defaultStatus":false,"line":64,"comment":"Enables Biometrics for the Touch To Fill feature. This only effects Android."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BirchVideoConferenceSuggestions","variable":"kBirchVideoConferenceSuggestions","defaultStatus":false,"line":1875,"comment":"Controls whether the birch model provides lost video conference tab suggestions."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"BlinkExtension","variable":"kBlinkExtension","defaultStatus":false,"line":33,"comment":"Enables ChromeOS Apps APIs."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"BlinkExtensionKiosk","variable":"kBlinkExtensionKiosk","defaultStatus":false,"line":36,"comment":"Enables ChromeOS Kiosk APIs."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BlockFwupdClient","variable":"kBlockFwupdClient","defaultStatus":false,"line":820,"comment":"Controls whether the fwupd dbus client should be active. This is used only for testing to prevent the fwupd service from spooling and re-activating powerd service."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"BlockIoScheduler","variable":"kBlockIoScheduler","defaultStatus":true,"line":50,"comment":"Controls block IO schedulers in ARCVM."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"BlockMouseEventsOnView","variable":"kBlockMouseEventsOnView","defaultStatus":true,"line":21,"comment":"Guard changes to block mouse events on views."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"BlockRootWindowAccessibleNameChangeEvent","variable":"kBlockRootWindowAccessibleNameChangeEvent","defaultStatus":true,"line":530,"buildflags":["BUILDFLAG(IS_MAC)"],"todos":["TODO (crbug.com/380927771). Remove this flag once VoiceOver has incorporated the name change event."]},{"type":"feature","file":"device/bluetooth/chromeos_platform_features.cc","name":"BluetoothBtsnoopInternals","variable":"kBluetoothBtsnoopInternals","defaultStatus":false,"line":11,"comment":"Enables/disables the option to collect btsnoop log from chrome://bluetooth-internals"},{"type":"feature","file":"device/bluetooth/chromeos_platform_features.cc","name":"BluetoothFlossTelephony","variable":"kBluetoothFlossTelephony","defaultStatus":true,"line":9,"comment":"Enables/disables the bluetooth telephony feature for floss"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BluetoothQualityReport","variable":"kBluetoothQualityReport","defaultStatus":false,"line":137,"comment":"Enables or disables the Bluetooth Quality Report feature."},{"type":"feature","file":"device/bluetooth/public/cpp/bluetooth_features.cc","name":"BluetoothSocketMacPreCalculateWriteChunks","variable":"kBluetoothSocketMacPreCalculateWriteChunks","defaultStatus":true,"line":20,"comment":"When enabled, BluetoothSocketMac::Send pre-calculates the number of chunks to write and initializes request_ptr->active_async_writes to this total upfront. This prevents a Use-After-Free caused by premature cleanup if completion callbacks fire synchronously during a multi-chunk write. Without this, a synchronous callback would decrement the counter and could pop the send_queue_ before all chunks have been issued."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"BluetoothWifiQSPodRefresh","variable":"kBluetoothWifiQSPodRefresh","defaultStatus":false,"line":20,"comment":"Enables better quick settings UI for bluetooth and wifi error states."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"BoardingPassDetector","variable":"kBoardingPassDetector","defaultStatus":false,"line":94,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enable boarding pass detector on Chrome Android."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"Boca","variable":"kBoca","defaultStatus":false,"line":143,"comment":"Enables or disables Boca feature on ChromeOS"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaAdjustCaptionBubbleOnExpand","variable":"kBocaAdjustCaptionBubbleOnExpand","defaultStatus":true,"line":234,"comment":"Enables or disables using a specific app name for speech recognition for Boca on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaCaptionToggle","variable":"kBocaCaptionToggle","defaultStatus":false,"line":253,"comment":"Enables the new caption toggle button for boca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaClientTypeForSpeechRecognition","variable":"kBocaClientTypeForSpeechRecognition","defaultStatus":true,"line":229,"comment":"Enables or disables using a specific app name for speech recognition for Boca on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaConfigureMaxStudents","variable":"kBocaConfigureMaxStudents","defaultStatus":false,"line":275,"comment":"Enables or disables using a configured number of students."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaConsumer","variable":"kBocaConsumer","defaultStatus":false,"line":146,"comment":"Enables or disables Boca consumer user experience on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaCustomPolling","variable":"kBocaCustomPolling","defaultStatus":true,"line":149,"comment":"Enables or disables Boca custom polling interval on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaGeminiIntegration","variable":"kBocaGeminiIntegration","defaultStatus":false,"line":213,"comment":"Enables or disables Gemini integration for Boca on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaKeepSWAOpenOnSessionEnded","variable":"kBocaKeepSWAOpenOnSessionEnded","defaultStatus":true,"line":238,"comment":"Enables or disables keeping the Boca SWA open when the session is ended."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaLockedModeCustomCountdownDuration","variable":"kBocaLockedModeCustomCountdownDuration","defaultStatus":true,"line":182,"comment":"Enables or disables Boca OnTask enter locked mode countdown duration on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaLockPauseUpdate","variable":"kBocaLockPauseUpdate","defaultStatus":true,"line":247,"comment":"Enables the updated lock / pause ui for boca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaMaterialTypeUiIndicator","variable":"kBocaMaterialTypeUiIndicator","defaultStatus":true,"line":241,"comment":"Enables or disables showing material type UI indicator in Boca SWA."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaMigrateSpeechRecongnizerClient","variable":"kBocaMigrateSpeechRecongnizerClient","defaultStatus":true,"line":268,"comment":"Enables or disables migration to `BabelOrcaSpeechRecognizerClient` for speech recognition."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaNavSettingsDialog","variable":"kBocaNavSettingsDialog","defaultStatus":true,"line":250,"comment":"Enables the updated nav settings ui for boca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaNetworkRestriction","variable":"kBocaNetworkRestriction","defaultStatus":false,"line":225,"comment":"Enables or disables Boca network restriction for Boca on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaOnTaskLockedQuizMigration","variable":"kBocaOnTaskLockedQuizMigration","defaultStatus":false,"line":171,"comment":"Enables or disables locked quiz migration to leverage the OnTask SWA."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaOnTaskPod","variable":"kBocaOnTaskPod","defaultStatus":true,"line":174,"comment":"Enables or disables the Boca OnTask pod on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaOnTaskUnmuteBrowserTabsOnUnlock","variable":"kBocaOnTaskUnmuteBrowserTabsOnUnlock","defaultStatus":true,"line":177,"comment":"Enables or disables unmute browser tabs when unlock Boca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaReceiverApp","variable":"kBocaReceiverApp","defaultStatus":true,"line":272,"comment":"Enables or disables Boca receiver app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaReceiverCustomPolling","variable":"kBocaReceiverCustomPolling","defaultStatus":false,"line":288,"comment":"Enables or disables Boca receiver custom polling."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaScreenSharingStudent","variable":"kBocaScreenSharingStudent","defaultStatus":true,"line":285,"comment":"Enables or disables sharing student's screen in the Boca app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaScreenSharingTeacher","variable":"kBocaScreenSharingTeacher","defaultStatus":true,"line":282,"comment":"Enables or disables sharing teacher's screen in the Boca app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaSequentialInsertActivity","variable":"kBocaSequentialInsertActivity","defaultStatus":true,"line":260,"comment":"Enables or disables enforcing sequential execution for Boca insert activity."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaSequentialSessionLoad","variable":"kBocaSequentialSessionLoad","defaultStatus":true,"line":244,"comment":"Enables or disables enforcing sequential execution for Boca Session load."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaSpotlight","variable":"kBocaSpotlight","defaultStatus":true,"line":205,"comment":"Enables or disables Spotlight for Boca on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaSpotlightRobotRequester","variable":"kBocaSpotlightRobotRequester","defaultStatus":true,"line":257,"comment":"Enables or disables using the native ChromeOS implementation of the CRD client for Spotlight within the Boca SWA."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaStudentHeartbeat","variable":"kBocaStudentHeartbeat","defaultStatus":true,"line":192,"comment":"Enables or disables Boca sending student heartbeat requests on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaStudentHeartbeatCustomInterval","variable":"kBocaStudentHeartbeatCustomInterval","defaultStatus":false,"line":195,"comment":"Enables or disables Boca student heartbeat custom interval on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaTranslateToggle","variable":"kBocaTranslateToggle","defaultStatus":true,"line":264,"comment":"Enables or disables translation toggle for caption bubble in the context of boca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BocaUber","variable":"kBocaUber","defaultStatus":true,"line":140,"comment":"Enables or disables entire Boca feature on ChromeOS. Use as kill switch."},{"type":"feature","file":"components/search/ntp_features.cc","name":"BookmarkBarUpdatesForTesting","variable":"kBookmarkBarUpdatesForTesting","defaultStatus":false,"line":322,"comment":"If enabled, the bookmark bar time interval and number of times it's shown on the NTP before auto-hiding is decreased for testing."},{"type":"feature","file":"chrome/browser/first_run/first_run_features.cc","name":"BookmarksImportOnFirstRun","variable":"kBookmarksImportOnFirstRun","defaultStatus":true,"line":9,"comment":"This feature controls the loading of bookmarks from initial_preferences on browser first run."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"BookmarksMigrateUiChanges","variable":"kBookmarksMigrateUiChanges","defaultStatus":true,"line":814},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"BookmarkTabGroupConversion","variable":"kBookmarkTabGroupConversion","defaultStatus":false,"line":389,"comment":"Controls whether the updated bookmark and tab group conversion is enabled."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"BookmarkTriggerForPreconnect","variable":"kBookmarkTriggerForPreconnect","defaultStatus":true,"line":30,"comment":"This flag is used for enabling BookmarkBar triggered preconnect."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"BookmarkTriggerForPrefetch","variable":"kBookmarkTriggerForPrefetch","defaultStatus":false,"line":34,"comment":"This flag is used for enabling BookmarkBar triggered prefetch. See crbug.com/413259638 for more details of Bookmark triggered prefetching."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"BookmarkTriggerForPrerender2KillSwitch","variable":"kBookmarkTriggerForPrerender2KillSwitch","defaultStatus":false,"line":26,"comment":"This is used as a kill switch for Bookmark triggered prerendering. See crbug.com/40259793 for more details of Bookmark triggered prerendering."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"Borealis","variable":"kBorealis","defaultStatus":false,"line":104,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable Borealis on Chrome OS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisBigGl","variable":"kBorealisBigGl","defaultStatus":true,"line":309,"comment":"Enable Big GL when using Borealis."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisDGPU","variable":"kBorealisDGPU","defaultStatus":true,"line":312,"comment":"Enable dGPU when using Borealis."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisEnableUnsupportedHardware","variable":"kBorealisEnableUnsupportedHardware","defaultStatus":false,"line":315,"comment":"Bypass some hardware checks when deciding whether to block/allow borealis."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisForceBetaClient","variable":"kBorealisForceBetaClient","defaultStatus":false,"line":320,"comment":"Force the steam client to be on its beta version. If not set, the client will be on its stable version."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisForceDoubleScale","variable":"kBorealisForceDoubleScale","defaultStatus":false,"line":324,"comment":"Force the steam client to render in 2x size (using GDK_SCALE as discussed in b/171935238#comment4)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisLinuxMode","variable":"kBorealisLinuxMode","defaultStatus":false,"line":328,"comment":"Prevent the steam client from exercising ChromeOS integrations, in this mode it functions more like the linux client."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisPermitted","variable":"kBorealisPermitted","defaultStatus":true,"line":332,"comment":"Enable borealis on this device. This won't necessarily allow it, since you might fail subsequent checks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisProvision","variable":"kBorealisProvision","defaultStatus":false,"line":338,"comment":"Enable the \"provision\" flag when mounting Borealis' stateful disk.","todos":["TODO(b/288361720): This is temporary while we test the 'provision' mount option. Once we're satisfied things are stable, we'll make this the default and remove this feature/flag."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisScaleClientByDPI","variable":"kBorealisScaleClientByDPI","defaultStatus":true,"line":342,"comment":"Disable use of calculated scale for -forcedesktopscaling on Steam client. Scale will default to a value of 1."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"BorealisZinkGlDriver","variable":"kBorealisZinkGlDriver","defaultStatus":true,"line":344},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"BoundSessionCredentialsKillSwitch","variable":"kBoundSessionCredentialsKillSwitch","defaultStatus":false,"line":94,"buildflags":["BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)"],"comment":"Allows to disable the bound session credentials code in case of emergency."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BrokerFileOperationsOnDiskCacheInNetworkService","variable":"kBrokerFileOperationsOnDiskCacheInNetworkService","defaultStatus":false,"line":227,"comment":"Broker file operations on disk cache in the Network Service. This is no-op if the network service is hosted in the browser process."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"BrokerModelSessionsForUntrustedProcesses","variable":"kBrokerModelSessionsForUntrustedProcesses","defaultStatus":false,"line":172},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"BrowserDynamicCodeDisabled","variable":"kBrowserDynamicCodeDisabled","defaultStatus":false,"line":186,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Disable dynamic code using ACG. Prevents the browser process from generating dynamic code or modifying executable code. See comments in sandbox/win/src/security_level.h. Only available on Windows 10 RS1 (1607, Build 14393) onwards."},{"type":"feature","file":"media/base/media_switches.cc","name":"BrowserInitiatedAutomaticPictureInPictureDryRun","variable":"kBrowserInitiatedAutomaticPictureInPictureDryRun","defaultStatus":false,"line":1153,"comment":"Enables Browser Initiated Automatic Picture-in-Picture (ChAP) in dry run mode. When enabled in dry run mode, all ChAP code paths are executed with the exception of actually opening the video PiP window, or any other paths that may be visible to the user experience. This flag will be used to enable analyzing the feature impact and catch early any potential regressions."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"BrowserLaunchMetadataReporting","variable":"kBrowserLaunchMetadataReporting","defaultStatus":false,"line":15,"comment":"Controls whether the browser should report launch-related metadata, such as the exact command line switches used at startup."},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"BrowserSignalsReportingEnabled","variable":"kBrowserSignalsReportingEnabled","defaultStatus":false,"line":22,"comment":"Enables the addition of device signals fields to Browser-level Chrome Reports."},{"type":"feature","file":"content/public/common/content_features.cc","name":"Btm","variable":"kBtm","defaultStatus":true,"line":313,"comment":"Enables the BTM (Bounce Tracking Mitigation) feature. On by default to allow for collecting metrics. All potentially dangerous behavior (database persistence, storage deletion) will be gated by params."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BtmTtl","variable":"kBtmTtl","defaultStatus":true,"line":317,"comment":"Flag used to control the TTL for user interactions (separately from the |kBtm| feature flag)."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"BubbleFrameViewTitleIsHeading","variable":"kBubbleFrameViewTitleIsHeading","defaultStatus":true,"line":430},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"BubbleMetricsApi","variable":"kBubbleMetricsApi","defaultStatus":false,"line":423},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"BuildExternalPrivacyContext","variable":"kBuildExternalPrivacyContext","defaultStatus":false,"line":99,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ByDateHistoryInSidePanel","variable":"kByDateHistoryInSidePanel","defaultStatus":false,"line":377,"comment":"If enabled, the by date history will show in the side panel."},{"type":"feature","file":"content/public/common/content_features.cc","name":"BypassRedirectChecksPerRequest","variable":"kBypassRedirectChecksPerRequest","defaultStatus":true,"line":232,"comment":"Allows the decision to bypass redirect checks to be made based on the specific request."},{"type":"feature","file":"content/public/common/content_features.cc","name":"CacheControlNoStoreEnterBackForwardCache","variable":"kCacheControlNoStoreEnterBackForwardCache","defaultStatus":true,"line":238,"comment":"Allows pages with cache-control:no-store to enter the back/forward cache. Feature params can specify whether pages with cache-control:no-store can be restored if cookies change / if HTTPOnly cookies change.","todos":["TODO(crbug.com/40189625): Remove this feature and clean up."]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"CachedGestureNavMetrics","variable":"kCachedGestureNavMetrics","defaultStatus":true,"line":23,"comment":"Guard the caching of WindowMetrics for gesture navigation detection."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"CachedLocationProvider","variable":"kCachedLocationProvider","defaultStatus":true,"line":24,"comment":"System location provider will use caching to optimize GCP usage. This flag will be enabled with Finch."},{"type":"feature","file":"url/url_features.cc","name":"CacheGurlSchemeIsHttpOrHttpsResult","variable":"kCacheGurlSchemeIsHttpOrHttpsResult","defaultStatus":false,"line":58,"comment":"When enabled, cache the result of GURL::SchemeIsHTTPOrHTTPS()."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"CacheIdentityListInChrome","variable":"kCacheIdentityListInChrome","defaultStatus":false,"line":108,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"ui/display/display_features.cc","name":"CADisplayLinkInBrowser","variable":"kCADisplayLinkInBrowser","defaultStatus":false,"line":45},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"CalculateNativeWinOcclusion","variable":"kCalculateNativeWinOcclusion","defaultStatus":true,"line":40,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"If enabled, calculate native window occlusion - Windows-only."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"CallOnAddPasswordFillDataAsynchronously","variable":"kCallOnAddPasswordFillDataAsynchronously","defaultStatus":true,"line":66,"comment":"Kill switch for calling OnAddPasswordFillData() asynchronously to avoid reentrant AutofillManager::Observer events.","todos":["TODO(crbug.com/500883329): Clean up after M141 BP (June 29, 2026)."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"CameraCloudStorage","variable":"kCameraCloudStorage","defaultStatus":true,"line":1622,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables Camera Cloud Storage for saving photos and videos on Google Drive or OneDrive, controlled by CameraSaveLocation policy."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CameraSuperResSupported","variable":"kCameraSuperResSupported","defaultStatus":false,"line":306,"comment":"Indicates whether the camera super resolution is supported. Note that this feature is overridden by login_manager based on whether a per-board build sets the USE camera_feature_super_res flag. Refer to: chromiumos/src/platform2/login_manager/chrome_setup.cc"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CampbellGlyph","variable":"kCampbellGlyph","defaultStatus":false,"line":360,"comment":"Enables the feature to parameterize glyph for \"Campbell\" feature."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"CaptureHandleForStandalonePwasAndIwas","variable":"kCaptureHandleForStandalonePwasAndIwas","defaultStatus":false,"line":108,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CaptureModeEducation","variable":"kCaptureModeEducation","defaultStatus":true,"line":364,"comment":"Enables the nudges/tutorials that inform users of the screen capture keyboard shortcut and feature tile."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CaptureModeOnDeviceOcr","variable":"kCaptureModeOnDeviceOcr","defaultStatus":true,"line":381,"comment":"Enables on-device OCR functionality in capture mode, used as part of the Scanner and Sunfish features."},{"type":"feature","file":"components/mirroring/service/mirroring_features.cc","name":"CastEnableStreamingWithHiDPI","variable":"kCastEnableStreamingWithHiDPI","defaultStatus":false,"line":13,"comment":"This flag enables HiDPI capture during Cast Streaming mirroring sessions. This feature is enabled by the Chrome command line flag --enable-cast-streaming-with-hidpi."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastMacForceBaselineProfile","variable":"kCastMacForceBaselineProfile","defaultStatus":true,"line":1650,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Forces H264 baseline profile for Cast Streaming on macOS to avoid frame reordering issues with Apple Silicon hardware encoders."},{"type":"feature","file":"components/mirroring/service/mirroring_features.cc","name":"CastMirroringNativeNV12","variable":"kCastMirroringNativeNV12","defaultStatus":false,"line":23,"comment":"If enabled, NV12 video frames will be sent to the encoder without being converted to I420."},{"type":"feature","file":"components/mirroring/service/mirroring_features.cc","name":"CastStreaming60fps","variable":"kCastStreaming60fps","defaultStatus":false,"line":16,"comment":"Enables 60FPS support for Cast Mirroring sessions."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingAv1","variable":"kCastStreamingAv1","defaultStatus":false,"line":1596,"comment":"NOTE: callers should always use the free functions in /media/cast/encoding/encoding_support.h instead of accessing these features directly.","todos":["TODO(https://crbug.com/1453388): Guard Cast Sender flags with !IS_ANDROID."]},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingExponentialVideoBitrateAlgorithm","variable":"kCastStreamingExponentialVideoBitrateAlgorithm","defaultStatus":false,"line":1602,"comment":"Controls whether the new exponential bitrate calculate logic is used, or the legacy linear algorithm.","todos":["TODO(crbug.com/302584587): This is the V2 implementation of this experiment, following the failure of the initial experiment."]},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingHardwareHevc","variable":"kCastStreamingHardwareHevc","defaultStatus":false,"line":1623},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingMacHardwareH264","variable":"kCastStreamingMacHardwareH264","defaultStatus":true,"line":1646,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Controls whether hardware H264 is default enabled on macOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingMaxVideoBitrate","variable":"kCastStreamingMaxVideoBitrate","defaultStatus":true,"line":1625},{"type":"feature","file":"components/mirroring/service/mirroring_features.cc","name":"CastStreamingOfferHardwareFirst","variable":"kCastStreamingOfferHardwareFirst","defaultStatus":true,"line":18},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingPerformanceOverlay","variable":"kCastStreamingPerformanceOverlay","defaultStatus":false,"line":1630},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingVp8","variable":"kCastStreamingVp8","defaultStatus":true,"line":1638,"comment":"Controls whether mirroring negotiations will include the VP9 codec for video encoding. NOTE: this is the default codec for Cast Streaming. Be careful when disabling."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingVp9","variable":"kCastStreamingVp9","defaultStatus":true,"line":1642,"comment":"Controls whether mirroring negotiations will include the VP9 codec for video encoding."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastStreamingWinHardwareH264","variable":"kCastStreamingWinHardwareH264","defaultStatus":true,"line":1655,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Controls whether hardware H264 is default enabled on Windows."},{"type":"feature","file":"media/base/media_switches.cc","name":"CastVideoEncoderFrameDrop","variable":"kCastVideoEncoderFrameDrop","defaultStatus":false,"line":899,"comment":"A video encoder is allowed to drop a frame in cast mirroring."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"CATransactionV2","variable":"kCATransactionV2","defaultStatus":false,"line":85,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Controls replacement of CATransactionCoordinator with a new implementation."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"CbcmAndroidPackageNameIdentifier","variable":"kCbcmAndroidPackageNameIdentifier","defaultStatus":true,"line":19,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether the browser on Android should use its package name as the executable path identifier in CBCM reports."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"CctSignInPrompt","variable":"kCctSignInPrompt","defaultStatus":true,"line":113,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CdmHostVerification","variable":"kCdmHostVerification","defaultStatus":true,"line":523,"comment":"CDM host verification is enabled by default. Can be disabled for testing. Has no effect if ENABLE_CDM_HOST_VERIFICATION buildflag is false."},{"type":"feature","file":"media/base/media_switches.cc","name":"CdmProcessPriorityElevation","variable":"kCdmProcessPriorityElevation","defaultStatus":false,"line":527,"comment":"Elevates the CDM service process' priority to improve media playback performance."},{"type":"feature","file":"media/base/media_switches.cc","name":"CdmThreadPriorityElevation","variable":"kCdmThreadPriorityElevation","defaultStatus":false,"line":531,"comment":"Elevates the CDM service process' main thread priority to improve media playback performance."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CellularBypassESimInstallationConnectivityCheck","variable":"kCellularBypassESimInstallationConnectivityCheck","defaultStatus":false,"line":385,"comment":"If enabled, allow eSIM installation bypass the non-cellular internet connectivity check."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CellularUseSecondEuicc","variable":"kCellularUseSecondEuicc","defaultStatus":false,"line":390,"comment":"If enabled, use second the Euicc that is exposed by Hermes in Cellular Setup and Settings."},{"type":"feature","file":"chrome/browser/infobars/infobar_features.cc","name":"CentralizedInfoBarFramework","variable":"kCentralizedInfoBarFramework","defaultStatus":false,"line":9,"comment":"Feature flag controlling the centralization of desktop infobars.","todos":["TODO(https://crbug.com/512837934): Remove feature flag once fully launched and all feature-specific delegates are migrated."]},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"CertificateCollectionEnabled","variable":"kCertificateCollectionEnabled","defaultStatus":false,"line":29,"comment":"Enables the collection of certificates in a Chrome Profile signals report."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"CertificateTransparencyAskBeforeEnabling","variable":"kCertificateTransparencyAskBeforeEnabling","defaultStatus":[{"condition":"BUILDFLAG(GOOGLE_CHROME_BRANDING)","value":true}],"line":43,"comment":"Enables Certificate Transparency on Desktop and Android Browser (CT is disabled in Android Webview, see aw_browser_context.cc). Enabling CT enforcement requires maintaining a log policy, and the ability to update the list of accepted logs. Embedders who are planning to enable this should first reach out to chrome-certificate-transparency@google.com. On builds where CT is enabled, this flag is also used as an emergency kill switch."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"CertVerificationNetworkTime","variable":"kCertVerificationNetworkTime","defaultStatus":true,"line":56,"buildflags":["!BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables using network time for certificate verification. If enabled, network time will be used to verify certificate validity, however certificates that fail to validate with network time will fall back to the system time. This has no effect if the network_time::kNetworkTimeServiceQuerying flag is disabled, or the BrowserNetworkTimeQueriesEnabled policy is set to false."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"CertVerificationNetworkTime","variable":"kCertVerificationNetworkTime","defaultStatus":false,"line":58,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"CheckHitEligibility","variable":"kCheckHitEligibility","defaultStatus":true,"line":62,"comment":"Conducts a check to determine if the View is eligible to a Hit. This is a mitigation of when the prerendered view (hidden) somehow receives the touch event even though it is hidden, due to the ordering of the `children_` in `ViewAndroid`. Refer to crbug.com/442832509 for more details."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"CheckIfSubmittedFormIdenticalToObserved","variable":"kCheckIfSubmittedFormIdenticalToObserved","defaultStatus":true,"line":69,"comment":"Checks if submitted form is identical to an observed form before evaluating login success/failure."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"CheckingNoExtensionIdInExtensionIpcs","variable":"kCheckingNoExtensionIdInExtensionIpcs","defaultStatus":true,"line":92,"comment":"When enabled, then bad_message::ReceivedBadMessage will be called when browser receives an IPC from a content script and the IPC that unexpectedly claims to act on behalf of a given extension id, (i.e. even if the browser process things that renderer process never run content scripts from the extension)."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"CheckIntentCallerPermission","variable":"kCheckIntentCallerPermission","defaultStatus":false,"line":25,"comment":"When launching an intent, check whether the caller has the permission to access a URI before returning the result."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ChildProcessSecurityPolicyRust","variable":"kChildProcessSecurityPolicyRust","defaultStatus":false,"line":245,"comment":"Enables the experimental Rust implementation of ChildProcessSecurityPolicy. This includes managing global state but not per-process ProcessState (which is handled by the ChildProcessSecurityPolicyRustProcessState feature). See https://crbug.com/482216433."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ChildProcessSecurityPolicyRustProcessState","variable":"kChildProcessSecurityPolicyRustProcessState","defaultStatus":false,"line":252,"comment":"Controls whether the Rust implementation of ChildProcessSecurityPolicy manages per-process ProcessState. Only takes effect if ChildProcessSecurityPolicyRust is also enabled (for the global state). See https://crbug.com/522872468"},{"type":"feature","file":"components/search_engines/search_engine_choice/search_engine_choice_switches.cc","name":"ChoiceScreenEligibilityCheckAccountCapabilities","variable":"kChoiceScreenEligibilityCheckAccountCapabilities","defaultStatus":true,"line":11},{"type":"feature","file":"components/search_engines/search_engine_choice/search_engine_choice_switches.cc","name":"ChoiceScreenEligibilityCheckManagementStatus","variable":"kChoiceScreenEligibilityCheckManagementStatus","defaultStatus":true,"line":14},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyBookmarkPromo","variable":"kChromeAndroidIdentitySurveyBookmarkPromo","defaultStatus":true,"line":154,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyFirstRun","variable":"kChromeAndroidIdentitySurveyFirstRun","defaultStatus":true,"line":120,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"The probabilities are calculated based on a 1% stable experiment and scaling the response count for 1 week to give around 2000 responses per milestone for total stable population."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyNtpAccountAvatarTap","variable":"kChromeAndroidIdentitySurveyNtpAccountAvatarTap","defaultStatus":true,"line":140,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyNtpPromo","variable":"kChromeAndroidIdentitySurveyNtpPromo","defaultStatus":true,"line":147,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyNtpSigninButton","variable":"kChromeAndroidIdentitySurveyNtpSigninButton","defaultStatus":true,"line":133,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeAndroidIdentitySurveyWeb","variable":"kChromeAndroidIdentitySurveyWeb","defaultStatus":true,"line":127,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ChromeAppsDeprecation","variable":"kChromeAppsDeprecation","defaultStatus":true,"line":214,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"],"comment":"Controls whether Chrome Apps are supported. See https://crbug.com/40186761. If the feature is disabled, Chrome Apps continue to work. If enabled, Chrome Apps will not launch and will be marked in the UI as deprecated."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ChromeDarkNeutrals26","variable":"kChromeDarkNeutrals26","defaultStatus":false,"line":520,"comment":"Updates the default dark neutrals for the theme palette."},{"type":"feature","file":"chrome/browser/finds/core/finds_features.cc","name":"ChromeFinds","variable":"kChromeFinds","defaultStatus":false,"line":9,"comment":"The feature flag that enables the Finds surface on Android."},{"type":"feature","file":"chrome/browser/finds/core/finds_features.cc","name":"ChromeFindsInternals","variable":"kChromeFindsInternals","defaultStatus":false,"line":12,"todos":["TODO(crbug.com/493992939): Remove and merge usages under the main flag."],"comment":"The feature flag that enables the chrome://finds-internals page."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyAddressBubbleSignin","variable":"kChromeIdentitySurveyAddressBubbleSignin","defaultStatus":true,"line":166,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyDiceWebSigninAccepted","variable":"kChromeIdentitySurveyDiceWebSigninAccepted","defaultStatus":true,"line":173,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyDiceWebSigninDeclined","variable":"kChromeIdentitySurveyDiceWebSigninDeclined","defaultStatus":true,"line":180,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyFirstRunSignin","variable":"kChromeIdentitySurveyFirstRunSignin","defaultStatus":true,"line":187,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyLaunchWithDelay","variable":"kChromeIdentitySurveyLaunchWithDelay","defaultStatus":true,"line":256,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyPasswordBubbleSignin","variable":"kChromeIdentitySurveyPasswordBubbleSignin","defaultStatus":true,"line":194,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyProfileMenuDismissed","variable":"kChromeIdentitySurveyProfileMenuDismissed","defaultStatus":true,"line":201,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyProfileMenuSignin","variable":"kChromeIdentitySurveyProfileMenuSignin","defaultStatus":true,"line":208,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveyProfilePickerAddProfileSignin","variable":"kChromeIdentitySurveyProfilePickerAddProfileSignin","defaultStatus":true,"line":215,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveySigninInterceptProfileSeparation","variable":"kChromeIdentitySurveySigninInterceptProfileSeparation","defaultStatus":true,"line":223,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveySigninPromoBubbleDismissed","variable":"kChromeIdentitySurveySigninPromoBubbleDismissed","defaultStatus":true,"line":231,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveySwitchProfileFromProfileMenu","variable":"kChromeIdentitySurveySwitchProfileFromProfileMenu","defaultStatus":true,"line":238,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeIdentitySurveySwitchProfileFromProfilePicker","variable":"kChromeIdentitySurveySwitchProfileFromProfilePicker","defaultStatus":true,"line":245,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"ChromeOSHWVBREncoding","variable":"kChromeOSHWVBREncoding","defaultStatus":[{"condition":"defined(ARCH_CPU_X86_FAMILY)","value":true},{"condition":"!defined(ARCH_CPU_X86_FAMILY)","value":false}],"line":1298,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)"],"todos":["TODO(crbug.com/414430336): Consider restricting to IS_CHROMEOS. Enable Variable Bitrate encoding with hardware accelerated encoders on ChromeOS."]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ChromeOsUseConsentLevelSigninForNewUsers","variable":"kChromeOsUseConsentLevelSigninForNewUsers","defaultStatus":false,"line":266,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ChromeStructuredMetrics","variable":"kChromeStructuredMetrics","defaultStatus":true,"line":162,"comment":"Controls the enablement of structured metrics on Windows, Linux, and Mac."},{"type":"feature","file":"media/base/media_switches.cc","name":"ChromeWideEchoCancellation","variable":"kChromeWideEchoCancellation","defaultStatus":true,"line":546,"buildflags":["BUILDFLAG(CHROME_WIDE_ECHO_CANCELLATION)"],"comment":"If echo cancellation for a mic signal is requested, mix and cancel all audio playback going to a specific output device in the audio service."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"ClaimDuplicateGamepadsProductIdentifier","variable":"kClaimDuplicateGamepadsProductIdentifier","defaultStatus":true,"line":28,"comment":"Enable claiming of enumerated gamepads by product identifier."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"ClankDefaultSearchApi","variable":"kClankDefaultSearchApi","defaultStatus":true,"line":81},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ClassManagementEnabledMetricsProvider","variable":"kClassManagementEnabledMetricsProvider","defaultStatus":true,"line":1986,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"A feature to enable periodic log class management enabled policy."},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"ClearBrowsingDataToast","variable":"kClearBrowsingDataToast","defaultStatus":false,"line":32,"comment":"Enabled the clear browsing data confirmation toast."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ClearCrossSiteCrossBrowsingContextGroupWindowName","variable":"kClearCrossSiteCrossBrowsingContextGroupWindowName","defaultStatus":false,"line":257,"comment":"Clear the window.name property for the top-level cross-site navigations that swap BrowsingContextGroups(BrowsingInstances)."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"ClearGrShaderDiskCacheOnInvalidPrefix","variable":"kClearGrShaderDiskCacheOnInvalidPrefix","defaultStatus":false,"line":221,"comment":"When enabled, Grshader disk cache will be cleared on startup if any cache entry prefix does not match with the current prefix. prefix is made up of various parameters like chrome version, driver version etc."},{"type":"feature","file":"media/base/media_switches.cc","name":"ClearPipCachedBoundsWhenPermissionPromptVisible","variable":"kClearPipCachedBoundsWhenPermissionPromptVisible","defaultStatus":true,"line":1680,"comment":"Safety switch to allow us to revert to the previous behavior of using the cached bounds when the permission prompt is visible. If this feature is enabled (the default), we will clear the cached bounds, whenever the permission prompt is visible."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ClearUndecryptablePasswords","variable":"kClearUndecryptablePasswords","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_IOS)","value":true},{"condition":"!(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_IOS))","value":false}],"line":72,"comment":"Delete undecryptable passwords from the login database."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ClearUndecryptablePasswordsOnSync","variable":"kClearUndecryptablePasswordsOnSync","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \\","value":true},{"condition":"!(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_IOS) || \\)","value":false}],"line":80,"comment":"Delete undecryptable passwords from the store when Sync is active."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"ClearUserDataUponProfileDestruction","variable":"kClearUserDataUponProfileDestruction","defaultStatus":true,"line":62,"comment":"Killswitch that guards clearing all user data in the ProfileImpl destructor."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"ClipboardConfusedDeputyDefenseFiles","variable":"kClipboardConfusedDeputyDefenseFiles","defaultStatus":true,"line":31},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"ClipboardConfusedDeputyDefenseImages","variable":"kClipboardConfusedDeputyDefenseImages","defaultStatus":true,"line":29},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"ClipboardConfusedDeputyDefenseText","variable":"kClipboardConfusedDeputyDefenseText","defaultStatus":true,"line":27,"comment":"Controls defense against Confused Deputy clipboard URI exfiltration."},{"type":"feature","file":"components/open_from_clipboard/clipboard_recent_content_features.cc","name":"ClipboardMaximumAge","variable":"kClipboardMaximumAge","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":10,"comment":"Feature used to determine the maximum age of clipboard content."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"CloudGamingDevice","variable":"kCloudGamingDevice","defaultStatus":false,"line":27,"comment":"Enables cloud game features."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"CollapseTabGroupDuringDrag","variable":"kCollapseTabGroupDuringDrag","defaultStatus":true,"line":228,"comment":"Enables collapsing a tab group programmatically during a drag."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"CompensateGestureScrollUpdateLatency","variable":"kCompensateGestureScrollUpdateLatency","defaultStatus":false,"line":493},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ComponentExtensionAllowWorkerChromeResources","variable":"kComponentExtensionAllowWorkerChromeResources","defaultStatus":true,"line":96,"comment":"Controls whether component extensions are allowed to use chrome://resources/ URLs in worker scripts and subresources."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeAllowOnDeviceExecution","variable":"kComposeAllowOnDeviceExecution","defaultStatus":false,"line":72,"comment":"Enables on-device execution, if available."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeAutoSubmit","variable":"kComposeAutoSubmit","defaultStatus":false,"line":21,"comment":"Enables Auto-submit of compose with a valid selection."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeAXSnapshot","variable":"kComposeAXSnapshot","defaultStatus":false,"line":19,"comment":"Enables/disables inner text context gathering."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ComposeboxAttachmentsTypedState","variable":"kComposeboxAttachmentsTypedState","defaultStatus":false,"line":396,"comment":"Controls whether or not contextual composebox should display suggestions."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ComposeboxDriveContextMenuOption","variable":"kComposeboxDriveContextMenuOption","defaultStatus":false,"line":399,"comment":"Whether to enable Google Drive context menu option in the composebox."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ComposeboxDriveContextMenuOptionDisclaimer","variable":"kComposeboxDriveContextMenuOptionDisclaimer","defaultStatus":false,"line":405,"comment":"Whether to enable Google Drive context menu option's disclaimer flow in the composebox."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ComposeboxUsesChromeComposeClient","variable":"kComposeboxUsesChromeComposeClient","defaultStatus":false,"line":393,"comment":"Whether the composebox should use the new `chrome-compose` client."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ComposeboxVerbatimMatchZeroSuggest","variable":"kComposeboxVerbatimMatchZeroSuggest","defaultStatus":false,"line":428,"comment":"Whether the composebox should show a verbatim match for context in zero-suggest."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeEligible","variable":"kComposeEligible","defaultStatus":true,"line":23,"comment":"Force compose off even if enabled by other switches.."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"ComposeGraduated","variable":"kComposeGraduated","defaultStatus":true,"line":40,"comment":"Features that determine when a feature has graduated from experimental. These should not be enabled at the same time as their respective settings visibility features."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeHideComposeNudgesAsynchronously","variable":"kComposeHideComposeNudgesAsynchronously","defaultStatus":true,"line":76,"comment":"If enabled, Compose nudges are hidden asynchronously to avoid reentrant AutofillManager::Observer calls. See crbug.com/501120730 for details."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeInnerText","variable":"kComposeInnerText","defaultStatus":true,"line":17,"comment":"Enables/disables inner text context gathering."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeInputParams","variable":"kComposeInputParams","defaultStatus":false,"line":15,"comment":"Has flags for tweaking the valid sizes of input."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeRequestLatencyTimeout","variable":"kComposeRequestLatencyTimeout","defaultStatus":true,"line":55,"comment":"Enables client-side timeout of a Compose request."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"ComposeSettingsVisibility","variable":"kComposeSettingsVisibility","defaultStatus":false,"line":19,"comment":"Features that control the visibility of whether a feature setting is visible to the user. Should only be enabled for experimental features that have not graduated yet."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeTextOutputAnimation","variable":"kComposeTextOutputAnimation","defaultStatus":false,"line":53,"comment":"Enables animation of text output. Applies only to on-device evaluation."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeUiParams","variable":"kComposeUiParams","defaultStatus":false,"line":51,"comment":"Controls parameters around UI rendering."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"ComposeUpfrontInputModes","variable":"kComposeUpfrontInputModes","defaultStatus":true,"line":74,"comment":"Enables upfront input modes in the dialog."},{"type":"feature","file":"content/public/common/content_features.cc","name":"CompositeBGColorAnimation","variable":"kCompositeBGColorAnimation","defaultStatus":false,"line":260},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"CompositorLoadingThrobber","variable":"kCompositorLoadingThrobber","defaultStatus":false,"line":44,"comment":"Enables a compositor-driven rotation animation for the tab load throbber."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"Conch","variable":"kConch","defaultStatus":false,"line":397,"comment":"Controls enabling/disabling conch."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ConchExpandTranscriptionLanguage","variable":"kConchExpandTranscriptionLanguage","defaultStatus":true,"line":401,"comment":"If enabled, conch will provide transcription language options for users to choose."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ConchGenAi","variable":"kConchGenAi","defaultStatus":true,"line":405,"comment":"If enabled, conch will provide available GenAI features."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ConchLargeModel","variable":"kConchLargeModel","defaultStatus":false,"line":410,"comment":"If enabled, conch will request DLC to download large models. Otherwise, request DLC to download small models. Note that if requested models are not available on the device, GenAI features will be unavailable."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ConchSystemAudioFromMic","variable":"kConchSystemAudioFromMic","defaultStatus":false,"line":413,"comment":"If enabled, conch will use microphone to capture system audio."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"ConditionallySkipGpuChannelFlush","variable":"kConditionallySkipGpuChannelFlush","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":426},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"ConfigurableGPUWatchdogTimeout","variable":"kConfigurableGPUWatchdogTimeout","defaultStatus":false,"line":895,"comment":"Enables runtime configuration of the GPU watchdog timeout via experimentation."},{"type":"feature","file":"components/search/ntp_features.cc","name":"ConfirmSuggestionRemovals","variable":"kConfirmSuggestionRemovals","defaultStatus":false,"line":21,"comment":"If enabled, shows a confirm dialog before removing search suggestions from the New Tab page real search box (\"realbox\")."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ConsiderDSEWarmUpPageAsSRP","variable":"kConsiderDSEWarmUpPageAsSRP","defaultStatus":true,"line":1617,"comment":"Consider the default search engine (DSE) warmup page as a search results page (SRP), for the purpose of applying the \"process per site for DSE SRP\" policy (`kProcessPerSiteForDSE`)."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"ConsolidateMetricsServiceLocales","variable":"kConsolidateMetricsServiceLocales","defaultStatus":false,"line":40,"comment":"Consolidates the application locale logic in MetricsServiceClient."},{"type":"feature","file":"components/accessibility_annotator/core/accessibility_annotator_features.cc","name":"ContentAnnotator","variable":"kContentAnnotator","defaultStatus":false,"line":9},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"ContentBindingVersioningEnabled","variable":"kContentBindingVersioningEnabled","defaultStatus":false,"line":32,"comment":"Enables the versioned content bindings in signal reports."},{"type":"feature","file":"components/content_capture/common/content_capture_features.cc","name":"ContentCaptureSendMetadataForDataShare","variable":"kContentCaptureSendMetadataForDataShare","defaultStatus":false,"line":16,"comment":"Enables sending content capture metadata (e.g. sensitivity score, language string, language confidence) to the data share service."},{"type":"feature","file":"components/omnibox/common/composebox_features.cc","name":"ContextManagementInComposebox","variable":"kContextManagementInComposebox","defaultStatus":false,"line":9,"comment":"If enabled, this feature will enable an updated tab context management UI. - The Composebox Context Menu will show the current and most recent tabs in a flyover. - Tab favicon chips will show next to the \"+\" button and in the context menu instead of in the co-browse tool bar and RHS dropdown."},{"type":"feature","file":"components/omnibox/common/composebox_features.cc","name":"ContextManagementInOmnibox","variable":"kContextManagementInOmnibox","defaultStatus":false,"line":12,"comment":"Gates context menu and favicon coins for omnibox."},{"type":"feature","file":"components/omnibox/common/composebox_features.cc","name":"ContextMenuAnimationLimiting","variable":"kContextMenuAnimationLimiting","defaultStatus":false,"line":13,"comment":"If enabled, the impressions of the context menu animation will be capped."},{"type":"feature","file":"media/base/media_switches.cc","name":"ContextMenuCopyVideoFrame","variable":"kContextMenuCopyVideoFrame","defaultStatus":true,"line":534,"comment":"Enables the \"Copy Video Frame\" context menu item."},{"type":"feature","file":"media/base/media_switches.cc","name":"ContextMenuPictureInPictureAndroid","variable":"kContextMenuPictureInPictureAndroid","defaultStatus":true,"line":1193,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables Picture-in-Picture menu item on the video context menu on Android."},{"type":"feature","file":"media/base/media_switches.cc","name":"ContextMenuSaveVideoFrameAs","variable":"kContextMenuSaveVideoFrameAs","defaultStatus":true,"line":538,"comment":"Enables the \"Save Video Frame As\" context menu item. On Android, this is \"Download Video Frame\" context menu item."},{"type":"feature","file":"media/base/media_switches.cc","name":"ContextMenuSearchForVideoFrame","variable":"kContextMenuSearchForVideoFrame","defaultStatus":true,"line":541,"comment":"Enables the \"Search Video Frame with <Search Provider>\" context menu item."},{"type":"feature","file":"components/omnibox/common/composebox_features.cc","name":"ContextMenuToolTips","variable":"kContextMenuToolTips","defaultStatus":false,"line":10,"comment":"If enabled, this feature will show tooltips in the composebox context menu."},{"type":"feature","file":"chrome/browser/glic/suggestions/contextual_cueing_features.cc","name":"ContextualCueing","variable":"kContextualCueing","defaultStatus":false,"line":15},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"ContextualCueingSettingsVisibility","variable":"kContextualCueingSettingsVisibility","defaultStatus":false,"line":28},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ContinuousOverviewScrollAnimation","variable":"kContinuousOverviewScrollAnimation","defaultStatus":false,"line":416,"comment":"Enables a smooth overview mode transition based on the gesture position."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CopyClientKeysCertsToChaps","variable":"kCopyClientKeysCertsToChaps","defaultStatus":true,"line":435,"comment":"Enables execution of routine for copying client keys and certs from NSS DB to software backed Chaps slot. It's only respected if the EnableNssDbClientCertsRollback feature flag is disabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CoralFeature","variable":"kCoralFeature","defaultStatus":false,"line":420,"comment":"Controls enabling/disabling the coral feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CoralFeatureAllowed","variable":"kCoralFeatureAllowed","defaultStatus":true,"line":427,"comment":"Since kCoralFeature is also controlled by login_manager, finch kill switch could not effectively control it. The kCoralFeatureAllowed is designed to be always enabled by default, but can be disabled by the finch kill switch. When disabled, this overrides kCoralFeature's status and force disables the feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CoralFeatureMultiLanguage","variable":"kCoralFeatureMultiLanguage","defaultStatus":false,"line":430,"comment":"Controls whether the coral feature supports multi-language."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"CreateNewTabGroupAppMenuTopLevel","variable":"kCreateNewTabGroupAppMenuTopLevel","defaultStatus":false,"line":46},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"CredentialManagementUnifiedUi","variable":"kCredentialManagementUnifiedUi","defaultStatus":false,"line":91,"buildflags":["!BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_ANDROID)"],"comment":"Enables the Unified UI for the Password Manager."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"CrosComponents","variable":"kCrosComponents","defaultStatus":false,"line":40,"comment":"Enables the use of cros-component UI elements. Contact: cros-jellybean-team@google.com."},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSDspBasedAecDeactivatedGroups","variable":"kCrOSDspBasedAecDeactivatedGroups","defaultStatus":true,"line":604,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSDspBasedAgcDeactivatedGroups","variable":"kCrOSDspBasedAgcDeactivatedGroups","defaultStatus":true,"line":608,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSDspBasedNsDeactivatedGroups","variable":"kCrOSDspBasedNsDeactivatedGroups","defaultStatus":true,"line":606,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSEnforceMonoAudioCapture","variable":"kCrOSEnforceMonoAudioCapture","defaultStatus":false,"line":620,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSEnforceSystemAec","variable":"kCrOSEnforceSystemAec","defaultStatus":true,"line":602,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSEnforceSystemAecAgc","variable":"kCrOSEnforceSystemAecAgc","defaultStatus":false,"line":601,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSEnforceSystemAecNs","variable":"kCrOSEnforceSystemAecNs","defaultStatus":false,"line":600,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSEnforceSystemAecNsAgc","variable":"kCrOSEnforceSystemAecNsAgc","defaultStatus":false,"line":599,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"CrosIsolatedWebAppSetShape","variable":"kCrosIsolatedWebAppSetShape","defaultStatus":false,"line":43,"comment":"Enables the setShape Blink extension for Isolated Web Apps on ChromeOS."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"CrosIsolatedWebAppSetShapeAllowlist","variable":"kCrosIsolatedWebAppSetShapeAllowlist","defaultStatus":true,"line":47,"comment":"Enables the allowlist for the setShape Blink extension for Isolated Web Apps on ChromeOS. This is intended to be used as the kill switch for the feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrosPrivacyHub","variable":"kCrosPrivacyHub","defaultStatus":true,"line":438,"comment":"Adds location access control to Privacy Hub."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrosSafetyService","variable":"kCrosSafetyService","defaultStatus":false,"line":446,"comment":"Enables cros safety service for trust and safety filtering for the text/image output of on-device gen ai models."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"CrossDeviceSignin","variable":"kCrossDeviceSignin","defaultStatus":false,"line":271,"buildflags":["BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"CrossDeviceSigninFromDesktop","variable":"kCrossDeviceSigninFromDesktop","defaultStatus":false,"line":277,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrosSeparateGeoApiKey","variable":"kCrosSeparateGeoApiKey","defaultStatus":true,"line":442,"comment":"If enabled, ChromeOS system services and Chrome-on-ChromeOS will use separate API keys for Geolocation resolution."},{"type":"feature","file":"components/soda/soda_features.cc","name":"CrosSodaConchLanguages","variable":"kCrosSodaConchLanguages","defaultStatus":true,"line":15,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"This flag is required for external Tast tests.","todos":["TODO(b/512784860): Replace this flag with a lighter one for just en-US."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrosSwitcher","variable":"kCrosSwitcher","defaultStatus":true,"line":300},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSSystemAEC","variable":"kCrOSSystemAEC","defaultStatus":true,"line":595,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"To control running audio communication effect on Chrome OS Audio Server."},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSSystemAECDeactivatedGroups","variable":"kCrOSSystemAECDeactivatedGroups","defaultStatus":true,"line":598,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"CrOSSystemVoiceIsolationOption","variable":"kCrOSSystemVoiceIsolationOption","defaultStatus":false,"line":614,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"Crostini","variable":"kCrostini","defaultStatus":false,"line":114,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable project Crostini, Linux VMs on Chrome OS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniAdvancedAccessControls","variable":"kCrostiniAdvancedAccessControls","defaultStatus":false,"line":2032,"comment":"Enable advanced access controls for Crostini-related features (e.g. restricting VM CLI tools access, restricting Crostini root access)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniAnsibleSoftwareManagement","variable":"kCrostiniAnsibleSoftwareManagement","defaultStatus":false,"line":2195,"comment":"Enables infrastructure for generating Ansible playbooks for the default Crostini container from software configurations in JSON schema."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniArcSideload","variable":"kCrostiniArcSideload","defaultStatus":true,"line":2036,"comment":"Enables support for sideloading android apps into Arc via crostini."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniContainerless","variable":"kCrostiniContainerless","defaultStatus":true,"line":453,"comment":"Enables experimental containerless Crostini VMs."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniGpuSupport","variable":"kCrostiniGpuSupport","defaultStatus":false,"line":459,"comment":"Enables or disables Crostini GPU support. Note that this feature can be overridden by login_manager based on whether a per-board build sets the USE virtio_gpu flag. Refer to: chromiumos/src/platform2/login_manager/chrome_setup.cc"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniQtImeSupport","variable":"kCrostiniQtImeSupport","defaultStatus":false,"line":465,"comment":"Enables or disables Crostini Qt application IME support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniResetLxdDb","variable":"kCrostiniResetLxdDb","defaultStatus":false,"line":462,"comment":"Force enable recreating the LXD DB at LXD launch."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CrostiniVirtualKeyboardSupport","variable":"kCrostiniVirtualKeyboardSupport","defaultStatus":false,"line":468,"comment":"Enables or disables Crostini Virtual Keyboard support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptauthAttestationSyncing","variable":"kCryptauthAttestationSyncing","defaultStatus":false,"line":450,"comment":"Enables syncing attestation certificates to cryptauth for use by Cross Device features, including Eche and Phone Hub."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptAuthV2DeviceActivityStatus","variable":"kCryptAuthV2DeviceActivityStatus","defaultStatus":true,"line":472,"comment":"Enables or disables using Cryptauth's GetDevicesActivityStatus API."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptAuthV2DeviceActivityStatusUseConnectivity","variable":"kCryptAuthV2DeviceActivityStatusUseConnectivity","defaultStatus":false,"line":477,"comment":"Enables or disables use of the connectivity status from Cryptauth's GetDevicesActivityStatus API to sort devices."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"CryptographyComplianceCnsa","variable":"kCryptographyComplianceCnsa","defaultStatus":false,"line":120,"comment":"Enables stricter cryptography settings for CNSA2 compliance. This is not needed for security, but may be required by some organizations."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptohomeDistributedModel","variable":"kCryptohomeDistributedModel","defaultStatus":false,"line":2040,"comment":"Enables distributed model for TPM1.2, i.e., using tpm_managerd and attestationd."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptohomeRecoveryByDefaultForConsumers","variable":"kCryptohomeRecoveryByDefaultForConsumers","defaultStatus":true,"line":489,"comment":"Controls the default value for the option to set up cryptohome recovery presented for consumer users. - if enabled, recovery would set up by default (opt-out mode) - if disabled, user have to explicitly opt-in to use recovery"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptohomeRecoveryByDefaultForEnterprise","variable":"kCryptohomeRecoveryByDefaultForEnterprise","defaultStatus":false,"line":496,"comment":"Controls the behavior during onboarding when the RecoveryFactorBehavior policy is unset. - if enabled, treat as \"recommended enable recovery\" policy value. - if disabled, treat as \"recommended disable recovery\" policy value."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptohomeUserDataAuth","variable":"kCryptohomeUserDataAuth","defaultStatus":false,"line":2045,"comment":"Enables cryptohome UserDataAuth interface, a new dbus interface that is fully protobuf and uses libbrillo for dbus instead of the deprecated glib-dbus."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"CryptohomeUserDataAuthKillswitch","variable":"kCryptohomeUserDataAuthKillswitch","defaultStatus":false,"line":2050,"comment":"Kill switch for cryptohome UserDataAuth interface. UserDataAuth is a new dbus interface that is fully protobuf and uses libbrillo for dbus instead instead of the deprecated glib-dbus."},{"type":"feature","file":"ui/display/display_features.cc","name":"CtmColorManagement","variable":"kCtmColorManagement","defaultStatus":true,"line":37,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Feature to control if the CTM is dynamically set to the primary transform from plane color space to output color space."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"CtrlTabMru","variable":"kCtrlTabMru","defaultStatus":false,"line":49},{"type":"feature","file":"printing/printing_features.cc","name":"CupsIppPrintingBackend","variable":"kCupsIppPrintingBackend","defaultStatus":false,"line":23,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Use the CUPS IPP printing backend instead of the original CUPS backend that calls the deprecated PPD API."},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"CurrentDseHighlightOnChoiceScreenSupport","variable":"kCurrentDseHighlightOnChoiceScreenSupport","defaultStatus":true,"line":25,"comment":"Whether support for showing the current default in the choice screen should be enabled. When enabled, the associated program settings will be read to determine whether to actually show it."},{"type":"feature","file":"components/search/ntp_features.cc","name":"CustomizeChromeSidePanelExtensionsCard","variable":"kCustomizeChromeSidePanelExtensionsCard","defaultStatus":false,"line":27,"comment":"If enabled, shows an extension card within the Customize Chrome Side Panel for access to the Chrome Web Store extensions."},{"type":"feature","file":"components/search/ntp_features.cc","name":"CustomizeChromeWallpaperSearch","variable":"kCustomizeChromeWallpaperSearch","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":32,"comment":"If enabled, shows wallpaper search within the Customize Chrome Side Panel. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"CustomizeChromeWallpaperSearchButton","variable":"kCustomizeChromeWallpaperSearchButton","defaultStatus":false,"line":41,"comment":"If enabled, shows entry point on Customize Chrome Side Panel's Appearance page for Wallpaper Search.\";"},{"type":"feature","file":"components/search/ntp_features.cc","name":"CustomizeChromeWallpaperSearchInspirationCard","variable":"kCustomizeChromeWallpaperSearchInspirationCard","defaultStatus":true,"line":46,"comment":"If enabled, shows inspiration card in Customize Chrome Side Panel Wallpaper Search."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D11VideoDecoderForceSingleTexture","variable":"kD3D11VideoDecoderForceSingleTexture","defaultStatus":false,"line":681,"comment":"Forces D3D11VideoDecoder to use one decoder texture per picture buffer. Owner: media-gpu-team@chromium.org Expiry: When no longer needed for decode texture selection experiments."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D11VideoDecoderUseSharedHandle","variable":"kD3D11VideoDecoderUseSharedHandle","defaultStatus":false,"line":684},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D11Vp9kSVCHWDecoding","variable":"kD3D11Vp9kSVCHWDecoding","defaultStatus":false,"line":1391,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enable VP9 kSVC decoding with HW decoder for webrtc use case on Windows."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D12SharedImageEncode","variable":"kD3D12SharedImageEncode","defaultStatus":false,"line":1730,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables D3D12 video encode accelerator taking shared image as input."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D12VideoDecoder","variable":"kD3D12VideoDecoder","defaultStatus":false,"line":1715,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Controls whether to use D3D12 video decoder instead of D3D11 when supported."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D12VideoEncodeAccelerator","variable":"kD3D12VideoEncodeAccelerator","defaultStatus":false,"line":1720,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Controls whether to enable D3D12 video encode accelerator. Owner: zhibo1.wang@intel.com Expiry: When enabled by default."},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D12VideoEncodeAcceleratorL1T3","variable":"kD3D12VideoEncodeAcceleratorL1T3","defaultStatus":false,"line":1721,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"D3D12VideoEncodeAcceleratorSharedHandleCaching","variable":"kD3D12VideoEncodeAcceleratorSharedHandleCaching","defaultStatus":true,"line":1725,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Controls whether to cache shared handles for D3D12 video encode accelerator."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"D3DBackingUploadWithUpdateSubresource","variable":"kD3DBackingUploadWithUpdateSubresource","defaultStatus":true,"line":491,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Use d3d11 UpdateSubresource() (instead of a staging texture) to upload pixels to textures."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"DataControlsFileAccessDefaultDeny","variable":"kDataControlsFileAccessDefaultDeny","defaultStatus":false,"line":51,"comment":"Enables denying file access to dlp protected files in MyFiles."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DataLeakPreventionFilesRestriction","variable":"kDataLeakPreventionFilesRestriction","defaultStatus":true,"line":2055,"comment":"Enables starting of Data Leak Prevention Files Daemon by sending the DLP policy there. The daemon might restrict access to some protected files."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"DbusSecretPortal","variable":"kDbusSecretPortal","defaultStatus":true,"line":69,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Enables usage of os_crypt_async::SecretPortalKeyProvider. Once `kSecretPortalKeyProviderUseForEncryption` is enabled, this flag cannot be disabled without losing data."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DCompDebugVisualization","variable":"kDCompDebugVisualization","defaultStatus":false,"line":253,"comment":"Enable DComp debug visualizations. This can be useful to determine how much work DWM is doing when we update our tree. Please be aware that some of these visualizations result in quickly flashing colors."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"DCompOnD3D12","variable":"kDCompOnD3D12","defaultStatus":false,"line":160,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables DirectComposition textures backed by D3D12 resources. When this feature is enabled, the GPU pipeline may create and present DComp- backed surfaces using the D3D12 path and leverage Dawn’s D3D12 device. This allows unified resource sharing and fences between Dawn (WebGPU), Skia Graphite, and DComp when the system supports D3D12. Important notes: - Keyed-mutex resources are not compatible with the D3D12 unwrap path and will continue using D3D11. - WebGL will continue to use the D3D11 runtime backed by D3D11 drivers with ANGLE's D3D11 device. - Certain SharedImage functionality such as copies to staging textures rely on the D3D11 DDI. These code paths will use D3D11on12 when this feature is enabled. This feature requires SkiaGraphite with a dawn-d3d12 backend, BufferQueue to be enabled, and either DelegatedCompositing to be disabled or in full mode. As there is currently no support for D3D12 swapchains or DComp surfaces, BufferQueue is required to manage presentation. BufferQueue is not supported on Windows with partial delegated compositing, so in that mode this feature will not work. Example command line to enable this feature: --enable-features=SkiaGraphite,BufferQueue,DCompOnD3D12 AND --disable-features=DelegatedCompositing or --enable-features=DelegatedCompositing:mode/full AND --skia-graphite-backend=dawn-d3d12"},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DCompTripleBufferVideoSwapChain","variable":"kDCompTripleBufferVideoSwapChain","defaultStatus":false,"line":256,"comment":"Use BufferCount of 3 for direct composition video swap chains."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DebuggerAPIRestrictedToDevMode","variable":"kDebuggerAPIRestrictedToDevMode","defaultStatus":false,"line":215,"comment":"Forces the debugger API/feature to always be restricted by developer mode. This ensures we're always testing the developer mode API/feature restriction capability, even when no other API/feature might be restricted by it."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DebugTopChromeWebUI","variable":"kDebugTopChromeWebUI","defaultStatus":false,"line":33,"comment":"Allows full debugging of Top Chrome Webium in devtools."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"DebugUiForOtps","variable":"kDebugUiForOtps","defaultStatus":false,"line":95,"comment":"Enables debug data popups on OTP fields for manual testing of one-time-passwords. Only for OTP detection testing, not intended to be launched."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DeclarativeNetRequestHeaderSubstitution","variable":"kDeclarativeNetRequestHeaderSubstitution","defaultStatus":false,"line":190,"comment":"Enables declarative net request rules to specify a header substitution action type for modifying headers."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DeclarativeNetRequestResponseHeaderMatching","variable":"kDeclarativeNetRequestResponseHeaderMatching","defaultStatus":true,"line":182,"comment":"Enables declarative net request rules to specify response headers as a matching condition."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DeclarativeNetRequestSafeRuleLimits","variable":"kDeclarativeNetRequestSafeRuleLimits","defaultStatus":true,"line":176,"comment":"Enables a relaxed rule count for \"safe\" dynamic or session scoped rules above the current limit. If disabled, all dynamic and session scoped rules are treated as \"safe\" but the rule limit's value will be the stricter \"unsafe\" limit."},{"type":"feature","file":"media/base/media_switches.cc","name":"DedicatedMediaServiceThread","variable":"kDedicatedMediaServiceThread","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":false},{"condition":"!BUILDFLAG(IS_WIN)","value":true}],"line":688,"comment":"Runs the media service in the GPU process on a dedicated thread."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"DefaultAllowPrivacySandboxAttestations","variable":"kDefaultAllowPrivacySandboxAttestations","defaultStatus":false,"line":63},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DefaultANGLEMetal","variable":"kDefaultANGLEMetal","defaultStatus":true,"line":297,"comment":"Default to using ANGLE's Metal backend."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DefaultANGLEVulkan","variable":"kDefaultANGLEVulkan","defaultStatus":false,"line":300,"comment":"Default to using ANGLE's Vulkan backend."},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"DefaultBrowserChangedOsNotification","variable":"kDefaultBrowserChangedOsNotification","defaultStatus":false,"line":94,"comment":"Enables the framework to show Os Notification when Chrome is no longer the default browser. NOTE: This flag expect that `kDefaultBrowserFramework` is enabled first."},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"DefaultBrowserFramework","variable":"kDefaultBrowserFramework","defaultStatus":false,"line":70},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"DefaultBrowserPromptSurfaces","variable":"kDefaultBrowserPromptSurfaces","defaultStatus":false,"line":72,"comment":"Enables the default browser prompt surfaces (e.g. invalidation, reprompt)."},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"DefaultBrowserSetterSelection","variable":"kDefaultBrowserSetterSelection","defaultStatus":false,"line":97,"comment":"Enables the framework to support multiple setter. When disabled, the setter will default to the the `DefaultBrowserSetterType::kShellIntegration`."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"DefaultEnableANGLEValidation","variable":"kDefaultEnableANGLEValidation","defaultStatus":false,"line":235,"buildflags":["!DCHECK_IS_ON()"],"comment":"Enables the use of ANGLE validation for EGL and GL (non-WebGL) contexts."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"DefaultEnableGpuRasterization","variable":"kDefaultEnableGpuRasterization","defaultStatus":[{"condition":"BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \\","value":true},{"condition":"!(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \\)","value":false}],"line":189,"comment":"Enable GPU Rasterization by default. This can still be overridden by --enable-gpu-rasterization or --disable-gpu-rasterization. DefaultEnableGpuRasterization has launched on Mac, Windows, ChromeOS, Android and Linux."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"DefaultPassthroughCommandDecoder","variable":"kDefaultPassthroughCommandDecoder","defaultStatus":true,"line":110,"buildflags":["BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER)"],"comment":"All features in alphabetical order. The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DefaultSiteInstanceGroups","variable":"kDefaultSiteInstanceGroups","defaultStatus":true,"line":1096,"comment":"When enabled, puts non-isolated sites in separate SiteInstances in a default SiteInstanceGroup (per BrowsingInstance), rather than sharing a default SiteInstance."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DefaultTypedNavigationsToHttps","variable":"kDefaultTypedNavigationsToHttps","defaultStatus":false,"line":242,"comment":"Navigation experiments.","todos":["TODO(crbug.com/375004882): On non-iOS platforms, this feature is now superseded by HTTPS-Upgrades and will be removed in the near future."]},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"DeferArcActivationUntilUserSessionStartUpTaskCompletion","variable":"kDeferArcActivationUntilUserSessionStartUpTaskCompletion","defaultStatus":true,"line":64,"comment":"Defers the ARC actvation until the user session start up tasks are completed to give more resources to critical tasks for user session starting."},{"type":"feature","file":"media/base/media_switches.cc","name":"DeferAudioFocusUntilAudible","variable":"kDeferAudioFocusUntilAudible","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":699,"comment":"Defer requesting persistent audio focus until the WebContents is audible. The goal is to prevent silent playback from taking audio focus from background apps on android, where focus is typically exclusive."},{"type":"feature","file":"ui/views/views_features.cc","name":"DeferHWNDMessageHandlerDestruction","variable":"kDeferHWNDMessageHandlerDestruction","defaultStatus":true,"line":31,"comment":"When disabled, HWNDMessageHandler is synchronously deleted when handling WM_NCDESTROY. When enabled, HWNDMessageHandler's deletion is deferred by posting a task to the UI task runner."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"DeferredDownloadHistoryLoading","variable":"kDeferredDownloadHistoryLoading","defaultStatus":false,"line":91,"comment":"Whether to defer download history loading until first use."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"DeferredOverlaysRelease","variable":"kDeferredOverlaysRelease","defaultStatus":true,"line":484,"comment":"On platforms with delegated compositing, try to release overlays later, when no new frames are swapped."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DeferSpeculativeRFHCreation","variable":"kDeferSpeculativeRFHCreation","defaultStatus":false,"line":267,"comment":"Enables deferring the creation of the speculative RFH when the navigation starts. The creation of a speculative RFH consumes about 2ms and is blocking the network request. With this feature the creation will be deferred until the browser initializes the network request. The speculative RFH will be created while the network service is sending the request in parallel."},{"type":"feature","file":"components/password_manager/core/common/password_manager_features.cc","name":"DelaySuggestionsOnAutofocusWaitingForPasskeys","variable":"kDelaySuggestionsOnAutofocusWaitingForPasskeys","defaultStatus":true,"line":32,"comment":"Only relevant when `kShowSuggestionsOnAutofocus` is on. This prevents suggestions from being shown while waiting for passkeys to become available, if the popup was triggered by autofocus without user interaction. It is enabled by default and can be turned off if it is found to cause any problems."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"DeleteOverwrittenDownloads","variable":"kDeleteOverwrittenDownloads","defaultStatus":true,"line":69,"comment":"Whether to delete downloads that are overwritten by others."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeAppLandscapeLocked","variable":"kDemoModeAppLandscapeLocked","defaultStatus":true,"line":1735,"comment":"Enables the demo mode app orientation locked in landscape."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeAppResetWindowContainer","variable":"kDemoModeAppResetWindowContainer","defaultStatus":true,"line":501,"comment":"Controls whether should set demo app window's parent to `kShellWindowId_AlwaysOnTopWallpaperContainer` when attract loop is playing."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeSecondaryGoogleAccountSigninAllowedFalse","variable":"kDemoModeSecondaryGoogleAccountSigninAllowedFalse","defaultStatus":true,"line":1741,"comment":"The pref kSecondaryGoogleAccountSigninAllowed is set to false in Demo Mode."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeSignIn","variable":"kDemoModeSignIn","defaultStatus":true,"line":506,"comment":"Controls whether use a demo account (consumer account) to login Demo mode session."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeSignInFileCleanup","variable":"kDemoModeSignInFileCleanup","defaultStatus":true,"line":513,"comment":"Controls whether clean up local files between shopper session when demo mode sign in is enable. No-op if demo mode sign in is disabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoModeWallpaperUpdate","variable":"kDemoModeWallpaperUpdate","defaultStatus":true,"line":509,"comment":"Controls whether demo mode applies CBX wallpaper logic."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DemoSessionToSNotification","variable":"kDemoSessionToSNotification","defaultStatus":true,"line":1738,"comment":"Enables the ToS Notification in demo mode signed-in sessions."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"DeprecateAltClick","variable":"kDeprecateAltClick","defaultStatus":false,"line":99,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"DeprecatedExternalPickerFunction","variable":"kDeprecatedExternalPickerFunction","defaultStatus":false,"line":34,"comment":"Use the old-style opening of an External Picker when uploading files."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DesksTemplates","variable":"kDesksTemplates","defaultStatus":false,"line":524},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeskTemplateSync","variable":"kDeskTemplateSync","defaultStatus":true,"line":522,"comment":"Enables or disables Sync for desk templates on ChromeOS."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"DesktopFlingCurveOnAndroid","variable":"kDesktopFlingCurveOnAndroid","defaultStatus":false,"line":213,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to use the desktop scrolling behavion on Android. This is intended for desktop Android, though it's available everywhere."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"DesktopGlowUp","variable":"kDesktopGlowUp","defaultStatus":false,"line":508},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DesktopPlaneRemovalForMFFullScreenLetterbox","variable":"kDesktopPlaneRemovalForMFFullScreenLetterbox","defaultStatus":true,"line":273,"comment":"Remove the topmost desktop plane for Media Foundation full screen letterboxing. This is a kill switch for the desktop plane removal optimization for Media Foundation Renderer, which should be enabled by default when crbug.com/406175378 is resolved."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DesktopPWAsElidedExtensionsMenu","variable":"kDesktopPWAsElidedExtensionsMenu","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":166,"comment":"Moves the Extensions \"puzzle piece\" icon from the title bar into the app menu for web app windows."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DesktopPWAsPreventClose","variable":"kDesktopPWAsPreventClose","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":175,"comment":"If enabled, allow-listed PWAs cannot be closed manually by the user."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DesktopPWAsTabStripSettings","variable":"kDesktopPWAsTabStripSettings","defaultStatus":false,"line":184,"comment":"Adds a user settings that allows PWAs to be opened with a tab strip."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DesktopPWAsWindowControlsOverlayWithNoToggle","variable":"kDesktopPWAsWindowControlsOverlayWithNoToggle","defaultStatus":false,"line":192,"comment":"Removes the Window Controls Overlay toggle button from the PWA toolbar and auto-enables WCO when the app developer specifies it in the manifest. When disabled, the toggle button is shown and WCO must be enabled by the user. This feature only affects apps that have \"window-controls-overlay\" in their PWA manifest's display_override field, apps without manifest support are unaffected."},{"type":"feature","file":"chrome/browser/sharing_hub/sharing_hub_features.cc","name":"DesktopScreenshots","variable":"kDesktopScreenshots","defaultStatus":false,"line":69,"comment":"Feature flag to enable the screenshots feature, currently accessed only through the sharing hub."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"DestroyProfileOnBrowserClose","variable":"kDestroyProfileOnBrowserClose","defaultStatus":[{"condition":"BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)","value":true}],"line":74,"comment":"Destroy profiles when their last browser window is closed, instead of when the browser exits."},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"DetectedAgentSignalCollectionEnabled","variable":"kDetectedAgentSignalCollectionEnabled","defaultStatus":true,"line":17,"comment":"Enables the collection of detected agent signals in Chrome report."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"DetectInconsistentPageImpl","variable":"kDetectInconsistentPageImpl","defaultStatus":true,"line":19,"comment":"Enable detecting inconsistency in the `PageImpl` used in the auction. Abort the auction when detected."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceActiveClient28DayActiveCheckMembership","variable":"kDeviceActiveClient28DayActiveCheckMembership","defaultStatus":false,"line":1989,"comment":"Enables or disables PSM CheckMembership for 28 day device active pings on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceActiveClientChurnCohortCheckMembership","variable":"kDeviceActiveClientChurnCohortCheckMembership","defaultStatus":false,"line":1994,"comment":"Enables or disables PSM CheckMembership for the churn cohort device active pings on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceActiveClientChurnObservationCheckMembership","variable":"kDeviceActiveClientChurnObservationCheckMembership","defaultStatus":false,"line":1999,"comment":"Enables or disables PSM CheckMembership for the churn observation device active pings on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceActiveClientChurnObservationNewDeviceMetadata","variable":"kDeviceActiveClientChurnObservationNewDeviceMetadata","defaultStatus":true,"line":2004,"comment":"Enables or disables attaching first active week and last powerwash week to the churn observation check in ping."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DeviceBoundSessionTerminationEvictBackForwardCache","variable":"kDeviceBoundSessionTerminationEvictBackForwardCache","defaultStatus":false,"line":293,"comment":"When a device bound session (https://github.com/w3c/webappsec-dbsc/blob/main/README.md) is terminated, evict pages with cache-control:no-store from the BFCache. Note that if `kCacheControlNoStoreEnterBackForwardCache` is disabled, no such pages will be in the cache."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceMoveConfigSave","variable":"kDeviceMoveConfigSave","defaultStatus":true,"line":2009,"comment":"Enables or disables certain OOBE config options, set before a powerwash that happens as part of a device move to a new domain."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DeviceWeeklyScheduledSuspendMgs","variable":"kDeviceWeeklyScheduledSuspendMgs","defaultStatus":true,"line":2012,"comment":"Enables the DeviceWeeklyScheduledSuspend policy for Managed Guest Sessions."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DevToolsLiveEdit","variable":"kDevToolsLiveEdit","defaultStatus":false,"line":298,"comment":"Whether DevTools Live Edit (Debugger.setScriptSource usage in CDP) is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DiacriticsOnPhysicalKeyboardLongpressDefaultOn","variable":"kDiacriticsOnPhysicalKeyboardLongpressDefaultOn","defaultStatus":false,"line":527,"comment":"Enables diacritics on longpress on the physical keyboard by default."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"Diagnostics","variable":"kDiagnostics","defaultStatus":false,"line":486,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls various Omnibox Diagnostics features."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"DiceHeaderVersion2","variable":"kDiceHeaderVersion2","defaultStatus":false,"line":286,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"DiceLinkedAccounts","variable":"kDiceLinkedAccounts","defaultStatus":false,"line":290,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"DigitalGoodsApi","variable":"kDigitalGoodsApi","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS))","value":false}],"line":302,"comment":"Controls whether the Digital Goods API is enabled. https://github.com/WICG/digital-goods/"},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DirectCompositionLetterboxVideoOptimization","variable":"kDirectCompositionLetterboxVideoOptimization","defaultStatus":true,"line":266,"comment":"Adjust the letterbox video size and position to the center of the screen so that DWM power optimization can be turned on."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DirectCompositionSoftwareOverlays","variable":"kDirectCompositionSoftwareOverlays","defaultStatus":true,"line":261,"comment":"Allow overlay swapchain to present on all GPUs even if they only support software overlays. GPU deny lists limit it to NVIDIA only at the moment."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DirectCompositionUnlimitedOverlays","variable":"kDirectCompositionUnlimitedOverlays","defaultStatus":false,"line":280,"comment":"Do not consider hardware YUV overlay count when promoting quads to DComp visuals. If there are more videos than hardware overlay planes, there may be a performance hit compared to drawing all the videos into a single swap chain. This feature is intended for testing and debugging."},{"type":"feature","file":"media/base/media_switches.cc","name":"DirectOpusAudioDecoding","variable":"kDirectOpusAudioDecoding","defaultStatus":false,"line":629,"comment":"Controls whether the OpusAudioDecoder is used for Opus audio decoding (instead of the FFmpegAudioDecoder)."},{"type":"feature","file":"media/base/media_switches.cc","name":"DirectShowGetPhotoState","variable":"kDirectShowGetPhotoState","defaultStatus":true,"line":1361,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables DirectShow GetPhotoState implementation Created to act as a kill switch by disabling it, in the case of the resurgence of https://crbug.com/722038"},{"type":"feature","file":"third_party/blink/renderer/modules/direct_sockets/direct_sockets_features.cc","name":"DirectSocketsAllowRecoverableErrors","variable":"kDirectSocketsAllowRecoverableErrors","defaultStatus":true,"line":9},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DisableBoostPriority","variable":"kDisableBoostPriority","defaultStatus":false,"line":39,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisableBruschettaInstallChecks","variable":"kDisableBruschettaInstallChecks","defaultStatus":false,"line":532,"comment":"Disables hardware requirement checks for Bruschetta installer, allowing for more easy development against changes of said requirements."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DisableComposeboxWarmupRequests","variable":"kDisableComposeboxWarmupRequests","defaultStatus":false,"line":431,"comment":"Whether to disable warmup requests for the composebox."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DisableDisableExtensionsExceptCommandLineSwitch","variable":"kDisableDisableExtensionsExceptCommandLineSwitch","defaultStatus":[{"condition":"BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!(BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS))","value":false}],"line":193,"comment":"Disables loading extensions via the `--disable-extensions-except` command line switch."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisableDnsProxy","variable":"kDisableDnsProxy","defaultStatus":false,"line":536,"comment":"Disables the DNS proxy service for ChromeOS."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"DisableExtensionsOnChromeUrlsSwitch","variable":"kDisableExtensionsOnChromeUrlsSwitch","defaultStatus":[{"condition":"BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS) && \\","value":true},{"condition":"!(BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS) && \\)","value":false}],"line":201,"comment":"Disables the `--extensions-on-chrome-urls` flag's functionality on `chrome://` URLs. Extension can still run on extension URLs using the new flag `--extensions-on-extension-urls` flag."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"DisableFirstRunAnimationsForTesting","variable":"kDisableFirstRunAnimationsForTesting","defaultStatus":false,"line":560,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisableGoogleOneOfferFilesBanner","variable":"kDisableGoogleOneOfferFilesBanner","defaultStatus":false,"line":482,"comment":"Disable a Files banner about Google One offer. This flag is used by G1+ nudge to conditionally disable the G1 file banner via finch."},{"type":"feature","file":"content/public/common/content_features.cc","name":"DisablePartialStorageCleanupForGPUDiskCache","variable":"kDisablePartialStorageCleanupForGPUDiskCache","defaultStatus":false,"line":393,"comment":"When this feature is enabled, partial storage cleanup will be disabled for the GPU disk cache. (Performance improvement)"},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"DisablePasswordChangeFromNewPasswordFields","variable":"kDisablePasswordChangeFromNewPasswordFields","defaultStatus":true,"line":97,"comment":"When enabled, automated password change won't be offered when the form contains new password field."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"DisablePhotoPickerForVideoCapture","variable":"kDisablePhotoPickerForVideoCapture","defaultStatus":true,"line":37,"comment":"Whether photo picker should be disabled for video capture."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"DisablePrivacySandboxPrompts","variable":"kDisablePrivacySandboxPrompts","defaultStatus":true,"line":58},{"type":"feature","file":"content/public/common/content_features.cc","name":"DisableProcessReuse","variable":"kDisableProcessReuse","defaultStatus":false,"line":1131,"comment":"When enabled, OOPIFs will not try to reuse compatible processes from unrelated tabs."},{"type":"feature","file":"components/strike_database/strike_database_features.cc","name":"DisableStrikeSystem","variable":"kDisableStrikeSystem","defaultStatus":false,"line":13,"comment":"If enabled, the strike system will not block features. Intended for debugging/testing use only and should never be launched to users."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"DisableSyncAutogeneratedSearchEngines","variable":"kDisableSyncAutogeneratedSearchEngines","defaultStatus":true,"line":75},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"DisableTrimmingWhileSuspended","variable":"kDisableTrimmingWhileSuspended","defaultStatus":true,"line":31,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"If enabled, this disables trimming process nodes and ARC++ processes and ARCVM under memory pressure while the system is suspended. The system can run while the device is suspended if dark resume feature is enabled."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"DisableU18FeedbackDesktop","variable":"kDisableU18FeedbackDesktop","defaultStatus":false,"line":294,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"url/url_features.cc","name":"DisallowSpaceCharacterInURLHostParsing","variable":"kDisallowSpaceCharacterInURLHostParsing","defaultStatus":false,"line":10},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisconnectWiFiOnEthernetConnected","variable":"kDisconnectWiFiOnEthernetConnected","defaultStatus":false,"line":539,"comment":"Disconnect WiFi when the device get connected to Ethernet."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisplayAlignAssist","variable":"kDisplayAlignAssist","defaultStatus":false,"line":543,"comment":"Enables indicators to hint where displays are connected."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DisplayEdgeToEdgeFullscreen","variable":"kDisplayEdgeToEdgeFullscreen","defaultStatus":true,"line":201,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows fullscreen to claim whole display area when in windowing mode"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DisplayPerformanceMode","variable":"kDisplayPerformanceMode","defaultStatus":false,"line":516,"comment":"Toggle different display features based on user setting and power state"},{"type":"feature","file":"media/base/media_switches.cc","name":"DocumentPictureInPictureAnimateResize","variable":"kDocumentPictureInPictureAnimateResize","defaultStatus":false,"line":713,"comment":"Adds an animation to document picture-in-picture resizes."},{"type":"feature","file":"media/base/media_switches.cc","name":"DocumentPictureInPictureCapture","variable":"kDocumentPictureInPictureCapture","defaultStatus":true,"line":717,"comment":"Allows document picture-in-picture pages to request capture."},{"type":"feature","file":"media/base/media_switches.cc","name":"DocumentPictureInPictureNavigation","variable":"kDocumentPictureInPictureNavigation","defaultStatus":false,"line":709,"comment":"Allow document picture-in-picture to navigate. This should be disabled except for testing."},{"type":"feature","file":"media/base/media_switches.cc","name":"DocumentPictureInPictureReparenting","variable":"kDocumentPictureInPictureReparenting","defaultStatus":true,"line":723,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables reparenting the VideoFrameSubmitter's frame sink when moving to or from a Document Picture-in-Picture window."},{"type":"feature","file":"media/base/media_switches.cc","name":"DocumentPictureInPictureReparenting","variable":"kDocumentPictureInPictureReparenting","defaultStatus":false,"line":726,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"DocumentPipStandaloneWindow","variable":"kDocumentPipStandaloneWindow","defaultStatus":false,"line":197,"comment":"Enables the standalone Document Picture-in-Picture window path, replacing the Browser-backed implementation with a dedicated host."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DocumentProvider","variable":"kDocumentProvider","defaultStatus":false,"line":131,"comment":"Document provider and domain suggestions"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DocumentProviderEnterpriseEligibility","variable":"kDocumentProviderEnterpriseEligibility","defaultStatus":false,"line":143,"comment":"If enabled, the primary account must be subject to enterprise policies in order to receive Drive suggestions."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DocumentProviderEnterpriseEligibilityWhenUnknown","variable":"kDocumentProviderEnterpriseEligibilityWhenUnknown","defaultStatus":false,"line":150,"comment":"If enabled, the enterprise eligibility requirement for Drive suggestions is considered met even when the account capability is unknown. Has no effect if kDocumentProviderEnterpriseEligibility is disabled."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DocumentProviderPrimaryAccountRequirement","variable":"kDocumentProviderPrimaryAccountRequirement","defaultStatus":false,"line":137,"comment":"If enabled, the authentication requirement for Drive suggestions is based on whether the primary account is available, i.e., the user is signed into Chrome, rarther than checking if any signed in account is available in the cookie jar."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DoNotDisturbShortcut","variable":"kDoNotDisturbShortcut","defaultStatus":true,"line":519,"comment":"Enable the do not disturb shortcut."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"DontIncludeSIDUnsecureCookiesInGaiaAuthFetcher","variable":"kDontIncludeSIDUnsecureCookiesInGaiaAuthFetcher","defaultStatus":false,"line":298,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"ui/events/blink/blink_features.cc","name":"DontSendKeyEventsToJavascript","variable":"kDontSendKeyEventsToJavascript","defaultStatus":false,"line":9},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"DownloadNotificationServiceUnifiedAPI","variable":"kDownloadNotificationServiceUnifiedAPI","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":46,"comment":"Whether download notification service uses new unified API based on offline item and native persistence of notification IDs."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"DownloadsCompactListView","variable":"kDownloadsCompactListView","defaultStatus":false,"line":41,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to offer a compact list view (small thumbnails + text metadata) for images and videos on the Android Downloads page, in place of the default large preview cards. See crbug.com/505631139."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"DragDropOnlySynthesizeHttpOrHttpsUrlsFromText","variable":"kDragDropOnlySynthesizeHttpOrHttpsUrlsFromText","defaultStatus":true,"line":234},{"type":"feature","file":"content/public/common/content_features.cc","name":"DrawCutoutEdgeToEdge","variable":"kDrawCutoutEdgeToEdge","defaultStatus":true,"line":398,"comment":"Enable drawing under System Bars within DisplayCutout."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DriveFs","variable":"kDriveFs","defaultStatus":true,"line":546,"comment":"If enabled, DriveFS will be used for Drive sync."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DriveFsBulkPinningExperiment","variable":"kDriveFsBulkPinningExperiment","defaultStatus":false,"line":552,"comment":"Carries DriveFS' bulk-pinning experimental parameters."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"DriveFsMirroring","variable":"kDriveFsMirroring","defaultStatus":false,"line":549,"comment":"Enables DriveFS' experimental local files mirroring functionality."},{"type":"feature","file":"ui/display/display_features.cc","name":"DrmColorSpaceDefaultIsRec709","variable":"kDrmColorSpaceDefaultIsRec709","defaultStatus":false,"line":42,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Feature to control if we assume that setting the DRM color space to Default will cause the color primaries to be interpreted as Rec709 (as opposed to the color primaries from the EDID)."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"DseIntegrity","variable":"kDseIntegrity","defaultStatus":true,"line":106,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"chrome/browser/preloading/search_preload/search_preload_features.cc","name":"DsePreload2","variable":"kDsePreload2","defaultStatus":false,"line":15,"comment":"DefaultSearchEngine Preload v2 - Base feature flag for DSE preload 2. - Disables `SearchPrefetch` (DSE v1). - Enables on-suggest preloads. https://crbug.com/394988793"},{"type":"feature","file":"chrome/browser/preloading/search_preload/search_preload_features.cc","name":"DsePreload2OnPress","variable":"kDsePreload2OnPress","defaultStatus":false,"line":44,"comment":"Enables on-press prefetch."},{"type":"feature","file":"chrome/browser/preloading/search_preload/search_preload_features.cc","name":"DsePreload2OnPressIncognito","variable":"kDsePreload2OnPressIncognito","defaultStatus":false,"line":53,"comment":"Enables on-press trigger in incognito mode. Corresponds to `SearchNavigationPrefetch.allow_incognito`. For more details, see https://docs.google.com/document/d/1f4dcNYP3O_Ft4yMmC42ETxGC5lM7YF5FDbEgnxUua7M/edit?tab=t.38v8gca76tmi"},{"type":"feature","file":"chrome/browser/preloading/search_preload/search_preload_features.cc","name":"DsePreload2OnSuggestNonDefaultMatch","variable":"kDsePreload2OnSuggestNonDefaultMatch","defaultStatus":false,"line":55,"comment":"Enables on-suggest prefetch for non default match. For more details, see https://docs.google.com/document/d/1f4dcNYP3O_Ft4yMmC42ETxGC5lM7YF5FDbEgnxUua7M/edit?tab=t.38v8gca76tmi"},{"type":"feature","file":"chrome/browser/enterprise/connectors/device_trust/device_trust_features.cc","name":"DTCKeyRotationEnabled","variable":"kDTCKeyRotationEnabled","defaultStatus":false,"line":9,"comment":"Controls whether the key rotation flow, triggered by a remote command, is enabled or not."},{"type":"feature","file":"chrome/browser/enterprise/connectors/device_trust/device_trust_features.cc","name":"DTCKeyUploadedBySharedAPIEnabled","variable":"kDTCKeyUploadedBySharedAPIEnabled","defaultStatus":true,"line":15,"comment":"Controls whether the public key is uploaded through a shared API for all DTC cases."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DXGISwapChainPresentInterval0","variable":"kDXGISwapChainPresentInterval0","defaultStatus":false,"line":456,"comment":"Force a present interval of 0. This asks Windows to cancel the remaining time on the previously presented frame instead of synchronizing with vblank(s). Frames may be discarded if they are presented more frequently than one per vblank."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"DXGIWaitableSwapChain","variable":"kDXGIWaitableSwapChain","defaultStatus":false,"line":446,"comment":"Use waitable swap chain on Windows to reduce display latency."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DynamicAimSubmit","variable":"kDynamicAimSubmit","defaultStatus":false,"line":179,"comment":"Whether the aim button should dynamically change to portray the submission type."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"DynamicMaxAutocomplete","variable":"kDynamicMaxAutocomplete","defaultStatus":false,"line":52,"comment":"Feature used to cap max suggestions to a dynamic limit based on how many URLs would be shown. E.g., show up to 10 suggestions if doing so would display no URLs; else show up to 8 suggestions if doing so would include 1 or more URLs."},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"DynamicProfileCountry","variable":"kDynamicProfileCountry","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!(BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID))","value":false}],"line":17,"comment":"Updates profile country preference stored in preferences dynamically when the current country does not match the stored value."},{"type":"feature","file":"ash/public/cpp/app_list/app_list_features.cc","name":"DynamicSearchUpdateAnimation","variable":"kDynamicSearchUpdateAnimation","defaultStatus":true,"line":18,"comment":"Enable shortened search result update animations when in progress animations are interrupted by search model updates."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EapGtcWifiAuthentication","variable":"kEapGtcWifiAuthentication","defaultStatus":false,"line":560,"comment":"Enables authenticating to Wi-Fi networks using EAP-GTC."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheShorterScanningDutyCycle","variable":"kEcheShorterScanningDutyCycle","defaultStatus":true,"line":1267},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWA","variable":"kEcheSWA","defaultStatus":true,"line":563,"comment":"Enables the System Web App (SWA) version of Eche."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWACheckAndroidNetworkInfo","variable":"kEcheSWACheckAndroidNetworkInfo","defaultStatus":true,"line":580,"comment":"Allows CrOS to analyze Android network information to provide more context on connection errors."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWADebugMode","variable":"kEcheSWADebugMode","defaultStatus":false,"line":566,"comment":"Enables the Debug Mode of Eche."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWADisableStunServer","variable":"kEcheSWADisableStunServer","defaultStatus":false,"line":576,"comment":"Allows disabling the stun servers when establishing a WebRTC connection to Eche."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWAMeasureLatency","variable":"kEcheSWAMeasureLatency","defaultStatus":false,"line":569,"comment":"Enables the E2E latecny measurement of Eche."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EcheSWASendStartSignaling","variable":"kEcheSWASendStartSignaling","defaultStatus":true,"line":572,"comment":"Enables sending start signaling to establish Eche's WebRTC connection."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"EGLDualGPURendering","variable":"kEGLDualGPURendering","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC)","value":true}],"line":286,"comment":"Allow dual GPU rendering through EGL where supported, i.e., allow a WebGL or WebGPU context to be on the high performance GPU if preferred and Chrome internal rendering to be on the low power GPU."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ElasticOverscroll","variable":"kElasticOverscroll","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":218,"buildflags":["!BUILDFLAG(IS_APPLE)"],"comment":"Cached in Java as well, make sure defaults are updated together."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ElementCaptureOfOtherTabs","variable":"kElementCaptureOfOtherTabs","defaultStatus":false,"line":1241,"buildflags":["BUILDFLAG(ENABLE_SCREEN_CAPTURE)"],"comment":"When a Web application is video-capturing a tab, it can use the Element Capture API to restrict the resulting video. - If `kElementCaptureOfOtherTabs` is disabled, the Web application can only restrict self-capture tracks. (That is, restrictping is only possible when the application is capturing its own tab.) - If `kElementCaptureOfOtherTabs` is enabled, the Web application can restrict video-captures of any tab (so long as that other tab collaborates by sending a RestrictionTarget)."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"EllipsoidalAltitude","variable":"kEllipsoidalAltitude","defaultStatus":true,"line":203,"buildflags":["BUILDFLAG(IS_APPLE) && BUILDFLAG(USE_BLINK)"],"comment":"Controls whether to use the ellipsoidal altitude from Core Location instead of the default altitude attribute."},{"type":"feature","file":"content/public/common/content_features.cc","name":"EmailVerificationProtocol","variable":"kEmailVerificationProtocol","defaultStatus":true,"line":429,"comment":"Enables the Email Verification Protocol (EVP). Note that actual exposure of the EVP API to web content is controlled by the flag in RuntimeEnabledFeatures on the blink side. See also the use of kSetOnlyIfOverridden in content/child/runtime_features.cc. We enable it here by default to support use in origin trials."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableAccountPreviewData","variable":"kEnableAccountPreviewData","defaultStatus":false,"line":304,"comment":"Enables fetching sync preview data from the server for accounts with refresh tokens."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableAccountPreviewEntityPreviews","variable":"kEnableAccountPreviewEntityPreviews","defaultStatus":false,"line":308,"comment":"Controls whether fetching entity preview data is enabled (via a specific api method). This flag has no effect if `kEnableAccountPreviewData` is not enabled."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableAccountPreviewPreferredAccount","variable":"kEnableAccountPreviewPreferredAccount","defaultStatus":false,"line":312,"comment":"Controls whether computing and storing the preferred account is enabled. This flag has no effect if `kEnableAccountPreviewData` is not enabled."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableACPrefetch","variable":"kEnableACPrefetch","defaultStatus":false,"line":109,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableActivitylessSigninAllEntryPoint","variable":"kEnableActivitylessSigninAllEntryPoint","defaultStatus":[{"condition":"BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)","value":true},{"condition":"!BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)","value":false}],"line":320,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether activityless sign-in should be used for all entry points. Extensions are not shipped on Android yet. The flow is newly implemented. We enable activityless signin by default on this new userless entrypoint to avoid implementing the legacy flow which will never be shipped."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableAdditionalTextMetrics","variable":"kEnableAdditionalTextMetrics","defaultStatus":true,"line":61,"comment":"A kill switch for additional metrics added to ComposeTextUsageLogger."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableAddSessionRedirect","variable":"kEnableAddSessionRedirect","defaultStatus":true,"line":330,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableAiSubscriptionAvatarRing","variable":"kEnableAiSubscriptionAvatarRing","defaultStatus":false,"line":334,"comment":"Enables the AI subscription level decorative ring around the user's avatar."},{"type":"feature","file":"ash/public/cpp/app_list/app_list_features.cc","name":"EnableAppListLaunchRecording","variable":"kEnableAppListLaunchRecording","defaultStatus":false,"line":13,"comment":"Enables hashed recording of a app list launches."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableArcAttestation","variable":"kEnableArcAttestation","defaultStatus":true,"line":89,"comment":"Controls whether attestation will be used on ARCVM."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableArcS2Idle","variable":"kEnableArcS2Idle","defaultStatus":false,"line":94,"comment":"Controls whether to enable support for s2idle in ARCVM."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableArcVmDataMigration","variable":"kEnableArcVmDataMigration","defaultStatus":false,"line":99,"comment":"Controls whether to enable ARCVM /data migration. It does not take effect when kEnableVirtioBlkForData is set, in which case virtio-blk is used for /data without going through the migration."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableArmHwdrm","variable":"kEnableArmHwdrm","defaultStatus":true,"line":1347,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)","BUILDFLAG(USE_CHROMEOS_PROTECTED_MEDIA)"],"comment":"Enable use of HW based L1 Widevine DRM via the cdm-oemcrypto daemon on ChromeOS. This flag is temporary while we finish development. Expiry: M133","todos":["TODO(b/364969273): Remove this flag later."]},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableArmHwdrm10bitOverlays","variable":"kEnableArmHwdrm10bitOverlays","defaultStatus":true,"line":1341,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)"],"comment":"Enable AR30 overlays for 10-bit ARM HWDRM content. If disabled, we will use ARGB8888 instead. Owner: greenjustin@google.com Expiry: When AR30 overlays are stable on devices that support them."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableASWebAuthenticationSession","variable":"kEnableASWebAuthenticationSession","defaultStatus":true,"line":338,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"EnableAsyncNotificationManagerForDownload","variable":"kEnableAsyncNotificationManagerForDownload","defaultStatus":false,"line":75,"comment":"Whether to enable async notification manager for downloads."},{"type":"feature","file":"chrome/browser/glic/suggestions/contextual_cueing_features.cc","name":"EnableAutoOpenGlicSidePanel","variable":"kEnableAutoOpenGlicSidePanel","defaultStatus":false,"line":22},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"EnableBandAClickiness","variable":"kEnableBandAClickiness","defaultStatus":false,"line":22,"comment":"Enable sending clickiness data in B&A requests."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"EnableBandAKAnonEnforcement","variable":"kEnableBandAKAnonEnforcement","defaultStatus":false,"line":27,"comment":"Enable parsing and using K-Anonymity features for B&A."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"EnableBandAPrivateAggregation","variable":"kEnableBandAPrivateAggregation","defaultStatus":true,"line":30,"comment":"Enable parsing private aggregation contributions from B&A response."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"EnableBandASampleDebugReports","variable":"kEnableBandASampleDebugReports","defaultStatus":true,"line":39,"comment":"Enable parsing forDebuggingOnly reports from B&A response. B&A sends these reports back to Chrome in its response for (1) device orchestrated multi seller auctions, (2) fDO down sampling. This flag name is confusing because it controls whether Chrome will parse fDO reports from B&A, not about whether enabling fDO sampling on B&A. But since this flag has been enabled by default and will be removed after one Chrome version, so not worth renaming it which may affect B&A's end to end test."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"EnableBandATriggeredUpdates","variable":"kEnableBandATriggeredUpdates","defaultStatus":true,"line":42,"comment":"Enable parsing triggered updates from B&A response."},{"type":"feature","file":"components/bookmarks/common/bookmark_features.cc","name":"EnableBookmarkCodecSHA256","variable":"kEnableBookmarkCodecSHA256","defaultStatus":false,"line":22,"comment":"This feature enables/disables using a SHA256 checksum alongside an md5 checksum. It is part of the MD5 deprecation efforts and is expected to be removed.","todos":["TODO(crbug.com/426243026): Complete MD5 -> SHA256 migration."]},{"type":"feature","file":"components/bookmarks/common/bookmark_features.cc","name":"EnableBookmarkNodeDataNewPickleFormat","variable":"kEnableBookmarkNodeDataNewPickleFormat","defaultStatus":false,"line":29,"comment":"This feature governs the data format employed by BookmarkNodeData::WriteToPickle. When set to enabled, it invokes Element::ToPickle to encode each Element as an integrated unit before writing it into the pickle. When set to false, it calls Element::WriteToPickle to write the fields into the pickle in sequential order."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableBoundSessionCredentials","variable":"kEnableBoundSessionCredentials","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":344,"buildflags":["BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)"],"comment":"Enable experimental binding session credentials to the device."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableBrightnessControlInSettings","variable":"kEnableBrightnessControlInSettings","defaultStatus":true,"line":583,"comment":"Enables settings to control internal display brightness and auto-brightness."},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnableCanvas2DLayers","variable":"kEnableCanvas2DLayers","defaultStatus":false,"line":401,"comment":"Enables canvas 2d methods BeginLayer and EndLayer."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableCastAudioOutputDevice","variable":"kEnableCastAudioOutputDevice","defaultStatus":false,"line":154,"comment":"Enables CastAudioOutputDevice for audio output on Android. When disabled, CastAudioManagerAndroid will be used."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableChromeAudioManagerAndroid","variable":"kEnableChromeAudioManagerAndroid","defaultStatus":false,"line":148,"comment":"Uses AudioManagerAndroid, instead of CastAudioManagerAndroid. This will disable lots of Cast features, so it should only be used for development and testing."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableChromeRefreshTokenBinding","variable":"kEnableChromeRefreshTokenBinding","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":368,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables Chrome refresh tokens binding to a device."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableChromeRefreshTokenBindingUpgrade","variable":"kEnableChromeRefreshTokenBindingUpgrade","defaultStatus":false,"line":388,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables opportunistically upgrading unbound refresh tokens and session cookies to be hardware-bound on supported device platforms. Requires kEnableChromeRefreshTokenBinding to be enabled as a prerequisite."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"EnableCollectAccessibilityHeuristicInCanvasUkm","variable":"kEnableCollectAccessibilityHeuristicInCanvasUkm","defaultStatus":false,"line":183,"comment":"Controls whether canvas accessibility heuristic results are collected via UKM."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableCompose","variable":"kEnableCompose","defaultStatus":true,"line":13,"comment":"Controls whether the Compose feature is available"},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeLanguageBypassForContextMenu","variable":"kEnableComposeLanguageBypassForContextMenu","defaultStatus":true,"line":40,"comment":"Controls whether the language check is bypassed for the context menu option."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeNudgeAtCursor","variable":"kEnableComposeNudgeAtCursor","defaultStatus":true,"line":36,"comment":"Controls whether or not the nudge displays at the cursor."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeOnDeviceDogfoodFooter","variable":"kEnableComposeOnDeviceDogfoodFooter","defaultStatus":false,"line":48,"comment":"Controls whether to enable the dogfood footer when on device evaluation is used."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeProactiveNudge","variable":"kEnableComposeProactiveNudge","defaultStatus":true,"line":29,"comment":"Controls whether or not the proactive nudge is enabled."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeSavedStateNotification","variable":"kEnableComposeSavedStateNotification","defaultStatus":true,"line":33,"comment":"Controls whether or not the saved state notification is shown."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeSavedStateNudge","variable":"kEnableComposeSavedStateNudge","defaultStatus":true,"line":25,"comment":"Controls whether or not the saved state nudge is enabled."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeSelectionNudge","variable":"kEnableComposeSelectionNudge","defaultStatus":false,"line":38,"comment":"Controls whether or not the nudge should be shown on text selection."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableComposeWebUIAnimations","variable":"kEnableComposeWebUIAnimations","defaultStatus":false,"line":44,"comment":"Controls whether or not the Compose WebUI dialog has animations."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableCookieBindingCookieUpgrade","variable":"kEnableCookieBindingCookieUpgrade","defaultStatus":false,"line":409,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"chrome/browser/enterprise/data_protection/data_protection_features.cc","name":"EnableDlpFileSystemApi","variable":"kEnableDlpFileSystemApi","defaultStatus":false,"line":17},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"EnableDrDc","variable":"kEnableDrDc","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"BUILDFLAG(IS_MAC)","value":false},{"condition":"!BUILDFLAG(IS_MAC)","value":false}],"line":255},{"type":"feature","file":"ui/display/display_features.cc","name":"EnableEdidBasedDisplayIds","variable":"kEnableEdidBasedDisplayIds","defaultStatus":false,"line":50,"todos":["TODO(gildekel): A temporary flag to control whether EDID-based (vs. port-based) display IDs are generated per display. Remove once the migration process it complete (b/193019614)."]},{"type":"feature","file":"components/enterprise/isolated_mode/isolated_mode_features.cc","name":"EnableEnterpriseIsolatedMode","variable":"kEnableEnterpriseIsolatedMode","defaultStatus":false,"line":9,"comment":"Enables Enterprise Isolated Mode."},{"type":"feature","file":"ash/public/cpp/app_list/app_list_features.cc","name":"EnableExactMatchForNonLatinLocale","variable":"kEnableExactMatchForNonLatinLocale","defaultStatus":true,"line":14,"comment":"Enables using exact string search for non latin locales."},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnableExclusiveAccessManager","variable":"kEnableExclusiveAccessManager","defaultStatus":true,"line":1501,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables Exclusive Access Manager on Android platform"},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnableExperimentalWebAssemblySharedEverything","variable":"kEnableExperimentalWebAssemblySharedEverything","defaultStatus":false,"line":1245,"comment":"Enables WebAssembly Shared-Everything Threads."},{"type":"feature","file":"chrome/browser/enterprise/platform_auth/platform_auth_features.cc","name":"EnableExtensibleEnterpriseSSO","variable":"kEnableExtensibleEnterpriseSSO","defaultStatus":true,"line":11},{"type":"feature","file":"extensions/common/extension_features.cc","name":"EnableExtensionsForCorpDesktopAndroid","variable":"kEnableExtensionsForCorpDesktopAndroid","defaultStatus":false,"line":104,"buildflags":["BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)"],"comment":"If enabled, extensions will be enabled for @google.com and @managedchrome.com users on desktop Android. Otherwise they will be blocked."},{"type":"feature","file":"ui/display/display_features.cc","name":"EnableExternalDisplayHDR10Mode","variable":"kEnableExternalDisplayHDR10Mode","defaultStatus":false,"line":32,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables using HDR10(PQ) mode if the monitor says it supports it."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableExternalKeyboardsInDiagnostics","variable":"kEnableExternalKeyboardsInDiagnostics","defaultStatus":false,"line":587,"comment":"Enables external keyboard testers in the diagnostics app."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableFakeCapabilityForTesting","variable":"kEnableFakeCapabilityForTesting","defaultStatus":false,"line":418,"buildflags":["!defined(NDEBUG) && !BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/browser/enterprise/data_protection/data_protection_features.cc","name":"EnableForceDownloadToCloud","variable":"kEnableForceDownloadToCloud","defaultStatus":true,"line":11},{"type":"feature","file":"chrome/browser/enterprise/data_protection/data_protection_features.cc","name":"EnableForceDownloadToOneDrive","variable":"kEnableForceDownloadToOneDrive","defaultStatus":true,"line":13},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableFriendlierErrorDialog","variable":"kEnableFriendlierErrorDialog","defaultStatus":true,"line":105,"comment":"Controls whether to enable friendlier error dialog (switching to notification for certain types of ARC error dialogs)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"EnableFullscreenToAnyScreenAndroid","variable":"kEnableFullscreenToAnyScreenAndroid","defaultStatus":false,"line":206,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables Fullscreen to Screen on Android platform"},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"EnableGamepadMultitouch","variable":"kEnableGamepadMultitouch","defaultStatus":false,"line":18,"comment":"Enables gamepad multitouch"},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"EnableGenericOidcAuthProfileManagement","variable":"kEnableGenericOidcAuthProfileManagement","defaultStatus":false,"line":23,"comment":"Controls whether the generic OIDC-response profile management is enabled."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"EnableGestureBeginEndTypes","variable":"kEnableGestureBeginEndTypes","defaultStatus":[{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false}],"line":432},{"type":"feature","file":"ui/display/display_features.cc","name":"EnableHardwareMirrorMode","variable":"kEnableHardwareMirrorMode","defaultStatus":false,"line":66,"comment":"A temporary flag to control hardware mirroring until it is decided whether to permanently remove hardware mirroring support. See crbug.com/1161556 for details."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableHighChannelLayouts","variable":"kEnableHighChannelLayouts","defaultStatus":false,"line":411,"comment":"Enables support for >8 audio channel layouts (i.e., 5.1.4 and 7.1.4)."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"EnableHistoryScoringSignalsAnnotatorForSearches","variable":"kEnableHistoryScoringSignalsAnnotatorForSearches","defaultStatus":false,"line":265,"comment":"If true, enables history scoring signal annotator for populating history scoring signals associated with Search suggestions. These signals will be empty for Search suggestions otherwise."},{"type":"feature","file":"ui/views/views_features.cc","name":"EnableInputProtection","variable":"kEnableInputProtection","defaultStatus":false,"line":38,"comment":"Enables input protection by blocking interaction with views that are currently or were recently obscured by always-on-top windows, and prevents unintended events on security-sensitive UI that appears and activates unexpectedly.\""},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"EnableManagementPromotionBanner","variable":"kEnableManagementPromotionBanner","defaultStatus":true,"line":329,"comment":"Feature for the promotion banner on the top of chrome://management page"},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"EnableMSAAOnNewIntelGPUs","variable":"kEnableMSAAOnNewIntelGPUs","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":200},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableMtlsTokenBinding","variable":"kEnableMtlsTokenBinding","defaultStatus":false,"line":426,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables mTLS token binding in the identity stack. This allows binding tokens to an mTLS certificate upon receiving the `mtl_token_binding` indicator in the Dice sigin header."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"EnableNearbyBleV2","variable":"kEnableNearbyBleV2","defaultStatus":true,"line":13,"comment":"Enables the use of BleV2. This flag is CrOS owned, and overrides the value of the flag \"kEnableBleV2\" owned by Nearby Connections."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"EnableNearbyBleV2ExtendedAdvertising","variable":"kEnableNearbyBleV2ExtendedAdvertising","defaultStatus":true,"line":18,"comment":"Enables the use of Extended Advertising from within the implementation of BLE V2, for incremental testing purposes. Assumes that the caller will also check if the hardware supports Extended Advertising."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"EnableNearbyBluetoothClassicScanning","variable":"kEnableNearbyBluetoothClassicScanning","defaultStatus":true,"line":23,"comment":"Enables the use of Bluetooth Classic advertising from within the implementation of Nearby Connections, for incremental testing purposes."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableNssDbClientCertsRollback","variable":"kEnableNssDbClientCertsRollback","defaultStatus":false,"line":619,"comment":"Enables rollback routine which will delete client keys and certificates from the software backed Chaps storage. Copies of keys and certificates will will continue to exist in NSS DB."},{"type":"feature","file":"components/user_education/common/user_education_features.cc","name":"EnableNtpBrowserPromos","variable":"kEnableNtpBrowserPromos","defaultStatus":true,"line":174,"comment":"Advertises browser features in New Tab Page promos."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"EnableNudgeForUnspecifiedHint","variable":"kEnableNudgeForUnspecifiedHint","defaultStatus":false,"line":57,"comment":"Default nudge allow/deny decision for unspecified hint."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableOAuthIpp","variable":"kEnableOAuthIpp","defaultStatus":false,"line":592,"comment":"Enables OAuth support when printing via the IPP protocol."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableOAuthMultiloginCookiesBinding","variable":"kEnableOAuthMultiloginCookiesBinding","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":434,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables binding the OAuthMultilogin cookies to a device with DBSC prototype. If `kEnableOAuthMultiloginStandardCookiesBinding` is enabled, DBSC standard takes precedence over DBSC prototype."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableOAuthMultiloginCookiesBindingServerExperiment","variable":"kEnableOAuthMultiloginCookiesBindingServerExperiment","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":450,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"When enabled, Chrome will send a specific URL parameter to Gaia to trigger the server-side experiment for binding the OAuthMultilogin cookies to cryptographic keys. NOTE: This flag is meant to be used in conjunction with the `kEnableOAuthMultiloginCookiesBinding` flag."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableOAuthMultiloginStandardCookiesBinding","variable":"kEnableOAuthMultiloginStandardCookiesBinding","defaultStatus":false,"line":468,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables binding the OAuthMultilogin cookies to a device with DBSC standard. It takes precedence over the `kEnableOAuthMultiloginCookiesBinding` flag."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableOAuthMultiloginStandardCookiesBindingForSecondaryPartitions","variable":"kEnableOAuthMultiloginStandardCookiesBindingForSecondaryPartitions","defaultStatus":false,"line":475,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables binding the OAuthMultilogin cookies to a device with DBSC standard for secondary partitions."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableOAuthMultiloginYoutubeCookiesBinding","variable":"kEnableOAuthMultiloginYoutubeCookiesBinding","defaultStatus":false,"line":480,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"printing/printing_features.cc","name":"EnableOopPrintDrivers","variable":"kEnableOopPrintDrivers","defaultStatus":[{"condition":"BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)","value":true},{"condition":"!(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC))","value":false}],"line":42,"buildflags":["BUILDFLAG(ENABLE_OOP_PRINTING)"],"comment":"Enables printing interactions with the operating system to be performed out-of-process."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"EnablePasswordManagerMojoApi","variable":"kEnablePasswordManagerMojoApi","defaultStatus":true,"line":101,"buildflags":["!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)"],"comment":"Enables the Mojo JavaScript API for the password manager, replacing the legacy passwordsPrivate extension API."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"EnablePasswordManagerMojoApiPhase2","variable":"kEnablePasswordManagerMojoApiPhase2","defaultStatus":true,"line":102,"buildflags":["!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)"],"comment":"Enables Phase 2 of the Mojo JavaScript API migration for the password manager, replacing the legacy passwordsPrivate extension API."},{"type":"feature","file":"services/tracing/public/cpp/tracing_features.cc","name":"EnablePerfettoSystemBackgroundTracing","variable":"kEnablePerfettoSystemBackgroundTracing","defaultStatus":false,"line":51},{"type":"feature","file":"services/tracing/public/cpp/tracing_features.cc","name":"EnablePerfettoSystemTracing","variable":"kEnablePerfettoSystemTracing","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)","value":true},{"condition":"!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA))","value":false}],"line":42,"comment":"This feature is enabled by default on WebView using `variations::FeatureOverrides` since we can't have #ifdef for WebView only."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnablePeripheralsLogging","variable":"kEnablePeripheralsLogging","defaultStatus":false,"line":2019,"comment":"Enables or disables peripherals logging."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnablePerVmCoreScheduling","variable":"kEnablePerVmCoreScheduling","defaultStatus":true,"line":122,"comment":"Controls whether crosvm for ARCVM does per-VM core scheduling on devices with MDS/L1TF vulnerabilities. When this feature is disabled, crosvm does per-vCPU core scheduling which is more secure. How to safely disable this feature for security (or other) reasons: 1) Visit go/stainless and verify arc.Boot.vm_with_per_vcpu_core_scheduling is green (it should always be because arc.Boot is a critical test.) 2) Change the default value of this feature to FEATURE_DISABLED_BY_DEFAULT. 3) Monitor arc.Boot.vm at go/stainless after Chrome is rolled. 4) Ask ARC team (//chromeos/ash/experiences/arc/OWNERS) to update arc.CPUSet.vm test so the Tast test uses the updated ArcEnablePerVmCoreScheduling setting."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"EnablePixelCanvasRecording","variable":"kEnablePixelCanvasRecording","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":457,"comment":"If enabled, all draw commands recorded on canvas are done in pixel aligned measurements. This also enables scaling of all elements in views and layers to be done via corner points. See https://crbug.com/720596 for details."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnablePreferencesAccountStorage","variable":"kEnablePreferencesAccountStorage","defaultStatus":true,"line":488},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"EnableProfileTokenManagement","variable":"kEnableProfileTokenManagement","defaultStatus":false,"line":13,"comment":"Controls whether token-based profile management is enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableProtectedVulkanDetiling","variable":"kEnableProtectedVulkanDetiling","defaultStatus":true,"line":1336,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)"],"comment":"Enable populating the |needs_detiling| field in |VideoFrameMetadata|. This in turn triggers Skia to use the |VulkanImageProcessor| for detiling protected content. Owner: greenjustin@google.com Expiry: When Vulkan detiling is thoroughly tested and verified to work."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableQuic","variable":"kEnableQuic","defaultStatus":false,"line":133,"comment":"Enables the use of QUIC in Cast-specific NetworkContexts. See chromecast/browser/cast_network_contexts.cc for usage."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableRFC8925","variable":"kEnableRFC8925","defaultStatus":true,"line":595,"comment":"Enables RFC8925 (prefer IPv6-only on an IPv6-only-capable network)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableRootNsDnsProxy","variable":"kEnableRootNsDnsProxy","defaultStatus":true,"line":598,"comment":"Enable the DNS proxy service running in root network namespace for ChromeOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableRtcpReporting","variable":"kEnableRtcpReporting","defaultStatus":true,"line":625,"comment":"Controls whether the Mirroring Service will fetch, analyze, and store information on the quality of the session using RTCP logs."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"EnableSavePackageForOffTheRecord","variable":"kEnableSavePackageForOffTheRecord","defaultStatus":true,"line":79,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to enable save package for off the record mode."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableSeamlessSignin","variable":"kEnableSeamlessSignin","defaultStatus":true,"line":492,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"EnableSearchAggregatorPolicy","variable":"kEnableSearchAggregatorPolicy","defaultStatus":false,"line":375,"comment":"Enterprise search aggregators features."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableSearchAIModeSigninPromo","variable":"kEnableSearchAIModeSigninPromo","defaultStatus":false,"line":517,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"extensions/common/extension_features.cc","name":"EnableShouldShowPromotion","variable":"kEnableShouldShowPromotion","defaultStatus":false,"line":227,"comment":"Enables the shouldShowPromotion API to determine which promotion to show for Chrome Enterprise on CWS."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"EnableSimulatedGamepadDataFetcher","variable":"kEnableSimulatedGamepadDataFetcher","defaultStatus":false,"line":21,"comment":"Enables gamepad simulation in GamepadService."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"EnableSiteSearchAllowUserOverridePolicy","variable":"kEnableSiteSearchAllowUserOverridePolicy","defaultStatus":false,"line":383,"comment":"Site search allow user override feature."},{"type":"feature","file":"components/spellcheck/common/spellcheck_features.cc","name":"EnableSpellcheckRegionalSignal","variable":"kEnableSpellcheckRegionalSignal","defaultStatus":false,"line":54,"buildflags":["BUILDFLAG(ENABLE_SPELLCHECK)"],"comment":"When enabled, the spellcheck service will use a regionalized endpoint based on the user's data region setting."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableStarboardAv1Checks","variable":"kEnableStarboardAv1Checks","defaultStatus":false,"line":169,"comment":"If true, AV1 support will be checked against starboard via SbMediaCanPlayMimeAndKeySystem. If this is false, this device will always return \"false\" when apps check for AV1 support."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableStarboardMimeChecks","variable":"kEnableStarboardMimeChecks","defaultStatus":false,"line":160,"comment":"If true, codec/profile/level support will be checked against starboard via SbMediaCanPlayMimeAndKeySystem."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"EnableStarboardRenderer","variable":"kEnableStarboardRenderer","defaultStatus":false,"line":174,"comment":"If true, StarboardRenderer will be used instead of CastRenderer."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnableTabMuting","variable":"kEnableTabMuting","defaultStatus":false,"line":414,"comment":"Enables user control over muting tab audio from the tab strip."},{"type":"feature","file":"chrome/browser/enterprise/data_protection/data_protection_features.cc","name":"EnableTabSharingProtection","variable":"kEnableTabSharingProtection","defaultStatus":false,"line":15},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableToggleCameraShortcut","variable":"kEnableToggleCameraShortcut","defaultStatus":true,"line":602,"comment":"Enable the shortcut to toggle whether the camera is enabled/disabled in Settings > Privacy controls."},{"type":"feature","file":"ui/views/views_features.cc","name":"EnableTouchDragCursorSync","variable":"kEnableTouchDragCursorSync","defaultStatus":true,"line":45,"comment":"If mouse cursor is over different window Windows will not start a Drag and drop. This feature moves the cursor to the location of a touch on press-down so that by the time a Drag and drop is started, the cursor will already be inside the window. This is a kill switch for this new logic, see crbug.com/370856871."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableTouchpadsInDiagnosticsApp","variable":"kEnableTouchpadsInDiagnosticsApp","defaultStatus":false,"line":610,"comment":"If enabled, touchpad cards will be shown in the diagnostics app's input section."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableTouchscreenCalibration","variable":"kEnableTouchscreenCalibration","defaultStatus":true,"line":614,"comment":"If enabled, touchscreen calibration will be shown in settings."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableTouchscreenMappingExperience","variable":"kEnableTouchscreenMappingExperience","defaultStatus":true,"line":605,"comment":"If enabled, touchscreen mapping experience is visible in settings."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"EnableTranslatePdf","variable":"kEnableTranslatePdf","defaultStatus":false,"line":9,"comment":"Controls whether PDF translation is enabled."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"EnableVariableRefreshRate","variable":"kEnableVariableRefreshRate","defaultStatus":false,"line":399},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"EnableVariableRefreshRateAlwaysOn","variable":"kEnableVariableRefreshRateAlwaysOn","defaultStatus":false,"line":417},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableVirtioBlkForData","variable":"kEnableVirtioBlkForData","defaultStatus":false,"line":128,"comment":"Controls whether to use virtio-blk for Android /data instead of using virtio-fs."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"EnableVirtioBlkMultipleWorkers","variable":"kEnableVirtioBlkMultipleWorkers","defaultStatus":false,"line":133,"comment":"Controls whether to enable the multiple-worker feature in virtio-blk disks"},{"type":"feature","file":"chrome/browser/enterprise/watermark/watermark_features.cc","name":"EnableWatermarkCustomization","variable":"kEnableWatermarkCustomization","defaultStatus":true,"line":9},{"type":"feature","file":"chrome/browser/enterprise/watermark/watermark_features.cc","name":"EnableWatermarkTestPage","variable":"kEnableWatermarkTestPage","defaultStatus":true,"line":11},{"type":"feature","file":"extensions/common/extension_features.cc","name":"EnableWebHidInWebView","variable":"kEnableWebHidInWebView","defaultStatus":true,"line":99,"comment":"If enabled, <webview>s will be allowed to request permission from an embedding Chrome App to request access to Human Interface Devices."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnableWebSigninLoadingDialog","variable":"kEnableWebSigninLoadingDialog","defaultStatus":false,"line":532,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableWifiQos","variable":"kEnableWifiQos","defaultStatus":true,"line":624,"comment":"Enables WiFi QoS to detect and prioritize selected egress network traffic using WiFi QoS/WMM in congested WiFi environments."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnableWifiQosEnterprise","variable":"kEnableWifiQosEnterprise","defaultStatus":false,"line":631,"comment":"Enables WiFi QoS to detect and prioritize selected egress network traffic using WiFi QoS/WMM in congested WiFi environments. For an Enterprise enrolled device: - If this flag is enabled, the feature will be controlled by EnableWifiQos; - If this flag is disabled, the feature will be disabled."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"EnableWindowsGameInputDataFetcher","variable":"kEnableWindowsGameInputDataFetcher","defaultStatus":false,"line":55,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"components/bookmarks/common/bookmark_features.cc","name":"EncryptBookmarks","variable":"kEncryptBookmarks","defaultStatus":false,"line":33,"comment":"Flag to enable bookmark encryption. If false, no encryption will be performed on bookmarks. If true, usage of encryption will be determined by kBookmarkEncryptionStageParam. Do not use this feature directly, instead use helper functions defined above."},{"type":"feature","file":"media/base/media_switches.cc","name":"EncryptedMediaOcclusionTracking","variable":"kEncryptedMediaOcclusionTracking","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true}],"line":396,"comment":"Enables tracking the occlusion of encrypted video elements."},{"type":"feature","file":"components/sessions/core/command_storage_features.cc","name":"EncryptSessionStorage","variable":"kEncryptSessionStorage","defaultStatus":false,"line":13,"comment":"Encrypt session storage on most platforms."},{"type":"feature","file":"components/search/ntp_features.cc","name":"EnergyEffect","variable":"kEnergyEffect","defaultStatus":false,"line":50,"comment":"If enabled, the EnergyEffect for Realbox will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"EnergyEffectAnimation","variable":"kEnergyEffectAnimation","defaultStatus":false,"line":53,"comment":"If enabled, the EnergyEffect animation for Realbox will be shown."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"EnergyEffectInOmnibox","variable":"kEnergyEffectInOmnibox","defaultStatus":false,"line":97,"comment":"Enables energy effect in the omnibox."},{"type":"feature","file":"chrome/browser/extensions/bookmarks/bookmarks_features.cc","name":"EnforceBookmarkVisibilityOnExtensionsAPI","variable":"kEnforceBookmarkVisibilityOnExtensionsAPI","defaultStatus":true,"line":14,"comment":"Whether bookmark visibility is strictly enforced (for read and write operations) on the extensions API."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnforceCanSignInToChromeCapability","variable":"kEnforceCanSignInToChromeCapability","defaultStatus":false,"line":536,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnforceDedicatedWorkerSameOriginCheck","variable":"kEnforceDedicatedWorkerSameOriginCheck","defaultStatus":true,"line":433,"comment":"Enforce same-origin check for dedicated worker script URLs. See https://crbug.com/496253755."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"EnforceManagementDisclaimer","variable":"kEnforceManagementDisclaimer","defaultStatus":true,"line":546,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"],"comment":"Enables the management disclaimer for managed signed profiles. All signed in profiles that never saw the management disclaimer will be shown the management disclaimer when they open Chrome. Every time the primary signed in account changes to a managed account, the management disclaimer will be shown. This is only for desktop platforms."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"EnforcePrivacySandboxAttestations","variable":"kEnforcePrivacySandboxAttestations","defaultStatus":true,"line":60},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnforceSharedWorkerSameOriginCheck","variable":"kEnforceSharedWorkerSameOriginCheck","defaultStatus":true,"line":438,"comment":"Enforce same-origin check for shared worker script URLs. See https://crbug.com/504073872."},{"type":"feature","file":"media/base/media_switches.cc","name":"EnforceSystemEchoCancellation","variable":"kEnforceSystemEchoCancellation","defaultStatus":false,"line":569,"buildflags":["(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN))"],"comment":"Enforces the use of system echo cancellation."},{"type":"feature","file":"content/public/common/content_features.cc","name":"EnsureExistingRendererAlive","variable":"kEnsureExistingRendererAlive","defaultStatus":false,"line":405,"comment":"Ensures the renderer is not dead when getting the process host for a site instance."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnterOverviewFromWallpaper","variable":"kEnterOverviewFromWallpaper","defaultStatus":false,"line":634,"comment":"Enables entering overview mode by clicking the wallpaper with the mouse."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"EnterpriseExtensionDOMActivityTelemetry","variable":"kEnterpriseExtensionDOMActivityTelemetry","defaultStatus":true,"line":212,"comment":"If enabled, high-risk extension DOM activity is collected and reported for enterprise auditing."},{"type":"feature","file":"components/enterprise/browser/groups/groups_features.cc","name":"EnterpriseGroupsExperiments","variable":"kEnterpriseGroupsExperiments","defaultStatus":false,"line":11,"comment":"Controls whether enterprise group IDs are copied to preferences."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"EnterpriseManagementDisclaimerUsesCustomLabel","variable":"kEnterpriseManagementDisclaimerUsesCustomLabel","defaultStatus":false,"line":310,"comment":"Enables showing the EnterpriseCustomLabel` instead of the cloud policy manager in the managed disclaimer \"Managed by...\" in the profile and app menus."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"EnterpriseProfileBadgingForMenu","variable":"kEnterpriseProfileBadgingForMenu","defaultStatus":true,"line":299,"comment":"Enables enterprise profile badging for managed profiles on the toolbar avatar and in the profile menu. On managed profiles, a building icon will be used as a badge in the profile menu.","todos":["TODO(crbug.com/460764864): Cleanup all the enterprise badging feature flags."]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"EnterpriseReleaseNotes","variable":"kEnterpriseReleaseNotes","defaultStatus":false,"line":313},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EnterpriseReportingUI","variable":"kEnterpriseReportingUI","defaultStatus":false,"line":637,"comment":"Enables access to the chrome://enterprise-reporting WebUI."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"EphemeralNetworkPolicies","variable":"kEphemeralNetworkPolicies","defaultStatus":false,"line":640,"comment":"Controls whether ephemeral network configuration policies are respected."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ESimEmptyActivationCodeSupported","variable":"kESimEmptyActivationCodeSupported","defaultStatus":false,"line":645,"comment":"Control whether the eSIM activation dialog supports submitting an empty code."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"EssentialSearch","variable":"kEssentialSearch","defaultStatus":true,"line":55,"comment":"Enables Essential Search in Omnibox for both launcher and browser."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ExactMatchFavicons","variable":"kExactMatchFavicons","defaultStatus":false,"line":344,"comment":"When the first suggestion is a url, the favicon is shown in the status view."},{"type":"feature","file":"media/capture/capture_switches.cc","name":"ExcludePipFromScreenCapture","variable":"kExcludePipFromScreenCapture","defaultStatus":false,"line":44},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ExoOrdinalMotion","variable":"kExoOrdinalMotion","defaultStatus":false,"line":649,"comment":"Enable or disable use of ordinal (unaccelerated) motion by Exo clients."},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"ExpandMediaFoundationEncodingResolutions","variable":"kExpandMediaFoundationEncodingResolutions","defaultStatus":true,"line":9},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ExperimentalAccessibilityDictationContextChecking","variable":"kExperimentalAccessibilityDictationContextChecking","defaultStatus":false,"line":247,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Allow context checking with the accessibility Dictation feature."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ExperimentalFlingAnimation","variable":"kExperimentalFlingAnimation","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX))","value":false}],"line":202,"comment":"Enables the use of a touch fling curve that is based on the behavior of native apps on Windows."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExperimentalOmniboxLabs","variable":"kExperimentalOmniboxLabs","defaultStatus":false,"line":180,"comment":"Controls whether omnibox extensions can use the new capability to intercept input without needing keyword mode."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ExperimentalRgbKeyboardPatterns","variable":"kExperimentalRgbKeyboardPatterns","defaultStatus":false,"line":652,"comment":"Allows RGB Keyboard to test new animations/patterns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ExtendedUpdatesOptInFeature","variable":"kExtendedUpdatesOptInFeature","defaultStatus":true,"line":656,"comment":"Enables extended updates opt-in functionality."},{"type":"feature","file":"media/base/media_switches.cc","name":"ExtendedVideoBitstreamValidation","variable":"kExtendedVideoBitstreamValidation","defaultStatus":true,"line":404,"comment":"Enables extended video bitstream validation for H.264 and H.265. Remove after M149, once we're sure that this doesn't break anyone."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ExtendIntentAnrTimeout","variable":"kExtendIntentAnrTimeout","defaultStatus":true,"line":138,"comment":"Controls whether to extend the broadcast of intent ANR timeout time."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ExtendServiceAnrTimeout","variable":"kExtendServiceAnrTimeout","defaultStatus":true,"line":143,"comment":"Controls whether to extend the executing service ANR timeout time."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionBrowserNamespaceOnWebPages","variable":"kExtensionBrowserNamespaceOnWebPages","defaultStatus":false,"line":218,"comment":"When enabled, the `browser` namespace is made available on web pages even if they are not externally connectable."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionContentVerificationUsesExtensionRoot","variable":"kExtensionContentVerificationUsesExtensionRoot","defaultStatus":true,"line":224,"comment":"If enabled, the ContentVerifier cache key will include the extension root path. This prevents collisions when an extension is updated or reloaded to a new directory while keeping the same version ID. This also controls content verifier behavior when starting new ContentVerifyJobs: it will ensure that only jobs matching the currently loaded extension's root directory are allowed to start. This helps avoid memory leaks from stale cache entries and false-positive corruption reports."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionDisableUnsupportedDeveloper","variable":"kExtensionDisableUnsupportedDeveloper","defaultStatus":true,"line":108,"comment":"If enabled, disables unpacked extensions if developer mode is off."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionIconVariants","variable":"kExtensionIconVariants","defaultStatus":false,"line":113,"comment":"A replacement key for declaring icons, in addition to supporting dark mode."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionLocalizationGuid","variable":"kExtensionLocalizationGuid","defaultStatus":true,"line":111,"comment":"Allow e.g. .css files to use default_locale messages in WAR files via GUID.","todos":["TODO(crbug.com/435609878): Remove after m142. It's for safe m141 back merge."]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ExtensionManifestV3NetworkSpeechSynthesis","variable":"kExtensionManifestV3NetworkSpeechSynthesis","defaultStatus":true,"line":132,"comment":"Extension manifest v3 migration for network speech synthesis."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionProtocolHandlers","variable":"kExtensionProtocolHandlers","defaultStatus":false,"line":136,"comment":"If enabled, allows an extension to specify protocol_handlers keys in the Manifest, registering a group of custom handlers so that the browser can handle navigation requests to URLs with unknown schemes. This feature provides similar behavior and capabilities than the one implemented by the 'registerProtocolHandler' Web API, defined in the Custom Handlers section of the HTML specification."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionsBackgroundCompilation","variable":"kExtensionsBackgroundCompilation","defaultStatus":false,"line":115,"comment":"If enabled, JS content scripts injected at document start will be compiled in a background thread."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ExtensionsCollapseMainMenu","variable":"kExtensionsCollapseMainMenu","defaultStatus":false,"line":116,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"],"comment":"Controls how extensions show up in the main menu. When enabled, if the current profile has no extensions, instead of a full extensions submenu, only the \"Discover Chrome Extensions\" item will be present."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionsMenuAccessControl","variable":"kExtensionsMenuAccessControl","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":140,"comment":"Enables enhanced site control for extensions and allowing the user to control site permissions."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionsMenuAccessControlWithPermittedSites","variable":"kExtensionsMenuAccessControlWithPermittedSites","defaultStatus":false,"line":148,"comment":"If enabled, user permitted sites are granted access. This should only happen if kExtensionsMenuAccessControl is enabled, since it's the only entry point where user could set permitted sites."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ExtensionsPinnedByDefault","variable":"kExtensionsPinnedByDefault","defaultStatus":false,"line":120,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"],"comment":"When enabled, newly installed extensions are pinned to the toolbar by default."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionsServiceWorkerStartRetry","variable":"kExtensionsServiceWorkerStartRetry","defaultStatus":true,"line":152,"comment":"Retries starting a service worker if it fails with a transient error."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionsToolbarZeroState","variable":"kExtensionsToolbarZeroState","defaultStatus":false,"line":155,"comment":"If enabled, guide users with zero extensions installed to explore the benefits of extensions. Displays an IPH anchored to the Extensions Toolbar Button, and replaces the extensions submenu with an alternative submenu to recommend extensions."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ExtensionTabContextMenu","variable":"kExtensionTabContextMenu","defaultStatus":true,"line":138,"comment":"Enables extension support for the \"tab\" context menu, allowing extensions to add custom items when right-clicking a tab."},{"type":"feature","file":"media/base/media_switches.cc","name":"ExternalClearKeyForTesting","variable":"kExternalClearKeyForTesting","defaultStatus":false,"line":930,"comment":"Enables support for External Clear Key (ECK) key system for testing on supported platforms. On platforms that do not support ECK, this feature has no effect."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"ExternalDisplayEventTelemetry","variable":"kExternalDisplayEventTelemetry","defaultStatus":true,"line":58,"comment":"Feature flag used to enable external display event telemetry."},{"type":"feature","file":"components/external_intents/android/external_intents_features.cc","name":"ExternalNavigationDebugLogs","variable":"kExternalNavigationDebugLogs","defaultStatus":false,"line":30},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ExternalStorageAccess","variable":"kExternalStorageAccess","defaultStatus":true,"line":149,"comment":"Controls whether to allow Android apps to access external storage devices like USB flash drives and SD cards."},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"ExtractRelatedSearchesFromPrefetchedZPSResponse","variable":"kExtractRelatedSearchesFromPrefetchedZPSResponse","defaultStatus":false,"line":115},{"type":"feature","file":"components/gwp_asan/client/gwp_asan_features.cc","name":"ExtremeLightweightUAFDetector","variable":"kExtremeLightweightUAFDetector","defaultStatus":false,"line":183},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"EyeDropper","variable":"kEyeDropper","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\)","value":false}],"line":297,"comment":"Used to enable the eye-dropper in the refresh color-picker."},{"type":"feature","file":"media/base/media_switches.cc","name":"FailUrlProvisionFetcherForTesting","variable":"kFailUrlProvisionFetcherForTesting","defaultStatus":false,"line":1017,"comment":"Prevents UrlProvisionFetcher from making a provisioning request. If specified, any provisioning request made will not be sent to the provisioning server, and the response will indicate a failure to communicate with the provisioning server."},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"FakeWalletApiResponses","variable":"kFakeWalletApiResponses","defaultStatus":false,"line":176,"comment":"Enables the fake Wallet HTTP client for testing."},{"type":"feature","file":"media/base/media_switches.cc","name":"FallbackAfterDecodeError","variable":"kFallbackAfterDecodeError","defaultStatus":true,"line":735,"comment":"Falls back to other decoders after audio/video decode error happens. The implementation may choose different strategies on when to fallback. See DecoderStream for details. When disabled, playback will fail immediately after a decode error happens. This can be useful in debugging and testing because the behavior is simpler and more predictable."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"FallbackNoPreviewForCrossDomainCredentials","variable":"kFallbackNoPreviewForCrossDomainCredentials","defaultStatus":true,"line":106,"comment":"Cross domain credential data is not previewed by the manual fallback suggestion popup."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"FallbackToSWIfGLES3NotSupported","variable":"kFallbackToSWIfGLES3NotSupported","defaultStatus":true,"line":117,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether the GPU process falls back to software if GLES3 is not supported."},{"type":"feature","file":"ui/display/display_features.cc","name":"FastDrmMasterDrop","variable":"kFastDrmMasterDrop","defaultStatus":false,"line":91},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPair","variable":"kFastPair","defaultStatus":true,"line":659,"comment":"Enables the Fast Pair feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairAdvertisingFormat2025","variable":"kFastPairAdvertisingFormat2025","defaultStatus":true,"line":662,"comment":"Enables the usage of the 2025 format for Fast Pair advertisements."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairBleRotation","variable":"kFastPairBleRotation","defaultStatus":true,"line":666,"comment":"Enables logic for handling BLE address rotations during retroactive pair scenarios."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairDebugMetadata","variable":"kFastPairDebugMetadata","defaultStatus":false,"line":670,"comment":"Sets mode to DEBUG when fetching metadata from the Nearby server, allowing debug devices to trigger Fast Pair notifications."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairKeyboards","variable":"kFastPairKeyboards","defaultStatus":true,"line":673,"comment":"Enables prototype support for Fast Pair for keyboards."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairPwaCompanion","variable":"kFastPairPwaCompanion","defaultStatus":true,"line":682,"comment":"Enables link to Progressive Web Application companion app to configure Pixel Buds after Fast Pair."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FastPairSavedDevices","variable":"kFastPairSavedDevices","defaultStatus":true,"line":712,"comment":"Enables the \"Saved Devices\" Fast Pair page in scenario in Bluetooth Settings."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"feature_name","variable":"feature_name","defaultStatus":[{"condition":"","value":false},{"condition":"","value":true}],"line":25,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagement16Desks","variable":"kFeatureManagement16Desks","defaultStatus":false,"line":716,"comment":"If enabled, allows the creation of up to 16 desks (default is 8). This flag is intended to be controlled by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementBorealis","variable":"kFeatureManagementBorealis","defaultStatus":false,"line":721,"comment":"Allows borealis on certain boards whose features are determined by FeatureManagement. This feature does not apply to all boards, and does not guarantee borealis will be available (due to additional hardware checks)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementConchGenAi","variable":"kFeatureManagementConchGenAi","defaultStatus":false,"line":727,"comment":"Restricts GenAi features in Conch to the intended target population, while the `kConchGenAi` flag controls the feature's rollout within said target population. This flag is only intended to be modified by the feature_management module."},{"type":"feature","file":"components/soda/soda_features.cc","name":"FeatureManagementCrosSodaConchLanguages","variable":"kFeatureManagementCrosSodaConchLanguages","defaultStatus":false,"line":11,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementDisableChromeCompose","variable":"kFeatureManagementDisableChromeCompose","defaultStatus":false,"line":133,"comment":"Whether to disable chrome compose."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementDriveFsBulkPinning","variable":"kFeatureManagementDriveFsBulkPinning","defaultStatus":false,"line":556,"comment":"Enables DriveFS' bulk pinning functionality. This flag is to be enabled by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementFeatureAwareDeviceDemoMode","variable":"kFeatureManagementFeatureAwareDeviceDemoMode","defaultStatus":false,"line":1731,"comment":"Enables custom Demo Mode behavior on feature-aware devices, as controlled by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementGameDashboardRecordGame","variable":"kFeatureManagementGameDashboardRecordGame","defaultStatus":false,"line":845,"comment":"Enables the Game Dashboard's Record Game feature. This flag is to be enabled by the feature management module."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementGeminiAppPreinstall","variable":"kFeatureManagementGeminiAppPreinstall","defaultStatus":false,"line":115,"comment":"Feature management flag used to gate preinstallation of the Gemini app. This flag is meant to be enabled by the feature management module."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementGlic","variable":"kFeatureManagementGlic","defaultStatus":false,"line":138,"comment":"Enables GLIC on ChromeOS. This flag is intended to be controlled by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementGrowthFramework","variable":"kFeatureManagementGrowthFramework","defaultStatus":false,"line":875,"comment":"Enables targeting for feature-aware devices, as controlled by the feature management module."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementHistoryEmbedding","variable":"kFeatureManagementHistoryEmbedding","defaultStatus":false,"line":120,"comment":"Controls enabling / disabling the history embedding feature from the feature management module."},{"type":"feature","file":"media/base/media_switches.cc","name":"FeatureManagementLiveTranslateCrOS","variable":"kFeatureManagementLiveTranslateCrOS","defaultStatus":false,"line":739,"comment":"FeatureManagement gate for Live Translate on ChromeOS devices. No impact outside of CrOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementLobster","variable":"kFeatureManagementLobster","defaultStatus":false,"line":1194,"comment":"Enables / Disables the lobster feature from the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementLocalImageSearch","variable":"kFeatureManagementLocalImageSearch","defaultStatus":false,"line":1148,"comment":"Segmentation flag for local image search."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementMahi","variable":"kFeatureManagementMahi","defaultStatus":false,"line":75,"comment":"Controls enabling / disabling the mahi feature from the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementOobeAiIntro","variable":"kFeatureManagementOobeAiIntro","defaultStatus":false,"line":1384,"comment":"Enables OOBE ai intro feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementOobeGeminiIntro","variable":"kFeatureManagementOobeGeminiIntro","defaultStatus":false,"line":1387,"comment":"Enables OOBE gemini intro feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementOobeSimon","variable":"kFeatureManagementOobeSimon","defaultStatus":false,"line":1391,"comment":"Enables boot animation feature."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementOrca","variable":"kFeatureManagementOrca","defaultStatus":false,"line":130,"comment":"Controls enabling / disabling the orca feature from the feature management module."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementPassageEmbedder","variable":"kFeatureManagementPassageEmbedder","defaultStatus":false,"line":125,"comment":"Controls enabling / disabling the passage embedder infrastructure from the feature management module."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FeatureManagementRoundedWindows","variable":"kFeatureManagementRoundedWindows","defaultStatus":false,"line":146,"comment":"Enables rounded windows. This flag is intended to be controlled by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementScanner","variable":"kFeatureManagementScanner","defaultStatus":false,"line":1624,"comment":"Enables / Disables the scanner feature from the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementSeaPen","variable":"kFeatureManagementSeaPen","defaultStatus":false,"line":1630,"comment":"Enables sea pen feature in the personalization app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementShowoff","variable":"kFeatureManagementShowoff","defaultStatus":false,"line":731,"comment":"Restricts some content in the Help app to the intended target population. This flag is only intended to be modified by the feature management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementTimeOfDayScreenSaver","variable":"kFeatureManagementTimeOfDayScreenSaver","defaultStatus":false,"line":737,"comment":"Restricts the time-of-day wallpaper/screensaver features to the intended target population, whereas the `kTimeOfDayScreenSaver|Wallpaper` flags control the feature's rollout within said target population. These flags are only intended to be modified by the feature_management module."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementTimeOfDayWallpaper","variable":"kFeatureManagementTimeOfDayWallpaper","defaultStatus":false,"line":739},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FeatureManagementVideoConference","variable":"kFeatureManagementVideoConference","defaultStatus":false,"line":1865,"comment":"Restricts the video conference feature to the intended target population,"},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCm","variable":"kFedCm","defaultStatus":true,"line":412,"comment":"Enables JavaScript API to intermediate federated identity requests. Note that actual exposure of the FedCM API to web content is controlled by the flag in RuntimeEnabledFeatures on the blink side. See also the use of kSetOnlyIfOverridden in content/child/runtime_features.cc. We enable it here by default to support use in origin trials."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmAmbientUI","variable":"kFedCmAmbientUI","defaultStatus":false,"line":419,"comment":"Enables the FedCM ambient UI."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmAutofill","variable":"kFedCmAutofill","defaultStatus":false,"line":416,"comment":"Enables RPs to enhance autofill with federated accounts fetched by the FedCM API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmDelegation","variable":"kFedCmDelegation","defaultStatus":false,"line":422,"comment":"Enables usage of the FedCM Delegation API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmEmbedderInitiatedLogin","variable":"kFedCmEmbedderInitiatedLogin","defaultStatus":false,"line":455,"comment":"Enables FedCM to support login request initiated by the embedder."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmErrorAttribute","variable":"kFedCmErrorAttribute","defaultStatus":true,"line":443,"comment":"Enables the spec-compliant 'error' attribute in IdentityCredentialError while deprecating the legacy 'code' attribute."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmIdPRegistration","variable":"kFedCmIdPRegistration","defaultStatus":false,"line":446,"comment":"Enables usage of the FedCM IdP Registration API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmLightweightMode","variable":"kFedCmLightweightMode","defaultStatus":false,"line":449,"comment":"Enables Lightweight FedCM Mode"},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmMetricsEndpoint","variable":"kFedCmMetricsEndpoint","defaultStatus":false,"line":452,"comment":"Enables usage of the FedCM API with metrics endpoint at the same time."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmNativeIdPs","variable":"kFedCmNativeIdPs","defaultStatus":false,"line":480,"comment":"Enables browser to connect FedCM requests to Native Identity Providers."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmNavigationInterception","variable":"kFedCmNavigationInterception","defaultStatus":false,"line":477,"comment":"Enables usage of the FedCM IdP-Initiation API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmNonceInParams","variable":"kFedCmNonceInParams","defaultStatus":false,"line":458,"comment":"Enables Nonce usage in Params"},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmWebIdentitySubdomain","variable":"kFedCmWebIdentitySubdomain","defaultStatus":false,"line":470,"comment":"Enables subdomain-first discovery for the FedCM well-known file. Fetches https://web-identity.well-known.<eTLD+1>/.well-known/web-identity first and falls back to the apex URL on failure (network error, malformed JSON, or provider_urls length > 1)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmWellKnownEndpointValidation","variable":"kFedCmWellKnownEndpointValidation","defaultStatus":false,"line":463,"comment":"Controls whether FedCM requires explicit endpoint declaration in well-known files when client_metadata is used. When enabled, accounts_endpoint and login_url must be present in .well-known/web-identity for privacy validation."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FedCmWithoutWellKnownEnforcement","variable":"kFedCmWithoutWellKnownEnforcement","defaultStatus":false,"line":473,"comment":"Enables bypassing the well-known file enforcement."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FederatedLauncherQueryAnalyticsVersion2Task","variable":"kFederatedLauncherQueryAnalyticsVersion2Task","defaultStatus":false,"line":747,"comment":"Enables scheduling of launcher query federated analytics version 2 tasks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FederatedService","variable":"kFederatedService","defaultStatus":true,"line":744,"comment":"Enables the federated service. If enabled, launches federated service when user first login."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FencedFramesEnforceFocus","variable":"kFencedFramesEnforceFocus","defaultStatus":false,"line":483,"comment":"Enables browser-side focus verification when crossing fenced boundaries."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FetchAccountInfoOnRestart","variable":"kFetchAccountInfoOnRestart","defaultStatus":false,"line":554},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"FetchChangePasswordUrlForPasswordChange","variable":"kFetchChangePasswordUrlForPasswordChange","defaultStatus":[{"condition":"!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)","value":true},{"condition":"BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)","value":false}],"line":109,"comment":"Fetches change password url if the credential has been identified as leaked. Later change password url is used during password change."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"FewerUpdateConfirmations","variable":"kFewerUpdateConfirmations","defaultStatus":true,"line":109,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"],"comment":"Enables the feature to remove the last confirmation dialog when relaunching to update Chrome."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"FieldClassificationModelCaching","variable":"kFieldClassificationModelCaching","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":977,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the field classification model uses runtime caching to not run models on the same inputs multiple times.","todos":["TODO(crbug.com/371933424). Clean up when launched, if not used for Autofill experiments."]},{"type":"feature","file":"media/base/media_switches.cc","name":"FileDialogsBlockPictureInPicture","variable":"kFileDialogsBlockPictureInPicture","defaultStatus":false,"line":744,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Blocks picture-in-picture windows while file dialogs are open."},{"type":"feature","file":"media/base/media_switches.cc","name":"FileDialogsTuckPictureInPicture","variable":"kFileDialogsTuckPictureInPicture","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)","value":true}],"line":748,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Tucks picture-in-picture windows while file dialogs are open."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FilesLocalImageSearch","variable":"kFilesLocalImageSearch","defaultStatus":false,"line":751,"comment":"Enables local image search by query in the Files app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FilesMaterializedViews","variable":"kFilesMaterializedViews","defaultStatus":false,"line":754,"comment":"Enables materialized views in Files App."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FilesSinglePartitionFormat","variable":"kFilesSinglePartitionFormat","defaultStatus":false,"line":757,"comment":"Enables partitioning of removable disks in file manager."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FilesTrashAutoCleanup","variable":"kFilesTrashAutoCleanup","defaultStatus":false,"line":760,"comment":"Enable background cleanup for old files in Trash."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FilesTrashDrive","variable":"kFilesTrashDrive","defaultStatus":false,"line":763,"comment":"Enable files app trash for Drive."},{"type":"feature","file":"chrome/browser/file_system_access/file_system_access_features.cc","name":"FileSystemAccessMoveWithOverwrite","variable":"kFileSystemAccessMoveWithOverwrite","defaultStatus":true,"line":14,"comment":"Enables revoking pre-existing permissions when moving a file to a path that already has permissions, which can happen the destination path was once granted permission for a different file that has since been removed."},{"type":"feature","file":"chrome/browser/file_system_access/file_system_access_features.cc","name":"FileSystemAccessPersistentPermissions","variable":"kFileSystemAccessPersistentPermissions","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":18,"comment":"Enables persistent permissions for the File System Access API."},{"type":"feature","file":"chrome/browser/file_system_access/file_system_access_features.cc","name":"FileSystemAccessSymbolicLinkCheck","variable":"kFileSystemAccessSymbolicLinkCheck","defaultStatus":true,"line":28,"comment":"Enables performing the blocklist check on a full absolute path, which resolves any symbolic link."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FileSystemProviderCloudFileSystem","variable":"kFileSystemProviderCloudFileSystem","defaultStatus":false,"line":252,"comment":"Enables CloudFileSystem for FileSystemProvider extensions."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"FileSystemProviderContentCache","variable":"kFileSystemProviderContentCache","defaultStatus":false,"line":256,"comment":"Enables a content cache in CloudFileSystem for FileSystemProvider extensions."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FileTransferEnterpriseConnector","variable":"kFileTransferEnterpriseConnector","defaultStatus":true,"line":2058},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FileTransferEnterpriseConnectorUI","variable":"kFileTransferEnterpriseConnectorUI","defaultStatus":true,"line":2061},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"FillOnAccountSelect","variable":"kFillOnAccountSelect","defaultStatus":false,"line":118,"comment":"Enables the experiment for the password manager to only fill on account selection, rather than autofilling on page load, with highlighting of fields."},{"type":"feature","file":"components/subresource_filter/core/browser/subresource_filter_features.cc","name":"FilterAdsOnAbusiveSites","variable":"kFilterAdsOnAbusiveSites","defaultStatus":true,"line":250,"comment":"Enables the blocking of ads on sites that are abusive."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"FindsGraduated","variable":"kFindsGraduated","defaultStatus":true,"line":42},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"FindsSettingsVisibility","variable":"kFindsSettingsVisibility","defaultStatus":false,"line":24},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FingerprintAuthFactor","variable":"kFingerprintAuthFactor","defaultStatus":false,"line":347,"comment":"Allows UserDataAuth client to use fingerprint auth factor."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopChoiceScreenRefresh","variable":"kFirstRunDesktopChoiceScreenRefresh","defaultStatus":false,"line":558,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopRefresh","variable":"kFirstRunDesktopRefresh","defaultStatus":false,"line":557,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopRefreshSurvey","variable":"kFirstRunDesktopRefreshSurvey","defaultStatus":false,"line":585,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopRevamp","variable":"kFirstRunDesktopRevamp","defaultStatus":false,"line":589,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopRevampNoFeatureShowcaseSurvey","variable":"kFirstRunDesktopRevampNoFeatureShowcaseSurvey","defaultStatus":false,"line":597,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FirstRunDesktopRevampSurvey","variable":"kFirstRunDesktopRevampSurvey","defaultStatus":false,"line":602,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"FixNarratorWebContentContainment","variable":"kFixNarratorWebContentContainment","defaultStatus":true,"line":200,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, modify the exposed UIA accessibility tree to match Narrator's expectations. This fixes a bug keeping Narrator's cursor contained within the web content."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FixStaticIpForTwoManagedEthPorts","variable":"kFixStaticIpForTwoManagedEthPorts","defaultStatus":true,"line":766,"comment":"Fix manual ip address persistence on managed device with 2 ethernet ports."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FjordOobe","variable":"kFjordOobe","defaultStatus":true,"line":770,"comment":"Controls if the Fjord variant of OOBE is shown for cuttlefish devices."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FjordOobeForceEnabled","variable":"kFjordOobeForceEnabled","defaultStatus":false,"line":777,"comment":"Force flag for the Fjord variant of OOBE. This is to make testing easier because the Fjord OOBE variant is buildflag dependent."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FjordOobeForSquid","variable":"kFjordOobeForSquid","defaultStatus":true,"line":773,"comment":"Controls if the Fjord variant of OOBE is shown for squid devices."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FjordOobeImageSwitch","variable":"kFjordOobeImageSwitch","defaultStatus":true,"line":780,"comment":"Controls if the Fjord image switch screen is shown during OOBE."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeAlwaysReuseBidderContext","variable":"kFledgeAlwaysReuseBidderContext","defaultStatus":false,"line":12,"comment":"Reuse a single V8 context to generate all bids in a bidder worklet."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeAlwaysReuseSellerContext","variable":"kFledgeAlwaysReuseSellerContext","defaultStatus":false,"line":15,"comment":"Reuse a single V8 context to score all ads in a seller worklet."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeAuctionDownloaderStaleWhileRevalidate","variable":"kFledgeAuctionDownloaderStaleWhileRevalidate","defaultStatus":true,"line":18},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeBidderUseBalancingThreadSelector","variable":"kFledgeBidderUseBalancingThreadSelector","defaultStatus":false,"line":71,"comment":"Instead of using a hash to assign group-by-origin IGs to threads, use a round robin on joining-origin while ensuring a maximum allowed imbalance is respected."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeBiddingAndAuctionNonceSupport","variable":"kFledgeBiddingAndAuctionNonceSupport","defaultStatus":false,"line":45,"comment":"Enable response authorization using the Ad-Auction-Result-Nonce header."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeCacheKAnonHashedKeys","variable":"kFledgeCacheKAnonHashedKeys","defaultStatus":true,"line":56,"comment":"Enables a cache of k-anon keys and whether or not each is k-anonymous, written when keys are received these from queries to the k-anonymity server, and used in subsequent key fetches to reduce unnecessary load on the k-anonymity server. This is similar to the refresh behavior managed by the KAnonymityServiceQueryInterval parameter, except that refresh loses keys when ads are removed and then added back to an interest group in joins and updates, whereas the k-anon key cache controlled by this feature retains keys until the TTL, provided the `kFledgeCacheKAnonHashedKeysTtl` parameter below."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeDoSampleDebugReportForTesting","variable":"kFledgeDoSampleDebugReportForTesting","defaultStatus":false,"line":73,"comment":"Force sampling of forDebuggingOnly reports, for testing purpose. This flag will always be disabled by default, and will only be enabled in some tests, or manually enabling it in command for manual testing such as B&A's end to end test of forDebuggingOnly sampling."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeEagerJSCompilation","variable":"kFledgeEagerJSCompilation","defaultStatus":false,"line":21},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeEnableUnNoisedRealTimeReport","variable":"kFledgeEnableUnNoisedRealTimeReport","defaultStatus":false,"line":77,"comment":"Enable un-noised real time reporting for certain user settings."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeEnableUserAgentOverrides","variable":"kFledgeEnableUserAgentOverrides","defaultStatus":true,"line":82,"comment":"Enable the user agent header in auction requests to be overridden."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeEnableWALForInterestGroupStorage","variable":"kFledgeEnableWALForInterestGroupStorage","defaultStatus":true,"line":85,"comment":"Enable write ahead logging for interest group storage."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeFacilitatedTestingSignalsHeaders","variable":"kFledgeFacilitatedTestingSignalsHeaders","defaultStatus":false,"line":88},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeModifyInterestGroupPolicyCheckOnOwner","variable":"kFledgeModifyInterestGroupPolicyCheckOnOwner","defaultStatus":false,"line":93,"comment":"Check if the owner of joinAdInterestGroup would be able to call joinAdInterestGroup in its own subframe with allow=join-ad-interest-group."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeNoWasmLazyCompilation","variable":"kFledgeNoWasmLazyCompilation","defaultStatus":false,"line":23},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeNumberBidderWorkletGroupByOriginContextsToKeep","variable":"kFledgeNumberBidderWorkletGroupByOriginContextsToKeep","defaultStatus":true,"line":25,"comment":"If kFledgeNumberBidderWorkletGroupByOriginContextsToKeep is enabled, kFledgeNumberBidderWorkletGroupByOriginContextsToKeepValue sets the number of previously-used group-by-origin contexts to keep in case they can be reused in a bidder worklet. Defaulted to 10."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeNumberSellerWorkletGroupByOriginContextsToKeep","variable":"kFledgeNumberSellerWorkletGroupByOriginContextsToKeep","defaultStatus":true,"line":34,"comment":"If kFledgeNumberSellerWorkletGroupByOriginContextsToKeep is enabled, kFledgeNumberSellerWorkletGroupByOriginContextsToKeepValue sets the number of previously-used group-by-origin contexts to keep in case they can be reused in a bidder worklet. Defaulted to 10."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeOnlyUseIpAddressSpaceInClientSecurityState","variable":"kFledgeOnlyUseIpAddressSpaceInClientSecurityState","defaultStatus":true,"line":99,"comment":"When enabled, Protected Audience fetches (scripts, signals, and updates) use ClientSecurityStates that only contain the IPAddressSpace of the frame running the auction, to prevent leaks."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgePrepareBidderContextsInAdvance","variable":"kFledgePrepareBidderContextsInAdvance","defaultStatus":false,"line":43,"comment":"Prepare bidder contexts, including running top level scripts, before we're ready to generate a worklet's first bid."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgePrepareSellerContextsInAdvance","variable":"kFledgePrepareSellerContextsInAdvance","defaultStatus":true,"line":79,"comment":"Prepare seller contexts, including running top level scripts, before we're ready to score a worklet's first ad."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeQueryKAnonymity","variable":"kFledgeQueryKAnonymity","defaultStatus":true,"line":108,"comment":"Turning on kFledgeQueryKAnonymity loads k-anonymity status at interest group join and update time. kFledgeQueryKAnonymity is enabled by default. It may be reasonable to disable kFledgeQueryKAnonymity on clients on which k-anonymity is not enforced (see related features kFledgeConsiderKAnonymity and kFledgeEnforceKAnonymity in third_party/blink/public/common/features.h), as k-anonymity status isn't used in those auctions."},{"type":"feature","file":"content/services/auction_worklet/public/cpp/auction_worklet_features.cc","name":"FledgeSellerSignalsRequestsOneAtATime","variable":"kFledgeSellerSignalsRequestsOneAtATime","defaultStatus":false,"line":87,"comment":"Send each trusted seller signals request right after it is queued, so that it does not get batched."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeSendDebugReportCooldownsToBandA","variable":"kFledgeSendDebugReportCooldownsToBandA","defaultStatus":false,"line":113,"comment":"Send forDebuggingOnly's per ad tech cooldown statuses to B&A server side in the request. Only lockout status is sent to B&A server side when this flag is disabled."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeStartAnticipatoryProcesses","variable":"kFledgeStartAnticipatoryProcesses","defaultStatus":false,"line":118,"comment":"Enables starting worklet processes at auction start time in anticipation of needing them for future worklets."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeStoreBandAKeysInDB","variable":"kFledgeStoreBandAKeysInDB","defaultStatus":true,"line":129,"comment":"Enable storing a retrieving B&A keys for the interest group database."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeUseKVv2SignalsCache","variable":"kFledgeUseKVv2SignalsCache","defaultStatus":true,"line":135,"comment":"Enables using a cache in the browser process for FLEDGE KVv2 fetches. The fetches are also initiated by and managed in the browser process. This feature also requires blink::features::kFledgeTrustedSignalsKVv2Support to also be enabled for KVv2 to be enabled."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeUseNonTransientNIKForSeller","variable":"kFledgeUseNonTransientNIKForSeller","defaultStatus":true,"line":138,"comment":"Enables a non-transient NIK for trusted selling signals."},{"type":"feature","file":"content/browser/interest_group/interest_group_features.cc","name":"FledgeUsePreconnectCache","variable":"kFledgeUsePreconnectCache","defaultStatus":false,"line":143,"comment":"Enables preconnecting to interest group owner origins and a bidding signals URL origin at the start of an auction."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FlexAutoEnrollment","variable":"kFlexAutoEnrollment","defaultStatus":false,"line":783,"comment":"Enables or disables the Flex Auto-Enrollment feature on ChromeOS"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FlexFirmwareUpdate","variable":"kFlexFirmwareUpdate","defaultStatus":true,"line":786,"comment":"Enables firmware updates from LVFS for ChromeOS Flex."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"FlexOrgManagementDisclosure","variable":"kFlexOrgManagementDisclosure","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false}],"line":83,"comment":"Enables showing the email of the flex org admin that setup CBCM in the management disclosures."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FloatingSso","variable":"kFloatingSso","defaultStatus":true,"line":792,"comment":"Controls Floating SSO feature which can move cookies between ChromeOS enterprise devices. The feature is also guarded by an enterprise policy. This flag controls if we are allowed to launch the service observing the policy and if we show the user selectable UI when the policy is enabled."},{"type":"feature","file":"device/bluetooth/floss/floss_features.cc","name":"FlossEnabled","variable":"kFlossEnabled","defaultStatus":false,"line":14,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables Floss client if supported by platform"},{"type":"feature","file":"content/public/common/content_features.cc","name":"FluidResize","variable":"kFluidResize","defaultStatus":true,"line":492,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"This is a kill switch for focusing the RenderWidgetHostViewAndroid on ActionDown on every touch sequence if not focused already, please see crbug.com/381820236. The root view, RWHVA, is always focused in Chrome, however this might not be true on WebView, see crbug.com/378779896 for more details. Enable AL device fluid resize."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"FlushPersistentSystemProfileOnWrite","variable":"kFlushPersistentSystemProfileOnWrite","defaultStatus":false,"line":17,"comment":"Determines whether to schedule a flush of persistent histogram memory immediately after writing a system profile to it."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"FocusFollowsCursor","variable":"kFocusFollowsCursor","defaultStatus":false,"line":232,"comment":"Enables focus follow follow cursor (sloppyfocus)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FocusRenderWidgetHostViewAndroidOnActionDown","variable":"kFocusRenderWidgetHostViewAndroidOnActionDown","defaultStatus":true,"line":493,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"FocusTriggersWebAndSRPZeroSuggest","variable":"kFocusTriggersWebAndSRPZeroSuggest","defaultStatus":false,"line":59,"comment":"Local history zero-prefix (aka zero-suggest) and prefix suggestions."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ForceAndroidRealbox","variable":"kForceAndroidRealbox","defaultStatus":false,"line":489,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Force the realbox on Android regardless of platform/configuration checks."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"ForceANGLEFeatures","variable":"kForceANGLEFeatures","defaultStatus":false,"line":82},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ForcedAppRelaunchOnPlaceholderUpdate","variable":"kForcedAppRelaunchOnPlaceholderUpdate","defaultStatus":true,"line":219,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ForcedColors","variable":"kForcedColors","defaultStatus":true,"line":286,"comment":"Used to enable forced colors mode for web content."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ForceDriveDisclaimerAccepted","variable":"kForceDriveDisclaimerAccepted","defaultStatus":false,"line":422,"comment":"Whether to force the Google Drive disclaimer to be accepted."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ForceEnableServerSideSpeechRecognition","variable":"kForceEnableServerSideSpeechRecognition","defaultStatus":false,"line":796,"comment":"If enabled, makes the Projector app use server side speech recognition instead of on-device speech recognition."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"ForceEnableWebGpuInterop","variable":"kForceEnableWebGpuInterop","defaultStatus":false,"line":253,"comment":"Force enable WebGPU interop when enabled. When disabled the webgpu interop mechanism will default to auto detection in 'GetWebGPUOnVulkanViaGLInterop' function."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ForceHistoryOptInScreen","variable":"kForceHistoryOptInScreen","defaultStatus":false,"line":606,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/browser_sync/browser_sync_switches.cc","name":"ForceMigrateNoopForDebugging","variable":"kForceMigrateNoopForDebugging","defaultStatus":false,"line":35,"comment":"No-op feature that's checked everywhere where kForceMigrateSyncingUserToSignedIn is checked."},{"type":"feature","file":"components/browser_sync/browser_sync_switches.cc","name":"ForceMigrateSyncingUserToSignedIn","variable":"kForceMigrateSyncingUserToSignedIn","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID)","value":true}],"line":28,"comment":"If enabled in addition to `kMigrateSyncingUserToSignedIn`, then all users with Sync-the-feature enabled are migrated, at browser startup, to the signed-in non-syncing state. I.e. this bypasses the \"eligibility\" requirements."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ForceOnDeviceAppControlsForAllRegions","variable":"kForceOnDeviceAppControlsForAllRegions","defaultStatus":false,"line":802,"comment":"Force enables on-device apps controls regardless of the device region. Used for development and testing only. Should remain disabled by default. See `kOnDeviceAppControls` description for the feature details."},{"type":"feature","file":"ash/public/cpp/app_list/app_list_features.cc","name":"ForceShowContinueSection","variable":"kForceShowContinueSection","defaultStatus":false,"line":17,"comment":"Forces the launcher to show the continue section even if there are no file suggestions."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ForceShowWebSigninLoadingDialog","variable":"kForceShowWebSigninLoadingDialog","defaultStatus":false,"line":608,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"ForceSoftwareForRtcLowResolutions","variable":"kForceSoftwareForRtcLowResolutions","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":760,"comment":"Forces software video encoders to be used for low resolutions. Enabled-by-default, except for Android where SW encoder for H26x and AV1 are (sometimes) not available.","todos":["TODO: crbug.com/40068556 - Enable for Android and remove this flag."]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ForceStartupSigninPromo","variable":"kForceStartupSigninPromo","defaultStatus":false,"line":614,"buildflags":["BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)"],"comment":"Features to trigger the startup sign-in promo at boot."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"ForceWebRequestProxyForTest","variable":"kForceWebRequestProxyForTest","defaultStatus":false,"line":157,"comment":"Forces requests to go through WebRequestProxyingURLLoaderFactory."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ForestFeature","variable":"kForestFeature","defaultStatus":true,"line":807,"comment":"Controls enabling/disabling the forest feature. For more info, see go/crosforest."},{"type":"feature","file":"ui/display/display_features.cc","name":"FormFactorControlsSubpixelRendering","variable":"kFormFactorControlsSubpixelRendering","defaultStatus":true,"line":98,"todos":["TODO(crbug.com/392021508): Remove the flag once the feature is launched."]},{"type":"feature","file":"content/public/common/content_features.cc","name":"ForwardMemoryPressureToBlinkIsolates","variable":"kForwardMemoryPressureToBlinkIsolates","defaultStatus":true,"line":500,"comment":"Whether a memory pressure signal in a renderer should be forwarded to Blink isolates. Forwarding the signal triggers a GC (critical) or starts incremental marking (moderate), see `v8::Heap::CheckMemoryPressure`."},{"type":"feature","file":"content/public/common/content_features.cc","name":"FractionalScrollOffsets","variable":"kFractionalScrollOffsets","defaultStatus":false,"line":512,"comment":"Enables scrollers inside Blink to store scroll offsets in fractional floating-point numbers rather than truncating to integers."},{"type":"feature","file":"media/base/media_switches.cc","name":"FuchsiaCdmStoragePathMigration","variable":"kFuchsiaCdmStoragePathMigration","defaultStatus":true,"line":1664,"buildflags":["BUILDFLAG(IS_FUCHSIA)"],"todos":["TODO(b:502631767): Remove this flag once the migration is done. Enables migration of CDM storage path to use SHA256."]},{"type":"feature","file":"media/base/media_switches.cc","name":"FuchsiaMediacodecVideoEncoder","variable":"kFuchsiaMediacodecVideoEncoder","defaultStatus":false,"line":1660,"buildflags":["BUILDFLAG(IS_FUCHSIA)"],"comment":"Enables use of Fuchsia's Mediacodec service for encoding."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FullscreenAlertBubble","variable":"kFullscreenAlertBubble","defaultStatus":false,"line":813,"comment":"When enabled, there will be an alert bubble showing up when the device returns from low brightness (e.g., sleep, closed cover) without a lock screen and the active window is in fullscreen.","todos":["TODO(crbug.com/40140761): Remove this after the feature is launched."]},{"type":"feature","file":"components/fullscreen_control/fullscreen_features.cc","name":"FullscreenBubbleShowOpaque","variable":"kFullscreenBubbleShowOpaque","defaultStatus":true,"line":9,"comment":"Enable to make the fullscreen bubble use an opaque background."},{"type":"feature","file":"components/fullscreen_control/fullscreen_features.cc","name":"FullscreenBubbleShowOrigin","variable":"kFullscreenBubbleShowOrigin","defaultStatus":true,"line":11,"comment":"Enable to show the origin domain when entering HTML fullscreen."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"FullscreenSignInPromoUseDate","variable":"kFullscreenSignInPromoUseDate","defaultStatus":false,"line":618,"buildflags":["BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"FullscreenVideoPictureInPicture","variable":"kFullscreenVideoPictureInPicture","defaultStatus":true,"line":1197,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables fullscreen video Picture-in-Picture on Android."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"FwupdDeveloperMode","variable":"kFwupdDeveloperMode","defaultStatus":false,"line":2028,"comment":"Enables fwupd developer mode, disabling all firmware authentication checks."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"GaiaAccountIdEnforcement","variable":"kGaiaAccountIdEnforcement","defaultStatus":false,"line":626},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GaiaRecordAccountCreation","variable":"kGaiaRecordAccountCreation","defaultStatus":true,"line":835,"comment":"Enables logging new Gaia account creation event."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GameDashboardUtilities","variable":"kGameDashboardUtilities","defaultStatus":false,"line":838,"comment":"Enables the Game Dashboard Main Menu utility views."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"GamepadRawInputChangeEvent","variable":"kGamepadRawInputChangeEvent","defaultStatus":true,"line":25,"comment":"Enables `OnGamepadRawInputChanged` for the `GamepadConsumer` interface."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GamepadVibration","variable":"kGamepadVibration","defaultStatus":false,"line":849,"comment":"Controls gamepad vibration in Exo."},{"type":"feature","file":"google_apis/gcm/base/gcm_features.cc","name":"GCMAvoidConnectionWhenNetworkUnavailable","variable":"kGCMAvoidConnectionWhenNetworkUnavailable","defaultStatus":true,"line":10,"comment":"When enabled, the connection to the server won't be initiated when offline."},{"type":"feature","file":"google_apis/gcm/base/gcm_features.cc","name":"GCMDoNotIncreaseBackoffDelayOnNetworkChange","variable":"kGCMDoNotIncreaseBackoffDelayOnNetworkChange","defaultStatus":true,"line":13,"comment":"When enabled, the first connection attempt won't contribute to backoff exponential delay. This will mitigate issues when there is no network connection yet but a lot of network changes."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"GeminiAppPreinstall","variable":"kGeminiAppPreinstall","defaultStatus":true,"line":61,"comment":"Feature flag used to gate preinstallation of the Gemini app."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"GeminiInChromeUsageReporting","variable":"kGeminiInChromeUsageReporting","defaultStatus":true,"line":13,"comment":"Controls whether Gemini in Chrome usage is reported in the SaaS usage report."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"GenericSensorExtraClasses","variable":"kGenericSensorExtraClasses","defaultStatus":false,"line":13,"comment":"The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GesturePropertiesDBusService","variable":"kGesturePropertiesDBusService","defaultStatus":false,"line":854,"comment":"Enable a D-Bus service for accessing gesture properties."},{"type":"feature","file":"google_apis/gaia/gaia_features.cc","name":"GetAccountCapabilitiesUsesGetAllVisibleUrl","variable":"kGetAccountCapabilitiesUsesGetAllVisibleUrl","defaultStatus":false,"line":15,"comment":"Switches account capabilities fetch to the \"getAllVisible\" URL that fetches all capabilities visible to Chrome instead of asking for a hardcoded list of capabilities that might be only partially available. Consult https://crbug.com/436151197 before enabling."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"GetAIPageContentGetImageBytesTimeoutEnabled","variable":"kGetAIPageContentGetImageBytesTimeoutEnabled","defaultStatus":true,"line":206,"comment":"Controls whether to enforce a timeout for GetImageBytes. If enabled, defaults to 10 seconds."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"GetAIPageContentMainFrameTimeoutEnabled","variable":"kGetAIPageContentMainFrameTimeoutEnabled","defaultStatus":true,"line":197,"comment":"Controls whether to enforce a timeout for main frame page content extraction. If enabled, defaults to 30 seconds. If disabled, wait indefinitely for the main frame to respond."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"GetAIPageContentSubframeTimeoutEnabled","variable":"kGetAIPageContentSubframeTimeoutEnabled","defaultStatus":true,"line":189,"comment":"Controls whether to enforce a timeout for subframe page content extraction. If enabled, defaults to 1 second. If disabled, wait indefinitely for all subframes to respond."},{"type":"feature","file":"media/base/media_switches.cc","name":"GetDisplayMediaConfersActivation","variable":"kGetDisplayMediaConfersActivation","defaultStatus":true,"line":975,"comment":"When getDisplayMedia() is invoked, the user sees and interacts with a Chromium prompt through which they choose which tab/window/screen to share. If this flag is enabled, then when the user chooses to share, transient activation is conferred on the capturing Web application.","todos":["TODO(crbug.com/420406085): Remove after January 2028. Keep this flag around at least until that date."]},{"type":"feature","file":"content/public/common/content_features.cc","name":"GinJavaBridgeMojoSkipClearObjectsOnMainDocumentReady","variable":"kGinJavaBridgeMojoSkipClearObjectsOnMainDocumentReady","defaultStatus":true,"line":1459,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Skips clearing objects on main document ready. Only has an impact when gin java bridge is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GlanceablesTimeManagementClassroomStudentView","variable":"kGlanceablesTimeManagementClassroomStudentView","defaultStatus":true,"line":823,"comment":"Enables Classroom Student Glanceable on time management surface."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GlanceablesTimeManagementTasksView","variable":"kGlanceablesTimeManagementTasksView","defaultStatus":true,"line":827,"comment":"Enables Tasks Glanceable on time management surface."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GlanceablesTimeManagementTasksViewAssignedTasks","variable":"kGlanceablesTimeManagementTasksViewAssignedTasks","defaultStatus":true,"line":831,"comment":"Enables fetching assigned (shared) tasks for Google Tasks integration."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"GlassFrame","variable":"kGlassFrame","defaultStatus":false,"line":510},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"Glic","variable":"kGlic","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS))","value":false}],"line":524,"comment":"Controls whether the Glic feature is enabled. IMPORTANT: this feature should never be expired! It is used as the main kill-switch for Glic and can be used in the future to handle unsupported Chrome versions."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActionAllowlist","variable":"kGlicActionAllowlist","defaultStatus":false,"line":15},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActionUseOptimizationGuide","variable":"kGlicActionUseOptimizationGuide","defaultStatus":true,"line":36},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActor","variable":"kGlicActor","defaultStatus":false,"line":225,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether the actor component of Glic is enabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActor","variable":"kGlicActor","defaultStatus":true,"line":227,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorApcComparison","variable":"kGlicActorApcComparison","defaultStatus":true,"line":230},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"GlicActorAutofill","variable":"kGlicActorAutofill","defaultStatus":false,"line":985,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorAutofillOneTimePassword","variable":"kGlicActorAutofillOneTimePassword","defaultStatus":false,"line":1027,"comment":"Whether to enable OneTimePassword filling in Glic.","todos":["TODO(b/500683394): Clean up after launch."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorAutofillPreClick","variable":"kGlicActorAutofillPreClick","defaultStatus":false,"line":1032,"comment":"Whether to click a field before filling it in Glic actor autofill. This feature is also gated by |autofill::features::kGlicActorAutofill|."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorAutofillSectionLabel","variable":"kGlicActorAutofillSectionLabel","defaultStatus":false,"line":1036,"comment":"Whether to enable the section label in Glic actor autofill. This feature is also gated by |autofill::features::kGlicActorAutofill|."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActorEnableScriptTools","variable":"kGlicActorEnableScriptTools","defaultStatus":true,"line":173},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorIncrementalTyping","variable":"kGlicActorIncrementalTyping","defaultStatus":true,"line":408,"comment":"Controls whether typing happens incrementally."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorInternalPopups","variable":"kGlicActorInternalPopups","defaultStatus":true,"line":485},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorIterativeInteractionPointDiscovery","variable":"kGlicActorIterativeInteractionPointDiscovery","defaultStatus":true,"line":489,"comment":"Controls whether the actor framework searches for an interaction point when when the center of the target element is obscured."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActorLoadAndExtractContentTool","variable":"kGlicActorLoadAndExtractContentTool","defaultStatus":false,"line":157},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorMoveBeforeClick","variable":"kGlicActorMoveBeforeClick","defaultStatus":true,"line":499,"comment":"Whether to trigger mouse move events with each click."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorObservationDelayExcludeAdFrameLoading","variable":"kGlicActorObservationDelayExcludeAdFrameLoading","defaultStatus":false,"line":404,"comment":"If enabled, observation for page load excludes load in ad frames."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorOccludedDirectActivation","variable":"kGlicActorOccludedDirectActivation","defaultStatus":true,"line":482,"comment":"Enables the explicit actor path that directly activates an observed DOM node when its interaction point is covered by an eligible modeless panel."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorPermissionsBypass","variable":"kGlicActorPermissionsBypass","defaultStatus":false,"line":470},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorPostTaskUiUpdateEnabled","variable":"kGlicActorPostTaskUiUpdateEnabled","defaultStatus":true,"line":302,"comment":"If enabled, post tasks in the window controller to fix re-entrancy crash."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorRejectInteractionDisallowedTargets","variable":"kGlicActorRejectInteractionDisallowedTargets","defaultStatus":false,"line":475,"comment":"Enables rejecting actor click and type targets when Blink reports a non-disabled, non-ARIA interaction-disallowed state. Disabled controls are always rejected."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActorSkipScreenshot","variable":"kGlicActorSkipScreenshot","defaultStatus":false,"line":149,"comment":"When enabled, the actor will skip uploading screenshots when an actor turn is completed."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorSplitValidateAndExecute","variable":"kGlicActorSplitValidateAndExecute","defaultStatus":true,"line":336,"comment":"If enabled, tool execution is split into separate Validate and Execute steps. The Validate step initializes the tool in the renderer and returns the target's coordinate point early, before the actual execution occurs."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActorTabObservationController","variable":"kGlicActorTabObservationController","defaultStatus":true,"line":189},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorToctouValidation","variable":"kGlicActorToctouValidation","defaultStatus":false,"line":478},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicActorTransientTasks","variable":"kGlicActorTransientTasks","defaultStatus":false,"line":167},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorUi","variable":"kGlicActorUi","defaultStatus":true,"line":278,"comment":"Controls whether the Actor UI components are enabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorUiMagicCursor","variable":"kGlicActorUiMagicCursor","defaultStatus":true,"line":319,"comment":"If enabled, the magic cursor is shown during actuation for mouse movements and clicks."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorUiTabIndicatorSpinnerIgnoreReducedMotion","variable":"kGlicActorUiTabIndicatorSpinnerIgnoreReducedMotion","defaultStatus":true,"line":283,"comment":"Controls whether we ignore users preference of reduced motion enabled and still show the tab indicator spinner. No-op if kGlicActorUiTabIndicator is disabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorUiTaskIconUiFixes","variable":"kGlicActorUiTaskIconUiFixes","defaultStatus":true,"line":291,"comment":"Controls whether UI bug fixes for the Task Icon are enabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicActorUiTaskListBubbleDelayShow","variable":"kGlicActorUiTaskListBubbleDelayShow","defaultStatus":true,"line":295,"comment":"If enabled, delays showing the Actor task list bubble to allow layout animations to settle."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicAppMenuNewBadge","variable":"kGlicAppMenuNewBadge","defaultStatus":true,"line":813},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicArchiveConversation","variable":"kGlicArchiveConversation","defaultStatus":false,"line":1023},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicAssetsV2","variable":"kGlicAssetsV2","defaultStatus":true,"line":919},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicBackgroundActuation","variable":"kGlicBackgroundActuation","defaultStatus":false,"line":532},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicBackgroundTriggering","variable":"kGlicBackgroundTriggering","defaultStatus":false,"line":248},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicBindPinnedUnboundTab","variable":"kGlicBindPinnedUnboundTab","defaultStatus":true,"line":869},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicBlockFileSystemAccessApiFilePicker","variable":"kGlicBlockFileSystemAccessApiFilePicker","defaultStatus":true,"line":45},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicBlockNavigationToDangerousContentTypes","variable":"kGlicBlockNavigationToDangerousContentTypes","defaultStatus":true,"line":43},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicButtonPressedState","variable":"kGlicButtonPressedState","defaultStatus":true,"line":975},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicCaaGuestError","variable":"kGlicCaaGuestError","defaultStatus":true,"line":942},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicCaptureRegion","variable":"kGlicCaptureRegion","defaultStatus":false,"line":819},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicClearDeviceBoundSessionsOnFirstSync","variable":"kGlicClearDeviceBoundSessionsOnFirstSync","defaultStatus":true,"line":591,"comment":"When this feature is enabled, device bound sessions in the Glic storage partition are cleared in addition to cookies. This prevents DBSC deferrals."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicClientResponsivenessCheck","variable":"kGlicClientResponsivenessCheck","defaultStatus":true,"line":779,"comment":"Enable/disable Glic web client responsiveness check feature."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicClientZoomControl","variable":"kGlicClientZoomControl","defaultStatus":true,"line":1044},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicConfirmTabClose","variable":"kGlicConfirmTabClose","defaultStatus":true,"line":279},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicContextualCueBubble","variable":"kGlicContextualCueBubble","defaultStatus":false,"line":1042},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicCountryFiltering","variable":"kGlicCountryFiltering","defaultStatus":true,"line":508,"comment":"Controls country and locale filtering for Glic. See chrome/browser/glic/public/glic_enabling.cc for more details."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicCrossOriginNavigationGating","variable":"kGlicCrossOriginNavigationGating","defaultStatus":true,"line":51},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicCSPConfig","variable":"kGlicCSPConfig","defaultStatus":true,"line":763},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDaisyChainNewTabs","variable":"kGlicDaisyChainNewTabs","defaultStatus":false,"line":953,"buildflags":["BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDaisyChainNewTabs","variable":"kGlicDaisyChainNewTabs","defaultStatus":true,"line":955,"buildflags":["!(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID))"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDebugWebview","variable":"kGlicDebugWebview","defaultStatus":false,"line":815},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDefaultContextPinOnBind","variable":"kGlicDefaultContextPinOnBind","defaultStatus":true,"line":865},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDefaultTabContextSetting","variable":"kGlicDefaultTabContextSetting","defaultStatus":true,"line":863},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicDeferActUntilUninterrupted","variable":"kGlicDeferActUntilUninterrupted","defaultStatus":true,"line":120,"comment":"Killswitch for b/465690937."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicDeferDownloadFilePickerToUserTakeover","variable":"kGlicDeferDownloadFilePickerToUserTakeover","defaultStatus":true,"line":48},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDevelopmentSyncGoogleCookies","variable":"kGlicDevelopmentSyncGoogleCookies","defaultStatus":false,"line":585,"comment":"Whether to sync @google.com account cookies. This is only for development and testing."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicDragAndDropFileUpload","variable":"kGlicDragAndDropFileUpload","defaultStatus":true,"line":809},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicEarlyAddTaskTabs","variable":"kGlicEarlyAddTaskTabs","defaultStatus":true,"line":114,"comment":"Kill switch for adding tabs to an ActorTask earlier during action handling."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"GlicEligibilitySeparateAccountCapability","variable":"kGlicEligibilitySeparateAccountCapability","defaultStatus":false,"line":629,"buildflags":["!BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicEnableCachedGetUserProfileInfo","variable":"kGlicEnableCachedGetUserProfileInfo","defaultStatus":false,"line":804},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"GlicEnableFor8GbDevices","variable":"kGlicEnableFor8GbDevices","defaultStatus":false,"line":142,"comment":"If true, it enabled GLIC on 8GB devices (or higher) bypassing the CBX device requirement."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggering","variable":"kGlicExperimentalTriggering","defaultStatus":false,"line":237},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggeringOpenWindowIfNone","variable":"kGlicExperimentalTriggeringOpenWindowIfNone","defaultStatus":false,"line":246},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggeringOptInBypass","variable":"kGlicExperimentalTriggeringOptInBypass","defaultStatus":false,"line":244},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggeringOptInTabFocus","variable":"kGlicExperimentalTriggeringOptInTabFocus","defaultStatus":true,"line":238},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggeringScreenshot","variable":"kGlicExperimentalTriggeringScreenshot","defaultStatus":false,"line":240},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExperimentalTriggeringSuppressDoneNotification","variable":"kGlicExperimentalTriggeringSuppressDoneNotification","defaultStatus":true,"line":242},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExplicitBackgroundColor","variable":"kGlicExplicitBackgroundColor","defaultStatus":true,"line":873,"comment":"When enabled, don't try to update the views background color based on the glic client background color."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicExtensions","variable":"kGlicExtensions","defaultStatus":true,"line":927},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicExternalProtocolActionResultCode","variable":"kGlicExternalProtocolActionResultCode","defaultStatus":true,"line":38},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicFaviconDataUrls","variable":"kGlicFaviconDataUrls","defaultStatus":false,"line":921},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicForceNonSkSLBorder","variable":"kGlicForceNonSkSLBorder","defaultStatus":false,"line":602,"comment":"Controls whether to use a simplified version of the border that does not use cc::PaintShader::MakeSkSLCommand."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicForceSimplifiedBorder","variable":"kGlicForceSimplifiedBorder","defaultStatus":false,"line":598,"comment":"Controls whether the simplified version of the border should be used."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicGeminiContinueURLRedirect","variable":"kGlicGeminiContinueURLRedirect","defaultStatus":true,"line":960},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicGeminiInstructions","variable":"kGlicGeminiInstructions","defaultStatus":false,"line":876},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicGetTabByIdApi","variable":"kGlicGetTabByIdApi","defaultStatus":true,"line":914,"comment":"Kill switch for getTabById API."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicGranularBlockingActionResultCodes","variable":"kGlicGranularBlockingActionResultCodes","defaultStatus":true,"line":40},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicGuestUrlPresets","variable":"kGlicGuestUrlPresets","defaultStatus":false,"line":1038},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicHandoffButtonHideWhenOmniboxPopupOpened","variable":"kGlicHandoffButtonHideWhenOmniboxPopupOpened","defaultStatus":true,"line":314,"comment":"If enabled, hide handoff button when omnibox popup is opened."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicHandoffButtonResetFocusAndHoverStatus","variable":"kGlicHandoffButtonResetFocusAndHoverStatus","defaultStatus":true,"line":310,"comment":"If enabled, reset handoff button focus and hover state on button close."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicHandoffButtonShowInImmersiveMode","variable":"kGlicHandoffButtonShowInImmersiveMode","defaultStatus":true,"line":306,"comment":"If enabled, shows handoff button in immersive mode."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicHeader","variable":"kGlicHeader","defaultStatus":true,"line":933,"comment":"When enabled, the X-Glic headers will be attached to requests as specified by the kGlicHeaderRequestTypes param."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicIgnoreDogfoodClient","variable":"kGlicIgnoreDogfoodClient","defaultStatus":false,"line":235},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicIgnoreOfflineState","variable":"kGlicIgnoreOfflineState","defaultStatus":true,"line":925,"comment":"Whether Glic should ignore the offline network status, and assume it is online."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicKeyboardShortcutNewBadge","variable":"kGlicKeyboardShortcutNewBadge","defaultStatus":true,"line":811},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicLearnMoreURLConfig","variable":"kGlicLearnMoreURLConfig","defaultStatus":true,"line":677,"todos":["TODO(b/414418994): remove features/parameters when URLs are finalized."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicLiveModeOnlyGlow","variable":"kGlicLiveModeOnlyGlow","defaultStatus":true,"line":958},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicLocaleFiltering","variable":"kGlicLocaleFiltering","defaultStatus":true,"line":511},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicMessageFirstFre","variable":"kGlicMessageFirstFre","defaultStatus":false,"line":518},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicMetricsSession","variable":"kGlicMetricsSession","defaultStatus":true,"line":994},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicMultiInstance","variable":"kGlicMultiInstance","defaultStatus":true,"line":551,"comment":"Controls whether the Glic feature uses multiple instances or not."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicMultitabUnderlines","variable":"kGlicMultitabUnderlines","defaultStatus":true,"line":929},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicNavigateToolUseOpaqueInitiator","variable":"kGlicNavigateToolUseOpaqueInitiator","defaultStatus":true,"line":101,"comment":"Whether to specify that an opaque origin should be set for the initiator in NavigateTool requests. Fix for http://crbug.com/436224875"},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicNavigateUsingLoadURL","variable":"kGlicNavigateUsingLoadURL","defaultStatus":true,"line":97,"comment":"Whether to use BrowserNavigator::Navigate in NavigateTool. Fix for b/460113906."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicNavigateWithoutUserGesture","variable":"kGlicNavigateWithoutUserGesture","defaultStatus":true,"line":107,"comment":"When the above NavigateWithBrowserNavigator is off, uses the legacy NavigateTool path but with user gesture disabled. Also a fix for b/460113906 but with different risk profile. No-op if above flag is on."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicOpenPasswordManagerSettingsPageApi","variable":"kGlicOpenPasswordManagerSettingsPageApi","defaultStatus":true,"line":916,"comment":"Kill switch for openPasswordManagerSettingsPage API."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicParameterizedShader","variable":"kGlicParameterizedShader","defaultStatus":true,"line":898},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicPerformActionsReturnsBeforeStateChange","variable":"kGlicPerformActionsReturnsBeforeStateChange","defaultStatus":false,"line":111,"comment":"Killswitch for updating the Glic Actor API to ensure that calls to performAction return first when a task is stopped or paused."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicPersonalContext","variable":"kGlicPersonalContext","defaultStatus":false,"line":875},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicPopupWindowsEnabled","variable":"kGlicPopupWindowsEnabled","defaultStatus":true,"line":878},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicPrintMenuItem","variable":"kGlicPrintMenuItem","defaultStatus":true,"line":1015},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicRecordActorJournal","variable":"kGlicRecordActorJournal","defaultStatus":true,"line":880},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicRecordMemoryFootprintMetrics","variable":"kGlicRecordMemoryFootprintMetrics","defaultStatus":true,"line":890},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicRegionSelectionLine","variable":"kGlicRegionSelectionLine","defaultStatus":false,"line":893},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicRollout","variable":"kGlicRollout","defaultStatus":true,"line":853},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicScrollTo","variable":"kGlicScrollTo","defaultStatus":true,"line":817},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicShareImage","variable":"kGlicShareImage","defaultStatus":false,"line":982},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicSkipAwaitVisualStateForNewTabs","variable":"kGlicSkipAwaitVisualStateForNewTabs","defaultStatus":true,"line":89,"comment":"Kill switch for skipping waiting for visual state update on new tabs."},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicSkipBeforeUnloadDialogAndNavigate","variable":"kGlicSkipBeforeUnloadDialogAndNavigate","defaultStatus":false,"line":116,"comment":"When enabled, `beforeunload` dialog will not be displayed and the callback indicating the dialog outcome will be called with `true`. Warning: Enabling this feature can lead to data loss when navigating."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicSupportLinks","variable":"kGlicSupportLinks","defaultStatus":true,"line":534},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicTabFocusDataDedupDebounce","variable":"kGlicTabFocusDataDedupDebounce","defaultStatus":true,"line":906},{"type":"feature","file":"components/actor/core/actor_features.cc","name":"GlicTabScreenshotPaintPreviewBackend","variable":"kGlicTabScreenshotPaintPreviewBackend","defaultStatus":false,"line":92,"comment":"Enables the Paint Preview backend for taking screenshots."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicTieredRollout","variable":"kGlicTieredRollout","defaultStatus":true,"line":851},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUnloadOnClose","variable":"kGlicUnloadOnClose","defaultStatus":false,"line":867},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicURLConfig","variable":"kGlicURLConfig","defaultStatus":true,"line":616},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUseMainPartitionForUnifiedFre","variable":"kGlicUseMainPartitionForUnifiedFre","defaultStatus":true,"line":515,"comment":"Controls the bugfix where the unified FRE synchronizes cookies to the wrong storage partition."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUserStatusCheck","variable":"kGlicUserStatusCheck","defaultStatus":true,"line":855},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUserStatusHandlesRefreshTokenLoss","variable":"kGlicUserStatusHandlesRefreshTokenLoss","defaultStatus":true,"line":860,"comment":"When enabled, if GlicUserStatusFetcher receives an error when checking for managed status, and the refresh token is missing, it will retry. This fixes a race condition on sign-in."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUseSessionCountryForFiltering","variable":"kGlicUseSessionCountryForFiltering","defaultStatus":true,"line":509},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUseShaderCache","variable":"kGlicUseShaderCache","defaultStatus":true,"line":807},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicUseToolbarHeightSidePanel","variable":"kGlicUseToolbarHeightSidePanel","defaultStatus":false,"line":973},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWarming","variable":"kGlicWarming","defaultStatus":false,"line":834},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWebActuationSetting","variable":"kGlicWebActuationSetting","defaultStatus":true,"line":984},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWebActuationSettingsToggle","variable":"kGlicWebActuationSettingsToggle","defaultStatus":false,"line":991,"comment":"If enabled, show web actuation settings toggle if kGlicWebActuationAllowedTiers is populated."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWebClientUnresponsiveMetrics","variable":"kGlicWebClientUnresponsiveMetrics","defaultStatus":true,"line":895},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWebContentsWarming","variable":"kGlicWebContentsWarming","defaultStatus":true,"line":555,"comment":"Glic WebContentsWarming is now always enabled. This feature is kept around for now to allow configuring params."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicWebContinuity","variable":"kGlicWebContinuity","defaultStatus":false,"line":961},{"type":"feature","file":"chrome/browser/glic/suggestions/contextual_cueing_features.cc","name":"GlicZeroStateSuggestions","variable":"kGlicZeroStateSuggestions","defaultStatus":false,"line":17},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GlicZOrderChanges","variable":"kGlicZOrderChanges","defaultStatus":false,"line":581,"comment":"Controls whether the Glic feature's z order changes based on the webclient mode."},{"type":"feature","file":"media/base/media_switches.cc","name":"GlobalMediaControlsAutoDismiss","variable":"kGlobalMediaControlsAutoDismiss","defaultStatus":true,"line":768,"comment":"Auto-dismiss global media controls."},{"type":"feature","file":"media/base/media_switches.cc","name":"GlobalMediaControlsSeamlessTransfer","variable":"kGlobalMediaControlsSeamlessTransfer","defaultStatus":false,"line":787,"comment":"Enable selection of audio output device in Global Media Controls."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"GlobalShortcutsPortalPreferredTrigger","variable":"kGlobalShortcutsPortalPreferredTrigger","defaultStatus":false,"line":148,"buildflags":["BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"GlobalVaapiLock","variable":"kGlobalVaapiLock","defaultStatus":false,"line":872,"comment":"Enable global VA-API lock. Disable this to use lock-free VA-API function calls for thread safe backends."},{"type":"feature","file":"components/one_time_tokens/core/common/one_time_token_features.cc","name":"GmailOtpRetrievalService","variable":"kGmailOtpRetrievalService","defaultStatus":false,"line":13,"comment":"If enabled, Autofill will retrieve one-time passwords from Gmail.","todos":["TODO(crbug.com/452607505): Clean up when launched."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GoogleChromeScheme","variable":"kGoogleChromeScheme","defaultStatus":false,"line":1048,"comment":"Enables the `google-chrome://` URI scheme."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GoogleOneOfferFilesBanner","variable":"kGoogleOneOfferFilesBanner","defaultStatus":false,"line":866,"comment":"Enables a Files banner about Google One offer. This flag is used by Gamgee nudge to conditionally disable the G1 file banner for CBX boards via finch."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"GoogleSearchAiModeWorkspace","variable":"kGoogleSearchAiModeWorkspace","defaultStatus":true,"line":1052,"comment":"Controls whether the Google Search AI Mode Workspace link (Connected Apps) is shown in AI Settings. Acts as a killswitch."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GoogleServicesConnectivityRoutine","variable":"kGoogleServicesConnectivityRoutine","defaultStatus":true,"line":870,"comment":"Enables the Google Services Connectivity diagnostic routine for testing connectivity to essential Google services."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GPUBlockListTestGroup","variable":"kGPUBlockListTestGroup","defaultStatus":false,"line":499,"comment":"This feature allows enabling specific entries in software_rendering_list.json, via experimentation. The entries must have test_group property and test_group feature parameter should be set in the experiment for the entries that need to be enabled."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GPUDriverBugListTestGroup","variable":"kGPUDriverBugListTestGroup","defaultStatus":false,"line":507,"comment":"This feature allows enabling specific entries in gpu_driver_bug_list.json, via experimentation. The entries must have test_group property and test_group feature parameter should be set in the experiment for the entries that need to be enabled."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GpuPersistentCache","variable":"kGpuPersistentCache","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":false}],"line":461,"comment":"Whether to use the GpuPersistentCache for caching GPU process shader blobs. Usage for Graphite is controlled independently with kSkiaGraphiteDawnUsePersistentCache."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GpuPersistentCacheMetadata","variable":"kGpuPersistentCacheMetadata","defaultStatus":false,"line":468},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GpuShaderDiskCache","variable":"kGpuShaderDiskCache","defaultStatus":true,"line":228,"comment":"When enabled, Chrome will use the shader disk cache. This feature provides a kill-switch for working around issues with the disk cache and assessing the performance value of the disk cache. The --disable-gpu-shader-disk-cache flag overrides this feature and forces the disk cache to be disabled."},{"type":"feature","file":"ui/gl/gl_features.cc","name":"GpuVsync","variable":"kGpuVsync","defaultStatus":false,"line":100,"buildflags":["BUILDFLAG(IS_APPLE)"]},{"type":"feature","file":"ui/gl/gl_features.cc","name":"GpuVsync","variable":"kGpuVsync","defaultStatus":true,"line":102,"buildflags":["!BUILDFLAG(IS_APPLE)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"Graduation","variable":"kGraduation","defaultStatus":true,"line":857,"comment":"Enables the Graduation app for EDU users if the Graduation policy allows it."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GraduationUseEmbeddedTransferEndpoint","variable":"kGraduationUseEmbeddedTransferEndpoint","defaultStatus":true,"line":861,"comment":"When enabled, the Graduation app will use a webview-specific endpoint to load the Takeout Transfer tool."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"GraphiteContextIsThreadSafe","variable":"kGraphiteContextIsThreadSafe","defaultStatus":false,"line":878,"comment":"Support thread safety for graphite::context by sharing the same graphite::context as well as its wrapper class GraphiteSharedContext between GpuMain and CompositorGpuThread. Note: When this feature is disabled, each thread creates its own graphite::context and the context wrapper."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"GroupingFrameworkForNonZPS","variable":"kGroupingFrameworkForNonZPS","defaultStatus":false,"line":39,"comment":"Features that affect the \"twiddle\" step of AutocompleteController, e.g., deduping or `SortAndCull()`."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsCrOSEvents","variable":"kGrowthCampaignsCrOSEvents","defaultStatus":true,"line":886,"comment":"Enables CrOS events recording with growth campaigns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsDemoModeSignIn","variable":"kGrowthCampaignsDemoModeSignIn","defaultStatus":true,"line":889,"comment":"Enables demo mode sign in with growth campaigns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment1","variable":"kGrowthCampaignsExperiment1","defaultStatus":true,"line":902,"comment":"List of predefined Growth Framework experiment flag that will be associated with a finch study to deliver finch param for each experiment group to create randomization group that match the experiment tag targeting in Growth campaigns. The group will be selected by `predefinedFeatureIndex` config in experimental campaigns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment10","variable":"kGrowthCampaignsExperiment10","defaultStatus":true,"line":911},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment11","variable":"kGrowthCampaignsExperiment11","defaultStatus":true,"line":912},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment12","variable":"kGrowthCampaignsExperiment12","defaultStatus":true,"line":913},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment13","variable":"kGrowthCampaignsExperiment13","defaultStatus":true,"line":914},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment14","variable":"kGrowthCampaignsExperiment14","defaultStatus":true,"line":915},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment15","variable":"kGrowthCampaignsExperiment15","defaultStatus":true,"line":916},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment16","variable":"kGrowthCampaignsExperiment16","defaultStatus":true,"line":917},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment17","variable":"kGrowthCampaignsExperiment17","defaultStatus":true,"line":918},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment18","variable":"kGrowthCampaignsExperiment18","defaultStatus":true,"line":919},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment19","variable":"kGrowthCampaignsExperiment19","defaultStatus":true,"line":920},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment2","variable":"kGrowthCampaignsExperiment2","defaultStatus":true,"line":903},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment20","variable":"kGrowthCampaignsExperiment20","defaultStatus":true,"line":921},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment3","variable":"kGrowthCampaignsExperiment3","defaultStatus":true,"line":904},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment4","variable":"kGrowthCampaignsExperiment4","defaultStatus":true,"line":905},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment5","variable":"kGrowthCampaignsExperiment5","defaultStatus":true,"line":906},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment6","variable":"kGrowthCampaignsExperiment6","defaultStatus":true,"line":907},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment7","variable":"kGrowthCampaignsExperiment7","defaultStatus":true,"line":908},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment8","variable":"kGrowthCampaignsExperiment8","defaultStatus":true,"line":909},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperiment9","variable":"kGrowthCampaignsExperiment9","defaultStatus":true,"line":910},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperimentFileAppGamgee","variable":"kGrowthCampaignsExperimentFileAppGamgee","defaultStatus":true,"line":931,"comment":"List of one-off Growth Framework experiment flag that will be associated with a finch study to deliver finch param for each experiment group to create randomization group that match the experiment tag targeting in Growth campaigns. The group will be selected by `oneOffExpFeatureIndex` config in experimental campaigns. Different from the predefined feature flag section above. These flags are used by study/groups that refer to multiple feature flags."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperimentG1Nudge","variable":"kGrowthCampaignsExperimentG1Nudge","defaultStatus":true,"line":933},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsExperimentTagTargeting","variable":"kGrowthCampaignsExperimentTagTargeting","defaultStatus":true,"line":893,"comment":"Controls whether growth campaigns experiment tag targeting is enabled. The flag also used by finch to tag the session with finch params."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsInConsumerSession","variable":"kGrowthCampaignsInConsumerSession","defaultStatus":true,"line":937,"comment":"Enables consumer session customizations with growth campaigns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsInDemoMode","variable":"kGrowthCampaignsInDemoMode","defaultStatus":true,"line":941,"comment":"Enables Demo Mode customizations with growth campaigns."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsNudgeParentToAppWindow","variable":"kGrowthCampaignsNudgeParentToAppWindow","defaultStatus":true,"line":882,"comment":"Enable set app window as nudge parent."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsObserveTriggeringWidgetChange","variable":"kGrowthCampaignsObserveTriggeringWidgetChange","defaultStatus":false,"line":977,"comment":"Controls whether the growth nudge's triggering and the nudge widget invisibility and inactivation event should be observed to conditionally cancel the nudge."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsShowNudgeInsideWindowBounds","variable":"kGrowthCampaignsShowNudgeInsideWindowBounds","defaultStatus":true,"line":944,"comment":"Show the nudge widget inside the window bounds and parent to the window."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsTriggerAtLoadComplete","variable":"kGrowthCampaignsTriggerAtLoadComplete","defaultStatus":true,"line":948,"comment":"Controls whether growth campaigns triggering when loading campaigns complete."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsTriggerByAppOpen","variable":"kGrowthCampaignsTriggerByAppOpen","defaultStatus":true,"line":954,"comment":"Controls whether growth campaigns triggering by app open event is enabled. This flag is used as a kill switch to disable the feature in the case that the feature introduces any unexpected behaviours."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsTriggerByBrowser","variable":"kGrowthCampaignsTriggerByBrowser","defaultStatus":true,"line":960,"comment":"Controls whether growth campaigns triggering by url navigation is enabled. This flag is used as a kill switch to disable the feature in the case that the feature introduces any unexpected behaviours."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsTriggerByEvent","variable":"kGrowthCampaignsTriggerByEvent","defaultStatus":true,"line":966,"comment":"Controls whether growth campaigns triggering by any event is enabled. This flag is used as a kill switch to disable the feature in the case that the feature introduces any unexpected behaviours."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthCampaignsTriggerByRecordEvent","variable":"kGrowthCampaignsTriggerByRecordEvent","defaultStatus":true,"line":971,"comment":"Controls whether growth campaigns triggering by recording an event. This flag is used as a kill switch to disable the feature in the case that the feature introduces any unexpected behaviours."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthFramework","variable":"kGrowthFramework","defaultStatus":true,"line":879,"comment":"Enables growth framework."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"GrowthInternals","variable":"kGrowthInternals","defaultStatus":false,"line":981,"comment":"Enables internals page of ChromeOS growth framework."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"GuestSwap","variable":"kGuestSwap","defaultStatus":false,"line":159,"comment":"Controls whether the guest swap is enabled. This is only for ARCVM."},{"type":"feature","file":"content/public/common/content_features.cc","name":"GuestViewMPArch","variable":"kGuestViewMPArch","defaultStatus":false,"line":522,"comment":"Whether GuestViews (see components/guest_view/README.md) are implemented using MPArch inner pages. See https://crbug.com/40202416"},{"type":"feature","file":"components/gwp_asan/client/gwp_asan_features.cc","name":"GwpAsanMalloc","variable":"kGwpAsanMalloc","defaultStatus":false,"line":20},{"type":"feature","file":"components/gwp_asan/client/gwp_asan_features.cc","name":"GwpAsanPartitionAlloc","variable":"kGwpAsanPartitionAlloc","defaultStatus":false,"line":21},{"type":"feature","file":"media/base/media_switches.cc","name":"H264IDRKeyframeRequiresParameterSets","variable":"kH264IDRKeyframeRequiresParameterSets","defaultStatus":false,"line":1133,"comment":"When enabled, H.264 keyframe detection becomes stricter for samples whose avc config does not provide SPS/PPS. In that case, an IDR alone is not sufficient, SPS+PPS must appear in-band to mark it as a keyframe."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"HandleIMESpanChangesOnUpdateComposition","variable":"kHandleIMESpanChangesOnUpdateComposition","defaultStatus":true,"line":470},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"HandleMdmErrorsForDasherAccounts","variable":"kHandleMdmErrorsForDasherAccounts","defaultStatus":false,"line":633},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingBorealisGames","variable":"kHappinessTrackingBorealisGames","defaultStatus":false,"line":2156,"comment":"Enables the Happiness Tracking System for Borealis games survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingGeneralCamera","variable":"kHappinessTrackingGeneralCamera","defaultStatus":false,"line":2144,"comment":"Enables the Happiness Tracking System for General Camera survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingGeneralCameraPrioritized","variable":"kHappinessTrackingGeneralCameraPrioritized","defaultStatus":false,"line":2148,"comment":"Enables the Happiness Tracking System for Prioritized General Camera survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingLauncherAppsFinding","variable":"kHappinessTrackingLauncherAppsFinding","defaultStatus":false,"line":2161,"comment":"Enables the Happiness Tracking System for ChromeOS Launcher survey. This survey is enabled to 25% of users."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingLauncherAppsNeeding","variable":"kHappinessTrackingLauncherAppsNeeding","defaultStatus":false,"line":2166,"comment":"Enables the Happiness Tracking System for ChromeOS Launcher survey. This survey is enabled to 75% of users."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingMediaAppPdf","variable":"kHappinessTrackingMediaAppPdf","defaultStatus":false,"line":2132,"comment":"Enables the Happiness Tracking System for Media App PDF survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingOffice","variable":"kHappinessTrackingOffice","defaultStatus":false,"line":2170,"comment":"Enables the Happiness Tracking System for the Office integration."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingOsSettingsSearch","variable":"kHappinessTrackingOsSettingsSearch","defaultStatus":false,"line":2152,"comment":"Enables the Happiness Tracking System for OS Settings Search survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingPersonalizationAvatar","variable":"kHappinessTrackingPersonalizationAvatar","defaultStatus":false,"line":2120,"comment":"Enables the Happiness Tracking System for Personalization Avatar survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingPersonalizationScreensaver","variable":"kHappinessTrackingPersonalizationScreensaver","defaultStatus":false,"line":2124,"comment":"Enables the Happiness Tracking System for Personalization Screensaver survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingPersonalizationWallpaper","variable":"kHappinessTrackingPersonalizationWallpaper","defaultStatus":false,"line":2128,"comment":"Enables the Happiness Tracking System for Personalization Wallpaper survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingPhotosExperience","variable":"kHappinessTrackingPhotosExperience","defaultStatus":false,"line":2140,"comment":"Enables the Happiness Tracking System for Photos Experience survey."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysConfiguration","variable":"kHappinessTrackingSurveysConfiguration","defaultStatus":true,"line":1073,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"HappinessTrackingSurveysForComposeAcceptance","variable":"kHappinessTrackingSurveysForComposeAcceptance","defaultStatus":false,"line":63,"comment":"Enables or disables the Happiness Tracking System for Compose acceptance."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"HappinessTrackingSurveysForComposeClose","variable":"kHappinessTrackingSurveysForComposeClose","defaultStatus":false,"line":66,"comment":"Enables or disables the Happiness Tracking System for Compose on close."},{"type":"feature","file":"components/compose/core/browser/compose_features.cc","name":"HappinessTrackingSurveysForComposeNudgeClose","variable":"kHappinessTrackingSurveysForComposeNudgeClose","defaultStatus":false,"line":69,"comment":"Enables or disables the Happiness Tracking System for nudge dismissal."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopDemo","variable":"kHappinessTrackingSurveysForDesktopDemo","defaultStatus":false,"line":1070,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System demo mode for Desktop Chrome."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSite","variable":"kHappinessTrackingSurveysForDesktopDevToolsIssuesCookiesSameSite","defaultStatus":false,"line":1091,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for same-site cookies issues in Chrome DevTools on Desktop."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopHistoryPageControl","variable":"kHappinessTrackingSurveysForDesktopHistoryPageControl","defaultStatus":false,"line":1122,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop History Page in the Control group."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopHistoryPageExperiment","variable":"kHappinessTrackingSurveysForDesktopHistoryPageExperiment","defaultStatus":false,"line":1113,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop History Page in the Experiment group."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopNextPanel","variable":"kHappinessTrackingSurveysForDesktopNextPanel","defaultStatus":false,"line":1157,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop Chrome Next Panel."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopNtpModules","variable":"kHappinessTrackingSurveysForDesktopNtpModules","defaultStatus":false,"line":1152,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop Chrome NTP Modules."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopPrivacyGuide","variable":"kHappinessTrackingSurveysForDesktopPrivacyGuide","defaultStatus":false,"line":1104,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop Privacy Guide."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopSEHijacking","variable":"kHappinessTrackingSurveysForDesktopSEHijacking","defaultStatus":false,"line":1186,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for SE Hijacking."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopSettings","variable":"kHappinessTrackingSurveysForDesktopSettings","defaultStatus":false,"line":1131,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop Chrome Settings."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopSettingsPrivacy","variable":"kHappinessTrackingSurveysForDesktopSettingsPrivacy","defaultStatus":false,"line":1140,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Desktop Chrome Privacy Settings."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForDesktopWhatsNew","variable":"kHappinessTrackingSurveysForDesktopWhatsNew","defaultStatus":true,"line":1178,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Chrome What's New."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForHistoryEmbeddings","variable":"kHappinessTrackingSurveysForHistoryEmbeddings","defaultStatus":false,"line":1161,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for History Embeddings."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForNtpPhotosOptOut","variable":"kHappinessTrackingSurveysForNtpPhotosOptOut","defaultStatus":false,"line":1169,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForSecurityPage","variable":"kHappinessTrackingSurveysForSecurityPage","defaultStatus":false,"line":1189,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Chrome security page."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HappinessTrackingSurveysForWallpaperSearch","variable":"kHappinessTrackingSurveysForWallpaperSearch","defaultStatus":false,"line":1174,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Wallpaper Search."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystem","variable":"kHappinessTrackingSystem","defaultStatus":false,"line":2065,"comment":"Enables or disables the Happiness Tracking System for the General survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemArcGames","variable":"kHappinessTrackingSystemArcGames","defaultStatus":false,"line":2099,"comment":"Enables or disables the Happiness Tracking System for ARC Games survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemAudio","variable":"kHappinessTrackingSystemAudio","defaultStatus":false,"line":2104,"comment":"Enables or disables the Happiness Tracking System for Audio survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemAudioOutputProc","variable":"kHappinessTrackingSystemAudioOutputProc","defaultStatus":false,"line":2110,"comment":"Enables or disables the Happiness Tracking System for Audio Output Processing."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemBatteryLife","variable":"kHappinessTrackingSystemBatteryLife","defaultStatus":false,"line":2074,"comment":"Enables or disables the Happiness Tracking System for the Battery life survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemBluetoothAudio","variable":"kHappinessTrackingSystemBluetoothAudio","defaultStatus":false,"line":2115,"comment":"Enables or disables the Happiness Tracking System for Bluetooth Audio survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemBluetoothRevamp","variable":"kHappinessTrackingSystemBluetoothRevamp","defaultStatus":false,"line":2069,"comment":"Enables or disables the Happiness Tracking System for Bluetooth revamp survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemCameraApp","variable":"kHappinessTrackingSystemCameraApp","defaultStatus":false,"line":2135,"comment":"Enables or disables the Happiness Tracking System for Camera App survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemEnt","variable":"kHappinessTrackingSystemEnt","defaultStatus":false,"line":2083,"comment":"Enables or disables the Happiness Tracking System for the Ent survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemOnboarding","variable":"kHappinessTrackingSystemOnboarding","defaultStatus":false,"line":2094,"comment":"Enables or disables the Happiness Tracking System for Onboarding Experience."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemPerformance","variable":"kHappinessTrackingSystemPerformance","defaultStatus":false,"line":2090,"comment":"Enables or disables the Happiness Tracking System for the Performance survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemPeripherals","variable":"kHappinessTrackingSystemPeripherals","defaultStatus":false,"line":2079,"comment":"Enables or disables the Happiness Tracking System for the Peripherals survey."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemSlowAndLaggyDeepDive","variable":"kHappinessTrackingSystemSlowAndLaggyDeepDive","defaultStatus":false,"line":2173,"comment":"Enables the Happiness Tracking System for the slow and laggy survery."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HappinessTrackingSystemStability","variable":"kHappinessTrackingSystemStability","defaultStatus":false,"line":2086,"comment":"Enables or disables the Happiness Tracking System for the Stability survey."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareMediaKeyHandling","variable":"kHardwareMediaKeyHandling","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)","value":true},{"condition":"BUILDFLAG(IS_LINUX) && BUILDFLAG(USE_MPRIS)","value":true},{"condition":"BUILDFLAG(IS_LINUX) && !BUILDFLAG(USE_MPRIS)","value":false},{"condition":"!BUILDFLAG(IS_LINUX)","value":false}],"line":1089,"comment":"Enables handling of hardware media keys for controlling media."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryption","variable":"kHardwareSecureDecryption","defaultStatus":true,"line":1026,"comment":"Enables hardware secure decryption if supported by hardware and CDM. NOTE: For Windows platform, hardware secure decryption is available via PlayReady SL3000.","todos":["TODO(xhwang): Currently this is only used for development of new features. Apply this to Android and ChromeOS as well where hardware secure decryption is already available."]},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryptionAv1","variable":"kHardwareSecureDecryptionAv1","defaultStatus":false,"line":1056,"comment":"Enables hardware secure AV1 decoding if supported by the hardware and the OS Content Decryption Module (CDM)."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryptionDolbyVisionWithHdrCheck","variable":"kHardwareSecureDecryptionDolbyVisionWithHdrCheck","defaultStatus":false,"line":1065,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION)"],"comment":"Enables hardware secure Dolby Vision decoding always with HDR display check if supported by the hardware and the OS Content Decryption Module (CDM)."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryptionFallback","variable":"kHardwareSecureDecryptionFallback","defaultStatus":true,"line":1032,"comment":"Allows automatically disabling hardware secure Content Decryption Module (CDM) after failures or crashes to fallback to software secure CDMs. If this feature is disabled, the fallback will never happen and users could be stuck in playback failures."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryptionRequireServerCert","variable":"kHardwareSecureDecryptionRequireServerCert","defaultStatus":false,"line":1077,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Requires that setServerCertificate() be called before generateRequest(). This feature only affects MediaFoundation OS CDMs."},{"type":"feature","file":"media/base/media_switches.cc","name":"HardwareSecureDecryptionVp9","variable":"kHardwareSecureDecryptionVp9","defaultStatus":false,"line":1060,"comment":"Enables hardware secure VP9 decoding if supported by the hardware and the OS Content Decryption Module (CDM)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HaTSDesktopDevToolsIssuesCOEP","variable":"kHaTSDesktopDevToolsIssuesCOEP","defaultStatus":false,"line":1082,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for COEP issues in Chrome DevTools on Desktop."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HaTSDesktopDevToolsIssuesCSP","variable":"kHaTSDesktopDevToolsIssuesCSP","defaultStatus":false,"line":1101,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for CSP issues in Chrome DevTools on Desktop."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HaTSDesktopDevToolsIssuesHeavyAd","variable":"kHaTSDesktopDevToolsIssuesHeavyAd","defaultStatus":false,"line":1096,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Heavy Ad issues in Chrome DevTools on Desktop."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HaTSDesktopDevToolsIssuesMixedContent","variable":"kHaTSDesktopDevToolsIssuesMixedContent","defaultStatus":false,"line":1086,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Happiness Tracking System for Mixed Content issues in Chrome DevTools on Desktop."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"HatsReadingModeSurvey","variable":"kHatsReadingModeSurvey","defaultStatus":false,"line":454,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable HaTS survey for Reading Mode."},{"type":"feature","file":"media/base/media_switches.cc","name":"HeadlessCaptionEarlyStart","variable":"kHeadlessCaptionEarlyStart","defaultStatus":false,"line":1759,"comment":"If enabled, Glic will start captioning as soon as a profile is loaded."},{"type":"feature","file":"media/base/media_switches.cc","name":"HeadlessLiveCaption","variable":"kHeadlessLiveCaption","defaultStatus":false,"line":1756,"comment":"Enable experimental headless captions."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HealthdInternalsTabs","variable":"kHealthdInternalsTabs","defaultStatus":true,"line":985,"comment":"Enables showing the menu tabs in chrome://healthd-internals for displaying information from `cros_healthd`."},{"type":"feature","file":"components/heavy_ad_intervention/heavy_ad_features.cc","name":"HeavyAdIntervention","variable":"kHeavyAdIntervention","defaultStatus":true,"line":16,"comment":"Enables or disables the intervention that unloads ad iframes with intensive resource usage."},{"type":"feature","file":"components/heavy_ad_intervention/heavy_ad_features.cc","name":"HeavyAdInterventionSendReportToEmbedder","variable":"kHeavyAdInterventionSendReportToEmbedder","defaultStatus":true,"line":20,"comment":"Enables or disables sending the heavy ad report to the root ad frame's embedder."},{"type":"feature","file":"components/heavy_ad_intervention/heavy_ad_features.cc","name":"HeavyAdInterventionWarning","variable":"kHeavyAdInterventionWarning","defaultStatus":true,"line":25,"comment":"Enables or disables reporting on the intervention that unloads ad iframes with intensive resource usage."},{"type":"feature","file":"components/heavy_ad_intervention/heavy_ad_features.cc","name":"HeavyAdPrivacyMitigations","variable":"kHeavyAdPrivacyMitigations","defaultStatus":true,"line":33,"comment":"Enables or disables the privacy mitigations for the heavy ad intervention. This throttles the amount of interventions that can occur on a given host in a time period. It also adds noise to the thresholds used. This is separate from the intervention feature so it does not interfere with field trial activation, as this blocklist is created for every user, and noise is decided prior to seeing a heavy ad."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HeliumArcvmKiosk","variable":"kHeliumArcvmKiosk","defaultStatus":false,"line":988,"comment":"Enables Kiosk session for the Helium android app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HeliumArcvmKioskDevMode","variable":"kHeliumArcvmKioskDevMode","defaultStatus":false,"line":992,"comment":"Enables additional features (e.g. manual launch) for ARCVM Kiosk debugging. Should stay disabled by default."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppAppDetailPage","variable":"kHelpAppAppDetailPage","defaultStatus":true,"line":995,"comment":"If enabled, the Help app will render the App Detail Page and entry point."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppAppsList","variable":"kHelpAppAppsList","defaultStatus":true,"line":998,"comment":"If enabled, the Help app will render the Apps List page and entry point."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppAutoTriggerInstallDialog","variable":"kHelpAppAutoTriggerInstallDialog","defaultStatus":true,"line":1002,"comment":"Enables the logic that auto triggers the install dialog during the web app install flow initiated from the Help App."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppHomePageAppArticles","variable":"kHelpAppHomePageAppArticles","defaultStatus":true,"line":1007,"comment":"If enabled, the home page of the Help App will show a section containing articles about apps."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppOnboardingRevamp","variable":"kHelpAppOnboardingRevamp","defaultStatus":true,"line":1010,"comment":"Enables a new onboarding experience in the Help App."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HelpAppOpensInsteadOfReleaseNotesNotification","variable":"kHelpAppOpensInsteadOfReleaseNotesNotification","defaultStatus":true,"line":1014,"comment":"Enables opening the Help App's What's New page immediately instead of showing a notification to open the help app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HiddenNetworkWarning","variable":"kHiddenNetworkWarning","defaultStatus":false,"line":1019,"comment":"Enables a warning about connecting to hidden WiFi networks. https://crbug.com/903908"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"HideAimEntrypointForUrlSuggestions","variable":"kHideAimEntrypointForUrlSuggestions","defaultStatus":false,"line":192,"comment":"Hides the AIM entrypoint in the Omnibox when the default suggestion is a URL. Only used on desktop platforms."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"HideAimEntrypointOnUserInput","variable":"kHideAimEntrypointOnUserInput","defaultStatus":false,"line":186,"comment":"Hides the AIM entrypoint in the Omnibox when user input is in progress. Only used on desktop platforms."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"HideContextualGroupHeaders","variable":"kHideContextualGroupHeaders","defaultStatus":false,"line":69,"comment":"If enabled, contextual suggestion group headers in the Omnibox popup will be hidden (e.g. in order to minimize visual clutter in the zero-prefix state)."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"HideCursorWhileTyping","variable":"kHideCursorWhileTyping","defaultStatus":true,"line":77,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HideShelfControlsInTabletMode","variable":"kHideShelfControlsInTabletMode","defaultStatus":true,"line":1025,"comment":"When enabled, shelf navigation controls and the overview tray item will be removed from the shelf in tablet mode (unless otherwise specified by user preferences, or policy). This feature also enables \"contextual nudges\" for gesture education."},{"type":"feature","file":"chrome/browser/ui/cocoa/status_icons/status_icons_features.cc","name":"HideStatusIconMacInFullscreen","variable":"kHideStatusIconMacInFullscreen","defaultStatus":true,"line":9,"comment":"Workaround for macOS 26.x-only bug where displaying a visible status bar icon during fullscreen can cause a frozen window to remain on screen after exiting fullscreen. When enabled, hides all Chrome status tray icons while the browser window is in fullscreen."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"HideSuggestionGroupHeaders","variable":"kHideSuggestionGroupHeaders","defaultStatus":false,"line":73,"comment":"If enabled, suggestion group headers in the Omnibox popup will be hidden (e.g. in order to minimize visual clutter in the zero-prefix state)."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"HidGetFeatureReportFix","variable":"kHidGetFeatureReportFix","defaultStatus":true,"line":81,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables a fix for a HID issue where feature reports read from devices that do not use report IDs would incorrectly include an extra zero byte at the start of the report and truncate the last byte of the report."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"HidReportRequestExactLength","variable":"kHidReportRequestExactLength","defaultStatus":true,"line":197,"buildflags":["BUILDFLAG(IS_MAC)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"HindiInscriptLayout","variable":"kHindiInscriptLayout","defaultStatus":false,"line":1028,"comment":"If enabled, add Hindi Inscript keyboard layout."},{"type":"feature","file":"components/history_embeddings/core/history_embeddings_features.cc","name":"HistoryEmbeddings","variable":"kHistoryEmbeddings","defaultStatus":false,"line":26,"comment":"Please use `IsHistoryEmbeddingsFeatureEnabled()` instead of using any of these features directly. See chrome/browser/history_embeddings/history_embeddings_utils.h"},{"type":"feature","file":"components/history_embeddings/core/history_embeddings_features.cc","name":"HistoryEmbeddingsAnswers","variable":"kHistoryEmbeddingsAnswers","defaultStatus":false,"line":35,"comment":"This feature specifies whether to answer queries using an answerer; it can be considered a toggle for v2 answering functionality. Parameters are all kept under the primary kHistoryEmbeddings feature. The kHistoryEmbeddingsAnswers feature state is not applicable if kHistoryEmbeddings is disabled. Note: This feature has no parameters. Since it entirely depends on the above kHistoryEmbeddings feature, all parameters are owned by that feature to avoid confusion about which feature owns which parameters."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"HistorySearchSettingsVisibility","variable":"kHistorySearchSettingsVisibility","defaultStatus":true,"line":22},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstBalancedMode","variable":"kHttpsFirstBalancedMode","defaultStatus":true,"line":1207,"comment":"Enables HTTPS-First Mode in a balanced configuration that doesn't warn on HTTP when HTTPS can't be reasonably expected."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstBalancedModeAutoEnable","variable":"kHttpsFirstBalancedModeAutoEnable","defaultStatus":false,"line":1211,"comment":"Automatically enables HTTPS-First Mode in a balanced configuration when possible."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstModeDefaultSettingPairsWithEsb","variable":"kHttpsFirstModeDefaultSettingPairsWithEsb","defaultStatus":false,"line":1219},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstModeForAdvancedProtectionUsers","variable":"kHttpsFirstModeForAdvancedProtectionUsers","defaultStatus":true,"line":1215,"comment":"Kill switch for crbug.com/40892208."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstModeIncognito","variable":"kHttpsFirstModeIncognito","defaultStatus":true,"line":1248,"comment":"Enables HTTPS-First Mode by default in Incognito Mode."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstModeV2ForEngagedSites","variable":"kHttpsFirstModeV2ForEngagedSites","defaultStatus":true,"line":1224,"comment":"Enables HTTPS-First Mode for engaged sites. No-op if HttpsFirstModeV2 or HTTPS-Upgrades is disabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsFirstModeV2ForTypicallySecureUsers","variable":"kHttpsFirstModeV2ForTypicallySecureUsers","defaultStatus":false,"line":1229,"comment":"Enables HTTPS-First Mode for typically secure users. No-op if HttpsFirstModeV2 or HTTPS-Upgrades is disabled."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsUpgrades","variable":"kHttpsUpgrades","defaultStatus":true,"line":1233,"comment":"Enables automatically upgrading main frame navigations to HTTPS."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"HttpsUpgradesTypedSchemelessNavigationNoTimeoutFallback","variable":"kHttpsUpgradesTypedSchemelessNavigationNoTimeoutFallback","defaultStatus":true,"line":1237,"comment":"When enabled, typed schemeless navigations (e.g., typed \"example.com\" in the Omnibox) that are upgraded to HTTPS will not fallback to HTTP if the HTTPS navigation fails due to a timeout."},{"type":"feature","file":"media/base/media_switches.cc","name":"IamfAudioDecoding","variable":"kIamfAudioDecoding","defaultStatus":false,"line":675,"buildflags":["BUILDFLAG(ENABLE_IAMF_TOOLS)"]},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"ICASupportedByHardware","variable":"kICASupportedByHardware","defaultStatus":false,"line":23,"comment":"Indicates whether Image Content-based Annotation is supported by hardware."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"IChromeAccessible","variable":"kIChromeAccessible","defaultStatus":false,"line":208,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Use Chrome-specific accessibility COM API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IdbSqliteBackingStore","variable":"kIdbSqliteBackingStore","defaultStatus":false,"line":526,"comment":"This flag unconditionally enables the SQLite backing store. Used for about:flags."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IdbSqliteOnDiskRollout","variable":"kIdbSqliteOnDiskRollout","defaultStatus":false,"line":528},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"IgnoreChromeManageAccountsInSubframes","variable":"kIgnoreChromeManageAccountsInSubframes","defaultStatus":true,"line":637,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"IgnoreDuplicateNavs","variable":"kIgnoreDuplicateNavs","defaultStatus":false,"line":532,"comment":"Controls whether we ignore duplicate navigations or not, in favor of preserving the already ongoing navigation."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"IgnoreInvalidGrantError","variable":"kIgnoreInvalidGrantError","defaultStatus":true,"line":641,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Feature flag to ignore invalid grant errors in AuthenticationService."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"IgnorePS5GamepadsInWgi","variable":"kIgnorePS5GamepadsInWgi","defaultStatus":true,"line":34,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Ignores PlayStation 5 gamepads (DualSense, DualSense Edge) in WgiDataFetcherWin to avoid double enumeration."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"IgnoreSearchProviderOverrides","variable":"kIgnoreSearchProviderOverrides","defaultStatus":true,"line":35},{"type":"feature","file":"media/base/media_switches.cc","name":"IgnoreUiGains","variable":"kIgnoreUiGains","defaultStatus":true,"line":611,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"ImageCopiedToast","variable":"kImageCopiedToast","defaultStatus":true,"line":17,"comment":"Enables the image copied confirmation toast."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ImageDescriptionsAlternateRouting","variable":"kImageDescriptionsAlternateRouting","defaultStatus":false,"line":125,"comment":"Use Alternative mechanism for acquiring image descriptions."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ImageSearchSuggestionThumbnail","variable":"kImageSearchSuggestionThumbnail","defaultStatus":false,"line":32,"comment":"Please do not add more features to this \"big blob\" list. Instead, use the categorized and alphabetized lists below this \"big blob\". You can create a new category if none of the existing ones fit."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeDownloaderExperiment","variable":"kImeDownloaderExperiment","defaultStatus":false,"line":1062,"comment":"Enables IME downloader experiment logic."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeRuleConfig","variable":"kImeRuleConfig","defaultStatus":true,"line":1059,"comment":"If enabled, used to configure the heuristic rules for some advanced IME features (e.g. auto-correct)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeServiceProto","variable":"kImeServiceProto","defaultStatus":false,"line":1065,"comment":"Enable or disable proto-based communication for IME Service."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeSwitchCheckConnectionStatus","variable":"kImeSwitchCheckConnectionStatus","defaultStatus":true,"line":1084,"comment":"Enables a change in the IME switching logic such that the mojo connection status is tracked via a global boolean instead of checking if the runner is idle."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeSystemEmojiPickerJellySupport","variable":"kImeSystemEmojiPickerJellySupport","defaultStatus":true,"line":1068,"comment":"Enable or disable system emoji picker jelly support"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeSystemEmojiPickerMojoSearch","variable":"kImeSystemEmojiPickerMojoSearch","defaultStatus":false,"line":1073,"comment":"Enable or disable system emoji picker mojo based emoji search"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImeSystemEmojiPickerVariantGrouping","variable":"kImeSystemEmojiPickerVariantGrouping","defaultStatus":false,"line":1078,"comment":"Enable or disable system emoji picker global emoji variant grouping"},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ImmersiveReadAnything","variable":"kImmersiveReadAnything","defaultStatus":true,"line":372,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable Immersive Mode for Read Anything."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ImportExportFlags","variable":"kImportExportFlags","defaultStatus":false,"line":51},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ImprovedManagementDisclosure","variable":"kImprovedManagementDisclosure","defaultStatus":true,"line":1088,"comment":"Controls whether to show new management disclosure UI page instead of the management warning bubble."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ImprovedReadAloud","variable":"kImprovedReadAloud","defaultStatus":false,"line":382,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable Improved Read Aloud."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ImprovedStartupBestEffortDelay","variable":"kImprovedStartupBestEffortDelay","defaultStatus":false,"line":124,"comment":"Delays BEST_EFFORT tasks during startup until tabs are loaded/idle and first paint."},{"type":"feature","file":"media/base/media_switches.cc","name":"IncludeIRCamerasInDeviceEnumeration","variable":"kIncludeIRCamerasInDeviceEnumeration","defaultStatus":false,"line":1365,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Includes Infrared cameras in the list returned for EnumerateDevices() on Windows."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"IncludeJSCallStackInExtensionApiRequest","variable":"kIncludeJSCallStackInExtensionApiRequest","defaultStatus":true,"line":185,"comment":"If enabled, include JS call stack data in the extension API request sent to the browser process. This data is used for telemetry purpose only."},{"type":"feature","file":"storage/browser/file_system/file_system_features.cc","name":"IncognitoFileSystemContextForTesting","variable":"kIncognitoFileSystemContextForTesting","defaultStatus":false,"line":11,"comment":"Creates FileSystemContexts in incognito mode. This is used to run web tests in incognito mode to ensure feature parity for FileSystemAccessAccessHandles."},{"type":"feature","file":"storage/browser/quota/quota_features.cc","name":"IncognitoStaticStorageQuota","variable":"kIncognitoStaticStorageQuota","defaultStatus":false,"line":42,"comment":"If enabled, Incognito mode will always report a maximal quota value to avoid fingerprinting and incognito detection."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IncomingCallNotifications","variable":"kIncomingCallNotifications","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true}],"line":1256,"comment":"Enables the Incoming Call Notifications scenario. When created by an installed origin, an incoming call notification should have increased priority, colored buttons, a ringtone, and a default \"close\" button. Otherwise, if the origin is not installed, it should behave like the default notifications, but with the added \"Close\" button. See https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Notifications/notifications_actions_customization.md"},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"IncreasedCmdBufferParseSlice","variable":"kIncreasedCmdBufferParseSlice","defaultStatus":false,"line":475,"comment":"Use a 100-command limit before forcing context switch per command buffer instead of 20."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"Indigo","variable":"kIndigo","defaultStatus":false,"line":1264,"comment":"Experimental image replacement feature. b/482792874"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IndigoComponent","variable":"kIndigoComponent","defaultStatus":false,"line":1360,"comment":"Enables installation of the content script for chrome/browser/indigo/ via component update."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IndigoMetadataKeywordHeuristic","variable":"kIndigoMetadataKeywordHeuristic","defaultStatus":false,"line":1289},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IndigoOpenGlic","variable":"kIndigoOpenGlic","defaultStatus":false,"line":1297,"comment":"Experimental image replacement feature opens glic."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"InfoBarInlineLinks","variable":"kInfoBarInlineLinks","defaultStatus":false,"line":53},{"type":"feature","file":"base/task/task_features.cc","name":"InheritTaskImportanceByDefault","variable":"kInheritTaskImportanceByDefault","defaultStatus":false,"line":67,"comment":"Under this feature, ThreadPool inherits GetCurrentTaskImportance by default, when TaskPriority isn't otherwise specified."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"InitialExternalExtensions","variable":"kInitialExternalExtensions","defaultStatus":true,"line":90,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS)"],"comment":"Controls whether to load the initial sideloaded external extensions or not."},{"type":"feature","file":"content/public/common/content_features.cc","name":"InitialWebUI","variable":"kInitialWebUI","defaultStatus":false,"line":559,"comment":"Enables rendering the top chrome in WebUI. This is a central flag to enable the WebUI implementation of top chrome. Individual features will be additionally gated by this flag."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"InitialWebUIMetrics","variable":"kInitialWebUIMetrics","defaultStatus":true,"line":1846,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables logging InitialWebUI-related metrics. The metrics are not necessary comes from WebUI but can also come from the C++ version of them. Defaults to enabled to also collect metrics for the C++ group. See crbug.com/448794588."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"InitialWebUIWithoutSpellCheckForNtp","variable":"kInitialWebUIWithoutSpellCheckForNtp","defaultStatus":false,"line":1366,"comment":"If enabled, the initial WebUI skips spell check initialization on startup for NTP."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"InlineLocationSignaling","variable":"kInlineLocationSignaling","defaultStatus":false,"line":548,"comment":"If enabled, Inline Location Signaling is enabled gating all development and experimentation for the feature."},{"type":"feature","file":"content/public/common/content_features.cc","name":"InstalledApp","variable":"kInstalledApp","defaultStatus":true,"line":613,"comment":"Kill switch for the GetInstalledRelatedApps API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"InstalledAppProvider","variable":"kInstalledAppProvider","defaultStatus":true,"line":616,"comment":"Allow Windows specific implementation for the GetInstalledRelatedApps API."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"InstallPlatformExperienceHelperWin","variable":"kInstallPlatformExperienceHelperWin","defaultStatus":true,"line":124,"buildflags":["BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)"],"comment":"When this feature is enabled, Chrome will install the platform_experience_helper."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"InstantHotspotOnNearby","variable":"kInstantHotspotOnNearby","defaultStatus":false,"line":1091,"comment":"Enables Instant Hotspot on Nearby. b/303121363."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"InstantTethering","variable":"kInstantTethering","defaultStatus":true,"line":1094,"comment":"Enables or disables Instant Tethering on ChromeOS."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"InstantUsesSpareRenderer","variable":"kInstantUsesSpareRenderer","defaultStatus":false,"line":1309,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"A feature that controls whether Instant uses a spare renderer."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"IntelVpSuperResolution","variable":"kIntelVpSuperResolution","defaultStatus":false,"line":294,"comment":"Allow overlay swapchain to use Intel video processor for super resolution."},{"type":"feature","file":"media/base/media_switches.cc","name":"InternalMediaSession","variable":"kInternalMediaSession","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":1574,"comment":"Enables the internal Media Session logic without enabling the Media Session service."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"InternalServerSideSpeechRecognitionByFinch","variable":"kInternalServerSideSpeechRecognitionByFinch","defaultStatus":false,"line":1099,"comment":"Enables or disables the internal server side speech recognition on ChromeOS. The supported locales for this feature are specified using the locales filter in finch config."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"InternalServerSideSpeechRecognitionUSMModelFinch","variable":"kInternalServerSideSpeechRecognitionUSMModelFinch","defaultStatus":true,"line":1106,"comment":"Enables or disables the internal server side speech recognition on ChromeOS. The supported locales for this feature are specified using the locales filter in finch config. The languages controlled by this feature use the S3 USM_RNNT model."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"InvalidateSearchEngineChoiceOnDeviceRestoreDetection","variable":"kInvalidateSearchEngineChoiceOnDeviceRestoreDetection","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS)","value":true},{"condition":"!BUILDFLAG(IS_IOS)","value":false}],"line":39,"comment":"Invalidates old search engine choices when Chrome detects that it has been transferred to a new device."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"IosCleanupHangingPasswordFormExtractionRequests","variable":"kIosCleanupHangingPasswordFormExtractionRequests","defaultStatus":true,"line":123,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Enables the clean up of hanging form extraction requests made by the password suggestion helper. This is to fix the cases where the suggestions pipeline is broken because the pipeline is waiting for password suggestions that are never provided."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"IOSProactivePasswordGenerationBottomSheet","variable":"kIOSProactivePasswordGenerationBottomSheet","defaultStatus":true,"line":130,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Enables password generation bottom sheet to be displayed (on iOS) when a user is signed-in and taps on a new password field."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"IOSSignalSharingEnabled","variable":"kIOSSignalSharingEnabled","defaultStatus":false,"line":24,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Controls whether enterprise signal sharing is enabled on iOS."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"IOSurfaceMultiThreading","variable":"kIOSurfaceMultiThreading","defaultStatus":true,"line":871,"buildflags":["BUILDFLAG(IS_APPLE)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"IOThreadInteractiveThreadType","variable":"kIOThreadInteractiveThreadType","defaultStatus":false,"line":1505,"comment":"Sets IO threads to kInteractive all the time."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"IppFirstSetupForUsbPrinters","variable":"kIppFirstSetupForUsbPrinters","defaultStatus":false,"line":1111,"comment":"Enables new experimental IPP-first setup path for USB printers on ChromeOS. Used in finch experiment."},{"type":"feature","file":"chrome/browser/nearby_sharing/common/nearby_share_features.cc","name":"IsNameEnabled","variable":"kIsNameEnabled","defaultStatus":true,"line":13,"comment":"Enables Quick Share branding."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"IsolatedProcess","variable":"kIsolatedProcess","defaultStatus":false,"line":190,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, the browser will run with isolation enabled on the next restart."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IsolatedWebAppBundleCache","variable":"kIsolatedWebAppBundleCache","defaultStatus":true,"line":1335,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables bundle cache for isolated web apps in kiosk and managed guest session."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IsolatedWebAppDevMode","variable":"kIsolatedWebAppDevMode","defaultStatus":false,"line":1314,"comment":"LINT.IfChange"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IsolatedWebAppDevUi","variable":"kIsolatedWebAppDevUi","defaultStatus":false,"line":1317,"comment":"Enables the chrome://iwa-dev WebUI page."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IsolatedWebAppManagedGuestSessionInstall","variable":"kIsolatedWebAppManagedGuestSessionInstall","defaultStatus":true,"line":1330,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables users to install isolated web apps in managed guest sessions."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IsolatedWebApps","variable":"kIsolatedWebApps","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true}],"line":646,"comment":"LINT.IfChange"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"IsolatedWebAppUnmanagedInstall","variable":"kIsolatedWebAppUnmanagedInstall","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":1320,"comment":"Enables users on unmanaged devices to install Isolated Web Apps."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IsolateFencedFrames","variable":"kIsolateFencedFrames","defaultStatus":false,"line":657,"comment":"LINT.ThenChange(//PRESUBMIT.py)"},{"type":"feature","file":"content/public/common/content_features.cc","name":"IsolateOrigins","variable":"kIsolateOrigins","defaultStatus":false,"line":662,"comment":"Alternative to switches::kIsolateOrigins, for turning on origin isolation. List of origins to isolate has to be specified via kIsolateOriginsFieldTrialParamName."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IsolatesPriorityBestEffortWhenHidden","variable":"kIsolatesPriorityBestEffortWhenHidden","defaultStatus":false,"line":635,"comment":"When enabled, forces the priority of isolates in hidden renderers to best-effort, overriding the effect of kIsolatesPriorityUseProcessPriority (isolates in visible renderer will still get their priority derived from process priority)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"IsolatesPriorityUseProcessPriority","variable":"kIsolatesPriorityUseProcessPriority","defaultStatus":false,"line":628,"comment":"When enabled, derives isolate priority from the more granular process priority (user-blocking, user-visible, best-effort) instead of renderer visibility (visible, hidden). Subtlety: A renderer hosting a hidden frame playing audio will have user-blocking priority. Without this feature, an isolate in this renderer would have best-effort priority (derived from the visibility), whereas with the feature it would be user-blocking. To keep isolates in hidden renderers at best-effort priority, but otherwise use the process priority, enable this feature along with \"IsolatesPriorityBestEffortWhenHidden\"."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"JapaneseInputModeSwitchInVK","variable":"kJapaneseInputModeSwitchInVK","defaultStatus":true,"line":1114,"comment":"Enables Romaji/Kana mode switch for Japanese VK."},{"type":"feature","file":"content/public/common/content_features.cc","name":"JavalessRendererExperimentOn","variable":"kJavalessRendererExperimentOn","defaultStatus":true,"line":667,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the ability to specification a renderer that does not use Java."},{"type":"feature","file":"gin/gin_features.cc","name":"JavaScriptImportAttributes","variable":"kJavaScriptImportAttributes","defaultStatus":false,"line":181,"comment":"Enables the `with` syntax for the Import Attributes proposal."},{"type":"feature","file":"gin/gin_features.cc","name":"JavaScriptPromiseTry","variable":"kJavaScriptPromiseTry","defaultStatus":false,"line":188,"comment":"Enables the Promise.try proposal."},{"type":"feature","file":"gin/gin_features.cc","name":"JavaScriptRegExpDuplicateNamedGroups","variable":"kJavaScriptRegExpDuplicateNamedGroups","defaultStatus":false,"line":184,"comment":"Enables the RegExp duplicate named capture groups proposal."},{"type":"feature","file":"gin/gin_features.cc","name":"JavaScriptRegExpModifiers","variable":"kJavaScriptRegExpModifiers","defaultStatus":false,"line":178,"comment":"Enables the RegExp modifiers proposal."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"JumpStartOmnibox","variable":"kJumpStartOmnibox","defaultStatus":false,"line":473,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Accelerates time from cold start to focused Omnibox on low-end devices, prioritizing Omnibox focus and background initialization."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"JupiterScreensaver","variable":"kJupiterScreensaver","defaultStatus":true,"line":1116},{"type":"feature","file":"content/public/common/content_features.cc","name":"KeepAliveReportBlockedByClient","variable":"kKeepAliveReportBlockedByClient","defaultStatus":true,"line":671,"comment":"Kill-switch for the tracking of keep-alive requests blocked by client."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"KeyboardAccessibleTooltip","variable":"kKeyboardAccessibleTooltip","defaultStatus":false,"line":314,"comment":"Used to enable keyboard accessible tooltips in in-page content (i.e., inside Blink). See ::views::features::kKeyboardAccessibleTooltipInViews for keyboard-accessible tooltips in Views UI."},{"type":"feature","file":"ui/views/views_features.cc","name":"KeyboardAccessibleTooltipInViews","variable":"kKeyboardAccessibleTooltipInViews","defaultStatus":true,"line":49,"comment":"Used to enable keyboard-accessible tooltips in Views UI, as opposed to kKeyboardAccessibleTooltip in //ui/base/ui_base_features.cc."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"KillPartitionAllocMemoryTagging","variable":"kKillPartitionAllocMemoryTagging","defaultStatus":false,"line":264,"comment":"Kill switch for memory tagging. Skips any code related to memory tagging when enabled."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"KwdbRefreshDebugging","variable":"kKwdbRefreshDebugging","defaultStatus":false,"line":83},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LanguagePacksFonts","variable":"kLanguagePacksFonts","defaultStatus":true,"line":1120,"comment":"Enables automatic downloading and installing fonts via language packs, based on the user's preferences."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LanguagePacksInSettings","variable":"kLanguagePacksInSettings","defaultStatus":false,"line":1129,"comment":"Enables the UI and relative logic to manage Language Packs in Settings. This feature allows users to install/remove languages and input methods via the corresponding Settings page."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"LateGraphiteFeatureCheck","variable":"kLateGraphiteFeatureCheck","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":397,"comment":"When enabled, the Graphite feature check (including blocklist) is deferred to the GPU process rather than evaluated in the browser process."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LauncherContinueSectionWithRecents","variable":"kLauncherContinueSectionWithRecents","defaultStatus":true,"line":1133,"comment":"When enabled, launcher continue section will suggest drive files based on recency, instead of fetching them using drive's ItemSuggest API."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LauncherContinueSectionWithRecentsRollout","variable":"kLauncherContinueSectionWithRecentsRollout","defaultStatus":false,"line":1140,"comment":"Same as `kLauncherContinueSectionWithRecents`, but used to enable the feature via finch, while ensuring minimum Chrome version - i.e. to avoid finch config from enabling the feature on versions where LauncherContinueSectionWithRecents was first added."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherImageSearch","variable":"kLauncherImageSearch","defaultStatus":true,"line":13,"comment":"Enables image search in the launcher."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherImageSearchDebug","variable":"kLauncherImageSearchDebug","defaultStatus":false,"line":30,"comment":"Enable debugging for launcher image search. Currently it's only used in certain tast test and will introduce extra logs to help debug."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherImageSearchIca","variable":"kLauncherImageSearchIca","defaultStatus":true,"line":21,"comment":"Enable Image Content-based Annotation."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherImageSearchIndexingLimit","variable":"kLauncherImageSearchIndexingLimit","defaultStatus":true,"line":27,"comment":"Applies a hard limit about how many images can be process per user session."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherImageSearchOcr","variable":"kLauncherImageSearchOcr","defaultStatus":false,"line":25,"comment":"Enable Optical Character Recognition."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherLocalImageSearchConfidence","variable":"kLauncherLocalImageSearchConfidence","defaultStatus":false,"line":15,"comment":"Whether or not to override configuration of the local image search confidence threshold with an experiment."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherLocalImageSearchRelevance","variable":"kLauncherLocalImageSearchRelevance","defaultStatus":false,"line":18,"comment":"Whether or not to override configuration of the local image search Relevance threshold with an experiment."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LauncherNudgeShortInterval","variable":"kLauncherNudgeShortInterval","defaultStatus":false,"line":1145,"comment":"Uses short intervals for launcher nudge for testing if enabled."},{"type":"feature","file":"chrome/browser/ash/app_list/search/search_features.cc","name":"LauncherSearchFileScan","variable":"kLauncherSearchFileScan","defaultStatus":false,"line":34,"comment":"Enables file scan in launcher. This is used as a stopper if the file scan ran into any issues."},{"type":"feature","file":"chrome/browser/startup/startup_features.cc","name":"LaunchOnStartup","variable":"kLaunchOnStartup","defaultStatus":false,"line":12,"comment":"This flag (and the params) gates the Launch on Startup feature and corresponding modes."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"LaunchWindowsNativeHostsDirectly","variable":"kLaunchWindowsNativeHostsDirectly","defaultStatus":false,"line":159,"comment":"Launches Native Host executables directly on Windows rather than using a cmd.exe process as a proxy."},{"type":"feature","file":"components/user_education/common/user_education_features.cc","name":"LazilySetCustomActionCaption","variable":"kLazilySetCustomActionCaption","defaultStatus":false,"line":243},{"type":"feature","file":"content/public/common/content_features.cc","name":"LazyBrowserInterfaceBroker","variable":"kLazyBrowserInterfaceBroker","defaultStatus":true,"line":677,"comment":"When enabled, creation of the BrowserInterfaceBroker on RenderFrameHostImpls becomes lazy. i.e. the BrowserInterfaceBroker is constructed only when it is needed, typically when a renderer process becomes associated with the frame. See https://crbug.com/450912216 for more details."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"LegacySearchIntegrityCheck","variable":"kLegacySearchIntegrityCheck","defaultStatus":false,"line":111,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensAimSuggestions","variable":"kLensAimSuggestions","defaultStatus":false,"line":110},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensAimSuggestionsGradientBackground","variable":"kLensAimSuggestionsGradientBackground","defaultStatus":false,"line":112},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensDeleteContextOnPageNavigation","variable":"kLensDeleteContextOnPageNavigation","defaultStatus":true,"line":154},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOnlySendAaiForModalityChips","variable":"kLensOnlySendAaiForModalityChips","defaultStatus":true,"line":145},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlay","variable":"kLensOverlay","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))","value":true}],"line":22},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayAndroid","variable":"kLensOverlayAndroid","defaultStatus":false,"line":30},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayContextualSearchbox","variable":"kLensOverlayContextualSearchbox","defaultStatus":true,"line":39},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayCornerSliders","variable":"kLensOverlayCornerSliders","defaultStatus":true,"line":74},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayEduActionChip","variable":"kLensOverlayEduActionChip","defaultStatus":true,"line":83},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayForceEmptyCsbQuery","variable":"kLensOverlayForceEmptyCsbQuery","defaultStatus":false,"line":105},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"LensOverlayHomeworkPageActionFocusOptimization","variable":"kLensOverlayHomeworkPageActionFocusOptimization","defaultStatus":false,"line":332,"comment":"Gates the optimization to cache LocationBarView in LensOverlayHomeworkPageActionController."},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayImageContextMenuActions","variable":"kLensOverlayImageContextMenuActions","defaultStatus":true,"line":36},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayKeyboardSelection","variable":"kLensOverlayKeyboardSelection","defaultStatus":true,"line":85},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayLatencyOptimizations","variable":"kLensOverlayLatencyOptimizations","defaultStatus":false,"line":44},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayNonBlockingPrivacyNotice","variable":"kLensOverlayNonBlockingPrivacyNotice","defaultStatus":true,"line":121},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayNonBlockingPrivacyNoticeForImageSearch","variable":"kLensOverlayNonBlockingPrivacyNoticeForImageSearch","defaultStatus":false,"line":124},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayOmniboxEntryPoint","variable":"kLensOverlayOmniboxEntryPoint","defaultStatus":false,"line":67,"comment":"Enables the Lens Overlay omnibox entry point. This is a separate feature from kLensOverlay so that the omnibox entry point can be disabled without a dependency on the rest of the Lens Overlay features. This means if can be experimented with independently."},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayPermissionBubbleAlt","variable":"kLensOverlayPermissionBubbleAlt","defaultStatus":true,"line":87},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayRecontextualizeOnQuery","variable":"kLensOverlayRecontextualizeOnQuery","defaultStatus":false,"line":71},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayRoutingInfo","variable":"kLensOverlayRoutingInfo","defaultStatus":true,"line":47},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlaySidePanelOpenInNewTab","variable":"kLensOverlaySidePanelOpenInNewTab","defaultStatus":false,"line":51},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlaySuggestionsMigration","variable":"kLensOverlaySuggestionsMigration","defaultStatus":false,"line":41},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlaySurvey","variable":"kLensOverlaySurvey","defaultStatus":false,"line":49},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayTextSelectionContextMenuEntrypoint","variable":"kLensOverlayTextSelectionContextMenuEntrypoint","defaultStatus":false,"line":102},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"LensOverlayToast","variable":"kLensOverlayToast","defaultStatus":false,"line":29,"comment":"Migrates the lens overlay toast to the toast framework."},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayTranslateButton","variable":"kLensOverlayTranslateButton","defaultStatus":false,"line":32},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayTranslateLanguages","variable":"kLensOverlayTranslateLanguages","defaultStatus":false,"line":34},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayUpdatedClientContext","variable":"kLensOverlayUpdatedClientContext","defaultStatus":false,"line":57},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayUploadChunking","variable":"kLensOverlayUploadChunking","defaultStatus":true,"line":69},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensOverlayVisualSelectionUpdates","variable":"kLensOverlayVisualSelectionUpdates","defaultStatus":true,"line":54},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensRestrictAnnotatedPageContentToSameSiteFramesForNextQueries","variable":"kLensRestrictAnnotatedPageContentToSameSiteFramesForNextQueries","defaultStatus":false,"line":151},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchAimM3","variable":"kLensSearchAimM3","defaultStatus":true,"line":93},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchAimM3EnUs","variable":"kLensSearchAimM3EnUs","defaultStatus":true,"line":94},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchAimM3UseAimEligibility","variable":"kLensSearchAimM3UseAimEligibility","defaultStatus":false,"line":95},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchNotFoundOnPageToast","variable":"kLensSearchNotFoundOnPageToast","defaultStatus":false,"line":89},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchProtectedPage","variable":"kLensSearchProtectedPage","defaultStatus":[{"condition":"BUILDFLAG(GOOGLE_CHROME_BRANDING)","value":true}],"line":76},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchReinvocationAffordance","variable":"kLensSearchReinvocationAffordance","defaultStatus":false,"line":98},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSearchSidePanelNewFeedback","variable":"kLensSearchSidePanelNewFeedback","defaultStatus":false,"line":60},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSendQuerySubmissionTime","variable":"kLensSendQuerySubmissionTime","defaultStatus":false,"line":135},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSendRawFileMediaTypes","variable":"kLensSendRawFileMediaTypes","defaultStatus":false,"line":133},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSendUrlsInComposeboxes","variable":"kLensSendUrlsInComposeboxes","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))","value":true}],"line":137},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSendVitForSingleContextNextQueries","variable":"kLensSendVitForSingleContextNextQueries","defaultStatus":true,"line":130},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSidePanelEnableWebviewResults","variable":"kLensSidePanelEnableWebviewResults","defaultStatus":false,"line":107},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensSidePanelUnification","variable":"kLensSidePanelUnification","defaultStatus":false,"line":119},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensStandalone","variable":"kLensStandalone","defaultStatus":true,"line":18},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensUpdatedFeedbackEntrypoint","variable":"kLensUpdatedFeedbackEntrypoint","defaultStatus":true,"line":117},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensUseSeparateRequestIdForViewportImages","variable":"kLensUseSeparateRequestIdForViewportImages","defaultStatus":false,"line":127},{"type":"feature","file":"components/lens/lens_features.cc","name":"LensVideoCitations","variable":"kLensVideoCitations","defaultStatus":true,"line":115},{"type":"feature","file":"components/search/ntp_features.cc","name":"LightningTakeoverEdition","variable":"kLightningTakeoverEdition","defaultStatus":false,"line":311,"comment":"If enabled, adds a Whats New Page Edition for Next Features."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"LimitAImageReaderMaxSizeToOne","variable":"kLimitAImageReaderMaxSizeToOne","defaultStatus":true,"line":140,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Used to limit AImageReader max queue size to 1 since many devices especially android Tv devices do not support more than 1 images."},{"type":"feature","file":"media/base/media_switches.cc","name":"LimitConcurrentDecoderInstances","variable":"kLimitConcurrentDecoderInstances","defaultStatus":true,"line":1307,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)"],"comment":"Limit the number of concurrent hardware decoder instances on ChromeOS."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"LimitScrollDeltaToScrollerSize","variable":"kLimitScrollDeltaToScrollerSize","defaultStatus":true,"line":229,"comment":"Limits the scroll delta to the size of the scroller when scrolled using the mouse wheel only."},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"LinkCopiedToast","variable":"kLinkCopiedToast","defaultStatus":true,"line":14,"comment":"Individual toasts"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LinkCrossDeviceInternals","variable":"kLinkCrossDeviceInternals","defaultStatus":false,"line":1205,"comment":"Enables nearby-internals logs to be automatically saved to disk and attached to feedback reports."},{"type":"feature","file":"device/bluetooth/bluez/bluez_features.cc","name":"LinkLayerPrivacy","variable":"kLinkLayerPrivacy","defaultStatus":false,"line":9},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"LinkToHighlightCopiedToast","variable":"kLinkToHighlightCopiedToast","defaultStatus":true,"line":23,"comment":"Enables the link to highlight copied confirmation toast."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"LinuxLowMemoryMonitor","variable":"kLinuxLowMemoryMonitor","defaultStatus":false,"line":1339,"buildflags":["BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"printing/printing_features.cc","name":"LinuxXdgPrintPortal","variable":"kLinuxXdgPrintPortal","defaultStatus":true,"line":26,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Use the XDG Print Portal for the system print dialog."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ListWebAppsSwitch","variable":"kListWebAppsSwitch","defaultStatus":false,"line":1350,"buildflags":["BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaption","variable":"kLiveCaption","defaultStatus":true,"line":955,"comment":"Enables the Live Caption feature on supported devices."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionAutomaticLanguageDownload","variable":"kLiveCaptionAutomaticLanguageDownload","defaultStatus":false,"line":1004,"comment":"Enable automatic downloading of speech recognition language packs."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionExperimentalLanguages","variable":"kLiveCaptionExperimentalLanguages","defaultStatus":false,"line":1000,"comment":"Enable experimental Live Caption languages."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionLogFlickerRate","variable":"kLiveCaptionLogFlickerRate","defaultStatus":false,"line":988,"comment":"Log the amount of flickering between partial results. This measures how often the system revises earlier outputs, to quantify the system's output instability or flicker. Intuitively, it measures how many tokens must be truncated from the previous text before appending any new text. The erasure of the current timestep can be calculated from its longest common prefix with the previous timestep."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionRightClick","variable":"kLiveCaptionRightClick","defaultStatus":false,"line":1008,"comment":"Enable or disable Live Caption from the right click menu."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionUseGreedyTextStabilizer","variable":"kLiveCaptionUseGreedyTextStabilizer","defaultStatus":true,"line":992,"comment":"Use a greedy text stabilizer to reduce flickering when translating partial speech recognition results."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LiveCaptionUserMicrophone","variable":"kLiveCaptionUserMicrophone","defaultStatus":false,"line":1848},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionUseWaitK","variable":"kLiveCaptionUseWaitK","defaultStatus":false,"line":997,"comment":"Use a wait-k approach to reduce flickering when translating partial speech recognition results."},{"type":"feature","file":"media/base/media_switches.cc","name":"LiveCaptionWebAudio","variable":"kLiveCaptionWebAudio","defaultStatus":true,"line":1011,"comment":"Enable or disable Live Caption support for WebAudio."},{"type":"feature","file":"device/bluetooth/floss/floss_features.cc","name":"LLPrivacyIsAvailable","variable":"kLLPrivacyIsAvailable","defaultStatus":true,"line":15,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"LmkPerceptibleMinStateUpdate","variable":"kLmkPerceptibleMinStateUpdate","defaultStatus":true,"line":356,"comment":"Controls the feature to update the minimum Android process state to be considered to be killed under perceptible memory pressure. This is to prevent top Android apps from being killed that result in bad user experience."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingOnlyLearnHighPriorityResources","variable":"kLoadingOnlyLearnHighPriorityResources","defaultStatus":true,"line":29,"comment":"Modifies loading predictor so that it only learns about subresources and origins that are high priority."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPreconnectToRedirectTarget","variable":"kLoadingPreconnectToRedirectTarget","defaultStatus":false,"line":37,"comment":"Modifies loading predictor so that the predictions also contain origins of the redirect target of the navigation."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorDisregardAlwaysAccessesNetwork","variable":"kLoadingPredictorDisregardAlwaysAccessesNetwork","defaultStatus":false,"line":42,"comment":"Modifies loading predictor so that the value of the |always_access_network| attribute is not used when computing the predicting score for an origin."},{"type":"feature","file":"content/public/common/content_features.cc","name":"LoadingPredictorLimitPreconnectSocketCount","variable":"kLoadingPredictorLimitPreconnectSocketCount","defaultStatus":false,"line":681,"comment":"If this is enabled, LoadingPredictor restricts the number of preconnects for the same destination to one."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorPrefetch","variable":"kLoadingPredictorPrefetch","defaultStatus":false,"line":55,"comment":"Modifies loading predictor so that it does prefetches of subresources instead of preconnects."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorPrefetchUseReadAndDiscardBody","variable":"kLoadingPredictorPrefetchUseReadAndDiscardBody","defaultStatus":false,"line":60,"comment":"Use the kURLLoadOptionReadAndDiscardBody option to URLLoader to avoid unnecessarily copying response body data."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorTableConfig","variable":"kLoadingPredictorTableConfig","defaultStatus":false,"line":33,"comment":"Configures the loading predictor table size and other base parameters."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorUseLocalPredictions","variable":"kLoadingPredictorUseLocalPredictions","defaultStatus":true,"line":24,"comment":"Whether local predictions should be used to make preconnect predictions."},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"LoadingPredictorUseOptimizationGuide","variable":"kLoadingPredictorUseOptimizationGuide","defaultStatus":true,"line":47,"comment":"Modifies loading predictor so that it can also use predictions coming from the optimization guide."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"Lobster","variable":"kLobster","defaultStatus":true,"line":1152,"comment":"Enables lobster feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterAlwaysShowDisclaimerForTesting","variable":"kLobsterAlwaysShowDisclaimerForTesting","defaultStatus":false,"line":1159,"comment":"Enabling this testing flag will force the Lobster disclaimer screen to be shown every time Lobster is triggered, even if users have previously approved the Lobster consent. If users have declined the Lobster consent, the feature This flag should solely be enabled for convenient testing. Do not turn it on unless the feature is under testing."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterDisabledByInvalidIME","variable":"kLobsterDisabledByInvalidIME","defaultStatus":false,"line":1175,"comment":"Enables lobster restriction based on the current active IME."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterDogfood","variable":"kLobsterDogfood","defaultStatus":false,"line":1163,"comment":"Enables lobster dogfood."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterDraggingSupport","variable":"kLobsterDraggingSupport","defaultStatus":true,"line":1166,"comment":"Enables lobster dragging support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterFeedback","variable":"kLobsterFeedback","defaultStatus":true,"line":1169,"comment":"Enables lobster feedback form."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterFileNamingImprovement","variable":"kLobsterFileNamingImprovement","defaultStatus":true,"line":1172,"comment":"Enables lobster feedback form."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterForManagedUsers","variable":"kLobsterForManagedUsers","defaultStatus":true,"line":1178,"comment":"Controls lobster availability on managed accounts."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterI18n","variable":"kLobsterI18n","defaultStatus":true,"line":1181,"comment":"Enables lobster i18n response."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterQuickInsertZeroState","variable":"kLobsterQuickInsertZeroState","defaultStatus":true,"line":1184,"comment":"Enables lobster entry point in quick insert zero state."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterRightClickMenu","variable":"kLobsterRightClickMenu","defaultStatus":true,"line":1187,"comment":"Enables lobster right click menu entry point."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LobsterUseRewrittenQuery","variable":"kLobsterUseRewrittenQuery","defaultStatus":true,"line":1191,"comment":"Enabling this flag allows Lobster to receive and use the rewritten queries returned from the server."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LocalAuthenticationWithPin","variable":"kLocalAuthenticationWithPin","defaultStatus":true,"line":1201,"comment":"Enables local authentication controller with PIN support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"LocalFactorsPasswordComplexity","variable":"kLocalFactorsPasswordComplexity","defaultStatus":true,"line":1198,"comment":"Enabling this flag allows password complexity checks when setting a local pin or password."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"LocalHistoryZeroSuggestBeyondNTP","variable":"kLocalHistoryZeroSuggestBeyondNTP","defaultStatus":false,"line":79,"comment":"Enables local history zero-prefix suggestions in every context in which the remote zero-prefix suggestions are enabled."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"LocationProviderManager","variable":"kLocationProviderManager","defaultStatus":true,"line":110,"buildflags":["BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)"],"comment":"Enables usage of the location provider manager to select between the operating system's location API or our network-based provider as the source of location data for Geolocation API."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"LocationProviderManager","variable":"kLocationProviderManager","defaultStatus":false,"line":112,"buildflags":["!(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN))"]},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"LockScreenBadgeAuth","variable":"kLockScreenBadgeAuth","defaultStatus":true,"line":64,"comment":"Enables the Badge Authentication flow on the lock screen."},{"type":"feature","file":"content/public/common/content_features.cc","name":"LogJsConsoleMessages","variable":"kLogJsConsoleMessages","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID))","value":true}],"line":684},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"LogOnDeviceMetricsOnStartup","variable":"kLogOnDeviceMetricsOnStartup","defaultStatus":false,"line":108,"comment":"Whether the on device service is launched after a delay on startup to log metrics."},{"type":"feature","file":"media/base/media_switches.cc","name":"LogSodaLoadFailures","variable":"kLogSodaLoadFailures","defaultStatus":false,"line":964,"comment":"Logs a DumpWithoutCrashing() call each time the Speech On-Device API (SODA) fails to load. Used to diagnose issues when rolling out new versions of the SODA library."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"LogUrlScoringSignals","variable":"kLogUrlScoringSignals","defaultStatus":false,"line":260,"comment":"Omnibox ML scoring."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"LowerPAMemoryLimitForNonMainRenderers","variable":"kLowerPAMemoryLimitForNonMainRenderers","defaultStatus":false,"line":318,"comment":"Configures whether we set a lower limit for renderers that do not have a main frame, similar to the limit that is already done for backgrounded renderers."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"LvmApplicationContainers","variable":"kLvmApplicationContainers","defaultStatus":false,"line":154,"comment":"Indicates whether LVM application containers feature is supported."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"MacAccessibilityAPIMigration","variable":"kMacAccessibilityAPIMigration","defaultStatus":false,"line":512,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables the switchover to the newer NSAccessibility property-based API."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"MacAccessibilityOptimizeChildrenChanged","variable":"kMacAccessibilityOptimizeChildrenChanged","defaultStatus":true,"line":518,"buildflags":["BUILDFLAG(IS_MAC)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"MacAccessibilityTextOperation","variable":"kMacAccessibilityTextOperation","defaultStatus":false,"line":537,"buildflags":["BUILDFLAG(IS_MAC)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MacAddressRandomization","variable":"kMacAddressRandomization","defaultStatus":false,"line":1208,"comment":"Feature to allow MAC address randomization to be enabled for WiFi networks."},{"type":"feature","file":"content/public/common/content_features.cc","name":"MacAllowBackgroundingRenderProcesses","variable":"kMacAllowBackgroundingRenderProcesses","defaultStatus":true,"line":1481,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables backgrounding hidden renderers on Mac."},{"type":"feature","file":"media/audio/audio_features.cc","name":"MacAVFoundationPlayback","variable":"kMacAVFoundationPlayback","defaultStatus":false,"line":73,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enabling this feature will allow AudioManagerMac to generate AVFoundation AudioOutputStreams instead of AUHALStreams in cases of multichannel audio. MacOS will then \"Spatialize\" the audio for users on compatible Airpods. The end result will give users the option to change modes on their Airpods (Off, Fixed, Head Tracking)."},{"type":"feature","file":"media/base/media_switches.cc","name":"MacCatapLoopbackAudioForCast","variable":"kMacCatapLoopbackAudioForCast","defaultStatus":false,"line":457,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables system audio loopback capture using the macOS CoreAudio tap API for Cast."},{"type":"feature","file":"media/base/media_switches.cc","name":"MacCatapLoopbackAudioForScreenShare","variable":"kMacCatapLoopbackAudioForScreenShare","defaultStatus":true,"line":461,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables system audio loopback capture using the macOS CoreAudio tap API for screen share."},{"type":"feature","file":"media/audio/audio_features.cc","name":"MacCatapRestartAudioProcessOnTimeout","variable":"kMacCatapRestartAudioProcessOnTimeout","defaultStatus":false,"line":87,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"If this feature is enabled, the audio process is restarted if the AudioDeviceCreateIOProcID call times out. This is used to recover from permission dialogs that are not responded to."},{"type":"feature","file":"media/audio/audio_features.cc","name":"MacCatapRestartOnDeviceChange","variable":"kMacCatapRestartOnDeviceChange","defaultStatus":true,"line":82,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"If this feature is enabled, and CATap is capturing the default output device, the CATap implementation will handle default output device changes by restarting the system audio capture. The changes we listen for are if default output device is changed to another device, or if the sample rate of the default output device is changed. If the feature is disabled, CATap will keep capturing the same device when default output device is changed, and will report an error if the sample rate is changed."},{"type":"feature","file":"media/base/media_switches.cc","name":"MacSckSystemAudioLoopbackOverride","variable":"kMacSckSystemAudioLoopbackOverride","defaultStatus":false,"line":1809,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Enables system audio loopback capture using the macOS Screen Capture Kit framework, regardless of the system version."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MagicBoostRevamp","variable":"kMagicBoostRevamp","defaultStatus":true,"line":67,"comment":"Enables the new Magic Boost Consent Flow."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MagicBoostRevampForQuickAnswers","variable":"kMagicBoostRevampForQuickAnswers","defaultStatus":true,"line":70,"comment":"Enables the new Magic Boost Consent Flow For Quick Answers."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"MagiChromePasskeySignIn","variable":"kMagiChromePasskeySignIn","defaultStatus":false,"line":645,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"MagiChromeSignInExperimentsBatch1","variable":"kMagiChromeSignInExperimentsBatch1","defaultStatus":false,"line":659,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MahiPanelResizable","variable":"kMahiPanelResizable","defaultStatus":true,"line":79,"comment":"Controls enabling / disabling the Mahi resize feature Does nothing if \"Mahi\" and \"FeatureManagementMahi\" are disabled."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MahiSendingUrl","variable":"kMahiSendingUrl","defaultStatus":true,"line":82,"comment":"Controls whether mahi sends url when making request to the server."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MahiSummarizeSelected","variable":"kMahiSummarizeSelected","defaultStatus":true,"line":85,"comment":"Controls enabling / disabling the summary of selected text feature."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"MainNodeAnnotations","variable":"kMainNodeAnnotations","defaultStatus":false,"line":377,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Identify and annotate the main node of the AXTree where one was not already provided."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"MakeIdentityManagerSourceOfAccounts","variable":"kMakeIdentityManagerSourceOfAccounts","defaultStatus":false,"line":666,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, IdentityManager is used as source of accounts instead of AccountManagerFacade."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"MakeIdentityManagerSourceOfAccountsPart2","variable":"kMakeIdentityManagerSourceOfAccountsPart2","defaultStatus":false,"line":670,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, IdentityManager is used as source of accounts instead of AccountManagerFacade. This flag is used for changes merged after M150."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManageContactInfoPerceptionSurvey","variable":"kManageContactInfoPerceptionSurvey","defaultStatus":false,"line":1005,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited \"Contact info\" settings page."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ManagedLocalPinAndPassword","variable":"kManagedLocalPinAndPassword","defaultStatus":true,"line":1212,"comment":"Enabling this flag allows the managed local pin and password related changes to be applied."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ManagedProfileRequiredInterstitial","variable":"kManagedProfileRequiredInterstitial","defaultStatus":true,"line":315},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ManagedUsbPrinters","variable":"kManagedUsbPrinters","defaultStatus":true,"line":1215,"comment":"Enables policy management for USB printers."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManageIdentityDocsPerceptionSurvey","variable":"kManageIdentityDocsPerceptionSurvey","defaultStatus":false,"line":1010,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited \"Identity docs\" settings page."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManagePasswordsPerceptionSurvey","variable":"kManagePasswordsPerceptionSurvey","defaultStatus":false,"line":1015,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited Password Manager management surface."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManagePaymentsPerceptionSurvey","variable":"kManagePaymentsPerceptionSurvey","defaultStatus":false,"line":1020,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited \"Payments\" settings page."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManageTravelPerceptionSurvey","variable":"kManageTravelPerceptionSurvey","defaultStatus":false,"line":1025,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited \"Travel\" settings page."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ManageYourSavedInfoPerceptionSurvey","variable":"kManageYourSavedInfoPerceptionSurvey","defaultStatus":false,"line":1029,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, a HaTS survey is shown after the user visited \"Your saved info\" settings page."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"MarkAllCredentialsAsLeaked","variable":"kMarkAllCredentialsAsLeaked","defaultStatus":false,"line":136,"comment":"Marks all submitted credentials as leaked, useful for testing of a password leak dialog."},{"type":"feature","file":"media/base/media_switches.cc","name":"MatchSourceAudioChannelLayout","variable":"kMatchSourceAudioChannelLayout","defaultStatus":false,"line":1163,"comment":"Allows Chrome to reconfigure the sink to match the channel count of the source audio data. This ensures opening of an audio output stream to match the source audio data channels, to signal to the downstream audio subsystem that the audio must be processed according to the source audio channel count.","todos":["TODO(crbug.com/445215599): This should be replaced with a MediaClient mechanism if it works as intended."]},{"type":"feature","file":"ui/display/display_features.cc","name":"MaxExternalDisplaySupportedNotification","variable":"kMaxExternalDisplaySupportedNotification","defaultStatus":false,"line":129,"comment":"When this feature is enabled, a different notification will be displayed to indicate there is a limit on the number of displays supported by the device. This feature takes in a param \"display_limit\", and it has to be an integer value greater than or equal to 0 for this feature to have any effect."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"MaximumWindowForGestureNavDetection","variable":"kMaximumWindowForGestureNavDetection","defaultStatus":true,"line":40,"comment":"Guard changes to use maximum window metrics for gesture navigation detection."},{"type":"feature","file":"content/public/common/content_features.cc","name":"MBIMode","variable":"kMBIMode","defaultStatus":[{"condition":"BUILDFLAG(MBI_MODE_PER_RENDER_PROCESS_HOST) || \\","value":true},{"condition":"!(BUILDFLAG(MBI_MODE_PER_RENDER_PROCESS_HOST) || \\)","value":false}],"line":698,"comment":"The MBI mode controls whether or not communication over the AgentSchedulingGroup is ordered with respect to the render-process-global legacy IPC channel, as well as the granularity of AgentSchedulingGroup creation. This will break ordering guarantees between different agent scheduling groups (ordering withing a group is still preserved). DO NOT USE! The feature is not yet fully implemented. See crbug.com/1111231."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantis","variable":"kMediaAppImageMantis","defaultStatus":false,"line":1218,"comment":"Enables Mantis on image contents in the Media App"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisErase","variable":"kMediaAppImageMantisErase","defaultStatus":true,"line":1221,"comment":"Enables the Erase feature of Mantis"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisExpandBackground","variable":"kMediaAppImageMantisExpandBackground","defaultStatus":true,"line":1224,"comment":"Enables the Expand Background feature of Mantis"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisMakeASticker","variable":"kMediaAppImageMantisMakeASticker","defaultStatus":true,"line":1228,"comment":"Enables the Make A Sticker feature of Mantis"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisModel","variable":"kMediaAppImageMantisModel","defaultStatus":true,"line":1232,"comment":"When enabled, the specified model will be used with the Mantis feature"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisReimagine","variable":"kMediaAppImageMantisReimagine","defaultStatus":false,"line":1235,"comment":"Enables the Reimagine feature of Mantis"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MediaAppImageMantisRemoveBackground","variable":"kMediaAppImageMantisRemoveBackground","defaultStatus":true,"line":1238,"comment":"Enables the Remove Background feature of Mantis"},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaCapabilitiesQueryGpuFactories","variable":"kMediaCapabilitiesQueryGpuFactories","defaultStatus":true,"line":486,"comment":"When enabled, MediaCapabilities will check with GPU Video Accelerator Factories to determine isPowerEfficient = true/false."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaCapabilitiesWithParameters","variable":"kMediaCapabilitiesWithParameters","defaultStatus":true,"line":490,"comment":"Enable Media Capabilities with finch-parameters."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaCodecBlockModel","variable":"kMediaCodecBlockModel","defaultStatus":false,"line":1206,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables block model (LinearBlock) on supported devices.","todos":["TODO(crbug.com/327625558): Currently block model is buggy and can't be enabled, we need to test it again when Android 17 is released."]},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaCodecColorSpaceCleanup","variable":"kMediaCodecColorSpaceCleanup","defaultStatus":true,"line":772,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Kill switch for removing idiosyncratic use of MediaCodec color APIs."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaCodecLowDelayMode","variable":"kMediaCodecLowDelayMode","defaultStatus":false,"line":1209,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allow selection of low latency decoders in low delay mode."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmGetStatusForPolicy","variable":"kMediaDrmGetStatusForPolicy","defaultStatus":true,"line":1234,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables MediaDrmBridge to call into MediaDrm API to query HDCP Status to support the CDM API GetStatusForPolicy."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmPersistentLicense","variable":"kMediaDrmPersistentLicense","defaultStatus":true,"line":1214,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"An experimental feature to enable persistent-license type support in MediaDrm when using Encrypted Media Extensions (EME) API.","todos":["TODO(xhwang): Remove this after feature launch. See http://crbug.com/493521"]},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmPreprovisioning","variable":"kMediaDrmPreprovisioning","defaultStatus":true,"line":1219,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables MediaDrmOriginIdManager to provide preprovisioned origin IDs for MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs which will trigger provisioning process after MediaDrmBridge is created."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmPreprovisioningAtStartup","variable":"kMediaDrmPreprovisioningAtStartup","defaultStatus":true,"line":1225,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Determines if MediaDrmOriginIdManager should attempt to pre-provision origin IDs at startup (whenever a profile is loaded). Also used by tests that disable it so that the tests can setup before pre-provisioning is done. Note: Has no effect if kMediaDrmPreprovisioning feature is disabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmPreprovisioningBackoff","variable":"kMediaDrmPreprovisioningBackoff","defaultStatus":true,"line":1230,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables exponential backoff for preprovisioning requests in MediaDrmOriginIdManager."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaDrmQueryInSeparateProcess","variable":"kMediaDrmQueryInSeparateProcess","defaultStatus":true,"line":1239,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"This feature allows for some MediaDrm functions to be executed in a separate process so that crashes do not bring down the browser. Flag is available so that it can be disabled for WebView as separate processes are not allowed."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaEngagementBypassAutoplayPolicies","variable":"kMediaEngagementBypassAutoplayPolicies","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))","value":true}],"line":1531,"comment":"The following Media Engagement flags are not enabled on mobile platforms: - MediaEngagementBypassAutoplayPolicies: enables the Media Engagement Index data to be esude to override autoplay policies. An origin with a high MEI will be allowed to autoplay. - PreloadMediaEngagementData: enables a list of origins to be considered as having a high MEI until there is enough local data to determine the user's preferred behaviour."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaEngagementHTTPSOnly","variable":"kMediaEngagementHTTPSOnly","defaultStatus":false,"line":1546},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationAV1L1T2Support","variable":"kMediaFoundationAV1L1T2Support","defaultStatus":false,"line":21,"buildflags":["!defined(ARCH_CPU_X86)"]},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationAV1L1T3Support","variable":"kMediaFoundationAV1L1T3Support","defaultStatus":false,"line":23,"buildflags":["!defined(ARCH_CPU_X86)"],"comment":"Up to 3 temporal layers, i.e. this enables both L1T2 and L1T3."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationBatchRead","variable":"kMediaFoundationBatchRead","defaultStatus":false,"line":1393,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables the batch audio/video buffers reading for media playback."},{"type":"feature","file":"media/capture/capture_switches.cc","name":"MediaFoundationCameraUsageMonitoring","variable":"kMediaFoundationCameraUsageMonitoring","defaultStatus":true,"line":54,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Controls monitoring for camera usage by other applications."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationClearPlayback","variable":"kMediaFoundationClearPlayback","defaultStatus":false,"line":1388,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables the use of MediaFoundationRenderer for clear content on supported systems. This is for testing purposes, and is not intended to be enabled more broadly."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationD3D11VideoCapture","variable":"kMediaFoundationD3D11VideoCapture","defaultStatus":true,"line":1378,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"For feature check of kMediaFoundationD3D11VideoCapture at runtime, please use IsMediaFoundationD3D11VideoCaptureEnabled() instead."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationD3D11VideoCaptureZeroCopy","variable":"kMediaFoundationD3D11VideoCaptureZeroCopy","defaultStatus":false,"line":1382,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enable zero-copy based on MediaFoundation video capture with D3D11."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationD3DVideoProcessing","variable":"kMediaFoundationD3DVideoProcessing","defaultStatus":false,"line":1732,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationMultiGpuAdapterSelection","variable":"kMediaFoundationMultiGpuAdapterSelection","defaultStatus":true,"line":1084,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables positioning the virtual video window and triggering Media Foundation's GPU adapter selection based on the frame's screen rect. This helps ensure the correct GPU adapter is used for HWDRM playback on multi-GPU/multi-display systems."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationSharedImageEncode","variable":"kMediaFoundationSharedImageEncode","defaultStatus":false,"line":1734,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationSWBRCForH264ForceAMDGPU","variable":"kMediaFoundationSWBRCForH264ForceAMDGPU","defaultStatus":false,"line":36},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationSWBRCForH264ForceARMGPU","variable":"kMediaFoundationSWBRCForH264ForceARMGPU","defaultStatus":false,"line":34,"comment":"The following flags are used to force using of software BRC for H.264 encoding on ARM and AMD GPU architectures, ignoring existing GPU workaround settings."},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationSWBRCUseFixedDeltaQP","variable":"kMediaFoundationSWBRCUseFixedDeltaQP","defaultStatus":true,"line":42,"comment":"H.264 SW Bitrate Controller works in fixed delta QP mode by default. The QP difference between base and enhancement layer can be controlled using a feature parameter."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationUseSoftwareRateCtrl","variable":"kMediaFoundationUseSoftwareRateCtrl","defaultStatus":true,"line":1369,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables software rate controller encoding acceleration for Windows."},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationUseSWBRCForH264Camera","variable":"kMediaFoundationUseSWBRCForH264Camera","defaultStatus":true,"line":26},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationUseSWBRCForH264Desktop","variable":"kMediaFoundationUseSWBRCForH264Desktop","defaultStatus":false,"line":28},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationUseSWBRCForH265","variable":"kMediaFoundationUseSWBRCForH265","defaultStatus":true,"line":52,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_HEVC)"],"comment":"For H.265 encoding at L1T1/L1T2 we may use SW bitrate controller when constant bitrate encoding is requested."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationVideoCapture","variable":"kMediaFoundationVideoCapture","defaultStatus":true,"line":1373,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables MediaFoundation based video capture"},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaFoundationVideoEncodeAccelerator","variable":"kMediaFoundationVideoEncodeAccelerator","defaultStatus":true,"line":1736,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationVP9L1T2Support","variable":"kMediaFoundationVP9L1T2Support","defaultStatus":false,"line":17,"buildflags":["!defined(ARCH_CPU_X86)"],"comment":"Temporal layers are reported to be supported by the Intel driver, but are only considered supported by MediaFoundation depending on these flags. This support is reported in MediaCapabilities' powerEfficient as well as deciding if Initialize() is allowed to succeed."},{"type":"feature","file":"media/gpu/windows/mf_video_encoder_switches.cc","name":"MediaFoundationVP9L1T3Support","variable":"kMediaFoundationVP9L1T3Support","defaultStatus":false,"line":19,"buildflags":["!defined(ARCH_CPU_X86)"],"comment":"Up to 3 temporal layers, i.e. this enables both L1T2 and L1T3."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaLinkHelpers","variable":"kMediaLinkHelpers","defaultStatus":true,"line":1767,"comment":"Enable site-specific media link helpers."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaLogToConsole","variable":"kMediaLogToConsole","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS))","value":false}],"line":1701,"comment":"Enables sending MediaLog to the log stream, which is useful for easier development by ensuring logs can be seen without a remote desktop session. Only affects builds when DCHECK is on for non-ERROR logs (ERROR logs are always sent to the log stream). Enabled by default on Android and ChromeOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaOptimizer","variable":"kMediaOptimizer","defaultStatus":false,"line":1550,"comment":"Enable the prototype global optimization of tuneables via finch. See media/base/tuneable.h for how to create tuneable parameters."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaPowerExperiment","variable":"kMediaPowerExperiment","defaultStatus":false,"line":1555,"comment":"Enable aggregate power measurement for media playback."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaRecorderHEVCSupport","variable":"kMediaRecorderHEVCSupport","defaultStatus":true,"line":434,"buildflags":["BUILDFLAG(ENABLE_HEVC_PARSER_AND_HW_DECODER)"],"comment":"Enables HEVC MediaRecorder muxer support."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaRemotingWithoutFullscreen","variable":"kMediaRemotingWithoutFullscreen","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX))","value":false}],"line":777,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, users can request Media Remoting without fullscreen-in-tab."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaSourceSeiRecoveryPointKeyframe","variable":"kMediaSourceSeiRecoveryPointKeyframe","defaultStatus":true,"line":1127,"comment":"When enabled, non-IDR H.264 frames with SEI recovery points (recovery_frame_cnt=0) are promoted to keyframes for MSE random access, and SPS/PPS parameter sets are injected for these frames so the hardware decoder can initialize after a seek/reset. This enables playback of open-GOP content in SourceBuffer. Limited to clear content to work around hardware decoders that don't handle non-IDR keyframes (some older Intel/AMD devices mishandle SEI + SPS/PPS); see https://crbug.com/451536366."},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaStreamAccurateDroppedFrameCount","variable":"kMediaStreamAccurateDroppedFrameCount","defaultStatus":true,"line":1588,"comment":"Enables accurate dropped frame count for MediaStreamVideoSource.","todos":["TODO(crbug.com/432367602): Remove after M143."]},{"type":"feature","file":"media/base/media_switches.cc","name":"MediaTrasncriptsFlagInPageMetadata","variable":"kMediaTrasncriptsFlagInPageMetadata","defaultStatus":false,"line":1763,"comment":"If enabled, chrome would inform Glic once it starts trasncribing, if Glic requested to be informed."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"MenuSimplification","variable":"kMenuSimplification","defaultStatus":false,"line":67},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"MetricsLogJobSchedulerUpload","variable":"kMetricsLogJobSchedulerUpload","defaultStatus":true,"line":28,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether various metrics services (UMA, UKM, etc.) should upload logs through a JobScheduler on Android."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"MetricsLogJobSchedulerUploadBackoffOnStopTask","variable":"kMetricsLogJobSchedulerUploadBackoffOnStopTask","defaultStatus":false,"line":30,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, when the Android OS requests a background upload task to be stopped (e.g. due to the device being under pressure), the ReportingService will increase the backoff interval for the next upload. Only has an effect if `kMetricsLogJobSchedulerUpload` above is also enabled."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"MetricsLogTrimming","variable":"kMetricsLogTrimming","defaultStatus":true,"line":22,"comment":"Controls trimming for metrics logs. This feature allows tuning of the log trimming behaviour via serverside parameters. Do not remove. See components/metrics/metrics_service_client.cc and components/metrics/unsent_log_store.cc. Note: On Android WebView, while this feature still controls whether trimming is enabled, a separate feature controls the trimming parameters themselves, as they have different defaults than Android Chrome. See: android_webview/browser/metrics/aw_metrics_service_client.cc"},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"Microsoft365ManifestOverride","variable":"kMicrosoft365ManifestOverride","defaultStatus":true,"line":232,"comment":"Controls whether the PWA manifest on Microsoft 365 Urls should be overridden with a static PWA manifest id."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"Microsoft365ScopeExtensions","variable":"kMicrosoft365ScopeExtensions","defaultStatus":true,"line":190,"comment":"Controls the use of scope extensions for the Microsoft 365 PWA from finch as a fallback."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MicrosoftOneDriveIntegrationForEnterprise","variable":"kMicrosoftOneDriveIntegrationForEnterprise","defaultStatus":true,"line":248,"comment":"Enables the Microsoft OneDrive integration workflow for enterprise users to cloud integration support."},{"type":"feature","file":"media/midi/midi_switches.cc","name":"MidiManagerWinrt","variable":"kMidiManagerWinrt","defaultStatus":false,"line":12,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"MigrateAccountManagerDelegate","variable":"kMigrateAccountManagerDelegate","defaultStatus":false,"line":674,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled a new library is used to fetch accounts via AccountManagerAccountManagerDelegate"},{"type":"feature","file":"components/browser_sync/browser_sync_switches.cc","name":"MigrateOutOfSyncSetupIncompleteState","variable":"kMigrateOutOfSyncSetupIncompleteState","defaultStatus":true,"line":39,"buildflags":["!BUILDFLAG(IS_CHROMEOS)"],"comment":"Kill-switch for migration flow of all the users in the sync setup incomplete state to signed-in history-off state."},{"type":"feature","file":"components/browser_sync/browser_sync_switches.cc","name":"MigrateSyncingUserToSignedIn","variable":"kMigrateSyncingUserToSignedIn","defaultStatus":[{"condition":"BUILDFLAG(IS_IOS) || BUILDFLAG(IS_ANDROID)","value":true}],"line":12,"comment":"If enabled, eligible users (i.e. those for which Sync-the-feature is active) are migrated, at browser startup, to the signed-in non-syncing state."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MlUrlPiecewiseMappedSearchBlending","variable":"kMlUrlPiecewiseMappedSearchBlending","defaultStatus":false,"line":270,"comment":"If enabled, (floating-point) ML model scores are mapped to (integral) relevance scores by means of a piecewise function. This allows for the integration of URL model scores with search traditional scores."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MlUrlScoreCaching","variable":"kMlUrlScoreCaching","defaultStatus":false,"line":274,"comment":"If enabled, the ML scoring service will make use of an in-memory ML score cache in order to speed up the overall scoring process."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MlUrlScoring","variable":"kMlUrlScoring","defaultStatus":false,"line":278,"comment":"If enabled, runs the ML scoring model to assign new relevance scores to the URL suggestions and reranks them."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MlUrlSearchBlending","variable":"kMlUrlSearchBlending","defaultStatus":false,"line":282,"comment":"If enabled, specifies how URL model scores integrate with search traditional scores."},{"type":"feature","file":"components/personal_context/core/personal_context_debug_features.cc","name":"MockPersonalContextResult","variable":"kMockPersonalContextResult","defaultStatus":false,"line":29,"comment":"When enabled, `AtMemoryQueryService` will always return local suggestions for the configured `MemoryDataType` (obtained via `AutofillDataProvider`) regardless of the query."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"ModelExecutionCapabilityDisable","variable":"kModelExecutionCapabilityDisable","defaultStatus":false,"line":44,"comment":"Feature for disabling the model execution user account capability check."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"ModelQualityLogging","variable":"kModelQualityLogging","defaultStatus":true,"line":84,"comment":"Kill switch for disabling model quality logging."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ModifierSplit","variable":"kModifierSplit","defaultStatus":true,"line":1250,"comment":"Enables to split left and right modifiers in settings."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MostVisitedTilesHorizontalRenderGroup","variable":"kMostVisitedTilesHorizontalRenderGroup","defaultStatus":false,"line":164,"comment":"If enabled, makes Most Visited Tiles a Horizontal render group. Horizontal render group decomposes aggregate suggestions (such as old Most Visited Tiles), expecting individual AutocompleteMatch entry for every element in the carousel."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MouseImposterCheck","variable":"kMouseImposterCheck","defaultStatus":true,"line":1253,"comment":"Enables to split left and right modifiers in settings."},{"type":"feature","file":"media/base/media_switches.cc","name":"MP4TimedMetadataTrack","variable":"kMP4TimedMetadataTrack","defaultStatus":true,"line":1786,"comment":"Flag to enable or disable parsing of MP4 timed metadata tracks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"MultiCalendarSupport","variable":"kMultiCalendarSupport","defaultStatus":true,"line":1279,"comment":"Enables events from multiple calendars to be displayed in the Quick Settings Calendar."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"MultiCaptureReworkedUsageIndicators","variable":"kMultiCaptureReworkedUsageIndicators","defaultStatus":true,"line":151,"comment":"Enables the reworked implementation of usage indicators for the `getAllScreensMedia` API."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"MultilineEditField","variable":"kMultilineEditField","defaultStatus":false,"line":390,"comment":"When enabled, unblocks omnibox height on small form factor devices, allowing users to type in multiline / longer text."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"MuteNotificationSnoozeAction","variable":"kMuteNotificationSnoozeAction","defaultStatus":false,"line":95,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Adds a \"Snooze\" action to mute notifications during screen sharing sessions."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"NativeBridgeToggleFeature","variable":"kNativeBridgeToggleFeature","defaultStatus":false,"line":213,"comment":"Toggles between native bridge implementations for ARC. Note, that we keep the original feature name to preserve corresponding metrics."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"NativeNotifications","variable":"kNativeNotifications","defaultStatus":true,"line":1356,"comment":"Enables the use of system notification centers instead of using the Message Center for displaying the toasts. The feature is hardcoded to enabled for Chrome OS."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NavigationConfidenceEpsilon","variable":"kNavigationConfidenceEpsilon","defaultStatus":false,"line":723,"comment":"Controls the configurablity of the navigation confidence noise level. If the feature is not enabled, then the epsilon value will be 1.1."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NavigationNetworkResponseQueue","variable":"kNavigationNetworkResponseQueue","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":731,"comment":"When NavigationNetworkResponseQueue is enabled, the browser will schedule some tasks related to navigation network responses in a kHigh priority queue."},{"type":"feature","file":"chrome/browser/navigation_predictor/navigation_predictor_features.cc","name":"NavigationPredictorPreconnectHoldback","variable":"kNavigationPredictorPreconnectHoldback","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false},{"condition":"!BUILDFLAG(IS_ANDROID)","value":true}],"line":12,"comment":"All features in alphabetical order. The features should be documented alongside the definition of their values in the .cc file."},{"type":"feature","file":"media/base/media_switches.cc","name":"NdkVideoEncodeAcceleratorBitrateLayering","variable":"kNdkVideoEncodeAcceleratorBitrateLayering","defaultStatus":false,"line":1285,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows setting SVC bitrate layers for NdkVideoEncodeAccelerator."},{"type":"feature","file":"media/base/media_switches.cc","name":"NdkVideoEncodeAcceleratorNativeSvc","variable":"kNdkVideoEncodeAcceleratorNativeSvc","defaultStatus":false,"line":1281,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows native temporal layer ID retrieval for NdkVideoEncodeAccelerator."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NearbyPresence","variable":"kNearbyPresence","defaultStatus":false,"line":1282,"comment":"Enables Nearby Presence for scanning and discovery of nearby devices."},{"type":"feature","file":"chrome/browser/nearby_sharing/common/nearby_share_features.cc","name":"NearbySharingRestrictToContacts","variable":"kNearbySharingRestrictToContacts","defaultStatus":true,"line":16,"comment":"Enables contact restriction when not in high-visibility mode."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"NearbySharingWebRtc","variable":"kNearbySharingWebRtc","defaultStatus":true,"line":27,"comment":"Enables use of WebRTC in Nearby Connections for Nearby Share."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"NearbySharingWifiDirect","variable":"kNearbySharingWifiDirect","defaultStatus":true,"line":30,"comment":"Enables use of WifiDirect in Nearby Share."},{"type":"feature","file":"components/cross_device/nearby/nearby_features.cc","name":"NearbySharingWifiLan","variable":"kNearbySharingWifiLan","defaultStatus":true,"line":33,"comment":"Enables use of WifiLan in Nearby Share."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NetworkAnnotationMonitoring","variable":"kNetworkAnnotationMonitoring","defaultStatus":true,"line":101,"comment":"This feature enables monitoring of first-party network requests in order to find possible violations. Example: A Chrome policy is set to disabled but the network request controlled by that policy is observed."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NetworkQualityEstimatorWebHoldback","variable":"kNetworkQualityEstimatorWebHoldback","defaultStatus":false,"line":517,"comment":"Puts network quality estimate related Web APIs in the holdback mode. When the holdback is enabled the related Web APIs return network quality estimate set by the experiment (regardless of the actual quality)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NetworkServiceInProcess","variable":"kNetworkServiceInProcess","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":740,"comment":"If the network service is enabled, runs it in process."},{"type":"feature","file":"components/user_education/common/user_education_features.cc","name":"NewBadgeTestFeature","variable":"kNewBadgeTestFeature","defaultStatus":false,"line":86},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"NewEvSignalsUnaffiliatedEnabled","variable":"kNewEvSignalsUnaffiliatedEnabled","defaultStatus":false,"line":71,"comment":"Feature flag for supporting the new private SecureConnect functions in unaffiliated contexts via the consent flow."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NewFilesPolicyUX","variable":"kNewFilesPolicyUX","defaultStatus":true,"line":2177,"comment":"Enables new UX for files policy restrictions on ChromeOS."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"NewGuestProfile","variable":"kNewGuestProfile","defaultStatus":true,"line":90,"comment":"Kill switch to disable the new guest profile implementation on CrOS that is consistent with desktop chrome.","todos":["TODO(crbug.com/40233408): Remove if the change is fully launched."]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"NewTabAddsToActiveGroup","variable":"kNewTabAddsToActiveGroup","defaultStatus":false,"line":406,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether to add new tabs to active tab group or to the end of the tab strip."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NewTabPageTriggerForPrefetch","variable":"kNewTabPageTriggerForPrefetch","defaultStatus":false,"line":109,"comment":"This flag is used for enabling New Tab Page triggered prefetch. See crbug.com/421941586 for more details of New Tab Page triggered prefetching."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NewTabPageTriggerForPrerender2","variable":"kNewTabPageTriggerForPrerender2","defaultStatus":true,"line":105,"comment":"This flag is used for enabling New Tab Page triggered prerendering. See crbug.com/40275094 for more details of New Tab Page triggered prerendering."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"NoAccountWebSignin","variable":"kNoAccountWebSignin","defaultStatus":false,"line":678,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"NonBlockingOsClipboardReads","variable":"kNonBlockingOsClipboardReads","defaultStatus":true,"line":452,"comment":"If enabled, clipboard read APIs are non-blocking on UI thread."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"NonDefaultGaiaOriginCheck","variable":"kNonDefaultGaiaOriginCheck","defaultStatus":true,"line":681},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"NonMilestoneUpdateToast","variable":"kNonMilestoneUpdateToast","defaultStatus":true,"line":387,"comment":"Controls whether to show a toast for Chrome non milestone update."},{"type":"feature","file":"url/url_features.cc","name":"NonSpecialLeadingSlashHandling","variable":"kNonSpecialLeadingSlashHandling","defaultStatus":true,"line":35,"comment":"When enabled, handle leading slashes in non-special URL paths according to the WHATWG URL Standard."},{"type":"feature","file":"components/password_manager/core/common/password_manager_features.cc","name":"NoPasswordSuggestionFiltering","variable":"kNoPasswordSuggestionFiltering","defaultStatus":false,"line":45,"comment":"Removes password suggestion filtering by username."},{"type":"feature","file":"media/base/media_switches.cc","name":"NoPauseMediaOnHeadphoneUnplug","variable":"kNoPauseMediaOnHeadphoneUnplug","defaultStatus":false,"line":1246,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, do not pause media when a headphone unplug event is received."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NoPreReadMainDll","variable":"kNoPreReadMainDll","defaultStatus":false,"line":204,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, child processes never pre-read the Chrome DLL."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NoPreReadMainDllIfSsd","variable":"kNoPreReadMainDllIfSsd","defaultStatus":true,"line":208,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, child processes don't pre-read the Chrome DLL if we believe the Chrome DLL is on an SSD (i.e. pre-read only on spinning disk)."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NoPreReadMainDllStartup","variable":"kNoPreReadMainDllStartup","defaultStatus":false,"line":217,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, the browser process suppresses pre-read in child processes shortly after browser startup, where \"shortly after\" is dictated by the feature param below. This is thought to be a productive strategy since the browser process will have recently pre-read the DLL during browser startup. In that case, the browser process has recently pre-read the DLL so pre-reading again is thought to be counter-productive (CPU consumption for no gains)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"NoReferrers","variable":"kNoReferrers","defaultStatus":false,"line":1374,"comment":"When kNoReferrers is enabled, most HTTP requests will provide empty referrers instead of their ordinary behavior."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"NoResetMetricsUploadBackoffOnForeground","variable":"kNoResetMetricsUploadBackoffOnForeground","defaultStatus":false,"line":25,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, disables the mechanism where when foregrounding, the ReportingService backoff will be reset so that uploads are scheduled normally again. Context: In crbug.com/420459511, it was discovered that starting from Android 15, apps cannot issue network requests from the background (they will fail). This resulted in the ReportingService being throttled due to the backoff logic, with uploads being scheduled very far ahead in the future (up to 24h). During this time, periodic ongoing logs stop getting created. Even if there are other scenarios where logs get created (upon backgrounding and foregrounding), those simply accumulate on disk since no logs are being uploaded. This can eventually lead to log trimming which in turn leads to data loss. Additional context: This feature is intended to disable this band-aid mechanism, as we've implemented a better solution through JobScheduler in crbug.com/445735421."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NoSelectionMenuCaching","variable":"kNoSelectionMenuCaching","defaultStatus":false,"line":750,"comment":"Feature which disables caching a previous selection menu object."},{"type":"feature","file":"content/public/common/content_features.cc","name":"NoStatePrefetchHoldback","variable":"kNoStatePrefetchHoldback","defaultStatus":false,"line":753,"comment":"Feature which holdbacks NoStatePrefetch on all surfaces."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NotificationCenterController","variable":"kNotificationCenterController","defaultStatus":false,"line":1289,"comment":"Extracts controller logic from child views of `NotificationCenterView` to place it in a new `NotificationCenterController` class."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NotificationExpansionAnimation","variable":"kNotificationExpansionAnimation","defaultStatus":false,"line":1292,"comment":"Enabled notification expansion animation."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NotificationLimit","variable":"kNotificationLimit","defaultStatus":true,"line":1285,"comment":"Enables a limit on the number of notifications that can show."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"NotificationOneTapUnsubscribeOnDesktop","variable":"kNotificationOneTapUnsubscribeOnDesktop","defaultStatus":false,"line":114,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Adds an \"Unsubscribe\" action to web push notifications that allows stopping notifications from a given origin with a single tap (with an option to undo)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NotificationScrollBar","variable":"kNotificationScrollBar","defaultStatus":false,"line":1296,"comment":"Enables notification scroll bar in UnifiedSystemTray."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"NotificationsIgnoreRequireInteraction","variable":"kNotificationsIgnoreRequireInteraction","defaultStatus":true,"line":105,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"NotificationsInContextMenu","variable":"kNotificationsInContextMenu","defaultStatus":false,"line":1299,"comment":"Enables notifications to be shown within context menus."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"NotificationWidthIncrease","variable":"kNotificationWidthIncrease","defaultStatus":true,"line":94,"comment":"Changes the ChromeOS notification width size from 360px to 400px for pop-up notifications and 344px to 400px for notifications in the message center."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"NoUndamagedOverlayPromotion","variable":"kNoUndamagedOverlayPromotion","defaultStatus":false,"line":209,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpAlphaBackgroundCollections","variable":"kNtpAlphaBackgroundCollections","defaultStatus":false,"line":64,"comment":"If enabled, alpha NTP backgrounds will show in Customize Chrome. This is a development switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpAnimatedCaret","variable":"kNtpAnimatedCaret","defaultStatus":true,"line":308,"comment":"If enabled, animates the AIM caret on the NTP."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpAnimatedDoodles","variable":"kNtpAnimatedDoodles","defaultStatus":true,"line":302,"comment":"If enabled, will support animated Doodles on the NTP."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpBackgroundImageErrorDetection","variable":"kNtpBackgroundImageErrorDetection","defaultStatus":false,"line":68,"comment":"If enabled, NTP background image links will be checked for HTTP status errors.\""},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpCalendarModule","variable":"kNtpCalendarModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":72,"comment":"If enabled, calendar module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpChromeCartModule","variable":"kNtpChromeCartModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":80,"comment":"If enabled, chrome cart module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpCustomizeChromeAutoOpen","variable":"kNtpCustomizeChromeAutoOpen","defaultStatus":true,"line":88,"comment":"If enabled, customization of Chrome will be promoted on the NTP."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpCustomizeWebUiAndroid","variable":"kNtpCustomizeWebUiAndroid","defaultStatus":false,"line":91,"comment":"If enabled, shows Customize Chrome button on Android."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDisableBrowserInitiatedLinks","variable":"kNtpDisableBrowserInitiatedLinks","defaultStatus":false,"line":96,"comment":"When enabled, ChromeContentBrowserClient::OverrideNavigationParams no longer treats NTP-sourced renderer-initiated link clicks as browser- initiated."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDoodleMurals","variable":"kNtpDoodleMurals","defaultStatus":false,"line":305,"comment":"If enabled, will support Doodle Murals on the NTP."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDriveModule","variable":"kNtpDriveModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":107,"comment":"If enabled, Google Drive module will be shown. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDriveModuleHistorySyncRequirement","variable":"kNtpDriveModuleHistorySyncRequirement","defaultStatus":true,"line":115,"comment":"If enabled, the NTP Drive module does not require sync."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDriveModuleLink","variable":"kNtpDriveModuleLink","defaultStatus":false,"line":119,"comment":"If enabled, the NTP Drive Module will link to the Drive page."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDriveModuleSegmentation","variable":"kNtpDriveModuleSegmentation","defaultStatus":false,"line":123,"comment":"If enabled, segmentation data will be collected to decide whether or not to show the Drive module."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpDummyModules","variable":"kNtpDummyModules","defaultStatus":false,"line":102,"buildflags":["!defined(OFFICIAL_BUILD)"],"comment":"If enabled, dummy modules will be shown. This is a development switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFeatureOptimizationDismissModulesRemoval","variable":"kNtpFeatureOptimizationDismissModulesRemoval","defaultStatus":true,"line":298,"comment":"If enabled, the dismiss module buttons will be removed from the NTP modules."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFeatureOptimizationModuleRemoval","variable":"kNtpFeatureOptimizationModuleRemoval","defaultStatus":false,"line":280,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, stale modules will be auto-removed from the NTP.","todos":["TODO(b/525245973): Enable on Android once customize chrome is implemented."]},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFeatureOptimizationModuleRemoval","variable":"kNtpFeatureOptimizationModuleRemoval","defaultStatus":true,"line":283,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFeatureOptimizationShortcutsRemoval","variable":"kNtpFeatureOptimizationShortcutsRemoval","defaultStatus":false,"line":290,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, stale shortcuts will be auto-removed from the NTP.","todos":["TODO(b/525245973): Enable on Android once customize chrome is implemented."]},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFeatureOptimizationShortcutsRemoval","variable":"kNtpFeatureOptimizationShortcutsRemoval","defaultStatus":true,"line":293,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpFooter","variable":"kNtpFooter","defaultStatus":true,"line":264,"comment":"If enabled, a footer will show on the NTP."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"NTPFooterBadgingPolicies","variable":"kNTPFooterBadgingPolicies","defaultStatus":true,"line":305,"comment":"Enables the management notice in the NTP footer if the custom policies are set. This acts as a kill switch for \"EnterpriseCustomLabelForBrowser\" and \"EnterpriseLogoUrlForBrowser\"."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpLogo","variable":"kNtpLogo","defaultStatus":true,"line":127,"comment":"If enabled, logo will be shown. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMicrosoftAuthenticationModule","variable":"kNtpMicrosoftAuthenticationModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":244,"comment":"If enabled, the Microsoft Authentication module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMiddleSlotPromo","variable":"kNtpMiddleSlotPromo","defaultStatus":true,"line":131,"comment":"If enabled, middle slot promo will be shown. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMiddleSlotPromoDismissal","variable":"kNtpMiddleSlotPromoDismissal","defaultStatus":true,"line":135,"comment":"If enabled, middle slot promo will be dismissed from New Tab Page until new promo message is populated"},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesDragAndDrop","variable":"kNtpModulesDragAndDrop","defaultStatus":false,"line":156,"comment":"If enabled, modules will be able to be reordered via dragging and dropping"},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModuleSignInRequirement","variable":"kNtpModuleSignInRequirement","defaultStatus":true,"line":165,"comment":"If enabled, makes browser sign-in requirement per-module, instead of a requirement for all modules."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesLoad","variable":"kNtpModulesLoad","defaultStatus":false,"line":161,"comment":"If enabled, modules will be loaded but not shown. This is useful to determine if a user would have seen modules in order to counterfactually log or trigger."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesLoadedWithOtherModulesMaxInstanceCount","variable":"kNtpModulesLoadedWithOtherModulesMaxInstanceCount","defaultStatus":false,"line":152,"comment":"Dummy feature to set param \"NtpModulesLoadedWithOtherModulesMaxInstanceCount\" This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesLoadTimeoutMilliseconds","variable":"kNtpModulesLoadTimeoutMilliseconds","defaultStatus":false,"line":139,"comment":"Dummy feature to set param \"NtpModulesLoadTimeoutMillisecondsParam\". This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesMaxColumnCount","variable":"kNtpModulesMaxColumnCount","defaultStatus":false,"line":148,"comment":"Dummy feature to set param \"NtpModulesMaxColumnCountParam\". This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpModulesOrder","variable":"kNtpModulesOrder","defaultStatus":false,"line":144,"comment":"Dummy feature to set param \"NtpModulesOrderParam\". This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMostRelevantTabResumptionAllowFaviconServerFallback","variable":"kNtpMostRelevantTabResumptionAllowFaviconServerFallback","defaultStatus":true,"line":210,"comment":"If enabled, the Tab Resumption module will be allowed to fallback to the favicon server when fetching favicons for displayed continuation suggestions."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMostRelevantTabResumptionModule","variable":"kNtpMostRelevantTabResumptionModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":201,"comment":"If enabled, the Tab Resumption module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpMostRelevantTabResumptionModuleFallbackToHost","variable":"kNtpMostRelevantTabResumptionModuleFallbackToHost","defaultStatus":true,"line":215,"comment":"If enabled, the Tab Resumption module will fallback to host url to find a favicon if there are none locally available."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpNextCanvasChip","variable":"kNtpNextCanvasChip","defaultStatus":false,"line":255,"comment":"If enabled, the Canvas action chip will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpNextFeatures","variable":"kNtpNextFeatures","defaultStatus":false,"line":252,"comment":"If enabled, the features of NTP Next (AI action chips etc.) will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpOneGoogleBar","variable":"kNtpOneGoogleBar","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":169,"comment":"If enabled, OneGoogleBar will be shown. Disabled on Android to save memory. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpOneGoogleBarAsyncBarParts","variable":"kNtpOneGoogleBarAsyncBarParts","defaultStatus":false,"line":261,"comment":"If enabled, the OGB loader will request for the async bar parts payload type."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpOutlookCalendarModule","variable":"kNtpOutlookCalendarModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":177,"comment":"If enabled, outlook calendar module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpScaledActionChips","variable":"kNtpScaledActionChips","defaultStatus":false,"line":186,"comment":"If enabled, scaled merchandising action chips (e.g., dynamic tool suggestions and resource pickers) will be shown on the NTP."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpSharepointModule","variable":"kNtpSharepointModule","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":189,"comment":"If enabled, sharepoint module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpShortcuts","variable":"kNtpShortcuts","defaultStatus":true,"line":198,"comment":"If enabled, shortcuts will be shown. This is a kill switch. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpShortcutsRedesign","variable":"kNtpShortcutsRedesign","defaultStatus":false,"line":314,"comment":"If enabled, the shortcuts will be redesigned."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpSimplificationBookmarkBar","variable":"kNtpSimplificationBookmarkBar","defaultStatus":false,"line":318,"comment":"If enabled, the bookmark bar may be auto-removed on the NTP and new visibility settings are added."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpStarterChip","variable":"kNtpStarterChip","defaultStatus":false,"line":258,"comment":"If enabled, the starter chip will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpTabGroupsModule","variable":"kNtpTabGroupsModule","defaultStatus":false,"line":267,"comment":"If enabled, tab groups module will be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpTabGroupsModuleZeroState","variable":"kNtpTabGroupsModuleZeroState","defaultStatus":false,"line":273,"comment":"If enabled, zero tab group card will be shown if the user doesn't have any tab groups."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpTabResumptionModuleCategories","variable":"kNtpTabResumptionModuleCategories","defaultStatus":false,"line":218},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpTabResumptionModuleTimeLimit","variable":"kNtpTabResumptionModuleTimeLimit","defaultStatus":false,"line":222,"comment":"Dummy feature to set how recent tabs must be to be shown."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpThreadsRail","variable":"kNtpThreadsRail","defaultStatus":false,"line":326,"comment":"If enabled, the Threads Rail will be shown on the left hand side of the NTP when the Composebox dialog is open."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpWallpaperSearchButton","variable":"kNtpWallpaperSearchButton","defaultStatus":false,"line":227,"comment":"If enabled, shows entry point on New Tab Page for Customize Chrome Side Panel Wallpaper Search."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpWallpaperSearchButtonAnimation","variable":"kNtpWallpaperSearchButtonAnimation","defaultStatus":false,"line":230,"comment":"If enabled, animates New Tab Page's Wallpaper Search Button."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpWallpaperSearchButtonAnimationShownThreshold","variable":"kNtpWallpaperSearchButtonAnimationShownThreshold","defaultStatus":false,"line":240,"comment":"Dummy feature to set param \"NtpWallpaperSearchButtonAnimationShownThreshold\". This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/search/ntp_features.cc","name":"NtpWallpaperSearchButtonHideCondition","variable":"kNtpWallpaperSearchButtonHideCondition","defaultStatus":false,"line":235,"comment":"Dummy feature to set param \"NtpWallpaperSearchButtonHideCondition\". This is used for an emergency Finch param. Keep indefinitely."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumNtpZpsRecentSearches","variable":"kNumNtpZpsRecentSearches","defaultStatus":false,"line":349,"comment":"Omnibox suggestions tuning"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumNtpZpsTrendingSearches","variable":"kNumNtpZpsTrendingSearches","defaultStatus":false,"line":352},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumSrpZpsRecentSearches","variable":"kNumSrpZpsRecentSearches","defaultStatus":false,"line":364},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumSrpZpsRelatedSearches","variable":"kNumSrpZpsRelatedSearches","defaultStatus":false,"line":367},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumWebZpsMostVisitedUrls","variable":"kNumWebZpsMostVisitedUrls","defaultStatus":false,"line":361},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumWebZpsRecentSearches","variable":"kNumWebZpsRecentSearches","defaultStatus":false,"line":355},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"NumWebZpsRelatedSearches","variable":"kNumWebZpsRelatedSearches","defaultStatus":false,"line":358},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OemAppsMustUpdateFromWebstore","variable":"kOemAppsMustUpdateFromWebstore","defaultStatus":true,"line":1303,"comment":"Kill switch for https://crbug.com/502771678. Forces OEM apps to receive updates from the Chrome Web Store, which is the safe default."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"OfficeNavigationCapturingReimpl","variable":"kOfficeNavigationCapturingReimpl","defaultStatus":true,"line":98,"comment":"Controls enabling / disabling the Navigation Capturing Reimpl for the Office PWA."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"OfflineAutoFetch","variable":"kOfflineAutoFetch","defaultStatus":true,"line":1377,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"OidcAuthHeaderInterception","variable":"kOidcAuthHeaderInterception","defaultStatus":true,"line":28,"comment":"Controls whether OIDC interception from navigation auth header instead of the usual URL params is permitted. This flag only works on Chrome Canary or Dev."},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"OidcAuthProfileManagement","variable":"kOidcAuthProfileManagement","defaultStatus":true,"line":15,"comment":"Controls whether OIDC-response profile management is enabled."},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"OidcAuthResponseInterception","variable":"kOidcAuthResponseInterception","defaultStatus":true,"line":17,"comment":"Controls whether OIDC profile enrollment can be started from navigation response in addition to redirections."},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"OidcEnrollmentAuthSource","variable":"kOidcEnrollmentAuthSource","defaultStatus":false,"line":26,"comment":"Controls whether to add a list of hosts that are eligible for OIDC profile enrollments."},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"OidcEnrollmentTimeout","variable":"kOidcEnrollmentTimeout","defaultStatus":true,"line":19,"comment":"Controls whether OIDC enrollment process can time out (and after how long)."},{"type":"feature","file":"components/enterprise/platform_auth/platform_auth_features.cc","name":"OktaSSO","variable":"kOktaSSO","defaultStatus":true,"line":10,"comment":"Enables native SSO support with Okta services."},{"type":"feature","file":"ui/display/display_features.cc","name":"OledScaleFactorEnabled","variable":"kOledScaleFactorEnabled","defaultStatus":false,"line":57,"comment":"Enable display scale factor meant for OLED display."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxAimDeferShowUntilVisualStateReady","variable":"kOmniboxAimDeferShowUntilVisualStateReady","defaultStatus":false,"line":212,"comment":"When enabled, the AIM WebUI popup will defer showing until the WebUI has painted a clean frame, avoiding the issue of the popup being shown with a stale frame."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxAimDetachWebContentsOnHide","variable":"kOmniboxAimDetachWebContentsOnHide","defaultStatus":false,"line":221,"comment":"When enabled, the AIM WebUI popup will detach its web contents when hidden."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxAimImageDownscaling","variable":"kOmniboxAimImageDownscaling","defaultStatus":false,"line":324,"comment":"When enabled, AIM image attachments will be downscaled on load before reaching the C++ side."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"OmniboxAnimatedCaret","variable":"kOmniboxAnimatedCaret","defaultStatus":false,"line":94,"comment":"Caret animation for omnibox"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxAppendInvocationSource","variable":"kOmniboxAppendInvocationSource","defaultStatus":false,"line":314,"comment":"When enabled, appends the invocation source parameter to search URLs."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxAsyncViewInflation","variable":"kOmniboxAsyncViewInflation","defaultStatus":false,"line":317,"comment":"Enable asynchronous Omnibox/Suggest view inflation."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxCrossDeviceTabZeroSuggest","variable":"kOmniboxCrossDeviceTabZeroSuggest","defaultStatus":false,"line":82,"comment":"Enables showing tabs from other devices in zero-prefix suggest."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxDebugLogs","variable":"kOmniboxDebugLogs","defaultStatus":false,"line":436,"comment":"Enable debug logs that can be read from an internals page."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"OmniboxEverywhere","variable":"kOmniboxEverywhere","defaultStatus":false,"line":83,"comment":"If enabled, enables OmniboxEverywhere popup triggered by shortcut."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxFuseboxAsyncInflation","variable":"kOmniboxFuseboxAsyncInflation","defaultStatus":false,"line":320,"comment":"Enable asynchronous Fusebox view inflation."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxItemDecoration","variable":"kOmniboxItemDecoration","defaultStatus":false,"line":341,"comment":"If enabled, omnibox group separators and headers will use item decorations."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxListMenuContextMenu","variable":"kOmniboxListMenuContextMenu","defaultStatus":false,"line":503,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, the UrlBar context menu will use ListMenu instead of MenuItem."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxMobileParityUpdate","variable":"kOmniboxMobileParityUpdate","defaultStatus":false,"line":331,"comment":"Updates various NTP/Omnibox assets and descriptions for visual alignment on iOS."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxMobileParityUpdateV2","variable":"kOmniboxMobileParityUpdateV2","defaultStatus":false,"line":335,"comment":"Updates various NTP/Omnibox assets and descriptions for visual alignment on Android and iOS, V2."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxMultimodalInput","variable":"kOmniboxMultimodalInput","defaultStatus":false,"line":195,"comment":"When enabled, the multimodal input button is shown in the Omnibox."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxRemoveSuggestionsFromClipboard","variable":"kOmniboxRemoveSuggestionsFromClipboard","defaultStatus":false,"line":35,"comment":"Feature used to allow users to remove suggestions from clipboard."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"OmniboxResizingPrioritization","variable":"kOmniboxResizingPrioritization","defaultStatus":true,"line":548},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxSiteSearch","variable":"kOmniboxSiteSearch","defaultStatus":false,"line":295,"comment":"Site search/Keyword mode related features."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxTouchDownTriggerForPrefetch","variable":"kOmniboxTouchDownTriggerForPrefetch","defaultStatus":false,"line":292,"comment":"Allows for touch down events to send a signal to |SearchPrefetchService| to start prefetching the suggestion. The feature only applies to search suggestions and only controls whether the signal is sent."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxWebUIDeferShowUntilVisualStateReady","variable":"kOmniboxWebUIDeferShowUntilVisualStateReady","defaultStatus":false,"line":216,"comment":"When enabled, the Omnibox WebUI popup will defer showing until the WebUI has painted a clean frame, avoiding the issue of the popup being shown with a stale frame."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxWebUIDetachWebContentsOnHide","variable":"kOmniboxWebUIDetachWebContentsOnHide","defaultStatus":false,"line":224,"comment":"When enabled, the Omnibox WebUI popup will detach its web contents when hidden."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxWebUIPopupMarkAsHidden","variable":"kOmniboxWebUIPopupMarkAsHidden","defaultStatus":false,"line":228,"comment":"When enabled, the Omnibox WebUI popup will mark its web contents as hidden when hidden, to unlock frames from compositor cache."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxWebUIPopupStabilizeStartupShow","variable":"kOmniboxWebUIPopupStabilizeStartupShow","defaultStatus":false,"line":219,"comment":"If enabled, stabilizes the popup showing behavior on startup by forcing layout with a 1px height and hiding it initially to avoid visual artifacts."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OmniboxXGeoPermissionGranularity","variable":"kOmniboxXGeoPermissionGranularity","defaultStatus":false,"line":338,"comment":"If enabled, the X-Geo header will include permission granularity."},{"type":"feature","file":"ios/chrome/browser/omnibox/public/omnibox_ui_features.cc","name":"OmniboxZPSOnClobber","variable":"kOmniboxZPSOnClobber","defaultStatus":true,"line":15,"comment":"Kill switch for ZPS suggestions on clobber in the composebox."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OnClobberSuggestIOS","variable":"kOnClobberSuggestIOS","defaultStatus":false,"line":64,"comment":"Enables on-clobber suggestions on iOS."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"OnConnectNative","variable":"kOnConnectNative","defaultStatus":false,"line":1381,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OnDeviceAppControls","variable":"kOnDeviceAppControls","defaultStatus":true,"line":23,"comment":"Enables the UI for additional on-device parental controls that can be used to enable or block ARC++ apps."},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"OnDeviceCategoryClassifier","variable":"kOnDeviceCategoryClassifier","defaultStatus":false,"line":140},{"type":"feature","file":"components/history_clusters/core/on_device_clustering_features.cc","name":"OnDeviceClustering","variable":"kOnDeviceClustering","defaultStatus":true,"line":17,"comment":"Enables configuring the on-device clustering backend."},{"type":"feature","file":"components/history_clusters/core/on_device_clustering_features.cc","name":"OnDeviceClusteringBlocklists","variable":"kOnDeviceClusteringBlocklists","defaultStatus":true,"line":21,"comment":"Specifies various blocklists for on-device clustering backend."},{"type":"feature","file":"components/history_clusters/core/on_device_clustering_features.cc","name":"OnDeviceClusteringKeywordFiltering","variable":"kOnDeviceClusteringKeywordFiltering","defaultStatus":true,"line":25,"comment":"Specifies how keywords get filtered and added to a cluster."},{"type":"feature","file":"components/history_clusters/core/on_device_clustering_features.cc","name":"OnDeviceClusteringVisitRanking","variable":"kOnDeviceClusteringVisitRanking","defaultStatus":false,"line":29,"comment":"Specifies how visits within clusters are ranked."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OnDeviceGrammarCheck","variable":"kOnDeviceGrammarCheck","defaultStatus":true,"line":1306,"comment":"Controls whether to enable on-device grammar check service."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OnDeviceHeadProviderIncognito","variable":"kOnDeviceHeadProviderIncognito","defaultStatus":false,"line":117,"comment":"On Device Suggest."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OnDeviceHeadProviderNonIncognito","variable":"kOnDeviceHeadProviderNonIncognito","defaultStatus":false,"line":120},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OnDeviceModelBackgroundDownload","variable":"kOnDeviceModelBackgroundDownload","defaultStatus":false,"line":149},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OnDeviceModelFetchPerformanceClassEveryStartup","variable":"kOnDeviceModelFetchPerformanceClassEveryStartup","defaultStatus":false,"line":120,"comment":"Whether performance class should be fetched each startup or just after a version update."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OnDeviceModelPerformanceParams","variable":"kOnDeviceModelPerformanceParams","defaultStatus":true,"line":128},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OnDeviceSpeechRecognition","variable":"kOnDeviceSpeechRecognition","defaultStatus":false,"line":1310,"comment":"Whether the device supports on-device speech recognition. Forwarded to LaCrOS as BrowserInitParams::is_ondevice_speech_supported."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OnDeviceTailEnableEnglishModel","variable":"kOnDeviceTailEnableEnglishModel","defaultStatus":false,"line":126},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OnDeviceTailModel","variable":"kOnDeviceTailModel","defaultStatus":false,"line":123},{"type":"feature","file":"media/base/media_switches.cc","name":"OnDeviceWebSpeech","variable":"kOnDeviceWebSpeech","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":939,"comment":"Enables the On-Device Web Speech feature on supported devices."},{"type":"feature","file":"media/base/media_switches.cc","name":"OnDeviceWebSpeechGeminiNano","variable":"kOnDeviceWebSpeechGeminiNano","defaultStatus":false,"line":948,"comment":"Enables on-device speech recognition using on-device Gemini Nano."},{"type":"feature","file":"media/base/media_switches.cc","name":"OnDeviceWebSpeechSmallExpertModel","variable":"kOnDeviceWebSpeechSmallExpertModel","defaultStatus":false,"line":951,"comment":"Enables on-device speech recognition using on-device TinyGemma."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OneDriveUploadImmediateReauth","variable":"kOneDriveUploadImmediateReauth","defaultStatus":true,"line":1330,"comment":"Whether the OneDrive upload flow should immediately prompt the user to re-authenticate without first showing a notification."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OngoingProcesses","variable":"kOngoingProcesses","defaultStatus":true,"line":1334,"comment":"Whether the new UI for pinned notifications will be enabled. go/ongoing-ui"},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"OnlyUseWindowResizeHelperOnResize","variable":"kOnlyUseWindowResizeHelperOnResize","defaultStatus":false,"line":81,"buildflags":["BUILDFLAG(IS_MAC)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OnTaskStatusCheck","variable":"kOnTaskStatusCheck","defaultStatus":true,"line":164,"comment":"Enables or disables OnTask status check."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeAddUserDuringEnrollment","variable":"kOobeAddUserDuringEnrollment","defaultStatus":false,"line":1338,"comment":"If enabled, enrollment screen will allow for automatically adding the authenticated user to the device."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeAutoEnrollmentCheckForced","variable":"kOobeAutoEnrollmentCheckForced","defaultStatus":true,"line":1397,"comment":"Enables the enforcement of AutoEnrollment check in OOBE."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeChoobe","variable":"kOobeChoobe","defaultStatus":true,"line":1341,"comment":"If enabled, CHOOBE Screen will be shown during the new user onboarding flow."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeCrosEvents","variable":"kOobeCrosEvents","defaultStatus":true,"line":1344,"comment":"If enabled, CrOS events for OOBE and onboarding flow will be recorded."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeDisplaySize","variable":"kOobeDisplaySize","defaultStatus":true,"line":1366},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeInputMethods","variable":"kOobeInputMethods","defaultStatus":false,"line":1369,"comment":"If enabled, InputMethodsScreen will be shown in CHOOBE."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeJelly","variable":"kOobeJelly","defaultStatus":true,"line":1375,"comment":"Enables OOBE Jelly features."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeJellyModal","variable":"kOobeJellyModal","defaultStatus":true,"line":1378,"comment":"Enables OOBE Jelly modal features."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobePerksDiscovery","variable":"kOobePerksDiscovery","defaultStatus":true,"line":1381,"comment":"Enables OOBE perks discovery feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobePersonalizedOnboarding","variable":"kOobePersonalizedOnboarding","defaultStatus":true,"line":1348,"comment":"If enabled , Personalized Onboarding + App Recommendations will be shown if eligible during user onboarding flow."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobePreConsentMetrics","variable":"kOobePreConsentMetrics","defaultStatus":true,"line":1351,"comment":"If enabled, Pre-consent metrics functionality is enabled during OOBE."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeQuickStartOnLoginScreen","variable":"kOobeQuickStartOnLoginScreen","defaultStatus":false,"line":1394,"comment":"Enables or disables the OOBE QuickStart flow on the login screen."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeSkipArcAppsOn4GbDevices","variable":"kOobeSkipArcAppsOn4GbDevices","defaultStatus":false,"line":1355,"comment":"If enabled, skips ARC apps on 4GiB devices in OOBE personalized recommend apps screen."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeSoftwareUpdate","variable":"kOobeSoftwareUpdate","defaultStatus":true,"line":1358,"comment":"If enabled, Consumer Software Screen will be shown during OOBE."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeSplitModifierKeyboardInfo","variable":"kOobeSplitModifierKeyboardInfo","defaultStatus":true,"line":1372,"comment":"If enabled, SplitModifierKeyboardInfoScreen will be shown in OOBE."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OobeTouchpadScroll","variable":"kOobeTouchpadScroll","defaultStatus":true,"line":1362,"comment":"If enabled, TouchPadScreen will be shown in CHOOBE. enabling this without enabling OobeChoobe flag will have no effect"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"OomIntervention","variable":"kOomIntervention","defaultStatus":true,"line":1386,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the OOM intervention."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"OpenDownloadInFilesAppIfNoHandlerFound","variable":"kOpenDownloadInFilesAppIfNoHandlerFound","defaultStatus":[{"condition":"BUILDFLAG(IS_DESKTOP_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_DESKTOP_ANDROID)","value":false}],"line":82,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to open the downloaded file in Files app if cannot open in Chrome."},{"type":"feature","file":"media/base/media_switches.cc","name":"OpenH264SoftwareEncoder","variable":"kOpenH264SoftwareEncoder","defaultStatus":true,"line":1354,"buildflags":["BUILDFLAG(ENABLE_OPENH264)"],"comment":"Run-time feature for OpenH264 software encoder."},{"type":"feature","file":"ui/display/display_features.cc","name":"OpsDisplayScaleFactor","variable":"kOpsDisplayScaleFactor","defaultStatus":false,"line":107,"comment":"Open Pluggable Specification (OPS) is a special industry standard with slot-in computing modules."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideBypassFormsClassificationAuth","variable":"kOptimizationGuideBypassFormsClassificationAuth","defaultStatus":false,"line":180},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideBypassPasswordChangeAuth","variable":"kOptimizationGuideBypassPasswordChangeAuth","defaultStatus":false,"line":183},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideFetchingForSRP","variable":"kOptimizationGuideFetchingForSRP","defaultStatus":true,"line":79,"comment":"Killswitch for fetching on search results from a remote Optimization Guide Service."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideIconView","variable":"kOptimizationGuideIconView","defaultStatus":false,"line":170},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideMetadataValidation","variable":"kOptimizationGuideMetadataValidation","defaultStatus":false,"line":68,"comment":"Enables the validation of optimization guide metadata."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideModelExecution","variable":"kOptimizationGuideModelExecution","defaultStatus":true,"line":94,"comment":"Whether to enable model execution."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideOnDeviceModel","variable":"kOptimizationGuideOnDeviceModel","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true}],"line":98,"comment":"Whether to use the on device model service in optimization guide."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuidePredictionModelKillswitch","variable":"kOptimizationGuidePredictionModelKillswitch","defaultStatus":false,"line":90,"comment":"An emergency kill switch feature to stop serving certain model versions per optimization target. This is useful in exceptional situations when a bad model version got served that lead to crashes or critical failures, and an immediate remedy is needed to stop serving those versions."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationGuideProactivePersonalizedHintsFetching","variable":"kOptimizationGuideProactivePersonalizedHintsFetching","defaultStatus":false,"line":177,"comment":"Enables proactively sending GAIA information to the Optimization Guide Service."},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"OptimizationGuideUseContinueOnShutdownForPageContentAnnotations","variable":"kOptimizationGuideUseContinueOnShutdownForPageContentAnnotations","defaultStatus":false,"line":112},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationHints","variable":"kOptimizationHints","defaultStatus":true,"line":56,"comment":"Enables the syncing of the Optimization Hints component, which provides hints for what optimizations can be applied on a page load."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OptimizationTargetPrediction","variable":"kOptimizationTargetPrediction","defaultStatus":true,"line":59,"comment":"Enables the prediction of optimization targets."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"OptimizeWebRequestProxy","variable":"kOptimizeWebRequestProxy","defaultStatus":true,"line":247,"comment":"When enabled, optimizes WebRequest proxying by strictly limiting it to requests that are subject to interception. This ensures that the 'webview' permission only triggers proxying for its own guest frames (e.g., <webview> or Controlled Frame), rather than globally proxying all requests. This avoids unnecessary performance overhead and restores navigation optimizations like preconnect."},{"type":"feature","file":"content/public/common/content_features.cc","name":"OptimizeWebRequestProxyForServiceWorkerAutoPreload","variable":"kOptimizeWebRequestProxyForServiceWorkerAutoPreload","defaultStatus":false,"line":1009,"comment":"Improve ServiceWorkerAutoPreload coverage by using more accurate web request proxy detection. If enabled, ServiceWorkerAutoPreload will not start if any installed extension has the `webRequest` or `declarativeNetRequest` permission, or if the request is initiated by <webview>. If not enabled, ServiceWorkerAutoPreload will not start if any installed extension has the `webRequest`, `declarativeNetRequest`, or `webview` permission. On Desktop platforms, there are often default extensions with the `webview` permission, meaning ServiceWorkerAutoPreload is almost always not enabled."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"Orca","variable":"kOrca","defaultStatus":true,"line":102,"comment":"Controls enabling / disabling the orca feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaAfrikaans","variable":"kOrcaAfrikaans","defaultStatus":true,"line":1444,"comment":"Enables or disables Africaans support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaArc","variable":"kOrcaArc","defaultStatus":true,"line":1400,"comment":"Enables or disables Orca for ARC apps."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaDanish","variable":"kOrcaDanish","defaultStatus":true,"line":1447,"comment":"Enables or disables Danish support for Orca."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"OrcaDogfood","variable":"kOrcaDogfood","defaultStatus":false,"line":105,"comment":"Controls enabling / disabling the orca feature for dogfood population."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaDraggingSupport","variable":"kOrcaDraggingSupport","defaultStatus":true,"line":1483,"comment":"Enables or disables Orca dragging support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaDutch","variable":"kOrcaDutch","defaultStatus":true,"line":1450,"comment":"Enables or disables Dutch support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaElaborate","variable":"kOrcaElaborate","defaultStatus":true,"line":1403,"comment":"Enables or disables elaborate for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaEmojify","variable":"kOrcaEmojify","defaultStatus":true,"line":1406,"comment":"Enables or disables emojify for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaFinnish","variable":"kOrcaFinnish","defaultStatus":true,"line":1453,"comment":"Enables or disables Finnish support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaForceFetchContextOnGetEditorPanelContext","variable":"kOrcaForceFetchContextOnGetEditorPanelContext","defaultStatus":true,"line":1489,"comment":"Enables or disables Orca on Workspace."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaFormalize","variable":"kOrcaFormalize","defaultStatus":true,"line":1414,"comment":"Enables or disables formalize for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaForManagedUsers","variable":"kOrcaForManagedUsers","defaultStatus":true,"line":1409,"comment":"Enables or disables Orca for managed users."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaFrench","variable":"kOrcaFrench","defaultStatus":true,"line":1456,"comment":"Enables or disables French support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaGerman","variable":"kOrcaGerman","defaultStatus":true,"line":1459,"comment":"Enables or disables German support for Orca."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"OrcaInternationalize","variable":"kOrcaInternationalize","defaultStatus":false,"line":108,"comment":"Enables or disables Orca internationalization."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeElaborate","variable":"kOrcaInternationalizeElaborate","defaultStatus":true,"line":1426,"comment":"Enables or disables elaborate for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeEmojify","variable":"kOrcaInternationalizeEmojify","defaultStatus":true,"line":1429,"comment":"Enables or disables emojify for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeFormalize","variable":"kOrcaInternationalizeFormalize","defaultStatus":true,"line":1432,"comment":"Enables or disables formalize for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeProofread","variable":"kOrcaInternationalizeProofread","defaultStatus":true,"line":1435,"comment":"Enables or disables proofread for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeRephrase","variable":"kOrcaInternationalizeRephrase","defaultStatus":true,"line":1438,"comment":"Enables or disables rephrase for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaInternationalizeShorten","variable":"kOrcaInternationalizeShorten","defaultStatus":true,"line":1441,"comment":"Enables or disables shorten for internationalized Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaItalian","variable":"kOrcaItalian","defaultStatus":true,"line":1462,"comment":"Enables or disables Italian support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaJapanese","variable":"kOrcaJapanese","defaultStatus":true,"line":1465,"comment":"Enables or disables Japanese support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaNorwegian","variable":"kOrcaNorwegian","defaultStatus":true,"line":1468,"comment":"Enables or disables Norwegian support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaOnWorkspace","variable":"kOrcaOnWorkspace","defaultStatus":true,"line":1493,"comment":"If enabled, we force fetching input context"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaPolish","variable":"kOrcaPolish","defaultStatus":true,"line":1471,"comment":"Enables or disables Polish support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaPortugese","variable":"kOrcaPortugese","defaultStatus":true,"line":1474,"comment":"Enables or disables Portugese support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaProofread","variable":"kOrcaProofread","defaultStatus":true,"line":1417,"comment":"Enables or disables proofread for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaRephrase","variable":"kOrcaRephrase","defaultStatus":true,"line":1420,"comment":"Enables or disables rephrase for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaResizingSupport","variable":"kOrcaResizingSupport","defaultStatus":false,"line":1502,"comment":"Enables or disables Orca resizing support."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaServiceConnection","variable":"kOrcaServiceConnection","defaultStatus":true,"line":1496,"comment":"Enables or disables new Orca service connection logic."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaServiceProto","variable":"kOrcaServiceProto","defaultStatus":false,"line":1499,"comment":"Enables or disables proto-based Orca service communication logic."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaShorten","variable":"kOrcaShorten","defaultStatus":true,"line":1423,"comment":"Enables or disables shorten for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaSpanish","variable":"kOrcaSpanish","defaultStatus":true,"line":1477,"comment":"Enables or disables Spanish support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaSupportDemoMode","variable":"kOrcaSupportDemoMode","defaultStatus":true,"line":1505,"comment":"Enables or disables Orca on Demo mode."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaSwedish","variable":"kOrcaSwedish","defaultStatus":true,"line":1480,"comment":"Enables or disables Swedish support for Orca."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OrcaUseAccountCapabilities","variable":"kOrcaUseAccountCapabilities","defaultStatus":true,"line":1486,"comment":"Enables or disables Orca capability check."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"OrcaUseL10nStrings","variable":"kOrcaUseL10nStrings","defaultStatus":true,"line":111,"comment":"Controls enabling / disabling orca l10n strings."},{"type":"feature","file":"content/public/common/content_features.cc","name":"OriginIsolationHeader","variable":"kOriginIsolationHeader","defaultStatus":true,"line":761,"comment":"Controls the Origin-Agent-Cluster header. Tracking bug https://crbug.com/1042415; flag removal bug (for when this is fully launched) https://crbug.com/1148057. The name is \"OriginIsolationHeader\" because that was the old name when the feature was under development."},{"type":"feature","file":"content/public/common/content_features.cc","name":"OriginKeyedProcessesByDefault","variable":"kOriginKeyedProcessesByDefault","defaultStatus":false,"line":840,"comment":"Enables origin-keyed processes by default, unless origins opt out using Origin-Agent-Cluster: ?0. This feature only takes effect if the Blink feature OriginAgentClusterDefaultEnable is enabled, since origin-keyed processes require origin-agent-clusters."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"OSCryptAsyncAvailabilityInfoBar","variable":"kOSCryptAsyncAvailabilityInfoBar","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC)","value":true},{"condition":"!BUILDFLAG(IS_MAC)","value":false}],"line":556,"comment":"Whether or not OSCryptAsyncAvailabilityInfoBarDelegate is enabled. Currently only used on MacOS as that's the only platform we can be sure the user has an easy remedy. See crbug.com/493148224."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OsSyncAccessibilitySettingsBatch1","variable":"kOsSyncAccessibilitySettingsBatch1","defaultStatus":false,"line":1314,"comment":"Gates syncing of the first batch of visual accessibility settings so the rollout can be staged and rolled back independently if issues surface."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OsSyncAccessibilitySettingsBatch2","variable":"kOsSyncAccessibilitySettingsBatch2","defaultStatus":true,"line":1320,"comment":"Gates syncing of the second batch of accessibility settings (reduced animations and caption styling) so the rollout can proceed in small, reversible stages."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"OsSyncAccessibilitySettingsBatch3","variable":"kOsSyncAccessibilitySettingsBatch3","defaultStatus":false,"line":1325,"comment":"Gates syncing of the third batch of accessibility settings (screen + docked magnifiers and select-to-speak toggles) so rollout can proceed incrementally."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"OtpPhishGuard","variable":"kOtpPhishGuard","defaultStatus":true,"line":139,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables OTP phishing checks."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"OutOfProcessVideoDecoding","variable":"kOutOfProcessVideoDecoding","defaultStatus":false,"line":219,"comment":"When enabled, utility processes are spawned to perform hardware decode acceleration on behalf of ARC++/ARCVM instead of using the GPU process."},{"type":"feature","file":"media/base/media_switches.cc","name":"OverlayFullscreenVideo","variable":"kOverlayFullscreenVideo","defaultStatus":true,"line":361,"comment":"Only used for disabling overlay fullscreen (aka SurfaceView) in Clank."},{"type":"feature","file":"ui/native_theme/features/native_theme_features.cc","name":"OverlayScrollbar","variable":"kOverlayScrollbar","defaultStatus":false,"line":22,"comment":"Enables or disables overlay scrollbars in Blink (i.e. web content) on Aura or Linux. The status of native UI overlay scrollbars is determined in PlatformStyle::CreateScrollBar. Does nothing on Mac."},{"type":"feature","file":"ui/native_theme/features/native_theme_features.cc","name":"OverlayScrollbarFlashOnlyOnceVisibleOnViewport","variable":"kOverlayScrollbarFlashOnlyOnceVisibleOnViewport","defaultStatus":true,"line":32,"comment":"When enabled, scrollbars flash only once when a page is loaded or when they become visible on the viewport instead of flashing after every scroll update."},{"type":"feature","file":"ui/native_theme/features/native_theme_features.cc","name":"OverlayScrollbarFlashWhenMouseEnter","variable":"kOverlayScrollbarFlashWhenMouseEnter","defaultStatus":true,"line":36,"comment":"Enables will flash scrollbar when user move mouse enter a scrollable area."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"OverrideAndroidOmniboxSpareRendererDelay","variable":"kOverrideAndroidOmniboxSpareRendererDelay","defaultStatus":false,"line":248,"comment":"Override the delay to create a spare renderer when the omnibox is focused on Android."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"OverrideNumThreadsForModelExecution","variable":"kOverrideNumThreadsForModelExecution","defaultStatus":false,"line":74},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"OverridePrefetchOnSingleton","variable":"kOverridePrefetchOnSingleton","defaultStatus":false,"line":1392,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Changes behavior of App Launch Prefetch to ignore chrome browser launches after acquiry of the singleton."},{"type":"feature","file":"content/public/common/content_features.cc","name":"OverscrollHistoryNavigation","variable":"kOverscrollHistoryNavigation","defaultStatus":true,"line":764,"comment":"History navigation in response to horizontal overscroll (aka gesture-nav)."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"OzoneBubblesUsePlatformWidgets","variable":"kOzoneBubblesUsePlatformWidgets","defaultStatus":true,"line":134,"buildflags":["BUILDFLAG(IS_OZONE)"]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PageActionsMigration","variable":"kPageActionsMigration","defaultStatus":true,"line":335,"comment":"Controls whether the new page actions framework should be displaying page actions."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PageActionsPrioritySelector","variable":"kPageActionsPrioritySelector","defaultStatus":false,"line":375},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PageAllocatorRetryOnCommitFailure","variable":"kPageAllocatorRetryOnCommitFailure","defaultStatus":true,"line":353,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Whether to retry allocations when commit fails."},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageContentAnnotations","variable":"kPageContentAnnotations","defaultStatus":true,"line":103,"comment":"Enables page content to be annotated."},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageContentAnnotationsValidation","variable":"kPageContentAnnotationsValidation","defaultStatus":false,"line":105},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageContentCache","variable":"kPageContentCache","defaultStatus":false,"line":142},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageContentExtractionAllowOnDemandWithoutObservers","variable":"kPageContentExtractionAllowOnDemandWithoutObservers","defaultStatus":true,"line":124},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageContentExtractionUsingPageSettledMonitor","variable":"kPageContentExtractionUsingPageSettledMonitor","defaultStatus":false,"line":178},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageSettledMonitor","variable":"kPageSettledMonitor","defaultStatus":true,"line":156},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageSettledMonitorExcludeAdFrameLoading","variable":"kPageSettledMonitorExcludeAdFrameLoading","defaultStatus":false,"line":185},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"PageSettledMonitorSkipAwaitVisualStateForHiddenTabs","variable":"kPageSettledMonitorSkipAwaitVisualStateForHiddenTabs","defaultStatus":true,"line":188},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PageSpecificDataDialogRelatedInstalledAppsSection","variable":"kPageSpecificDataDialogRelatedInstalledAppsSection","defaultStatus":true,"line":326,"comment":"Controls whether the site-specific data dialog shows a related installed applications section."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"PageTextExtraction","variable":"kPageTextExtraction","defaultStatus":true,"line":63,"comment":"This feature flag does not turn off any behavior, it is only used for experiment parameters."},{"type":"feature","file":"ui/display/display_features.cc","name":"PanelSelfRefresh2","variable":"kPanelSelfRefresh2","defaultStatus":false,"line":79},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"ParallelDownloading","variable":"kParallelDownloading","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":13,"comment":"Whether a download can be handled by parallel jobs."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ParentAccessJelly","variable":"kParentAccessJelly","defaultStatus":false,"line":1509,"comment":"Enables Jelly colors and components to appear in the Parent Access Widget if jelly-colors is also enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"ParseSEIRecoveryPoints","variable":"kParseSEIRecoveryPoints","defaultStatus":true,"line":1125,"comment":"Causes the AVC parser to output Treats H.264 SEI recovery points with a `recovery_frame_cnt=0` as keyframes."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"PartialTranslateUseOnePlatformApi","variable":"kPartialTranslateUseOnePlatformApi","defaultStatus":false,"line":23,"comment":"Enables direct usage of oneplatform private translate API. If disabled (default), the Contextual Search infrastructure is used to perform partial translation. If enabled, the OnePlatform Translate API is called directly."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocAdjustSizeWhenInForeground","variable":"kPartitionAllocAdjustSizeWhenInForeground","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)","value":true}],"line":381,"comment":"When set, partitions use a larger ring buffer and free memory less aggressively when in the foreground."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocBackupRefPtr","variable":"kPartitionAllocBackupRefPtr","defaultStatus":[{"condition":"PA_BUILDFLAG(ENABLE_BACKUP_REF_PTR_FEATURE_FLAG)","value":true},{"condition":"!PA_BUILDFLAG(ENABLE_BACKUP_REF_PTR_FEATURE_FLAG)","value":false}],"line":160},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocDanglingPtr","variable":"kPartitionAllocDanglingPtr","defaultStatus":[{"condition":"PA_BUILDFLAG(ENABLE_DANGLING_RAW_PTR_FEATURE_FLAG)","value":true},{"condition":"!PA_BUILDFLAG(ENABLE_DANGLING_RAW_PTR_FEATURE_FLAG)","value":false}],"line":55,"comment":"See /docs/dangling_ptr.md"},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocEventuallyZeroFreedMemory","variable":"kPartitionAllocEventuallyZeroFreedMemory","defaultStatus":false,"line":155,"comment":"Eventually zero out most PartitionAlloc memory. This is not meant as a security guarantee, but to increase the compression ratio of PartitionAlloc's fragmented super pages."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocFreeWithSize","variable":"kPartitionAllocFreeWithSize","defaultStatus":true,"line":406,"comment":"Note: There are two ChromeOS platforms (OVIS & REX) that are disabled for this feature because of https://crbug.com/495493036."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocLargeEmptySlotSpanRing","variable":"kPartitionAllocLargeEmptySlotSpanRing","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)","value":true}],"line":90,"buildflags":["PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)"]},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocLargeThreadCacheSize","variable":"kPartitionAllocLargeThreadCacheSize","defaultStatus":true,"line":88,"buildflags":["PA_BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)"],"comment":"Use a larger maximum thread cache cacheable bucket size."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocMemoryReclaimer","variable":"kPartitionAllocMemoryReclaimer","defaultStatus":true,"line":308},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocMemoryTagging","variable":"kPartitionAllocMemoryTagging","defaultStatus":[{"condition":"PA_BUILDFLAG(USE_FULL_MTE) || BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!(PA_BUILDFLAG(USE_FULL_MTE) || BUILDFLAG(IS_ANDROID))","value":false}],"line":215},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocPermissiveMte","variable":"kPartitionAllocPermissiveMte","defaultStatus":[{"condition":"PA_BUILDFLAG(USE_FULL_MTE)","value":false},{"condition":"!PA_BUILDFLAG(USE_FULL_MTE)","value":true}],"line":267},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocSchedulerLoopQuarantine","variable":"kPartitionAllocSchedulerLoopQuarantine","defaultStatus":true,"line":127,"comment":"Enabled-by-default. Without proper `PartitionAllocSchedulerLoopQuarantineConfig` configuration, the feature remains effectively disabled."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocSortActiveSlotSpans","variable":"kPartitionAllocSortActiveSlotSpans","defaultStatus":false,"line":349,"comment":"Whether to sort the active slot spans in PurgeMemory()."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocSortSmallerSlotSpanFreeLists","variable":"kPartitionAllocSortSmallerSlotSpanFreeLists","defaultStatus":true,"line":345,"comment":"Whether to sort free lists for smaller slot spans in PurgeMemory()."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocStraightenLargerSlotSpanFreeLists","variable":"kPartitionAllocStraightenLargerSlotSpanFreeLists","defaultStatus":true,"line":323,"comment":"Whether to straighten free lists for larger slot spans in PurgeMemory() -> ... -> PartitionPurgeSlotSpan()."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocUnretainedDanglingPtr","variable":"kPartitionAllocUnretainedDanglingPtr","defaultStatus":true,"line":34},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocUseDenserDistribution","variable":"kPartitionAllocUseDenserDistribution","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_32_BITS)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_32_BITS))","value":true}],"line":285,"comment":"If enabled, switches the bucket distribution to a denser one. We enable this by default everywhere except for 32-bit Android, since we saw regressions there."},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocUsePriorityInheritanceLocks","variable":"kPartitionAllocUsePriorityInheritanceLocks","defaultStatus":false,"line":400,"buildflags":["PA_BUILDFLAG(ENABLE_PARTITION_LOCK_PRIORITY_INHERITANCE)"]},{"type":"feature","file":"base/allocator/partition_alloc_features.cc","name":"PartitionAllocWithAdvancedChecks","variable":"kPartitionAllocWithAdvancedChecks","defaultStatus":true,"line":102},{"type":"feature","file":"components/passage_embeddings/core/passage_embeddings_features.cc","name":"PassageEmbedder","variable":"kPassageEmbedder","defaultStatus":false,"line":24,"comment":"Used for creating `EmbedderService` and passage extraction in tab helper. It also hold the feature params used by `PassageEmbeddingsService` to run the passage embedder, but does not switch it off."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PassDeletionOriginToAndroidBackend","variable":"kPassDeletionOriginToAndroidBackend","defaultStatus":false,"line":145,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, DeletionOrigin is sent to Android Backend for password deletions."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordBlockOpaqueOrigins","variable":"kPasswordBlockOpaqueOrigins","defaultStatus":true,"line":142,"comment":"PasswordManagerClient::IsFillingEnabled returns `false` for opaque origins. Intended as a kill-switch."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"PasswordChangeSubmission","variable":"kPasswordChangeSubmission","defaultStatus":false,"line":25},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordCheckupPrototype","variable":"kPasswordCheckupPrototype","defaultStatus":false,"line":152,"comment":"Triggers password change glow invoking Glic from settings. This flag is only for the prototype version."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordDateLastFilled","variable":"kPasswordDateLastFilled","defaultStatus":false,"line":155,"comment":"Populate the `date_last_filled` timestamp for passwords."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordFormClientsideClassifier","variable":"kPasswordFormClientsideClassifier","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":157,"comment":"Enables running the clientside form classifier to parse password forms."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordFormGroupedAffiliations","variable":"kPasswordFormGroupedAffiliations","defaultStatus":false,"line":165,"comment":"Enables offering credentials for filling across grouped domains."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordManagerLogToTerminal","variable":"kPasswordManagerLogToTerminal","defaultStatus":false,"line":168,"comment":"Enables logging the content of chrome://password-manager-internals to the terminal."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordManualFallbackSecurityChecks","variable":"kPasswordManualFallbackSecurityChecks","defaultStatus":false,"line":170,"comment":"Performs additional security checks wrt. the triggering frame before adding the \"Select password\" entry to the context menu."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordSaveInContextErrorResolution","variable":"kPasswordSaveInContextErrorResolution","defaultStatus":false,"line":173,"comment":"When enabled, the user can resolve actionable errors in context during a password save flow."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PasswordSaveUpdateDropdownMenuExperiment","variable":"kPasswordSaveUpdateDropdownMenuExperiment","defaultStatus":false,"line":266,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables a split button for the \"Cancel\" action in the Password Save bubble."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PasswordStorePropagatesActionableErrors","variable":"kPasswordStorePropagatesActionableErrors","defaultStatus":true,"line":176,"comment":"When enabled, the password store triggers the `OnErrorStateChanged` notifications."},{"type":"feature","file":"media/base/media_switches.cc","name":"PauseBackgroundTimer","variable":"kPauseBackgroundTimer","defaultStatus":false,"line":369,"comment":"We plan to remove the background pause timer feature from WebMediaPlayerImpl. We received reports that suggest that this feature's codepath hasn't been exercised for a long time. This is a finch killswitch to rollback to the previous behavior if we find any problems while disabling this feature."},{"type":"feature","file":"media/base/media_switches.cc","name":"PauseMediaOnSystemSleepAndroid","variable":"kPauseMediaOnSystemSleepAndroid","defaultStatus":false,"line":1242,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Pause media when a system sleep/suspension is detected."},{"type":"feature","file":"media/base/media_switches.cc","name":"PauseMutedBackgroundAudio","variable":"kPauseMutedBackgroundAudio","defaultStatus":true,"line":1750,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether audio is permitted to play if it's inaudible on a background tab. This is separate to the kRenderMutedAudio flag, which routes decoded audio into nowhere if the media is playing back. This flag instead _pauses_ playback when the media goes to background to avoid wasting CPU power on decoding audio that cannot be heard. This flag will be switched on gradually via Finch."},{"type":"feature","file":"media/base/media_switches.cc","name":"PauseMutedBackgroundAudio","variable":"kPauseMutedBackgroundAudio","defaultStatus":false,"line":1752,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"PdfAccessibilityHeuristicEnhancements","variable":"kPdfAccessibilityHeuristicEnhancements","defaultStatus":false,"line":392,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable heuristic enhancements for PDF accessibility."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfBrotliDecode","variable":"kPdfBrotliDecode","defaultStatus":false,"line":24,"comment":"Enables PDFium to support the experimental PDF 2.0 /BrotliDecode filter allowing for PDFs encoded with Brotli to be viewable by Chrome's PDF viewer. This flag would be enabled by default when the spec for /BrotliDecode is finalized and support for the feature becomes official."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfBufferedPaintManager","variable":"kPdfBufferedPaintManager","defaultStatus":false,"line":27,"comment":"Reuse buffers in PaintManager."},{"type":"feature","file":"components/passage_embeddings/core/passage_embeddings_features.cc","name":"PDFEmbeddingsGeneration","variable":"kPDFEmbeddingsGeneration","defaultStatus":false,"line":26,"comment":"When enabled, supports PDF text for embeddings generation."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfGetSaveDataInBlocks","variable":"kPdfGetSaveDataInBlocks","defaultStatus":false,"line":42,"comment":"Enables PDF WebUI save to get PDF content from renderer in blocks."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PdfGlicSummarize","variable":"kPdfGlicSummarize","defaultStatus":false,"line":1059,"buildflags":["BUILDFLAG(ENABLE_PDF)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PdfGlicSummarizeFre","variable":"kPdfGlicSummarizeFre","defaultStatus":false,"line":1064,"buildflags":["BUILDFLAG(ENABLE_PDF)"]},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfIncrementalLoading","variable":"kPdfIncrementalLoading","defaultStatus":false,"line":31,"comment":"\"Incremental loading\" refers to loading the PDF as it arrives.","todos":["TODO(crbug.com/40123601): Remove this once incremental loading is fixed."]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PdfInfoBar","variable":"kPdfInfoBar","defaultStatus":true,"line":127,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)"],"comment":"Shows an infobar on PDFs offering to become the default PDF viewer if Chrome isn't the default already."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfInk2","variable":"kPdfInk2","defaultStatus":true,"line":76,"buildflags":["BUILDFLAG(ENABLE_PDF_INK2)"]},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfiumPerRequestFontMatchingWin","variable":"kPdfiumPerRequestFontMatchingWin","defaultStatus":false,"line":71,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables PDFium's version 2 font mapping interface, which uses per-request font matching instead of enumerating all fonts upfront. This should improve PDF loading performance on Windows, since the version 2 interface makes PDFium call MapFont() directly for each font request rather than searching a pre-built font list.","todos":["TODO(crbug.com/500793593): Remove this flag and the code that exists only to support the version 1 font mapping interface, once this safely rolls out."]},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfOopif","variable":"kPdfOopif","defaultStatus":true,"line":33},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfPartialLoading","variable":"kPdfPartialLoading","defaultStatus":false,"line":37,"comment":"\"Partial loading\" refers to loading only specific parts of the PDF.","todos":["TODO(crbug.com/40123601): Remove this once partial loading is fixed."]},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfPortfolio","variable":"kPdfPortfolio","defaultStatus":false,"line":39},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfSaveToDrive","variable":"kPdfSaveToDrive","defaultStatus":true,"line":85,"buildflags":["BUILDFLAG(ENABLE_PDF_SAVE_TO_DRIVE)"],"comment":"Saves the PDF file to Google Drive."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfSaveToDriveSurvey","variable":"kPdfSaveToDriveSurvey","defaultStatus":false,"line":88,"buildflags":["BUILDFLAG(ENABLE_PDF_SAVE_TO_DRIVE)"],"comment":"Enables the survey for saving PDF to Google Drive."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfSearchifySave","variable":"kPdfSearchifySave","defaultStatus":false,"line":44},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfTags","variable":"kPdfTags","defaultStatus":false,"line":50,"comment":"Enables accessibility tags in PDFs to be parsed and integrated into the accessibility tree by Chrome's PDF Viewer. Accessibility tags provide structure and semantics to the text found in a PDF, e.g. they could mark a specific piece of text as a heading, or a block of text as a paragraph."},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfUseShowSaveFilePicker","variable":"kPdfUseShowSaveFilePicker","defaultStatus":false,"line":52},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfUseSkiaRenderer","variable":"kPdfUseSkiaRenderer","defaultStatus":false,"line":54},{"type":"feature","file":"pdf/pdf_features.cc","name":"PdfXfaSupport","variable":"kPdfXfaSupport","defaultStatus":false,"line":60,"comment":"Feature has no effect if Chrome is built with no XFA support."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"PerAppLanguage","variable":"kPerAppLanguage","defaultStatus":true,"line":223,"comment":"When enabled, Android per-app-language settings will be surfaced in ChromeOS Settings page."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PerDeskShelf","variable":"kPerDeskShelf","defaultStatus":false,"line":1513,"comment":"Limits the items on the shelf to the ones associated with windows the currently active desk."},{"type":"feature","file":"services/tracing/public/cpp/tracing_features.cc","name":"PerfettoBackendParams","variable":"kPerfettoBackendParams","defaultStatus":false,"line":25},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"PerformDefaultBrowserCheckValidations","variable":"kPerformDefaultBrowserCheckValidations","defaultStatus":false,"line":91,"comment":"Enables the framework to perform additional checks when detecting default browser."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PeriodicBackgroundSync","variable":"kPeriodicBackgroundSync","defaultStatus":false,"line":767,"comment":"Whether web apps can run periodic tasks upon network connectivity."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PeripheralCustomization","variable":"kPeripheralCustomization","defaultStatus":true,"line":2016,"comment":"Enables peripheral customization to be split per device."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PeripheralNotification","variable":"kPeripheralNotification","defaultStatus":true,"line":2025,"comment":"Enable peripheral notification to notify users when a input device is connected to the user's chromebook for the first time."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"PerProfileMetrics","variable":"kPerProfileMetrics","defaultStatus":true,"line":35,"comment":"Creates the ProfileMetricsService, which can be used to log per-profile UMA histograms. Enabled by default - intended as a kill-switch."},{"type":"feature","file":"components/personal_context/core/personal_context_features.cc","name":"PersonalContext","variable":"kPersonalContext","defaultStatus":true,"line":11,"comment":"The main feature flag for the Personal Context service. When disabled, all Personal Context features and services are turned off. Enabled by default and kept around as a kill-switch."},{"type":"feature","file":"components/personal_context/core/personal_context_features.cc","name":"PersonalContextFirstRunOptIn","variable":"kPersonalContextFirstRunOptIn","defaultStatus":false,"line":16,"comment":"Controls whether the opt-in flow for the first run experience is enabled."},{"type":"feature","file":"components/personal_context/core/personal_context_debug_features.cc","name":"PersonalContextForceEnablementState","variable":"kPersonalContextForceEnablementState","defaultStatus":false,"line":21,"comment":"When enabled, overrides the calculated enablement state of the Personal Context service. This allows developers to bypass complex eligibility requirements (Geo-IP, Account Type, Opt-ins) for local testing."},{"type":"feature","file":"components/personal_context/core/personal_context_features.cc","name":"PersonalContextLogNonEligibilityUma","variable":"kPersonalContextLogNonEligibilityUma","defaultStatus":false,"line":13,"comment":"Controls whether the Personal Context non-eligibility UMA metric is logged."},{"type":"feature","file":"components/personal_context/core/personal_context_debug_features.cc","name":"PersonalContextResetNoticePrefsOnStartup","variable":"kPersonalContextResetNoticePrefsOnStartup","defaultStatus":false,"line":35,"comment":"When enabled, `PersonalContextFirstRunServiceImpl` will reset notice preferences on startup.","todos":["TODO(b:532008442): When notice development has been completed and we don't expect future changes to the notices anymore, clean up this debug feature."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PhoneHub","variable":"kPhoneHub","defaultStatus":true,"line":1517,"comment":"Provides a UI for users to view information about their Android phone and perform phone-side actions within ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PhoneHubCallNotification","variable":"kPhoneHubCallNotification","defaultStatus":false,"line":1520,"comment":"Enables the incoming/ongoing call notification feature in Phone Hub."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PhoneHubMonochromeNotificationIcons","variable":"kPhoneHubMonochromeNotificationIcons","defaultStatus":true,"line":1522},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PhoneHubShortQuickActionPodsTitles","variable":"kPhoneHubShortQuickActionPodsTitles","defaultStatus":true,"line":1525},{"type":"feature","file":"components/metrics/structured/structured_metrics_features.cc","name":"PhoneHubStructuredMetrics","variable":"kPhoneHubStructuredMetrics","defaultStatus":true,"line":12,"comment":"Controls whether Phone Hub Structured Metrics is enabled or not."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PickerGifs","variable":"kPickerGifs","defaultStatus":true,"line":1529,"comment":"Enables GIF search in Picker."},{"type":"feature","file":"media/base/media_switches.cc","name":"PictureInPictureMuteControl","variable":"kPictureInPictureMuteControl","defaultStatus":false,"line":372,"comment":"Adds a mute/unmute button to the Video Picture-in-Picture overlay window."},{"type":"feature","file":"media/base/media_switches.cc","name":"PictureInPictureOcclusionTracking","variable":"kPictureInPictureOcclusionTracking","defaultStatus":true,"line":377,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables tracking the position of picture-in-picture windows to know when they occlude certain widgets."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"PlatformAgnosticXGeo","variable":"kPlatformAgnosticXGeo","defaultStatus":false,"line":544,"comment":"If enabled, X-Geo headers are sent for all search navigations on all platforms."},{"type":"feature","file":"media/base/media_switches.cc","name":"PlatformAudioEncoder","variable":"kPlatformAudioEncoder","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID))","value":false}],"line":513,"comment":"Allows usage of OS-level (platform) audio encoders."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"PlatformClipboardMonitor","variable":"kPlatformClipboardMonitor","defaultStatus":true,"line":449,"comment":"Feature flag for enabling platform clipboard monitoring."},{"type":"feature","file":"media/base/media_switches.cc","name":"PlatformEncryptedDolbyVision","variable":"kPlatformEncryptedDolbyVision","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":1403,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION)"],"comment":"When ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION is enabled at build time, allow the support of encrypted Dolby Vision. Have no effect when ENABLE_PLATFORM_ENCRYPTED_DOLBY_VISION is disabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"PlatformHEVCDecoderSupport","variable":"kPlatformHEVCDecoderSupport","defaultStatus":true,"line":418,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_HEVC)"],"comment":"Enables HEVC hardware accelerated decoding."},{"type":"feature","file":"media/base/media_switches.cc","name":"PlatformHEVCEncoderSupport","variable":"kPlatformHEVCEncoderSupport","defaultStatus":true,"line":422,"buildflags":["BUILDFLAG(ENABLE_PLATFORM_HEVC)","BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID)"],"comment":"Enables HEVC hardware accelerated encoding for Windows, Apple, and Android."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"PlatformKeysChangesWave1","variable":"kPlatformKeysChangesWave1","defaultStatus":false,"line":160,"comment":"Enables the first wave of new features for the chrome.enterprise.platformKeys API. That includes: - a new key type (RSA-OAEP) with a new allowed key usage (unwrapKey). - a new API method to `setKeyTag()`, used to mark keys for future lookup. Other features might be added in this first wave, or be hold for the second wave. For additional details, see crbug.com/288880151."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"PlayStationUseGameControllerDataFetcherMac","variable":"kPlayStationUseGameControllerDataFetcherMac","defaultStatus":true,"line":50,"buildflags":["BUILDFLAG(IS_APPLE)"],"comment":"Enable PlayStation gamepad support in GameControllerDataFetcherMac"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PluginVm","variable":"kPluginVm","defaultStatus":false,"line":1397,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable support for \"Plugin VMs\" on Chrome OS."},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"PolicyDataCollectionEnabled","variable":"kPolicyDataCollectionEnabled","defaultStatus":true,"line":26,"comment":"Enables the collection of policies in a Chrome Profile signals report."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"PostChromiumStartupInWebViewConstructor","variable":"kPostChromiumStartupInWebViewConstructor","defaultStatus":false,"line":17,"comment":"Alphabetical:"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"PostDelayedTaskFocusTab","variable":"kPostDelayedTaskFocusTab","defaultStatus":false,"line":483,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Delay focusTab to prioritize navigation (https://crbug.com/374852568)."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"PreconnectNonSearchOmniboxSuggestions","variable":"kPreconnectNonSearchOmniboxSuggestions","defaultStatus":false,"line":386,"comment":"Preconnect/prerender behavior for suggestions"},{"type":"feature","file":"media/base/media_switches.cc","name":"PreemptiveSodaDownload","variable":"kPreemptiveSodaDownload","defaultStatus":false,"line":959,"comment":"Enables the preemptive downloading of the SODA binary and language packs."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PreferConstantFrameRate","variable":"kPreferConstantFrameRate","defaultStatus":false,"line":1533,"comment":"Enables or disables the preference of using constant frame rate for camera when streaming."},{"type":"feature","file":"media/base/media_switches.cc","name":"PreferGLImageProcessor","variable":"kPreferGLImageProcessor","defaultStatus":false,"line":1324,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)"],"comment":"Experimental support for GL based image processing. On some architectures, the hardware accelerated video decoder outputs frames in a format not understood by the display controller. We usually use LibYUV to convert these frames. This flag enables an experimental GL-based conversion method."},{"type":"feature","file":"media/base/media_switches.cc","name":"PreferSoftwareMT21","variable":"kPreferSoftwareMT21","defaultStatus":false,"line":1330,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)"],"comment":"Experimental support for software based MT21 conversion. On some (older) architectures, the hardware video decoder outputs frames in a pixel format known as MT21. Normally a hardware block performs to the conversion between this pixel format and NV12, but this flag will use a software equivalent instead."},{"type":"feature","file":"media/base/media_switches.cc","name":"PreferV4L2VideoAcceleration","variable":"kPreferV4L2VideoAcceleration","defaultStatus":false,"line":829,"buildflags":["BUILDFLAG(USE_VAAPI) && BUILDFLAG(USE_V4L2_CODEC)"],"comment":"When both VA-API and V4L2 are compiled in, selects the active backend: disabled (default) => VA-API, enabled => V4L2. Toggle via --enable-features=PreferV4L2VideoAcceleration."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrefetchActivationBeacon","variable":"kPrefetchActivationBeacon","defaultStatus":false,"line":772,"comment":"If enabled, activation beacon is sent when a prefetched page is activated. The activation beacon is a beacon that echoes back a server specified token to the server when a prefetched page is activated."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchAsyncPrefetchHandleCallback","variable":"kPrefetchAsyncPrefetchHandleCallback","defaultStatus":true,"line":118,"comment":"Kill switch for making `PrefetchHandle`'s callbacks async.","todos":["TODO(crbug.com/480271813): Remove it after confirming stability."]},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchBumpNetworkPriorityAfterBeingServed","variable":"kPrefetchBumpNetworkPriorityAfterBeingServed","defaultStatus":true,"line":48,"comment":"Enabling this will bupm net::RequestPriority once after the running prefetch starts to be served."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchCanaryCheckerParams","variable":"kPrefetchCanaryCheckerParams","defaultStatus":true,"line":70,"comment":"Controls field trials parameters for prefetch canary checker."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchCancelUnrelatedPrefetch","variable":"kPrefetchCancelUnrelatedPrefetch","defaultStatus":false,"line":99,"comment":"Cancels unrelated prefetch when a navigation is started."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchClientHints","variable":"kPrefetchClientHints","defaultStatus":true,"line":24,"comment":"If enabled, prefetches may include client hints request headers."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchEagerLimit","variable":"kPrefetchEagerLimit","defaultStatus":false,"line":88},{"type":"feature","file":"chrome/browser/predictors/predictors_features.cc","name":"PrefetchManagerUseNetworkContextPrefetch","variable":"kPrefetchManagerUseNetworkContextPrefetch","defaultStatus":false,"line":92},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchModerateLimit","variable":"kPrefetchModerateLimit","defaultStatus":false,"line":92},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchMultipleActiveSetSizeLimitForBase","variable":"kPrefetchMultipleActiveSetSizeLimitForBase","defaultStatus":false,"line":73,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows multiple base limit on `PrefetchScheduler`."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchMultipleActiveSetSizeLimitForBase","variable":"kPrefetchMultipleActiveSetSizeLimitForBase","defaultStatus":true,"line":80,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Allows multiple base limit on `PrefetchScheduler`."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchNetworkPriorityForEmbedders","variable":"kPrefetchNetworkPriorityForEmbedders","defaultStatus":true,"line":45,"comment":"Enabling this will apply net::RequestPriority::MEDIUM for prefetch requests triggered by embedders. See crbug.com/353628437 to track this issue."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchNIKScope","variable":"kPrefetchNIKScope","defaultStatus":false,"line":22,"comment":"If enabled, navigational prefetch is scoped to the referring document's network isolation key instead of the old behavior of the referring document itself. See crbug.com/1502326"},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrefetchOffTheMainThread","variable":"kPrefetchOffTheMainThread","defaultStatus":false,"line":776,"comment":"Allow starting prefetch request from off the main thread. Please see crbug.com/452389538 for more details."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchOffTheMainThreadForceForTesting","variable":"kPrefetchOffTheMainThreadForceForTesting","defaultStatus":false,"line":96,"comment":"Force the off-the-main-thread prefetch code path for testing, to anyway increase the test coverage of off-the-main-thread prefetch. https://crbug.com/452389538 This is anyway expected to be incomplete, and expected deviations are explicitly tracked in `TestExpectations` etc. To enable this, also enable `kPrefetchOffTheMainThread`."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"PrefetchParameterFix","variable":"kPrefetchParameterFix","defaultStatus":true,"line":70},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrefetchPrerenderIntegration","variable":"kPrefetchPrerenderIntegration","defaultStatus":true,"line":783,"comment":"Use code paths for prefetch/prerender integration. See also `kPrerender2FallbackPrefetchSpecRules`."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrefetchProxy","variable":"kPrefetchProxy","defaultStatus":true,"line":786,"comment":"If explicitly disabled, prefetch proxy is not used."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrefetchRequestStatusListenerAsync","variable":"kPrefetchRequestStatusListenerAsync","defaultStatus":true,"line":790,"comment":"Make `PrefetchRequestStatusListener` notifications async. https://crbug.com/496807663"},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchSchedulerTesting","variable":"kPrefetchSchedulerTesting","defaultStatus":false,"line":60,"comment":"Controls params for tests of `PrefetchScheduler`."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchServiceWorker","variable":"kPrefetchServiceWorker","defaultStatus":true,"line":51,"comment":"Allow prefetching ServiceWorker-controlled URLs."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchStateContaminationMitigation","variable":"kPrefetchStateContaminationMitigation","defaultStatus":true,"line":38,"comment":"If enabled, then prefetch serving will apply mitigations if it may have been contaminated by cross-partition state."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchTesting","variable":"kPrefetchTesting","defaultStatus":false,"line":14,"comment":"Controls params for tests of prefetch."},{"type":"feature","file":"content/browser/preloading/prefetch/prefetch_features.cc","name":"PrefetchUseContentRefactor","variable":"kPrefetchUseContentRefactor","defaultStatus":true,"line":20,"comment":"This feature was used to launch the prefetch migration from embedder layer to content/, and this work has finished and the old implemnetation was deleted. Now this flag is just for injecting parameters through field trials as an umberella feature."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PreinstalledWebAppAlwaysMigrateForTesting","variable":"kPreinstalledWebAppAlwaysMigrateForTesting","defaultStatus":false,"line":140,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Whether to force migrate preinstalled web apps whenever the old Chrome app they're replacing is detected, even if the web app is already installed. Used by unit tests."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PreinstalledWebAppInstallation","variable":"kPreinstalledWebAppInstallation","defaultStatus":true,"line":133,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Whether to allow installed-by-default web apps to be installed or not."},{"type":"feature","file":"chrome/browser/web_applications/preinstalled_app_install_features.cc","name":"PreinstalledWorkspaceStandaloneTabbed","variable":"kPreinstalledWorkspaceStandaloneTabbed","defaultStatus":false,"line":67,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Use `IsPreinstalledWorkspaceStandaloneTabbed` instead of checking this flag directly to correctly exclude managed devices."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PreloadingRespectUserAgentOverride","variable":"kPreloadingRespectUserAgentOverride","defaultStatus":false,"line":794,"comment":"Killswitch for UA override issue fix (crbug.com/441612842) in preloading."},{"type":"feature","file":"media/base/media_switches.cc","name":"PreloadMediaEngagementData","variable":"kPreloadMediaEngagementData","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)","value":false},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS))","value":true}],"line":1538},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PreloadTopChromeWebUI","variable":"kPreloadTopChromeWebUI","defaultStatus":true,"line":165,"comment":"Preloads a WebContents with a Top Chrome WebUI on BrowserView initialization, so that it can be shown instantly at a later time when necessary."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PreloadTopChromeWebUILessNavigations","variable":"kPreloadTopChromeWebUILessNavigations","defaultStatus":false,"line":168,"comment":"An experiment to reduce the number of navigations when preloading WebUIs."},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"PrepopulatedEnginesMigration","variable":"kPrepopulatedEnginesMigration","defaultStatus":false,"line":34,"comment":"Guards the incremental rollout of the feature that enables migrating prepopulated engines. Note: Due to the migration changing the client's data locally persisted in various places, we don't support rollbacks to the feature state."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"Prerender2DisallowNonTrustworthyHttp","variable":"kPrerender2DisallowNonTrustworthyHttp","defaultStatus":false,"line":71,"comment":"If enabled, disallows non-trustworthy plaintext HTTP prerendering. See https://crbug.com/340895233 for more details."},{"type":"feature","file":"content/public/common/content_features.cc","name":"Prerender2FallbackPrefetchSpecRules","variable":"kPrerender2FallbackPrefetchSpecRules","defaultStatus":true,"line":801,"comment":"Triggers prefetch ahead of prerender for Speculation Rules. See https://crbug.com/342089123 for more details. Enabled except for Android WebView."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"Prerender2NoVarySearch","variable":"kPrerender2NoVarySearch","defaultStatus":true,"line":37,"comment":"This feature was used to launch Prerender2 support for No-Vary-Search header. This work has finished and the old implementation was deleted. Now this flag is just for injecting parameters through field trials as an umberella feature."},{"type":"feature","file":"content/public/common/content_features.cc","name":"Prerender2ReuseHost","variable":"kPrerender2ReuseHost","defaultStatus":true,"line":806,"comment":"If enabled, the feature allows the prerender host to be reused for the future same-site page prerender if marked as reusable."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"Prerender2ReuseInitiatorProcess","variable":"kPrerender2ReuseInitiatorProcess","defaultStatus":false,"line":81,"comment":"If enabled, allows a prerender to reuse its initiator's process while remaining in a dedicated BrowsingInstance."},{"type":"feature","file":"chrome/browser/preloading/preloading_features.cc","name":"Prerender2WarmUpCompositorForBookmarkBar","variable":"kPrerender2WarmUpCompositorForBookmarkBar","defaultStatus":false,"line":51,"comment":"If enabled, requests the compositor warm-up (crbug.com/41496019) for each prerender trigger."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"Prerender2WarmUpCompositorForImmediate","variable":"kPrerender2WarmUpCompositorForImmediate","defaultStatus":false,"line":74,"comment":"If enabled, requests the compositor warm-up (crbug.com/41496019) for Immediate/non-Immediate Speculation Rules prerenders."},{"type":"feature","file":"chrome/browser/preloading/preloading_features.cc","name":"Prerender2WarmUpCompositorForNewTabPage","variable":"kPrerender2WarmUpCompositorForNewTabPage","defaultStatus":false,"line":53},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"Prerender2WarmUpCompositorForNonImmediate","variable":"kPrerender2WarmUpCompositorForNonImmediate","defaultStatus":false,"line":76},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"Prerender2WarmUpCompositorForWebView","variable":"kPrerender2WarmUpCompositorForWebView","defaultStatus":false,"line":22,"comment":"When enabled, requests the compositor warm-up (crbug.com/41496019) for the prerender trigger."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrerenderActivationBeacon","variable":"kPrerenderActivationBeacon","defaultStatus":false,"line":819,"comment":"If enabled, activation beacon is sent when a prerendered page is activated. The activation beacon is a beacon that echoes back a server specified token to the server when a prerendered page is activated."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PrerenderFallbackToPreconnect","variable":"kPrerenderFallbackToPreconnect","defaultStatus":false,"line":1401,"comment":"Allows Chrome to do preconnect when prerender fails."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"PrerenderUntilScriptUpgrade","variable":"kPrerenderUntilScriptUpgrade","defaultStatus":false,"line":79,"comment":"If enabled, allows upgrading a prerender-until-script session to a full prerender when a matching prerender speculation rule is added."},{"type":"feature","file":"url/url_features.cc","name":"PreservePercentEncodedDotInPath","variable":"kPreservePercentEncodedDotInPath","defaultStatus":true,"line":45,"comment":"When enabled, preserve %2E encoding in URL paths to comply with the WHATWG URL Standard."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"PressAndHoldEscToExitBrowserFullscreen","variable":"kPressAndHoldEscToExitBrowserFullscreen","defaultStatus":true,"line":173,"comment":"Enables exiting browser fullscreen (users putting the browser itself into the fullscreen mode via the browser UI or shortcuts) with press-and-hold Esc."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PreventAPCOnFederatedLogin","variable":"kPreventAPCOnFederatedLogin","defaultStatus":false,"line":179,"comment":"Prevents offering Automatic Password Change on federated login."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"PreventLongRunningPredictionModels","variable":"kPreventLongRunningPredictionModels","defaultStatus":true,"line":71},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"PreventPasswordManagerOnFederatedLogin","variable":"kPreventPasswordManagerOnFederatedLogin","defaultStatus":false,"line":181,"comment":"Prevents password manager from showing save/update UI on federated login."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PreviewHandwritingGesture","variable":"kPreviewHandwritingGesture","defaultStatus":false,"line":823,"comment":"If enabled, the feature allows user to see a preview of their handwriting gestures (Select and Delete gestures)."},{"type":"feature","file":"chrome/browser/preloading/preloading_features.cc","name":"Prewarm","variable":"kPrewarm","defaultStatus":true,"line":9,"comment":"DSE Prewarm tracked at https://crbug.com/406378765."},{"type":"feature","file":"chrome/browser/preloading/preloading_features.cc","name":"PrewarmZeroSuggestTrigger","variable":"kPrewarmZeroSuggestTrigger","defaultStatus":false,"line":10},{"type":"feature","file":"ash/constants/ash_features.cc","name":"PrintPreviewCrosApp","variable":"kPrintPreviewCrosApp","defaultStatus":false,"line":1538,"comment":"If enabled, ChromeOS print preview app is available. Enabling does not replace the existing Chrome print preview UI, and will require an additional flag and pref configured to facilitate. See b/323421684 for more information."},{"type":"feature","file":"printing/printing_features.cc","name":"PrintWithPostScriptType42Fonts","variable":"kPrintWithPostScriptType42Fonts","defaultStatus":false,"line":32,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When using PostScript level 3 printing, render text with Type 42 fonts if possible."},{"type":"feature","file":"printing/printing_features.cc","name":"PrintWithReducedRasterization","variable":"kPrintWithReducedRasterization","defaultStatus":false,"line":36,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When using GDI printing, avoid rasterization if possible."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PrivacyGuideForceAvailable","variable":"kPrivacyGuideForceAvailable","defaultStatus":false,"line":1056,"comment":"Force Privacy Guide to be available even if it would be unavailable otherwise. This is meant for development and test purposes only."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PrivacySandboxAdPrivacyUxDeprecation","variable":"kPrivacySandboxAdPrivacyUxDeprecation","defaultStatus":true,"line":86},{"type":"feature","file":"content/public/common/content_features.cc","name":"PrivacySandboxAdsAPIsOverride","variable":"kPrivacySandboxAdsAPIsOverride","defaultStatus":false,"line":828,"comment":"Enables exposure of ads APIs in the renderer: Attribution Reporting, FLEDGE, Topics, along with a number of other features actively in development within these APIs."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PrivacySandboxAttestationsLoadFromAPKAsset","variable":"kPrivacySandboxAttestationsLoadFromAPKAsset","defaultStatus":true,"line":70,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PrivacySandboxNoticeFramework","variable":"kPrivacySandboxNoticeFramework","defaultStatus":false,"line":84},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PrivacySandboxSettings4","variable":"kPrivacySandboxSettings4","defaultStatus":true,"line":11},{"type":"feature","file":"content/browser/private_aggregation/private_aggregation_features.cc","name":"PrivateAggregationApiDebugModeRequires3pcEligibility","variable":"kPrivateAggregationApiDebugModeRequires3pcEligibility","defaultStatus":true,"line":11,"comment":"Controls whether third-party cookie eligibility should be queried before allowing debug mode to be used by a context. If enabled, any `enableDebugMode()` calls in a context that does not have third-party cookie eligibility will essentially have no effect. This feature has no effect on debug mode if `blink::features::kPrivateAggregationApiDebugModeEnabledAtAll` is disabled."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PrivateAggregationDebugReportingIgnoreSiteExceptions","variable":"kPrivateAggregationDebugReportingIgnoreSiteExceptions","defaultStatus":true,"line":74},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"PrivateExecuteRequest","variable":"kPrivateExecuteRequest","defaultStatus":true,"line":47,"comment":"Feature flag to populate PrivateExecuteRequest instead of ExecuteRequest."},{"type":"feature","file":"components/metrics/private_metrics/private_insights/private_insights_features.cc","name":"PrivateInsightsFeature","variable":"kPrivateInsightsFeature","defaultStatus":false,"line":11},{"type":"feature","file":"components/metrics/private_metrics/private_insights/private_insights_features.cc","name":"PrivateInsightsPaicErrorReporting","variable":"kPrivateInsightsPaicErrorReporting","defaultStatus":false,"line":16},{"type":"feature","file":"components/metrics/private_metrics/private_metrics_features.cc","name":"PrivateMetricsFeature","variable":"kPrivateMetricsFeature","defaultStatus":false,"line":9},{"type":"feature","file":"components/metrics/private_metrics/private_metrics_features.cc","name":"PrivateMetricsPuma","variable":"kPrivateMetricsPuma","defaultStatus":false,"line":11},{"type":"feature","file":"components/metrics/private_metrics/private_metrics_features.cc","name":"PrivateMetricsPumaRc","variable":"kPrivateMetricsPumaRc","defaultStatus":false,"line":23},{"type":"feature","file":"chrome/browser/ui/webui/metrics_internals/metrics_internals_features.cc","name":"PrivateMetricsWebUI","variable":"kPrivateMetricsWebUI","defaultStatus":false,"line":9,"comment":"Enables a \"Private Metrics\" tab in the chrome://metrics-internals page."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ProcessIsolationSettings","variable":"kProcessIsolationSettings","defaultStatus":false,"line":178,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables the UI for Process Isolation in chrome://settings/system."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ProcessPerSiteForDSE","variable":"kProcessPerSiteForDSE","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false},{"condition":"!BUILDFLAG(IS_ANDROID)","value":true}],"line":1606},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ProcessPerSiteSkipDevtoolsUsers","variable":"kProcessPerSiteSkipDevtoolsUsers","defaultStatus":false,"line":1593,"comment":"The default behavior to opt devtools users out of kProcessPerSiteUpToMainFrameThreshold."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ProcessPerSiteSkipEnterpriseUsers","variable":"kProcessPerSiteSkipEnterpriseUsers","defaultStatus":true,"line":1598,"comment":"The default behavior to opt enterprise users out of kProcessPerSiteUpToMainFrameThreshold."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ProcessPerSiteUpToMainFrameThreshold","variable":"kProcessPerSiteUpToMainFrameThreshold","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false},{"condition":"!BUILDFLAG(IS_ANDROID)","value":true}],"line":954,"comment":"Reuses RenderProcessHost up to a certain threshold. This mode ignores the soft process limit and behaves just like a process-per-site policy for all sites, with an additional restriction that a process may only be reused while the number of main frames in that process stays below a threshold."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ProcessSelectionDeferringConditions","variable":"kProcessSelectionDeferringConditions","defaultStatus":true,"line":833,"comment":"When enabled, ProcessSelectionDeferringConditions will be run. This allows the embedder to provide conditions that may delay the final process selection until the conditions have their results."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"ProductNameOverHidName","variable":"kProductNameOverHidName","defaultStatus":true,"line":187,"buildflags":["BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)"],"comment":"Controls whether we report the product name (like macOS and Win) over the HID_NAME in the WebHID API."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ProfileCreationDeclineSigninCTAExperiment","variable":"kProfileCreationDeclineSigninCTAExperiment","defaultStatus":true,"line":684,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ProfileDiscOnAllPages","variable":"kProfileDiscOnAllPages","defaultStatus":false,"line":689,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/device_signals/core/common/signals_features.cc","name":"ProfileSignalsReportingEnabled","variable":"kProfileSignalsReportingEnabled","defaultStatus":true,"line":14,"comment":"Enables the addition of device signals fields to Profile-level Chrome Reports."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ProfilesReordering","variable":"kProfilesReordering","defaultStatus":false,"line":692},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorAppDebug","variable":"kProjectorAppDebug","defaultStatus":false,"line":1542,"comment":"Controls whether the Projector app launches in debug mode, with more detailed error messages."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorCustomThumbnail","variable":"kProjectorCustomThumbnail","defaultStatus":false,"line":1551,"comment":"Controls whether Projector use custom thumbnail in gallery page."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorMuting","variable":"kProjectorMuting","defaultStatus":false,"line":1556,"comment":"Controls whether the transcript muting feature is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorRedirectToPwa","variable":"kProjectorRedirectToPwa","defaultStatus":true,"line":1559,"comment":"Controls whether higher version transcripts should be redirected to PWA."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorServerSideRecognitionFallbackImpl","variable":"kProjectorServerSideRecognitionFallbackImpl","defaultStatus":true,"line":1546,"comment":"Constrols whether fallback implementation is enabled when streaming connection fails for server side speech recognition."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorUseDVSPlaybackEndpoint","variable":"kProjectorUseDVSPlaybackEndpoint","defaultStatus":true,"line":1566,"comment":"Controls whether the projector app uses the latest endpoint for retrieving playback urls."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ProjectorV2","variable":"kProjectorV2","defaultStatus":true,"line":1562,"comment":"Controls whether projector V2 is enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"ProtectedMediaIdentifierIndicator","variable":"kProtectedMediaIdentifierIndicator","defaultStatus":true,"line":1072,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables showing permission indicator in the omnibox when a site is allowed or denied to to use protected content IDs to play protected content."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"PruneOldTransferCacheEntries","variable":"kPruneOldTransferCacheEntries","defaultStatus":false,"line":480,"comment":"Prune transfer cache entries not accessed recently. This also turns off similar logic in cc::GpuImageDecodeCache which is the largest (often single) client of transfer cache."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"PsDualWritePrefsToNoticeStorage","variable":"kPsDualWritePrefsToNoticeStorage","defaultStatus":true,"line":80},{"type":"feature","file":"media/base/media_switches.cc","name":"PulseaudioLoopbackForCast","variable":"kPulseaudioLoopbackForCast","defaultStatus":false,"line":477,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Enables system audio mirroring using pulseaudio."},{"type":"feature","file":"media/base/media_switches.cc","name":"PulseaudioLoopbackForScreenShare","variable":"kPulseaudioLoopbackForScreenShare","defaultStatus":false,"line":480,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"Enables system audio sharing using pulseaudio."},{"type":"feature","file":"components/push_messaging/push_messaging_features.cc","name":"PushMessagingDisallowSenderIDs","variable":"kPushMessagingDisallowSenderIDs","defaultStatus":false,"line":11,"comment":"Feature flag to disallow creation of push messages with GCM Sender IDs."},{"type":"feature","file":"components/push_messaging/push_messaging_features.cc","name":"PushMessagingGcmEndpointWebpushPath","variable":"kPushMessagingGcmEndpointWebpushPath","defaultStatus":false,"line":17,"comment":"Feature flag to control use of new /wp/ path based Webpush endpoints."},{"type":"feature","file":"content/public/common/content_features.cc","name":"PushSubscriptionChangeEventOnInvalidation","variable":"kPushSubscriptionChangeEventOnInvalidation","defaultStatus":false,"line":845,"comment":"Fires the `pushsubscriptionchange` event defined here: https://w3c.github.io/push-api/#the-pushsubscriptionchange-event for subscription refreshes, revoked permissions or subscription losses"},{"type":"feature","file":"content/public/common/content_features.cc","name":"PushSubscriptionChangeEventOnResubscribe","variable":"kPushSubscriptionChangeEventOnResubscribe","defaultStatus":true,"line":851,"comment":"Fires the `pushsubscriptionchange` event defined here: https://w3c.github.io/push-api/#the-pushsubscriptionchange-event upon manual resubscription to previously unsubscribed notifications."},{"type":"feature","file":"components/push_messaging/push_messaging_features.cc","name":"PushSubscriptionWithExpirationTime","variable":"kPushSubscriptionWithExpirationTime","defaultStatus":false,"line":14,"comment":"Feature flag to enable push subscription with expiration times specified in /chrome/browser/push_messaging/push_messaging_constants.h"},{"type":"feature","file":"content/public/common/content_features.cc","name":"PwaNavigationCapturing","variable":"kPwaNavigationCapturing","defaultStatus":true,"line":1512,"comment":"Enables user link capturing on all desktop platforms."},{"type":"feature","file":"chrome/browser/web_applications/link_capturing_features.cc","name":"PwaNavigationCapturingTestingOverride","variable":"kPwaNavigationCapturingTestingOverride","defaultStatus":false,"line":16,"comment":"Flag that is used to override the \"original\" behavior from chrome://flags for testing. Requires the `kPwaNavigationCapturing` flag to NOT be explicitly disabled to work."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"PwaUpdateDialogForIcon","variable":"kPwaUpdateDialogForIcon","defaultStatus":false,"line":1414,"comment":"Shows a confirmation dialog when updates to a PWAs icon has been detected."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"QuickAnswersMaterialNextUI","variable":"kQuickAnswersMaterialNextUI","defaultStatus":true,"line":170,"comment":"Controls whether to enable Material Next UI for Quick Answers."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"QuickAnswersRichCard","variable":"kQuickAnswersRichCard","defaultStatus":false,"line":167,"comment":"Controls whether to enable Quick Answers Rich card."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"QuickAnswersV2SettingsSubToggle","variable":"kQuickAnswersV2SettingsSubToggle","defaultStatus":false,"line":163,"comment":"Controls whether to enable quick answers V2 settings sub-toggles."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"QuickDim","variable":"kQuickDim","defaultStatus":true,"line":1570,"comment":"Controls whether the quick dim prototype is enabled."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"QuickShareV2","variable":"kQuickShareV2","defaultStatus":true,"line":175,"comment":"Enables Quick Share v2, which defaults Quick Share to 'Your Devices' visibility, removes the 'Selected Contacts' visibility, removes the Quick Share On/Off toggle, and adds a visibility dialog menu to Quick Settings."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"QuickUnlockFingerprint","variable":"kQuickUnlockFingerprint","defaultStatus":false,"line":1575,"comment":"Enables or disables fingerprint quick unlock. Note, that this feature is set from session manager via command-line flag."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"QuickUnlockPinAutosubmitBackfill","variable":"kQuickUnlockPinAutosubmitBackfill","defaultStatus":true,"line":1580,"todos":["TODO(crbug.com/1104164) - Remove this once most users have their preferences backfilled. Controls whether the PIN auto submit backfill operation should be performed."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"QuietNotificationPrompts","variable":"kQuietNotificationPrompts","defaultStatus":true,"line":1417,"comment":"Enables using quiet prompts for notification permission requests."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"RawDraw","variable":"kRawDraw","defaultStatus":false,"line":378,"comment":"Enables Raw Draw."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAloudNative","variable":"kReadAloudNative","defaultStatus":false,"line":350,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Controls the new native C++ implementation for Read Aloud on Android, replacing the previous Speakr service integration."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingDistillationQualityEvaluation","variable":"kReadAnythingDistillationQualityEvaluation","defaultStatus":false,"line":490,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable distillation quality evaluation for Reading Mode."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingDocsLoadMoreButton","variable":"kReadAnythingDocsLoadMoreButton","defaultStatus":false,"line":470,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable \"load more\" button to show at the end of Reading Mode panel. Should be disabled by default."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingImagesViaAlgorithm","variable":"kReadAnythingImagesViaAlgorithm","defaultStatus":true,"line":459,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable images to be distilled via algorithm. Should be disabled by default."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingImprovedUi","variable":"kReadAnythingImprovedUi","defaultStatus":false,"line":387,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable improved UI layouts and controls in Read Anything."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingLineFocus","variable":"kReadAnythingLineFocus","defaultStatus":false,"line":449,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable the line focus feature for Read Anything."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingMenuShuffleExperiment","variable":"kReadAnythingMenuShuffleExperiment","defaultStatus":false,"line":399,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingOmniboxChip","variable":"kReadAnythingOmniboxChip","defaultStatus":false,"line":437,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable the omnibox entrypoint for Read Anything."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingReadabilitySelectText","variable":"kReadAnythingReadabilitySelectText","defaultStatus":false,"line":482,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable the select text feature for Read Anything Readability."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingReadAloudPhraseHighlighting","variable":"kReadAnythingReadAloudPhraseHighlighting","defaultStatus":false,"line":430,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable phrase highlighting in Read Anything Read Aloud."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingTranslateEntryPoint","variable":"kReadAnythingTranslateEntryPoint","defaultStatus":false,"line":442,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable the translate entrypoint for Read Anything."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ReadAnythingWithReadability","variable":"kReadAnythingWithReadability","defaultStatus":false,"line":477,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enable ReadabilityJS as the distillation source for Reading Mode."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ReadContextualAccountCapabilities","variable":"kReadContextualAccountCapabilities","defaultStatus":false,"line":695,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/dom_distiller/core/dom_distiller_features.cc","name":"ReaderModeBlurTransitionAnimation","variable":"kReaderModeBlurTransitionAnimation","defaultStatus":false,"line":40,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Feature declarations below -- alphabetical order."},{"type":"feature","file":"components/dom_distiller/core/dom_distiller_features.cc","name":"ReaderModeDelayBottomSheetPeek","variable":"kReaderModeDelayBottomSheetPeek","defaultStatus":false,"line":43,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/dom_distiller/core/dom_distiller_features.cc","name":"ReaderModeDistillInApp","variable":"kReaderModeDistillInApp","defaultStatus":true,"line":46,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/dom_distiller/core/dom_distiller_features.cc","name":"ReaderModeSupportNewFonts","variable":"kReaderModeSupportNewFonts","defaultStatus":true,"line":35,"buildflags":["BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/dom_distiller/core/dom_distiller_features.cc","name":"ReaderModeToggleLinks","variable":"kReaderModeToggleLinks","defaultStatus":false,"line":48,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"ReadingListToast","variable":"kReadingListToast","defaultStatus":true,"line":26,"comment":"Enabled the page added to reading list confirmation toast."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"ReadSupportsWalletPrivatePassesInAutofillCapability","variable":"kReadSupportsWalletPrivatePassesInAutofillCapability","defaultStatus":false,"line":699},{"type":"feature","file":"components/search/ntp_features.cc","name":"RealboxCr23Theming","variable":"kRealboxCr23Theming","defaultStatus":false,"line":58,"comment":"If enabled, NTP \"realbox\" will be themed for CR23. Includes realbox matching omnibox theme and increased realbox shadow."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"RealboxVirtualFocusNavigation","variable":"kRealboxVirtualFocusNavigation","defaultStatus":false,"line":181},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"RecalculateNativeWinOcclusionOnWindowDestroy","variable":"kRecalculateNativeWinOcclusionOnWindowDestroy","defaultStatus":true,"line":60,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"If enabled, native window occlusion tracking listens for EVENT_OBJECT_DESTROY on top-level windows that previously occluded a tracked window, and recalculates occlusion when one of them is destroyed. This covers the case where the owning process is forcibly terminated (e.g., via TerminateProcess), which doesn't reliably fire EVENT_OBJECT_HIDE or EVENT_SYSTEM_FOREGROUND. Enabled by default; behind a feature flag so it can be disabled remotely via Finch if a regression is observed. See https://crbug.com/510416850 for context."},{"type":"feature","file":"media/base/media_switches.cc","name":"RecordMediaEngagementScores","variable":"kRecordMediaEngagementScores","defaultStatus":true,"line":1507,"comment":"Enables Media Engagement Index recording. This data will be used to determine when to bypass autoplay policies. This is recorded on all platforms."},{"type":"feature","file":"components/record_replay/core/common/record_replay_features.cc","name":"RecordReplayBase","variable":"kRecordReplayBase","defaultStatus":false,"line":12,"comment":"Enables the record & replay feature in its most basic form."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RecordTabWindowDiffOnRestart","variable":"kRecordTabWindowDiffOnRestart","defaultStatus":true,"line":2025,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"A feature to record the difference in the number of tabs and windows between the last session and the current session on restart."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RecordWebAppDebugInfo","variable":"kRecordWebAppDebugInfo","defaultStatus":false,"line":1421,"comment":"Enables recording additional web app related debugging data to be displayed in: chrome://web-app-internals"},{"type":"feature","file":"media/base/media_switches.cc","name":"RecordWebAudioEngagement","variable":"kRecordWebAudioEngagement","defaultStatus":true,"line":1510,"comment":"Enables Media Engagement Index recording for Web Audio playbacks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"RecoveryFlowReorder","variable":"kRecoveryFlowReorder","defaultStatus":true,"line":1584,"comment":"Enables reordering of screens in the recovery flow."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ReduceGpuPriorityOnBackground","variable":"kReduceGpuPriorityOnBackground","defaultStatus":false,"line":1464,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Reduce the priority of GPU process when in background so it is more likely to be killed first if the OS needs more memory."},{"type":"feature","file":"media/base/media_switches.cc","name":"ReduceHardwareVideoDecoderBuffers","variable":"kReduceHardwareVideoDecoderBuffers","defaultStatus":false,"line":1516,"buildflags":["BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)"],"comment":"Reduces the number of buffers needed in the output video frame pool to populate the Renderer pipeline for hardware accelerated VideoDecoder in non-low latency scenarios."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ReduceSubresourceResponseStartedIPC","variable":"kReduceSubresourceResponseStartedIPC","defaultStatus":false,"line":861,"comment":"When enabled, sends SubresourceResponseStarted IPC only when the user has allowed any HTTPS-related warning exceptions. From field data, ~100% of subresource notifications are not required, since allowing certificate exceptions by users is a rare event. Hence, if user has never allowed any certificate or HTTP exceptions, notifications are not sent to the browser. Once we start sending these messages, we keep sending them until all exceptions are revoked and browser restart occurs."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"RefactorMinWidthContextOverride","variable":"kRefactorMinWidthContextOverride","defaultStatus":true,"line":43,"comment":"Whether to enable the refactor of the smallestScreenWidthDp override."},{"type":"feature","file":"content/public/common/content_features.cc","name":"RegionCaptureOfOtherTabs","variable":"kRegionCaptureOfOtherTabs","defaultStatus":true,"line":873,"buildflags":["BUILDFLAG(ENABLE_SCREEN_CAPTURE)"],"comment":"When a Web application is video-capturing a tab, it can use the Region Capture API to crop the resulting video. - If `kRegionCaptureOfOtherTabs` is disabled, the Web application can only crop self-capture tracks. (That is, cropping is only possible when the application is capturing its own tab.) - If `kRegionCaptureOfOtherTabs` is enabled, the Web application can crop video-captures of any tab (so long as that other tab collaborates by sending a CropTarget)."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"RegisterOsUpdateHandlerWin","variable":"kRegisterOsUpdateHandlerWin","defaultStatus":true,"line":121,"buildflags":["BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)"],"comment":"When this feature is enabled, Chrome will register os_update_handler with Omaha, to be run on OS upgrade."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"RejectWeakKeywordHashes","variable":"kRejectWeakKeywordHashes","defaultStatus":true,"line":100,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, will reject encrypted keyword table hashes that are weakly encrypted."},{"type":"feature","file":"components/privacy_sandbox/privacy_sandbox_features.cc","name":"RelatedWebsiteSetsUi","variable":"kRelatedWebsiteSetsUi","defaultStatus":true,"line":78},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RelaunchWaitForParentProcess","variable":"kRelaunchWaitForParentProcess","defaultStatus":false,"line":2020,"buildflags":["!BUILDFLAG(IS_ANDROID)","BUILDFLAG(IS_WIN)"],"comment":"When enabled, the browser process will pass its own process handle to the relaunched child process, and the child will block early startup until the parent exits to prevent profile lock contention."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"RelaxLimitAImageReaderMaxSizeToOne","variable":"kRelaxLimitAImageReaderMaxSizeToOne","defaultStatus":true,"line":150,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Used to relax the limit of AImageReader max queue size to 1 for Android Tvs. Currently for all android tv except the ones in this list will have max queue size of 1 image."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ReleaseNotesNotificationAllChannels","variable":"kReleaseNotesNotificationAllChannels","defaultStatus":false,"line":1588,"comment":"Enables or disables Release Notes notifications on non-stable ChromeOS channels. Used for testing."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ReleaseNotesNotificationAlwaysEligible","variable":"kReleaseNotesNotificationAlwaysEligible","defaultStatus":false,"line":1595,"comment":"Makes the user always eligible to see the release notes notification. Normally there are conditions that prevent the notification from appearing. For example: channel, profile type, and whether or not the notification had already been shown this milestone."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"RemapGenericMimeType","variable":"kRemapGenericMimeType","defaultStatus":true,"line":43,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to remap generic MIME types (like application/octet-stream) to more specific MIME types deduced from the filename extension on Android."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RemoteActorCredentialSharing","variable":"kRemoteActorCredentialSharing","defaultStatus":false,"line":145,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/page_content_annotations/core/page_content_annotations_features.cc","name":"RemotePageMetadata","variable":"kRemotePageMetadata","defaultStatus":true,"line":110,"comment":"Enables fetching page metadata from the remote Optimization Guide service, left as a killswitch."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"RemovalOfIWAsFromTabCapture","variable":"kRemovalOfIWAsFromTabCapture","defaultStatus":true,"line":235,"comment":"This flag enables the removal of IWAs surface captures from Chrome Tabs category in getDisplayMedia() API. When disabled, IWAs surface captures show both in Chrome Tabs and Windows."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"RemoveGPULegacyIPC","variable":"kRemoveGPULegacyIPC","defaultStatus":false,"line":177,"comment":"When enabled, gives GpuChannel/Host its own dedicated Mojo pipe instead of associating with an unused IPC::Channel."},{"type":"feature","file":"base/power_monitor/power_monitor_features.cc","name":"RemoveIOSPowerEventNotifications","variable":"kRemoveIOSPowerEventNotifications","defaultStatus":false,"line":12,"buildflags":["BUILDFLAG(IS_IOS)"],"comment":"Under this feature, iOS power monitor will not post power suspend/resume event notifications on application entering background/foreground. This feature can keep tcp socket connection always alive on iOS."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"RemoveSearchboxStatsParamFromPrefetchRequests","variable":"kRemoveSearchboxStatsParamFromPrefetchRequests","defaultStatus":true,"line":72},{"type":"feature","file":"services/device/wake_lock/wake_lock_features.cc","name":"RemoveWakeLockInDestructor","variable":"kRemoveWakeLockInDestructor","defaultStatus":true,"line":11,"comment":"Enables removing wake locks in the WakeLock destructor if non-null. Serves as killswitch while we roll out this functionality. TODO(crbug.com/349860794): Remove this killswitch post-safe rollout."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"RenderArcNotificationsByChrome","variable":"kRenderArcNotificationsByChrome","defaultStatus":false,"line":1599,"comment":"Enables rendering ARC notifications using ChromeOS notification framework"},{"type":"feature","file":"content/public/common/content_features.cc","name":"RenderDocument","variable":"kRenderDocument","defaultStatus":true,"line":887,"comment":"Enable using the RenderDocument."},{"type":"feature","file":"content/public/common/content_features.cc","name":"RendererProcessLimitOnAndroid","variable":"kRendererProcessLimitOnAndroid","defaultStatus":false,"line":908,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, set a soft limit on the number of renderer processes on Android, after which Chrome will reuse existing processes when possible. This diverges from current Clank behavior, where we do not set any upper bound and instead delegate that to the system. 42 is approximated from 8GBs ((8192 - 1024) / (16384 / 96)), and has nothing to do with Douglas Adams' book. 1GB is a carve-out for integrated GPU VRAM."},{"type":"feature","file":"media/base/media_switches.cc","name":"RenderMutedAudio","variable":"kRenderMutedAudio","defaultStatus":true,"line":1741,"comment":"Controls whether muted media stream audio should continue to render."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ReportApplicationLanguageInSearchRequest","variable":"kReportApplicationLanguageInSearchRequest","defaultStatus":false,"line":311,"comment":"If enabled, hl= is reported in search requests (applicable to iOS only)."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"ReportBottomOverscrolls","variable":"kReportBottomOverscrolls","defaultStatus":true,"line":46,"comment":"Reports bottom overscrolls on the web page."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"ReportingServiceAlwaysFlush","variable":"kReportingServiceAlwaysFlush","defaultStatus":false,"line":20,"comment":"Determines whether to always flush Local State immediately after an UMA/UKM log upload. If this is disabled, Local State is only immediately flushed after an upload if this is a mobile platform and the browser is in the background."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"ReportUnsafeSite","variable":"kReportUnsafeSite","defaultStatus":true,"line":129,"comment":"Enables app-menu item for reporting an unsafe site to Google."},{"type":"feature","file":"media/base/media_switches.cc","name":"RequestSystemAudioFocus","variable":"kRequestSystemAudioFocus","defaultStatus":true,"line":1250,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, Playing media sessions will request audio focus from the Android system."},{"type":"feature","file":"ui/display/display_features.cc","name":"RequireHdcpKeyProvisioning","variable":"kRequireHdcpKeyProvisioning","defaultStatus":false,"line":74,"comment":"A temporary flag to require Content Protection to use provisioned key as the kernel doesn't expose that it requires this yet.(b/112172923)"},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"RequireLeadingInTextViewWithLeading","variable":"kRequireLeadingInTextViewWithLeading","defaultStatus":true,"line":48,"comment":"Kill switch to turn off validation in TextViewWithLeading that requires a leading value to be configured."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ResampleScrollEventsLatency","variable":"kResampleScrollEventsLatency","defaultStatus":false,"line":331},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"ResamplingScrollEventsExperimentalPrediction","variable":"kResamplingScrollEventsExperimentalPrediction","defaultStatus":false,"line":328},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ResetAudioSelectionImprovementPref","variable":"kResetAudioSelectionImprovementPref","defaultStatus":false,"line":1603,"comment":"Reset audio I/O selection improvement pref, used for testing purpose."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ResetNativePointerInCreditCardAuthDialog","variable":"kResetNativePointerInCreditCardAuthDialog","defaultStatus":true,"line":1034,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, the AuthenticatorSelectionDialogBridge will reset the native pointer when the dialog is dismissed."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ResetShortcutCustomizations","variable":"kResetShortcutCustomizations","defaultStatus":false,"line":1607,"comment":"If enabled, will reset all shortcut customizations on startup."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ResetSuggestionsScroll","variable":"kResetSuggestionsScroll","defaultStatus":false,"line":500,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, OmniboxSuggestionsDropdown will force reset the scroll position of the Omnibox suggestion list to the top during any re-layout."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"ResetTamperedDefaultSearchEngine","variable":"kResetTamperedDefaultSearchEngine","defaultStatus":true,"line":78},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"ResizeCompat","variable":"kResizeCompat","defaultStatus":false,"line":225},{"type":"feature","file":"media/base/media_switches.cc","name":"ResolutionBasedDecoderPriority","variable":"kResolutionBasedDecoderPriority","defaultStatus":true,"line":1109,"comment":"Enables a platform-specific resolution cutoff for prioritizing platform decoders over software decoders or vice-versa. Note: This feature is used by ChromeOS tests and shouldn't be removed even though it has long been enabled by default."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RespectUserAgentOverrideInSearchPrefetch","variable":"kRespectUserAgentOverrideInSearchPrefetch","defaultStatus":false,"line":1959,"comment":"Enables the User-Agent override fix for SearchPrefetch. This will work only if enabled together with `kPreloadingRespectUserAgentOverride`."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"RestartNetworkServiceUnsandboxedForFailedLaunch","variable":"kRestartNetworkServiceUnsandboxedForFailedLaunch","defaultStatus":true,"line":133,"comment":"When this feature is enabled, the network service will restart unsandboxed if a previous attempt to launch it sandboxed failed."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"RestartToGainAccessToKeychain","variable":"kRestartToGainAccessToKeychain","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC)","value":true}],"line":185,"buildflags":["BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"],"comment":"Enables \"Needs access to keychain, restart chrome\" bubble and banner."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"RestrictDeviceManagementServiceOAuthScope","variable":"kRestrictDeviceManagementServiceOAuthScope","defaultStatus":true,"line":703,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"RestrictedWebUICodeCache","variable":"kRestrictedWebUICodeCache","defaultStatus":false,"line":1964,"comment":"Restricts the WebUI scripts able to use the generated code cache according to embedder-specified heuristics."},{"type":"feature","file":"content/public/common/content_features.cc","name":"RestrictThreadPoolInBackground","variable":"kRestrictThreadPoolInBackground","defaultStatus":false,"line":891,"comment":"Restrict the maximum number of concurrent ThreadPool tasks when a renderer is low priority."},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"RestructureMetricsConsentSettings","variable":"kRestructureMetricsConsentSettings","defaultStatus":false,"line":37,"comment":"Restructures the metrics privacy settings into a three-state model [kNone, kBasic, kAdvanced]."},{"type":"feature","file":"media/base/media_switches.cc","name":"ResumeBackgroundVideo","variable":"kResumeBackgroundVideo","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":439,"comment":"Let videos be resumed via remote controls (for example, the notification) when in background."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"RetryCapturePageContent","variable":"kRetryCapturePageContent","defaultStatus":true,"line":193,"comment":"Retries capturing annotated page context during automated password change if capturing failed for some reason."},{"type":"feature","file":"media/base/media_switches.cc","name":"RevokeMediaSourceObjectURLOnAttach","variable":"kRevokeMediaSourceObjectURLOnAttach","defaultStatus":true,"line":646,"comment":"Approach original pre-REC MSE object URL autorevoking behavior, though await actual attempt to use the object URL for attachment to perform revocation. This will hopefully reduce runtime memory bloat for pages that do not explicitly detach their HTMLME+MSE object collections nor explicitly revoke the object URLs used to attach HTMLME+MSE. When disabled, revocation only occurs when application explicitly revokes the object URL, or upon the execution context teardown for the MediaSource object. When enabled, revocation occurs upon successful start of attachment of HTMLME to the object URL. Note, rather than immediately scheduling a task to revoke upon the URL's creation, as at least one other browser does and the original File API pattern used to follow, this delay until attachment start enables new scenarios that could use the object URL for attaching HTMLME+MSE cross-thread (MSE-in-workers), where there could be significant delay between the worker thread creation of the object URL and the main thread usage of the object URL for starting attachment to HTMLME."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"RichAutocompletion","variable":"kRichAutocompletion","defaultStatus":false,"line":172,"comment":"If enabled, expands autocompletion to possibly (depending on params) include suggestion titles and non-prefixes as opposed to be restricted to URL prefixes. Will also adjust the location bar UI and omnibox text selection to accommodate the autocompletions."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"RoundedIcons","variable":"kRoundedIcons","defaultStatus":false,"line":516},{"type":"feature","file":"base/task/task_features.cc","name":"RunTasksByBatches","variable":"kRunTasksByBatches","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)","value":true}],"line":46,"comment":"Feature to run tasks by batches before pumping out messages."},{"type":"feature","file":"content/public/common/content_features.cc","name":"RunVideoCaptureServiceInBrowserProcess","variable":"kRunVideoCaptureServiceInBrowserProcess","defaultStatus":false,"line":1021,"buildflags":["!BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS)"],"comment":"Run video capture service in the Browser process as opposed to a dedicated utility process."},{"type":"feature","file":"media/base/media_switches.cc","name":"RustMpegAudioDataParser","variable":"kRustMpegAudioDataParser","defaultStatus":true,"line":408,"comment":"Enables Rust version of MPEG parser (MP3/ADTS). Remove after M152 stable."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"SaasUsageReporting","variable":"kSaasUsageReporting","defaultStatus":true,"line":11,"comment":"Controls whether SaaS usage reporting is enabled."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"SafeBrowsingCrxAllowlistAutoDisable","variable":"kSafeBrowsingCrxAllowlistAutoDisable","defaultStatus":false,"line":162,"comment":"Reports Extensions.WebRequest.KeepaliveRequestFinished when enabled. Automatically disable extensions not included in the Safe Browsing CRX allowlist if the user has turned on Enhanced Safe Browsing (ESB). The extensions can be disabled at ESB opt-in time or when an extension is moved out of the allowlist."},{"type":"feature","file":"components/subresource_filter/core/browser/subresource_filter_features.cc","name":"SafeBrowsingSubresourceFilter","variable":"kSafeBrowsingSubresourceFilter","defaultStatus":true,"line":246,"comment":"The primary toggle to enable/disable the Safe Browsing Subresource Filter."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SafeHidConnectionWinClose","variable":"kSafeHidConnectionWinClose","defaultStatus":true,"line":91,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, HidConnectionWin will ensure that pending OVERLAPPED requests are not deleted until the kernel has signaled completion, even if the connection is closed."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SafeSerialPortImplWinClose","variable":"kSafeSerialPortImplWinClose","defaultStatus":true,"line":96,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, SerialPortImpl will ensure that shared memory buffers backing pending OVERLAPPED requests are not unmapped until the kernel has signaled completion, even if the port is closed."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubDisruptiveNotificationRevocation","variable":"kSafetyHubDisruptiveNotificationRevocation","defaultStatus":true,"line":1442},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubExtensionsNoPrivacyPracticesTrigger","variable":"kSafetyHubExtensionsNoPrivacyPracticesTrigger","defaultStatus":true,"line":1432,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"],"comment":"Enables extensions that do not display proper privacy practices in the Safety Hub Extension Reivew Panel."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubExtensionsOffStoreTrigger","variable":"kSafetyHubExtensionsOffStoreTrigger","defaultStatus":true,"line":1436,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"],"comment":"Enables offstore extensions to be shown in the Safety Hub Extension review panel."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubExtensionsUwSTrigger","variable":"kSafetyHubExtensionsUwSTrigger","defaultStatus":true,"line":1429,"buildflags":["BUILDFLAG(ENABLE_EXTENSIONS_CORE)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubLocalPasswordsModule","variable":"kSafetyHubLocalPasswordsModule","defaultStatus":false,"line":1528,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the local passwords module in Safety Hub."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubThreeDotDetails","variable":"kSafetyHubThreeDotDetails","defaultStatus":true,"line":1440},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubTrustSafetySentimentSurvey","variable":"kSafetyHubTrustSafetySentimentSurvey","defaultStatus":false,"line":1537,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables or disables the Trust Safety Sentiment Survey for Safety Hub."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubUnifiedPasswordsModule","variable":"kSafetyHubUnifiedPasswordsModule","defaultStatus":false,"line":1531,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the unified passwords module in Safety Hub."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SafetyHubWeakAndReusedPasswords","variable":"kSafetyHubWeakAndReusedPasswords","defaultStatus":false,"line":1524,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables Weak and Reused passwords in Safety Hub."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SafeUsbDeviceHandleWinClose","variable":"kSafeUsbDeviceHandleWinClose","defaultStatus":true,"line":86,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, UsbDeviceHandleWin will ensure that pending OVERLAPPED requests are not deleted until the kernel has signaled completion, even if the handle is closed."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SameAppWindowCycle","variable":"kSameAppWindowCycle","defaultStatus":false,"line":1031,"comment":"If enabled, allows the user to cycle between windows of an app using Alt + `."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"SandboxExternalProtocolBlocked","variable":"kSandboxExternalProtocolBlocked","defaultStatus":true,"line":155,"comment":"Gates sandboxed iframe navigation toward external protocol behind any of: - allow-top-navigation - allow-top-navigation-to-custom-protocols - allow-top-navigation-with-user-gesture (+ user gesture) - allow-popups Motivation: Developers are surprised that a sandboxed iframe can navigate and/or redirect the user toward an external application. General iframe navigation in sandboxed iframe are not blocked normally, because they stay within the iframe. However they can be seen as a popup or a top-level navigation when it leads to opening an external application. In this case, it makes sense to extend the scope of sandbox flags, to block malvertising. Implementation bug: https://crbug.com/40057420 I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/-t-f7I6VvOI Enabled in M103. Flag to be removed in M106"},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"SandboxExternalProtocolBlockedWarning","variable":"kSandboxExternalProtocolBlockedWarning","defaultStatus":true,"line":157,"comment":"Enabled in M100. Flag to be removed in M106"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"Sanitize","variable":"kSanitize","defaultStatus":true,"line":1036,"comment":"Make Sanitize available. This feature provides a \"soft reset\" option in CrOS settings. This soft reset will disable extensions and reset some of the settings to default."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SanitizeV1","variable":"kSanitizeV1","defaultStatus":true,"line":1042,"comment":"Make Sanitize V1 available. This feature provides a \"soft reset\" option in CrOS settings. In addition to the existing Sanitize features, this will provide a functional reset to user's proxy settings, input methods for keyboard and choice of languages in the spellchecker."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"SaveRawFilesOnTracing","variable":"kSaveRawFilesOnTracing","defaultStatus":false,"line":230,"comment":"When enabled, tracing raw files are saved in order to help debug failures."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ScalableShelfPods","variable":"kScalableShelfPods","defaultStatus":false,"line":1611,"comment":"Adds a shelf pod button that appears whenever the shelf has limited space and acts as an entrypoint to other shelf pod buttons to prevent overflow."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ScannerDogfood","variable":"kScannerDogfood","defaultStatus":false,"line":1614,"comment":"Enables the scanner dogfood update."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ScannerFeedbackToast","variable":"kScannerFeedbackToast","defaultStatus":false,"line":1618,"comment":"Enables the toast which allows users to provide feedback after a Scanner action is completed."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ScannerUpdate","variable":"kScannerUpdate","defaultStatus":true,"line":1621,"comment":"Enables the scanner update."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SchedQoSOnResourcedForChrome","variable":"kSchedQoSOnResourcedForChrome","defaultStatus":false,"line":1026,"comment":"Update scheduler settings using resourced on ChromeOS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SchedulerConfiguration","variable":"kSchedulerConfiguration","defaultStatus":false,"line":1627,"comment":"Enable support for multiple scheduler configurations."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ScreenAIPartitionAllocAdvancedChecksEnabled","variable":"kScreenAIPartitionAllocAdvancedChecksEnabled","defaultStatus":false,"line":504,"buildflags":["!BUILDFLAG(IS_ANDROID)","BUILDFLAG(IS_LINUX)"],"comment":"Enables advanced partition allocation checks in ScreenAI service.","todos":["TODO(crbug.com/418199684): Remove when the bug is fixed."]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ScreenAITestMode","variable":"kScreenAITestMode","defaultStatus":false,"line":498,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables to use the Screen AI component available for testing. If enabled, ScreenAI library will be loaded from //third_party/screen-ai."},{"type":"feature","file":"ui/display/display_features.cc","name":"ScreenWinDisplayLookupByHMONITOR","variable":"kScreenWinDisplayLookupByHMONITOR","defaultStatus":true,"line":117,"comment":"Optimizes ScreenWinDisplay lookup by caching an HMONITOR for each display. This is part of a combined performance experiment so requires both this flag and \"ReducePPMs\". In case of errors this flag can be disabled without affecting the rest of the experiment."},{"type":"feature","file":"ui/native_theme/features/native_theme_features.cc","name":"ScrollbarAnimations","variable":"kScrollbarAnimations","defaultStatus":true,"line":28,"comment":"Disable to keep scrollbars visible forever once shown, and immediately update scrollbar states instead of animating. This is used to ensure ref tests in WPT do not flake based on the time taken before the screenshot is captured."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SCTAuditingHashdance","variable":"kSCTAuditingHashdance","defaultStatus":true,"line":1546,"comment":"SCT auditing hashdance allows Chrome clients who are not opted-in to Enhanced Safe Browsing Reporting to perform a k-anonymous query to see if Google knows about an SCT seen in the wild. If it hasn't been seen, then it is considered a security incident and uploaded to Google."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeamlessRefreshRateSwitching","variable":"kSeamlessRefreshRateSwitching","defaultStatus":false,"line":1648,"comment":"Enables automated control of the refresh rate for the internal display."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeaPenDemoMode","variable":"kSeaPenDemoMode","defaultStatus":true,"line":1639,"comment":"Enables sea pen feature for ChromeOS demo mode."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeaPenQueryRewrite","variable":"kSeaPenQueryRewrite","defaultStatus":true,"line":1642,"comment":"Enables sea pen prompt rewrite feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeaPenTextInput","variable":"kSeaPenTextInput","defaultStatus":true,"line":1633,"comment":"Enables sea pen text input feature in the personalization app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeaPenTextInputTranslation","variable":"kSeaPenTextInputTranslation","defaultStatus":true,"line":1636,"comment":"Enables sea pen text input translation feature."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeaPenUseExptTemplate","variable":"kSeaPenUseExptTemplate","defaultStatus":false,"line":1645,"comment":"Enables sea pen feature with next templates."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SearchAIModeSignInPromoSelfDismissal","variable":"kSearchAIModeSignInPromoSelfDismissal","defaultStatus":true,"line":527,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"SearchEngineChoiceTriggerReprompt","variable":"kSearchEngineChoiceTriggerReprompt","defaultStatus":false,"line":59,"comment":"Use an explicit \"NO_REPROMPT\" value as default to avoid reprompting users who saw the choice screen in M121."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"SearchEngineExplicitChoiceDialog","variable":"kSearchEngineExplicitChoiceDialog","defaultStatus":false,"line":229,"comment":"When enabled, web searches with a newly-installed search engine-changing extension will be blocked behind a new explicit-choice dialog. The dialog must be used to confirm the choice of using the new search engine, or returning to the previous provider."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"SearchEngineUnconditionalDialog","variable":"kSearchEngineUnconditionalDialog","defaultStatus":false,"line":244,"comment":"When enabled, all search extensions will unconditionally get the search engine override dialog."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"SearchSettingsUpdate","variable":"kSearchSettingsUpdate","defaultStatus":false,"line":90,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"SearchSettingsUpdateV2","variable":"kSearchSettingsUpdateV2","defaultStatus":false,"line":94,"buildflags":["BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"SecretPortalKeyProviderUseForEncryption","variable":"kSecretPortalKeyProviderUseForEncryption","defaultStatus":false,"line":163,"buildflags":["BUILDFLAG(IS_LINUX)"],"comment":"If true, encrypt new data with the key provided by SecretPortalKeyProvider. Otherwise, it will only decrypt existing data."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SecurePaymentConfirmation","variable":"kSecurePaymentConfirmation","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!(BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID))","value":false}],"line":1031,"comment":"Browser-side feature flag for Secure Payment Confirmation (SPC) that also controls the render side feature state. SPC is not currently available on Linux or ChromeOS, as it requires platform authenticator support."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SecurePaymentConfirmationDebug","variable":"kSecurePaymentConfirmationDebug","defaultStatus":false,"line":1044,"comment":"Used to control whether to remove the restriction that PaymentCredential in WebAuthn and secure payment confirmation method in PaymentRequest API must use a user verifying platform authenticator. When enabled, this allows using such devices as UbiKey on Linux, which can make development easier."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SecurityKeyHidInterfacesAreFido","variable":"kSecurityKeyHidInterfacesAreFido","defaultStatus":true,"line":126,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Modifies the internal allowlist behavior that enables privileged extensions to bypass the HID blocklist when accessing FIDO devices. When enabled, privileged extensions can access non-FIDO interfaces on known security keys."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"SelectFileOpenDocument","variable":"kSelectFileOpenDocument","defaultStatus":true,"line":51,"comment":"Use ACTION_OPEN_DOCUMENT rather than ACTION_GET_CONTENT when selecting a file."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SendDeviceInfoToDemoServer","variable":"kSendDeviceInfoToDemoServer","defaultStatus":true,"line":1746,"comment":"Controls whether to include the device info in the demo account setup request to the demo server in signed-in experience."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SendEmptyGestureScrollUpdate","variable":"kSendEmptyGestureScrollUpdate","defaultStatus":true,"line":30,"comment":"If enabled, generates an empty GestureScrollUpdate if the preceding TouchMove event had no gestures and sends both events together."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SendGPUChannelEarly","variable":"kSendGPUChannelEarly","defaultStatus":false,"line":903,"comment":"Enables the optimization where GPU channels are sent to renderer processes early when the renderer process is being initialized, instead of waiting for the renderer to request the GPU channel to the browser process."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"SendTouchMovesToEventForwarderObservers","variable":"kSendTouchMovesToEventForwarderObservers","defaultStatus":false,"line":53,"todos":["TODO(crbug.com/328601354): Cleanup flag after investigating nothing is broken after changing the default behavior for EventForwarder observers."]},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SensorPrivacyMitigations","variable":"kSensorPrivacyMitigations","defaultStatus":true,"line":20,"comment":"Enables browser-side privacy mitigations for generic sensors."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SensorsAllowAskBlockPermissionModel","variable":"kSensorsAllowAskBlockPermissionModel","defaultStatus":false,"line":16,"comment":"Enables an Allow/Ask/Block set of default permissions for sensors."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"SeparateDefaultAndPinPrompt","variable":"kSeparateDefaultAndPinPrompt","defaultStatus":false,"line":129,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeparateNetworkIcons","variable":"kSeparateNetworkIcons","defaultStatus":false,"line":1652,"comment":"Enables displaying separate network icons for different networks types. https://crbug.com/902409"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SeparateWebAppShortcutBadgeIcon","variable":"kSeparateWebAppShortcutBadgeIcon","defaultStatus":false,"line":1656,"comment":"With this feature enabled, the shortcut app badge is painted in the UI instead of being part of the shortcut app icon."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SerialPortConnected","variable":"kSerialPortConnected","defaultStatus":[{"condition":"!BUILDFLAG(IS_ANDROID)","value":true},{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":25,"comment":"Expose serial port logical connection state and dispatch connection events for Bluetooth serial ports when the Bluetooth device connection state changes."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"SerialSplitDtrAndRts","variable":"kSerialSplitDtrAndRts","defaultStatus":true,"line":193,"buildflags":["!BUILDFLAG(IS_WIN)"],"comment":"Splits DTR and RTS control signals. See crbug.com/420689824. Can be disabled as a kill switch if needed."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ServeJavaCachedZeroSuggest","variable":"kServeJavaCachedZeroSuggest","defaultStatus":false,"line":496,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, Java-cached ZPS will be served. The cached ZPS made sense on sub-4GB Android Go devices"},{"type":"feature","file":"content/public/common/content_features.cc","name":"ServiceWorkerAutoPreload","variable":"kServiceWorkerAutoPreload","defaultStatus":true,"line":995,"comment":"Enables auto preloading for fetch requests before invoking the fetch handler in ServiceWorker. The fetch request inside the fetch handler is resolved with this preload response. If the fetch handler result is fallback, uses this preload request as a fallback network request. Unlike navigation preload, this preloading is applied to subresources. Also, it doesn't require a developer opt-in. crbug.com/1472634 for more details."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ServiceWorkerBackgroundUpdateForRegisteredStorageKeys","variable":"kServiceWorkerBackgroundUpdateForRegisteredStorageKeys","defaultStatus":true,"line":1055,"comment":"If enabled, UI thread tasks can check ServiceWorker registration information from the thread pool without waiting for running the receiving task. Please see crbug.com/421530699 for more details."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"ServiceWorkerForegroundOnExtensionStartup","variable":"kServiceWorkerForegroundOnExtensionStartup","defaultStatus":true,"line":1573,"comment":"When enabled, an extension service worker's render process is given foreground priority while the worker is STARTING. Extension service workers are often started headlessly (e.g. to register webRequest listeners) with no controllee or other foreground signal, so their process would otherwise be left at background priority (which maps to EcoQoS on Windows). Under heavy system load that lets the worker starve, miss the start timeout, get torn down, and retry indefinitely (crbug.com/484218883). The boost is dropped once the worker reaches RUNNING or stops."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ServiceWorkerInterceptDownloads","variable":"kServiceWorkerInterceptDownloads","defaultStatus":false,"line":1015,"comment":"crbug.com/40410035: When enabled, download requests (\"Save link as\", \"Save image as\", <a download>) are intercepted by service workers, allowing the service worker's fetch event handler to provide a response."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ServiceWorkerPaymentApps","variable":"kServiceWorkerPaymentApps","defaultStatus":true,"line":1050,"comment":"Service worker based payment apps as defined by w3c here: https://w3c.github.io/webpayments-payment-apps-api/","todos":["TODO(rouslan): Remove this."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SessionManagerLivenessCheck","variable":"kSessionManagerLivenessCheck","defaultStatus":true,"line":1670,"comment":"If enabled, the session manager daemon will abort the browser if its liveness checker detects a hang, i.e. the browser fails to acknowledge and respond sufficiently to periodic pings. IMPORTANT NOTE: the feature name here must match exactly the name of the feature in the open-source ChromeOS file session_manager_service.cc."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SessionManagerLongKillTimeout","variable":"kSessionManagerLongKillTimeout","defaultStatus":false,"line":1663,"comment":"Enables or disables long kill timeout for session manager daemon. When enabled, session manager daemon waits for a longer time (e.g. 12s) for chrome to exit before sending SIGABRT. Otherwise, it uses the default time out (currently 3s)."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"SessionRestoreInfobar","variable":"kSessionRestoreInfobar","defaultStatus":false,"line":396,"buildflags":["BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)"],"comment":"When enabled, user may see the session restore UI flow."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SettingsShowsPerKeyboardSettings","variable":"kSettingsShowsPerKeyboardSettings","defaultStatus":false,"line":95,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Integrate input method specific settings to Chrome OS settings page. https://crbug.com/895886."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SharedArrayBuffer","variable":"kSharedArrayBuffer","defaultStatus":[{"condition":"BUILDFLAG(PLATFORM_CFM)","value":true},{"condition":"!BUILDFLAG(PLATFORM_CFM)","value":false}],"line":1061,"comment":"http://tc39.github.io/ecmascript_sharedmem/shmem.html This feature is also enabled independently of this flag for cross-origin isolated renderers."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SharedImageStubHighPriority","variable":"kSharedImageStubHighPriority","defaultStatus":false,"line":182,"buildflags":["BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)"],"comment":"Feature flag to control whether SharedImageStub sequence uses high priority on ChromeOS and Linux. Enabled by default."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShelfAutoHideSeparation","variable":"kShelfAutoHideSeparation","defaultStatus":false,"line":1674,"comment":"Whether we should track auto-hide preferences separately between clamshell and tablet."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShimlessRMA3pDiagnosticsAllowPermissionPolicy","variable":"kShimlessRMA3pDiagnosticsAllowPermissionPolicy","defaultStatus":true,"line":1687,"comment":"Controls whether Shimless diagnostics IWAs can access user permission through requesting permission at install time."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShimlessRMA3pDiagnosticsDevMode","variable":"kShimlessRMA3pDiagnosticsDevMode","defaultStatus":false,"line":1682,"comment":"Enables 3p diagnostics dev mode in the Shimless RMA flow. This will skip some checks to allow developers to use dev-signed extensions for development purpose."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShimlessRMAFlexibleSerialNumberName","variable":"kShimlessRMAFlexibleSerialNumberName","defaultStatus":true,"line":1691,"comment":"Enables or disables the option to allow customized Serial Number namings."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShimlessRMAHideGoogleSKU","variable":"kShimlessRMAHideGoogleSKU","defaultStatus":true,"line":1696,"comment":"Enables or disables the option to hide Google SKU on the device information page."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShimlessRMAOsUpdate","variable":"kShimlessRMAOsUpdate","defaultStatus":false,"line":1677,"comment":"Enables or disables the OS update page in the Shimless RMA flow."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ShowAutocompleteAtMemoryButton","variable":"kShowAutocompleteAtMemoryButton","defaultStatus":false,"line":1039,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"If enabled, an entry point to AtMemory will be shown at the bottom of the Autocomplete dialogs."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"ShowBlockedSensitiveDownload","variable":"kShowBlockedSensitiveDownload","defaultStatus":true,"line":37,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to show blocked sensitive downloads on download home."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShowBluetoothDebugLogToggle","variable":"kShowBluetoothDebugLogToggle","defaultStatus":true,"line":1699,"comment":"Enables or disables a toggle to enable Bluetooth debug logs."},{"type":"feature","file":"chromeos/ash/experiences/guest_os/borealis/borealis_features.cc","name":"ShowBorealisMotd","variable":"kShowBorealisMotd","defaultStatus":false,"line":10,"comment":"Enable Borealis MOTD on Chrome OS."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ShowConfirmationForGroupedCredentials","variable":"kShowConfirmationForGroupedCredentials","defaultStatus":true,"line":201,"comment":"Shows a confirmation dialog before filling grouped credentials from the manual fallback popup on Desktop."},{"type":"feature","file":"components/lens/lens_features.cc","name":"ShowContextualTasksMenuIcon","variable":"kShowContextualTasksMenuIcon","defaultStatus":false,"line":20},{"type":"feature","file":"components/autofill/core/common/autofill_debug_features.cc","name":"ShowDomNodeIDs","variable":"kShowDomNodeIDs","defaultStatus":false,"line":195,"comment":"Enables showing DOM Node ID of elements."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"ShowDownloadScanningState","variable":"kShowDownloadScanningState","defaultStatus":true,"line":39,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to show the download scanning state on download home."},{"type":"feature","file":"media/base/media_switches.cc","name":"ShowForceRespectUiGainsToggle","variable":"kShowForceRespectUiGainsToggle","defaultStatus":true,"line":612,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShowFrozenUpdateNotification","variable":"kShowFrozenUpdateNotification","defaultStatus":true,"line":1749,"comment":"Whether or not to show the notification based on experiment."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShowLiveCaptionInVideoConferenceTray","variable":"kShowLiveCaptionInVideoConferenceTray","defaultStatus":true,"line":1702,"comment":"Shows live caption in the video conference tray."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ShowPopupOnMouseReleased","variable":"kShowPopupOnMouseReleased","defaultStatus":false,"line":156,"comment":"Suggestions UI - these affect the UI or function of the suggestions popup."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShowSharingUserInLauncherContinueSection","variable":"kShowSharingUserInLauncherContinueSection","defaultStatus":true,"line":1707,"comment":"Whether sharing user name should be shown in the continue section for drive files shown because they have been recently shared with the user."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"ShowSpatialAudioToggle","variable":"kShowSpatialAudioToggle","defaultStatus":true,"line":1711,"comment":"Shows the spatial audio toggle in audio settings page."},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"ShowSugesstionsOnAlreadyAutofilledUnrecognized","variable":"kShowSugesstionsOnAlreadyAutofilledUnrecognized","defaultStatus":true,"line":1044,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Kill switch: if enabled, suggestions are shown for fields with unrecognized autocomplete attribute if they are already autofilled."},{"type":"feature","file":"components/password_manager/core/common/password_manager_features.cc","name":"ShowSuggestionsOnAutofocus","variable":"kShowSuggestionsOnAutofocus","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS)","value":false}],"line":49,"comment":"Allows to show suggestions automatically when password forms are autofocused on pageload. Enabled by default on desktop in M140."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ShowTabGroupsMacSystemMenu","variable":"kShowTabGroupsMacSystemMenu","defaultStatus":false,"line":185,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Add tab group colours when viewing tab groups using the top mac OS menu bar."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"ShowTabWithPasswordChangeOnSuccess","variable":"kShowTabWithPasswordChangeOnSuccess","defaultStatus":false,"line":204,"comment":"Shows a tab with password change instead of bubble/settings page after successful password change."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"SidePanelFlyoverAnimation","variable":"kSidePanelFlyoverAnimation","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC)","value":false},{"condition":"!BUILDFLAG(IS_MAC)","value":true}],"line":270,"comment":"Feature which uses a flyover animation for animating side panels (and expansion/contraction of the Vertical Tab Strip). Call `UseSidePanelFlyoverAnimation()` instead of checking this feature directly."},{"type":"feature","file":"google_apis/gaia/gaia_features.cc","name":"SigninChromePasskeyUnlockUrlUsesAccountIndex","variable":"kSigninChromePasskeyUnlockUrlUsesAccountIndex","defaultStatus":true,"line":20,"comment":"Intended as a Finch killswitch. Enabled by default in M150. Remove in or after M153."},{"type":"feature","file":"google_apis/gaia/gaia_features.cc","name":"SigninChromeSyncKeysUrlUsesAccountIndex","variable":"kSigninChromeSyncKeysUrlUsesAccountIndex","defaultStatus":true,"line":24,"comment":"Intended as a Finch killswitch."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninInterceptGraphicUpdate","variable":"kSigninInterceptGraphicUpdate","defaultStatus":false,"line":708,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninLevelUpButton","variable":"kSigninLevelUpButton","defaultStatus":false,"line":712,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninPromoLimitsExperiment","variable":"kSigninPromoLimitsExperiment","defaultStatus":false,"line":715},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SignInPromoMaterialNextUI","variable":"kSignInPromoMaterialNextUI","defaultStatus":true,"line":726,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninPromoOnAvatarPill","variable":"kSigninPromoOnAvatarPill","defaultStatus":false,"line":730,"buildflags":["BUILDFLAG(ENABLE_DICE_SUPPORT)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninWindows10DepreciationStateBypassForTesting","variable":"kSigninWindows10DepreciationStateBypassForTesting","defaultStatus":false,"line":745},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SigninWindows10DepreciationStateForTesting","variable":"kSigninWindows10DepreciationStateForTesting","defaultStatus":false,"line":743},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"SingleBuffer","variable":"kSingleBuffer","defaultStatus":false,"line":141,"comment":"Enables single-buffered graphics (overriding default graphics buffer settings and takes precedence over triple-buffer feature)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SingleCaCertVerificationPhase0","variable":"kSingleCaCertVerificationPhase0","defaultStatus":false,"line":1715,"comment":"Only collect metrics for the server certificate verification failure in EAP networks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SingleCaCertVerificationPhase1","variable":"kSingleCaCertVerificationPhase1","defaultStatus":true,"line":1720,"comment":"Try to use only a single CA cert for the EAP network if CA cert was selected, fallback to the previous config."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SingleCaCertVerificationPhase2","variable":"kSingleCaCertVerificationPhase2","defaultStatus":true,"line":1724,"comment":"Use a single CA cert for the EAP network if CA cert was selected, no fallback."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SiteInstanceGroupsForDataUrls","variable":"kSiteInstanceGroupsForDataUrls","defaultStatus":true,"line":1091,"comment":"When enabled, puts subframe data: URLs in a separate SiteInstance in the same SiteInstanceGroup as the initiator."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SiteIsolationForCrossOriginOpenerPolicy","variable":"kSiteIsolationForCrossOriginOpenerPolicy","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":1102,"comment":"Controls whether to isolate sites of documents that specify an eligible Cross-Origin-Opener-Policy header. Note that this is only intended to be used on Android, which does not use strict site isolation. See https://crbug.com/1018656."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SitePerProcess","variable":"kSitePerProcess","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false},{"condition":"!BUILDFLAG(IS_ANDROID)","value":true}],"line":1583,"comment":"Alternative to switches::kSitePerProcess, for turning on full site isolation. Launch bug: https://crbug.com/810843. This is a //chrome-layer feature to avoid turning on site-per-process by default for *all* //content embedders (e.g. this approach lets ChromeCast avoid site-per-process mode).","todos":["TODO(alexmos): Move this and the other site isolation features below to browser_features, as they are only used on the browser side."]},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphite","variable":"kSkiaGraphite","defaultStatus":[{"condition":"BUILDFLAG(IS_APPLE)","value":true},{"condition":"!BUILDFLAG(IS_APPLE)","value":false}],"line":364,"comment":"Enable Skia Graphite with the platform's default Dawn backend. Note: This can be overridden by --enable-skia-graphite and --disable-skia-graphite which take precedence over the feature flag, and the Dawn backend can be overridden with the --skia-graphite-dawn-backend flag."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphiteDawnUseD3D12","variable":"kSkiaGraphiteDawnUseD3D12","defaultStatus":false,"line":455,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphitePrecompilation","variable":"kSkiaGraphitePrecompilation","defaultStatus":false,"line":410,"comment":"Enable Skia Graphite's Pipeline precompilation feature. Note: This is only meaningful when Skia Graphite is enabled but can then also be overridden by --enable-skia-graphite-precompilation and --disable-skia-graphite-precompilation."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphiteSmallPathAtlas","variable":"kSkiaGraphiteSmallPathAtlas","defaultStatus":false,"line":393,"comment":"Enable atlasing of small paths on Skia Graphite. Only meaningful if SkiaGraphite is also enabled."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphiteUsePersistentCache","variable":"kSkiaGraphiteUsePersistentCache","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN)","value":true},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN))","value":false}],"line":413,"comment":"Whether to use PersistentCache for Skia Graphite's pipeline cache."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SkiaGraphiteWinIntel","variable":"kSkiaGraphiteWinIntel","defaultStatus":false,"line":377,"comment":"Controls Skia Graphite specifically for Intel GPUs on Windows. On Windows, the status of Graphite on Intel GPUs won't be controlled by the standard SkiaGraphite feature, but by this feature flag instead. This feature only works if `kLateGraphiteFeatureCheck` is also enabled."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SkipCheckForAccountManagementOnSignin","variable":"kSkipCheckForAccountManagementOnSignin","defaultStatus":true,"line":773,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Feature to bypass double-checking that signin callers have correctly gotten the user to accept account management. This check is slow and not strictly necessary, so disable it while we work on adding caching.","todos":["TODO(https://crbug.com/339457762): Restore the check when we implement caching."]},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"SkipDropCaches","variable":"kSkipDropCaches","defaultStatus":true,"line":235,"comment":"When enabled, skip dropping ARCVM page cache after boot."},{"type":"feature","file":"ui/display/display_features.cc","name":"SkipEmptyDisplayHotplugEvent","variable":"kSkipEmptyDisplayHotplugEvent","defaultStatus":true,"line":17,"buildflags":["BUILDFLAG(IS_WIN)"],"todos":["TODO(crbug.com/368060445): Remove this when the feature is fully launched."]},{"type":"feature","file":"content/public/common/content_features.cc","name":"SkipIPCChannelPausingForNonGuests","variable":"kSkipIPCChannelPausingForNonGuests","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":922,"comment":"When enabled, the IPC channel will not be paused when launching non-guest renderer processes. This makes it possible for all kinds of mojo calls to be sent to the renderer process before OnProcessLaunched fires. When the feature is disabled, those messages are instead queued because the IPC channel is paused, and only flushed at OnProcessLaunched."},{"type":"feature","file":"media/base/media_switches.cc","name":"SkipMediaCodecReallocation","variable":"kSkipMediaCodecReallocation","defaultStatus":false,"line":1290,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables skipping MediaCodec reallocation if input buffer requirements are already met."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SkipPagehideInCommitForDSENavigation","variable":"kSkipPagehideInCommitForDSENavigation","defaultStatus":false,"line":940,"comment":"When enabled, skip pagehide-in-commit when navigating to DSE. (See: https://crbug.com/375385416)"},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SkipRefreshTokenCheckInIdentityManager","variable":"kSkipRefreshTokenCheckInIdentityManager","defaultStatus":true,"line":777},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"SkipUndecryptablePasswords","variable":"kSkipUndecryptablePasswords","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":207,"comment":"Displays at least the decryptable and never saved logins in the password manager"},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"SkipVulkanBlocklist","variable":"kSkipVulkanBlocklist","defaultStatus":false,"line":313,"comment":"Enable skipping the Vulkan blocklist."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SkyVault","variable":"kSkyVault","defaultStatus":true,"line":1627,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables the SkyVault (cloud-first) changes, some of which are also controlled by policies: removing local storage, saving downloads and screen captures to the cloud, and related UX changes, primarily in the Files App."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SkyVaultV2","variable":"kSkyVaultV2","defaultStatus":true,"line":2181,"comment":"Enables the SkyVault V2 changes, which are also controlled by policies: LocalUserFilesAllowed, DownloadDirectory and ScreenCaptureLocation."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SkyVaultV3","variable":"kSkyVaultV3","defaultStatus":true,"line":2185,"comment":"Enables the SkyVault V3 changes, which improve the resilience of file uploads and error handling."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SmartDim","variable":"kSmartDim","defaultStatus":false,"line":2188,"comment":"Enables or disables SmartDim on Chrome OS."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SmartDimExperimentalComponent","variable":"kSmartDimExperimentalComponent","defaultStatus":false,"line":1752,"comment":"Uses experimental component version for smart dim."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SmartEmailLineBreaking","variable":"kSmartEmailLineBreaking","defaultStatus":true,"line":781,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SmartRestart","variable":"kSmartRestart","defaultStatus":true,"line":1997,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables \"Smart Restarts\", allowing Chrome to silently apply updates when the browser is in a zero-disruption state (e.g., zero windows on macOS)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SmartRestartLockScreen","variable":"kSmartRestartLockScreen","defaultStatus":false,"line":2002,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SmartRestartMetrics","variable":"kSmartRestartMetrics","defaultStatus":true,"line":1995,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"A feature to enable smart restart metrics collection. The collected metrics will be used to make informed decisions about the future of the smart restart feature."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"SmartSuggestionForLargeDownloads","variable":"kSmartSuggestionForLargeDownloads","defaultStatus":false,"line":34,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Whether to enable smart suggestion for large downloads"},{"type":"feature","file":"content/public/common/content_features.cc","name":"SmartZoom","variable":"kSmartZoom","defaultStatus":false,"line":1455,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows the use of \"Smart Zoom\", an alternative form of page zoom, and enables the associated UI."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SmbproviderdOnDemand","variable":"kSmbproviderdOnDemand","defaultStatus":true,"line":1049,"comment":"When enabled, smbprovider is started on-demand."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SmbServiceIsCreatedOnUserSessionStartUpTaskCompleted","variable":"kSmbServiceIsCreatedOnUserSessionStartUpTaskCompleted","defaultStatus":true,"line":1045,"comment":"When enabled, `SmbService` is created on user session startup task completed."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SnoopingProtection","variable":"kSnoopingProtection","defaultStatus":true,"line":1052,"comment":"Controls whether the snooping protection prototype is enabled."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SonomaAccessibilityActivationRefinements","variable":"kSonomaAccessibilityActivationRefinements","defaultStatus":false,"line":1486,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Changes how Chrome responds to accessibility activation signals on macOS Sonoma, to avoid unnecessary changes to the screen reader state."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SpareRendererForSitePerProcess","variable":"kSpareRendererForSitePerProcess","defaultStatus":true,"line":1136,"comment":"Controls whether SpareRenderProcessHostManager tries to always have a warm spare renderer process around for the most recently requested BrowserContext. This feature is only consulted in site-per-process mode."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SpareRendererProcessPriority","variable":"kSpareRendererProcessPriority","defaultStatus":false,"line":899,"comment":"When enabled, sends the spare renderer information when setting the priority of renderers. Currently only Android handles the spare renderer information in priority. The target priority of a spare renderer in Android is decided by the feature parameters in ContentFeatureList.java."},{"type":"feature","file":"media/base/media_switches.cc","name":"SpeakerChangeDetection","variable":"kSpeakerChangeDetection","defaultStatus":false,"line":980,"comment":"Enable the Speaker Change Detection feature, which inserts a line break when the Speech On-Device API (SODA) detects a speaker change."},{"type":"feature","file":"media/base/media_switches.cc","name":"SpecCompliantCanPlayThrough","variable":"kSpecCompliantCanPlayThrough","defaultStatus":true,"line":791,"comment":"CanPlayThrough issued according to standard."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SplitKeyboardRefactor","variable":"kSplitKeyboardRefactor","defaultStatus":false,"line":1055,"comment":"Enables or disables the split keyboard refactor cleanup."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"SplitViewDragAndDropVelocity","variable":"kSplitViewDragAndDropVelocity","defaultStatus":true,"line":199,"comment":"Overrides the `kSplitViewTabDraggingUpdates` feature flag if set. The drop target is only shown if the mouse hasn't moved a certain distance over a period of time. The timer and distance used scales linearly with the size of the drop target."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SplitViewLinkOpen","variable":"kSplitViewLinkOpen","defaultStatus":true,"line":506},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"SplitViewTabDraggingUpdates","variable":"kSplitViewTabDraggingUpdates","defaultStatus":true,"line":192},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"StableDeviceId","variable":"kStableDeviceId","defaultStatus":false,"line":788,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables the generation of pseudo-stable per-user per-device device identifiers. This identifier can be reset by the user by powerwashing the device."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"StarterPackExpansion","variable":"kStarterPackExpansion","defaultStatus":false,"line":298,"comment":"Enables additional site search providers for the Site search Starter Pack."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"StarterPackIPH","variable":"kStarterPackIPH","defaultStatus":false,"line":302,"comment":"Enables an informational IPH message at the bottom of the Omnibox directing users to certain starter pack engines."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"StartupNonBlockingWebViewConstructor","variable":"kStartupNonBlockingWebViewConstructor","defaultStatus":false,"line":26,"comment":"Enables non-blocking WebView constructor."},{"type":"feature","file":"base/memory_coordinator/memory_coordinator_features.cc","name":"StatefulMemoryPressure","variable":"kStatefulMemoryPressure","defaultStatus":false,"line":9,"comment":"When enabled, MemoryPressureListeners/MemoryConsumers that support this feature will change their cache's max size for the duration of memory pressure, instead of simply evicting entries."},{"type":"feature","file":"storage/browser/quota/quota_features.cc","name":"StaticStorageQuota","variable":"kStaticStorageQuota","defaultStatus":true,"line":38,"comment":"A kill switch for the new reported quota being a static value."},{"type":"feature","file":"storage/browser/quota/quota_features.cc","name":"StorageQuotaSettings","variable":"kStorageQuotaSettings","defaultStatus":false,"line":17,"comment":"Enables customized storage quota settings for embedders."},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"StrictAssociatedCountriesCheck","variable":"kStrictAssociatedCountriesCheck","defaultStatus":false,"line":31,"comment":"For programs with restrict_to_associated_countries, whether an exact country match is required (in addition to a region match)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"StrictOriginIsolation","variable":"kStrictOriginIsolation","defaultStatus":false,"line":1140,"comment":"Controls whether site isolation should use origins instead of scheme and eTLD+1."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"StringWidthCache","variable":"kStringWidthCache","defaultStatus":true,"line":484},{"type":"feature","file":"components/metrics/metrics_features.cc","name":"StructuredMetrics","variable":"kStructuredMetrics","defaultStatus":true,"line":13,"comment":"This can be used to disable structured metrics as a whole."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SubframeProcessShutdownDelay","variable":"kSubframeProcessShutdownDelay","defaultStatus":true,"line":1538,"comment":"Enables overriding the default subframe process shutdown delay via the \"delay_seconds\" field trial parameter. This allows for experimentation with different timeout values for keeping subframe processes alive for potential reuse."},{"type":"feature","file":"components/subresource_filter/core/common/common_features.cc","name":"SubresourceFilterPrewarm","variable":"kSubresourceFilterPrewarm","defaultStatus":false,"line":10},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SunfishFeature","variable":"kSunfishFeature","defaultStatus":true,"line":1727,"comment":"Controls enabling/disabling the Sunfish feature."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SupportAddSessionEmailPrefill","variable":"kSupportAddSessionEmailPrefill","defaultStatus":true,"line":792,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SupportErrorsInProfilePicker","variable":"kSupportErrorsInProfilePicker","defaultStatus":true,"line":797,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"],"comment":"Kill switch for displaying sign-in errors in the profile picker."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SupportF11AndF12KeyShortcuts","variable":"kSupportF11AndF12KeyShortcuts","defaultStatus":true,"line":114,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables settings that allow users to remap the F11 and F12 keys in the \"Customize keyboard keys\" page."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SupportForcedSigninPolicy","variable":"kSupportForcedSigninPolicy","defaultStatus":false,"line":801,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"SupportKeyboard","variable":"kSupportKeyboard","defaultStatus":true,"line":58,"comment":"Kill switch to turn off new supportKeyabord method"},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SupportWebSigninAddSession","variable":"kSupportWebSigninAddSession","defaultStatus":true,"line":804,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Killswitch for the support of AddSession in web sign-in flow."},{"type":"feature","file":"content/public/common/content_features.cc","name":"SuppressDifferentOriginSubframeJSDialogs","variable":"kSuppressDifferentOriginSubframeJSDialogs","defaultStatus":false,"line":1144,"comment":"Disallows window.{alert, prompt, confirm} if triggered inside a subframe that is not same origin with the main frame."},{"type":"feature","file":"content/browser/preloading/prerender/prerender_features.cc","name":"SuppressesPrerenderingOnSlowNetwork","variable":"kSuppressesPrerenderingOnSlowNetwork","defaultStatus":false,"line":59,"comment":"If enabled, suppresses prerendering on slow network."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"SuppressIntermediateACUpdatesOnLowEndDevices","variable":"kSuppressIntermediateACUpdatesOnLowEndDevices","defaultStatus":false,"line":479,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Prevents intermediate AutocompleteResult updates from being sent to Java on low-end devices. This aims at eliminating time spent on constructing, measuring, and laying out views that are about to be discarded, and reducing the volume of JNI jumps."},{"type":"feature","file":"media/base/media_switches.cc","name":"SuspendMediaForFrozenFrames","variable":"kSuspendMediaForFrozenFrames","defaultStatus":true,"line":795,"comment":"Suspends WebMediaPlayerImpl instances when the containing RenderFrame is frozen. TODO(crbug.com/41161335): Remove in M143 after it goes stable."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"SustainedPMUrgentDiscarding","variable":"kSustainedPMUrgentDiscarding","defaultStatus":false,"line":155},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SwipeToMoveCursor","variable":"kSwipeToMoveCursor","defaultStatus":false,"line":359,"comment":"Android only feature, for swipe to move cursor."},{"type":"feature","file":"media/base/media_switches.cc","name":"SymphoniaAudioDecoding","variable":"kSymphoniaAudioDecoding","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\)","value":false}],"line":651,"buildflags":["BUILDFLAG(ENABLE_SYMPHONIA)"],"comment":"Android / Fuchsia are expected to launch in M150."},{"type":"feature","file":"media/base/media_switches.cc","name":"SymphoniaMp3Decoding","variable":"kSymphoniaMp3Decoding","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\","value":true},{"condition":"!(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \\)","value":false}],"line":661,"buildflags":["BUILDFLAG(ENABLE_SYMPHONIA)"],"comment":"Android / Fuchsia are expected to launch in M150."},{"type":"feature","file":"media/base/media_switches.cc","name":"SymphoniaPcmDecoding","variable":"kSymphoniaPcmDecoding","defaultStatus":false,"line":670,"buildflags":["BUILDFLAG(ENABLE_SYMPHONIA)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"SymphoniaVorbisDecoding","variable":"kSymphoniaVorbisDecoding","defaultStatus":false,"line":671,"buildflags":["BUILDFLAG(ENABLE_SYMPHONIA)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"SyncEnableBookmarksInTransportMode","variable":"kSyncEnableBookmarksInTransportMode","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":807},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SynchronousPageFlipTesting","variable":"kSynchronousPageFlipTesting","defaultStatus":true,"line":322},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"SyncPointGraphValidation","variable":"kSyncPointGraphValidation","defaultStatus":false,"line":862,"comment":"When this flag is enabled, stops using gpu::SyncPointOrderData for sync point validation, uses gpu::TaskGraph instead. Graph-based validation doesn't require sync point releases are submitted to the scheduler prior to their corresponding waits. Therefore it allows to remove the synchronous flush done by VerifySyncTokens().","todos":["TODO(b/324276400): Work in progress."]},{"type":"feature","file":"content/public/common/content_features.cc","name":"SyntheticPointerActions","variable":"kSyntheticPointerActions","defaultStatus":false,"line":1150,"comment":"Dispatch touch events to \"SyntheticGestureController\" for events from Devtool Protocol Input.dispatchTouchEvent to simulate touch events close to real OS events."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SystemCursorSizeSupported","variable":"kSystemCursorSizeSupported","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":156,"comment":"When enabled, the feature will query the OS for a default cursor size, to be used in determining the concrete object size of a custom cursor in blink. Currently enabled by default on Windows only.","todos":["TODO(crbug.com/40845719) - Implement for other platforms."]},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"SystemFeaturesDisableListHidden","variable":"kSystemFeaturesDisableListHidden","defaultStatus":true,"line":261,"comment":"Enables hiding apps disabled by SystemFeaturesDisableList policy by default in user sessions."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"SystemKeyboardLock","variable":"kSystemKeyboardLock","defaultStatus":true,"line":177,"comment":"Allows system keyboard event capture via the keyboard lock API."},{"type":"feature","file":"media/base/media_switches.cc","name":"SystemLoopbackAsAecReference","variable":"kSystemLoopbackAsAecReference","defaultStatus":true,"line":553,"buildflags":["BUILDFLAG(SYSTEM_LOOPBACK_AS_AEC_REFERENCE)"],"comment":"If echo cancellation for a mic signal is requested, use system loopback audio as reference signal to be able to cancel echo from all audio processes and not only audio from Chrome."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"SystemNotifications","variable":"kSystemNotifications","defaultStatus":true,"line":1370},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SystemNudgeMigration","variable":"kSystemNudgeMigration","defaultStatus":true,"line":1755,"comment":"Replaces uses of `SystemNudge` with the new `AnchoredNudge` component."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SystemProxyForSystemServices","variable":"kSystemProxyForSystemServices","defaultStatus":false,"line":1782,"comment":"Enables the ChromeOS system-proxy daemon, only for system services. This means that system services like tlsdate, update engine etc. can opt to be authenticated to a remote HTTP web proxy via system-proxy."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SystemShortcutBehavior","variable":"kSystemShortcutBehavior","defaultStatus":false,"line":1758,"comment":"Enables Device End Of Lifetime incentive notifications."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"SystemTrayShadow","variable":"kSystemTrayShadow","defaultStatus":false,"line":1777,"comment":"Enables or disables the shadows of system tray bubbles."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabDuplicateMetrics","variable":"kTabDuplicateMetrics","defaultStatus":true,"line":221},{"type":"feature","file":"components/omnibox/common/composebox_features.cc","name":"TabFaviconChipsToCoins","variable":"kTabFaviconChipsToCoins","defaultStatus":true,"line":11,"comment":"If enabled, this feature will gate the functionality of removing the existing tab chips from the composebox and instead add favicon coins next to the \"+\" button."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabGroupColorRefresh","variable":"kTabGroupColorRefresh","defaultStatus":false,"line":68},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabGroupHoverCards","variable":"kTabGroupHoverCards","defaultStatus":true,"line":237,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabGroupMenuMoreEntryPoints","variable":"kTabGroupMenuMoreEntryPoints","defaultStatus":false,"line":231,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabGroupsCollapseFreezing","variable":"kTabGroupsCollapseFreezing","defaultStatus":true,"line":225,"comment":"Enables tabs to be frozen when collapsed. https://crbug.com/40141996"},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabGroupsFocusing","variable":"kTabGroupsFocusing","defaultStatus":false,"line":518},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabHoverCardImages","variable":"kTabHoverCardImages","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC)","value":false},{"condition":"!BUILDFLAG(IS_MAC)","value":true}],"line":247,"comment":"Enables preview images in tab-hover cards. https://crbug.com/41439486"},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabModalUsesDesktopWidget","variable":"kTabModalUsesDesktopWidget","defaultStatus":false,"line":257,"comment":"If enabled, use desktop widget to show tab modal dialogs."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabsFromOtherDevicesSidePanel","variable":"kTabsFromOtherDevicesSidePanel","defaultStatus":false,"line":379,"comment":"If enabled, the \"Tabs from other devices\" side panel will be available."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabsFromOtherDevicesSidePanelExcludeStableChannel","variable":"kTabsFromOtherDevicesSidePanelExcludeStableChannel","defaultStatus":false,"line":381,"comment":"If enabled, Stable-channel instances of Chrome will be hidden from the \"Tabs from other devices\" side panel."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabsFromOtherDevicesSidePanelPinnedByDefault","variable":"kTabsFromOtherDevicesSidePanelPinnedByDefault","defaultStatus":false,"line":384,"comment":"If enabled, the \"Tabs from other devices\" toolbar button will be pinned by default."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabStripDeclutter","variable":"kTabStripDeclutter","defaultStatus":false,"line":55,"comment":"All feature flags associated with Glow Up, apart from those in ui_base_features.h"},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TabStripNewTabButtonFlickerFix","variable":"kTabStripNewTabButtonFlickerFix","defaultStatus":true,"line":255},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"TaiyakiAllSurfaces","variable":"kTaiyakiAllSurfaces","defaultStatus":false,"line":14,"buildflags":["BUILDFLAG(IS_IOS)"]},{"type":"feature","file":"chrome/browser/task_manager/common/task_manager_features.cc","name":"TaskManagerClank","variable":"kTaskManagerClank","defaultStatus":false,"line":13,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables the Task Manager on Clank."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"TearOffWebAppTabOpensWebAppWindow","variable":"kTearOffWebAppTabOpensWebAppWindow","defaultStatus":false,"line":261,"comment":"Enables creating a web app window when tearing off a tab with a url controlled by a web app."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TelemetryExtension","variable":"kTelemetryExtension","defaultStatus":false,"line":1790,"comment":"Enables ChromeOS Telemetry Extension."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TerminalDev","variable":"kTerminalDev","defaultStatus":false,"line":1794,"comment":"Enables Terminal System App to load from Downloads for developer testing. Only works in dev and canary channels."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TerminationTargetPolicy","variable":"kTerminationTargetPolicy","defaultStatus":true,"line":152,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Activates the `TerminationTargetPolicy`, which provides the handle of a process to terminate on commit failure to partition_alloc."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TetheringExperimentalFunctionality","variable":"kTetheringExperimentalFunctionality","defaultStatus":false,"line":1786,"comment":"Enables the UI to allow Chromebook hotspot functionality for experimental carriers, modem and modem FW."},{"type":"feature","file":"content/public/common/content_features.cc","name":"TextClassifierTimeout","variable":"kTextClassifierTimeout","defaultStatus":false,"line":1474,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enable timeout for TextClassifier calls. The timeout is configurable with a default of 200ms."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"TextSafetyClassifier","variable":"kTextSafetyClassifier","defaultStatus":true,"line":111,"comment":"Whether to download the text safety classifier model."},{"type":"feature","file":"components/optimization_guide/core/optimization_guide_features.cc","name":"TextSafetyScanLanguageDetection","variable":"kTextSafetyScanLanguageDetection","defaultStatus":false,"line":115,"comment":"Whether to scan the full text when running the language detection in the text safety classifier."},{"type":"feature","file":"chrome/browser/enterprise/profile_management/profile_management_features.cc","name":"ThirdPartyProfileManagement","variable":"kThirdPartyProfileManagement","defaultStatus":false,"line":11,"comment":"Controls whether third-party profile management is enabled."},{"type":"feature","file":"base/task/task_features.cc","name":"ThreadPoolForegroundBlockingTimeouts","variable":"kThreadPoolForegroundBlockingTimeouts","defaultStatus":false,"line":53,"comment":"Feature to adjust how quickly the ThreadPool capacity is increased when a foreground task is blocked in a ScopedBlockingCall."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ThreeButtonPasswordSaveDialog","variable":"kThreeButtonPasswordSaveDialog","defaultStatus":true,"line":265,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables a three-button password save dialog variant (essentially adding a \"not now\" button alongside \"never\")."},{"type":"feature","file":"ui/display/display_features.cc","name":"TiledDisplaySupport","variable":"kTiledDisplaySupport","defaultStatus":false,"line":85},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TilingWindowResize","variable":"kTilingWindowResize","defaultStatus":false,"line":1797,"comment":"Enables experimental feature for resizing tiling windows."},{"type":"feature","file":"base/task/task_features.cc","name":"TimerSlackMac","variable":"kTimerSlackMac","defaultStatus":false,"line":44,"comment":"Under this feature, slack is added on mac message pumps that support it when allowed per DelayPolicy."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ToolbarAppMenuLabelResizing","variable":"kToolbarAppMenuLabelResizing","defaultStatus":true,"line":550},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ToolbarGlicButtonResizing","variable":"kToolbarGlicButtonResizing","defaultStatus":true,"line":554},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ToolbarGlowUp","variable":"kToolbarGlowUp","defaultStatus":false,"line":56},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ToolbarProfileChipResizing","variable":"kToolbarProfileChipResizing","defaultStatus":true,"line":552},{"type":"feature","file":"content/public/common/content_features.cc","name":"TouchDragAndContextMenu","variable":"kTouchDragAndContextMenu","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":1157,"comment":"This feature allows touch dragging and a context menu to occur simultaneously, with the assumption that the menu is non-modal. Without this feature, a long-press touch gesture can start either a drag or a context-menu in Blink, not both (more precisely, a context menu is shown only if a drag cannot be started)."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"TouchDragAndDrop","variable":"kTouchDragAndDrop","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || \\","value":true},{"condition":"!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || \\)","value":false}],"line":270,"comment":"This feature enables drag and drop using touch input devices."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"TouchTextEditingRedesign","variable":"kTouchTextEditingRedesign","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":257,"comment":"Whether to enable new touch text editing features such as extra touch selection gestures and quick menu options. Planning to release for ChromeOS first, then possibly also enable some parts for other platforms later.","todos":["TODO(b/262297017): Clean up after touch text editing redesign ships."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TPMFirmwareUpdate","variable":"kTPMFirmwareUpdate","defaultStatus":true,"line":2191,"comment":"Enables or disables TPM firmware update capability on Chrome OS."},{"type":"feature","file":"services/tracing/public/cpp/tracing_features.cc","name":"TracingServiceInProcess","variable":"kTracingServiceInProcess","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CASTOS)","value":true},{"condition":"!(BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CASTOS))","value":false}],"line":32,"comment":"Runs the tracing service as an in-process browser service."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"TrackCurrentShaders","variable":"kTrackCurrentShaders","defaultStatus":false,"line":306,"comment":"Track current program's shaders at glUseProgram() call for crash report purpose. Only effective on Windows because the attached shaders may only be reliably retrieved with ANGLE backend."},{"type":"feature","file":"content/public/common/content_features.cc","name":"TrackEmptyRendererProcessesForReuse","variable":"kTrackEmptyRendererProcessesForReuse","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false},{"condition":"!BUILDFLAG(IS_ANDROID)","value":true}],"line":1180,"comment":"Controls whether the browser should track and reuse free and empty renderer processes. When enabled, the browser maintains a list of renderer processes that are currently not hosting any frames and are thus eligible for reuse when a new renderer process is needed. Currently, only background renderer processes are considered for reuse."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TrafficCountersEnabled","variable":"kTrafficCountersEnabled","defaultStatus":false,"line":1801,"comment":"Enables the TrafficCountersHandler class to auto-reset traffic counters and shows Data Usage in the Celluar Settings UI."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TrafficCountersForWiFiTesting","variable":"kTrafficCountersForWiFiTesting","defaultStatus":false,"line":1804,"comment":"Enables traffic counters for WiFi networks."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"TranslateElementExperimentFeatures","variable":"kTranslateElementExperimentFeatures","defaultStatus":false,"line":15,"comment":"Controls whether dynamic element experiment features are enabled."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"TranslateElementRegionalization","variable":"kTranslateElementRegionalization","defaultStatus":false,"line":20,"comment":"Feature flag for enabling regional endpoints for webpage translation."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"TranslateLanguageSearchUI","variable":"kTranslateLanguageSearchUI","defaultStatus":false,"line":13,"comment":"Controls whether the target language selection uses the new Search UI."},{"type":"feature","file":"components/translate/core/common/translate_features.cc","name":"TranslateSimplifiedHindi","variable":"kTranslateSimplifiedHindi","defaultStatus":false,"line":11,"comment":"Controls whether the simplified Hindi model is used."},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"TranslateToast","variable":"kTranslateToast","defaultStatus":true,"line":35,"comment":"Enable the translate toast."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"TreatUnsafeDownloadsAsActive","variable":"kTreatUnsafeDownloadsAsActive","defaultStatus":true,"line":1633,"comment":"Disable downloads of unsafe file types over insecure transports if initiated from a secure page. As of M89, mixed downloads are blocked on all platforms."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"TriggerNetworkDataMigration","variable":"kTriggerNetworkDataMigration","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":true},{"condition":"!BUILDFLAG(IS_WIN)","value":false}],"line":169,"comment":"Enables migration of the network context data from `unsandboxed_data_path` to `data_path`. See the explanation in network_context.mojom."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"TriggerPasswordResyncWhenUndecryptablePasswordsDetected","variable":"kTriggerPasswordResyncWhenUndecryptablePasswordsDetected","defaultStatus":true,"line":215,"comment":"Starts passwords resync when undecryptable passwords are detected."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"TrilinearFiltering","variable":"kTrilinearFiltering","defaultStatus":false,"line":1807,"comment":"Enables trilinear filtering."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TrimArcOnMemoryPressure","variable":"kTrimArcOnMemoryPressure","defaultStatus":true,"line":23,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"If enabled we will periodically walk procfs looking for ARC++ processes to trim under memory pressure."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TrimArcVmOnMemoryPressure","variable":"kTrimArcVmOnMemoryPressure","defaultStatus":true,"line":25,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"If enabled we will try to trim ARCVM's crosvm under memory pressure."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TrimImperceptibleProcess","variable":"kTrimImperceptibleProcess","defaultStatus":false,"line":27,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"If enabled, we will try to trim renderer processes that only have imperceptible frames.","todos":["TODO(crbug.com/505599086): Remove after the flag is enabled."]},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TrimOnFreeze","variable":"kTrimOnFreeze","defaultStatus":false,"line":29,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"The trim on freeze feature will trim the working set of a process when all frames are frozen."},{"type":"feature","file":"chrome/browser/performance_manager/policies/policy_features.cc","name":"TrimOnMemoryPressure","variable":"kTrimOnMemoryPressure","defaultStatus":true,"line":21,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"The trim on Memory Pressure feature will trim a process nodes working set according to the parameters below."},{"type":"feature","file":"chromecast/base/cast_features.cc","name":"TripleBuffer720","variable":"kTripleBuffer720","defaultStatus":false,"line":136,"comment":"Enables triple-buffer 720p graphics (overriding default graphics buffer settings for a platform)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"TrustSafetySentimentSurvey","variable":"kTrustSafetySentimentSurvey","defaultStatus":false,"line":1638,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"TrustSafetySentimentSurvey Enables surveying of users of Trust & Safety features with HaTS."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"TrustSafetySentimentSurveyV2","variable":"kTrustSafetySentimentSurveyV2","defaultStatus":true,"line":1701,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"TrustSafetySentimentSurveyV2 Enables the second version of the sentiment survey for users of Trust & Safety features, using HaTS."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"TSFHonorAutocorrectOff","variable":"kTSFHonorAutocorrectOff","defaultStatus":true,"line":478},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"UiaDisconnectRootProviders","variable":"kUiaDisconnectRootProviders","defaultStatus":false,"line":213,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables calls to UiaDisconnectProvider when destroying a AXFragmentRootWin's HWND."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"UiaEventOptimization","variable":"kUiaEventOptimization","defaultStatus":true,"line":215,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Optimizes event firing by only emitting events when at least one listener is subscribed. Killswitch to turn it off in case this work has negative side-effects on assistive technologies.","todos":["TODO(https://crbug.com/402375302): Remove in M155."]},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"UiaMathMlSupport","variable":"kUiaMathMlSupport","defaultStatus":false,"line":217,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables MathML support in Windows UI Automation (UIA) implementation by adding a custom property for exposing mathematical content to assistive technologies."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UiCompositorScrollWithLayers","variable":"kUiCompositorScrollWithLayers","defaultStatus":[{"condition":"BUILDFLAG(IS_APPLE)","value":true},{"condition":"!BUILDFLAG(IS_APPLE)","value":false}],"line":187,"comment":"Enables scrolling with layers under ui using the ui::Compositor."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UiCompositorUsesLayerLists","variable":"kUiCompositorUsesLayerLists","defaultStatus":false,"line":198,"todos":["TODO(crbug.com/389771428): Switch the ui::Compositor to use cc::PropertyTrees and layer lists rather than layer trees."]},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UIDebugTools","variable":"kUIDebugTools","defaultStatus":false,"line":361,"comment":"Enables UI debugging tools such as shortcuts."},{"type":"feature","file":"components/ui_devtools/ui_devtools_features.cc","name":"UIDebugToolsEnableSyntheticEvents","variable":"kUIDebugToolsEnableSyntheticEvents","defaultStatus":false,"line":9},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"UIExperimentMaxAutocompleteMatches","variable":"kUIExperimentMaxAutocompleteMatches","defaultStatus":false,"line":45,"comment":"Feature used to cap max suggestions shown according to the params UIMaxAutocompleteMatches and UIMaxAutocompleteMatchesByProvider."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UiGpuRasterization","variable":"kUiGpuRasterization","defaultStatus":true,"line":180,"comment":"Enables GPU rasterization for all UI drawing (where not blocklisted)."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"UmaStorageDimensions","variable":"kUmaStorageDimensions","defaultStatus":false,"line":1974,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Populates storage dimensions in UMA log if enabled. Requires diagnostics package in the image."},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"UndoChromeOsUseConsentLevelSignin","variable":"kUndoChromeOsUseConsentLevelSignin","defaultStatus":false,"line":817,"buildflags":["BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"components/browser_sync/browser_sync_switches.cc","name":"UndoMigrationOfSyncingUserToSignedIn","variable":"kUndoMigrationOfSyncingUserToSignedIn","defaultStatus":false,"line":25,"comment":"If enabled, users who were migrated from syncing to signed-in via the above flag are migrated back into the syncing state."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UnicornChromeActivityReporting","variable":"kUnicornChromeActivityReporting","defaultStatus":false,"line":2199,"comment":"Enables reporting Chrome app activity for supervised users."},{"type":"feature","file":"media/base/media_switches.cc","name":"UnifiedAutoplay","variable":"kUnifiedAutoplay","defaultStatus":true,"line":799,"comment":"Enables the Unified Autoplay policy by overriding the platform's default autoplay policy."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UnmanagedDeviceDeviceTrustConnectorEnabled","variable":"kUnmanagedDeviceDeviceTrustConnectorEnabled","defaultStatus":false,"line":1810,"comment":"Enables the Device Trust connector client code on unmanaged devices"},{"type":"feature","file":"content/public/common/content_features.cc","name":"UnrestrictedSharedArrayBuffer","variable":"kUnrestrictedSharedArrayBuffer","defaultStatus":false,"line":1194,"comment":"This feature is for a reverse Origin Trial, enabling SharedArrayBuffer for sites as they migrate towards requiring cross-origin isolation for these features.","todos":["TODO(bbudge): Remove when the deprecation is complete. https://developer.chrome.com/origintrials/#/view_trial/303992974847508481 https://crbug.com/1144104"]},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"UnthrottleOnActiveAudioV2","variable":"kUnthrottleOnActiveAudioV2","defaultStatus":false,"line":241,"comment":"When enabled, ARC will not be throttled when there is active audio stream from ARC."},{"type":"feature","file":"chrome/browser/web_applications/link_capturing_features.cc","name":"UpdateAppStringsOnSettings","variable":"kUpdateAppStringsOnSettings","defaultStatus":true,"line":14,"comment":"When enabled, updates the app settings string labels for browser-tab PWAs that support target-existing client modes (focus-existing or navigate-existing) to reflect that supported links can be opened in an existing app tab."},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"UpdatePaddingForDisplayCalculation","variable":"kUpdatePaddingForDisplayCalculation","defaultStatus":true,"line":67,"comment":"Update padding for display calculations to use view width instead of screen width."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"UploadOfficeToCloud","variable":"kUploadOfficeToCloud","defaultStatus":true,"line":182,"comment":"Enables the Office files upload workflow to improve Office files support."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"UploadOfficeToCloudSync","variable":"kUploadOfficeToCloudSync","defaultStatus":true,"line":186,"comment":"Enables syncing of user's Office files upload workflow preferences for enterprise users, such as whether to ask before moving files to the cloud."},{"type":"feature","file":"components/enterprise/browser/reporting/reporting_features.cc","name":"UploadReportOnProfileOpen","variable":"kUploadReportOnProfileOpen","defaultStatus":false,"line":27,"comment":"Controls whether a report is uploaded when a profile is opened."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"UrlBarWithoutLigatures","variable":"kUrlBarWithoutLigatures","defaultStatus":false,"line":492,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"If enabled, disables ligatures in the URL bar on Android."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"UrlScoringModel","variable":"kUrlScoringModel","defaultStatus":false,"line":286,"comment":"If enabled, creates Omnibox autocomplete URL scoring model. Prerequisite for `kMlUrlScoring` & `kMlUrlSearchBlending`."},{"type":"feature","file":"media/audio/audio_features.cc","name":"UseAAudioDriver","variable":"kUseAAudioDriver","defaultStatus":true,"line":20,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables loading and using AAudio instead of OpenSLES on compatible devices, for audio output streams. This feature is disabled on ATV HDMI dongle devices as OpenSLES provides more accurate output latency on those devices.","todos":["TODO(crbug.com/401365323): Remove this feature in the future."]},{"type":"feature","file":"media/audio/audio_features.cc","name":"UseAAudioInput","variable":"kUseAAudioInput","defaultStatus":true,"line":24,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables loading and using AAudio instead of OpenSLES on compatible devices, for audio input streams."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"UseActionsForBrowserCommands","variable":"kUseActionsForBrowserCommands","defaultStatus":false,"line":33,"comment":"Enables the migration of browser commands to Action API."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"UseAdHocSigningForWebAppShims","variable":"kUseAdHocSigningForWebAppShims","defaultStatus":true,"line":67,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"When enabled, app shims used by PWAs will be signed with an ad-hoc signature https://crbug.com/40276068"},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"UseAgentspace25Logo","variable":"kUseAgentspace25Logo","defaultStatus":false,"line":377},{"type":"feature","file":"media/base/media_switches.cc","name":"UseAndroidOverlayForSecureOnly","variable":"kUseAndroidOverlayForSecureOnly","defaultStatus":false,"line":509,"comment":"Use AndroidOverlay only if required for secure video playback. This requires that |kOverlayFullscreenVideo| is true, else it is ignored."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseAndroidStagingSmds","variable":"kUseAndroidStagingSmds","defaultStatus":false,"line":1814,"comment":"Use the Android staging SM-DS server when fetching pending eSIM profiles."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseAnnotatedAccountId","variable":"kUseAnnotatedAccountId","defaultStatus":false,"line":1827,"comment":"Use the AnnotatedAccountId for mapping between User and BrowserContext (a.k.a. browser's Profile)."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseAudioLatencyFromHAL","variable":"kUseAudioLatencyFromHAL","defaultStatus":false,"line":1255,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Use the (hacky) AudioManager.getOutputLatency() call to get the estimated hardware latency for a stream for OpenSLES playback. This is normally not needed, except for some Android TV devices."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseAudioManagerMaxChannelLayout","variable":"kUseAudioManagerMaxChannelLayout","defaultStatus":false,"line":1277,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Allows Chrome to query Android for supported layouts, and forces the use of the layout with the maximum number of channels. This avoids downmixing (and losing channel information) if a media file starts with a low channel count but switches to a higher channel later in the file. For example, when this feature is disabled and playing a media file which starts with 5.1 and switches to 7.1, we would be forced to downmix from 7.1 to 5.1, since we don't update ChannelLayouts mid-playback. Used on Android automotive only."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseAuthPanelInSession","variable":"kUseAuthPanelInSession","defaultStatus":true,"line":1832,"comment":"This features toggles which implementation is used for authentication UIs on ChromeOS settings or PasswordManager. When the feature is enabled, `AuthPanel` is used as an authentication UI."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"UseAXPositionForDocumentMarkers","variable":"kUseAXPositionForDocumentMarkers","defaultStatus":false,"line":139,"comment":"Expose document markers on inline text boxes in addition to static nodes. (Note: This will make it possible for AXPosition in the browser process to handle document markers, which will be platform agnositc)"},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UseClipboardStrictVirtualFileCheck","variable":"kUseClipboardStrictVirtualFileCheck","defaultStatus":true,"line":486},{"type":"feature","file":"ui/gl/gl_features.cc","name":"UseCompositorClockVSyncInterval","variable":"kUseCompositorClockVSyncInterval","defaultStatus":false,"line":124,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"If true, VsyncThreadWin will use the compositor clock to determine the vsync interval."},{"type":"feature","file":"content/public/common/content_features.cc","name":"UseContextSnapshot","variable":"kUseContextSnapshot","defaultStatus":true,"line":1198,"buildflags":["BUILDFLAG(IS_ANDROID) && BUILDFLAG(INCLUDE_BOTH_V8_SNAPSHOTS)"],"comment":"If enabled, blink's context snapshot is used rather than the v8 snapshot."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UseCursorEventHook","variable":"kUseCursorEventHook","defaultStatus":false,"line":170,"comment":"When enabled, uses a WinEvent hook to track system cursor visibility changes. This is only available on Windows."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"UseDefaultDeadlineWhenAnimatingBounds","variable":"kUseDefaultDeadlineWhenAnimatingBounds","defaultStatus":[{"condition":"BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64)","value":true},{"condition":"!(BUILDFLAG(IS_MAC) && defined(ARCH_CPU_ARM64))","value":false}],"line":288},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"UseDetachedWidget","variable":"kUseDetachedWidget","defaultStatus":true,"line":218,"comment":"The feature enables the use of detached Widget during password change to which WebContents is attached. This helps to resolve the problem that requestAnimationFrame() is not fired on a detached WebContents."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseDHCPCD10","variable":"kUseDHCPCD10","defaultStatus":true,"line":1819,"comment":"This feature toggles which dhcpcd version is used for IPv4 provisioning. If it is enabled, dhcpcd10 will be used, otherwise the legacy dhcpcd7 will be used. Note that IPv6 (DHCPv6-PD) always uses dhcpcd10."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"UseDynamicBackingAllocations","variable":"kUseDynamicBackingAllocations","defaultStatus":false,"line":383,"comment":"Enables dynamic allocation of shared image backings at runtime."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseFakeDeviceForMediaStream","variable":"kUseFakeDeviceForMediaStream","defaultStatus":false,"line":1582},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"UseFusedLocationProvider","variable":"kUseFusedLocationProvider","defaultStatus":false,"line":327,"comment":"Use FusedLocationProvider on Android to fetch device location."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UseGammaContrastRegistrySettings","variable":"kUseGammaContrastRegistrySettings","defaultStatus":true,"line":426,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"media/base/media_switches.cc","name":"UseGLForScaling","variable":"kUseGLForScaling","defaultStatus":true,"line":1319,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)","defined(ARCH_CPU_ARM_FAMILY)"],"comment":"Experimental support for GL based scaling for NV12 on Trogdor. Normally LibYUV is used to scale these frames. This flag enables an experimental GL-based scaling method. Owner: bchoobineh@chromium.org Expiry: When GLImageProcessor is deleted"},{"type":"feature","file":"ui/display/display_features.cc","name":"UseHDRTransferFunction","variable":"kUseHDRTransferFunction","defaultStatus":[{"condition":"defined(ARCH_CPU_ARM_FAMILY)","value":false},{"condition":"!defined(ARCH_CPU_ARM_FAMILY)","value":true}],"line":22,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables using HDR transfer function if the monitor says it supports it."},{"type":"feature","file":"base/task/task_features.cc","name":"UseHighPriorityThreadGroup","variable":"kUseHighPriorityThreadGroup","defaultStatus":false,"line":27,"comment":"Under this feature, thread groups will be created for kAudioProcessing and kPresentation ThreadTypes."},{"type":"feature","file":"url/url_features.cc","name":"UseIDNAContextJRules","variable":"kUseIDNAContextJRules","defaultStatus":true,"line":23,"comment":"When enabled, apply IDNA ContextJ rules in URL host parsing."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"UseInProgressDownloadManagerForDownloadService","variable":"kUseInProgressDownloadManagerForDownloadService","defaultStatus":false,"line":54,"comment":"Whether in-progress download manager will be used to initialize download service."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"UseKeychainKeyProvider","variable":"kUseKeychainKeyProvider","defaultStatus":true,"line":71,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"When enabled, the KeychainKeyProvider is used to provide the OS Crypt async key."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"UseManagedPrintJobOptionsInPrintPreview","variable":"kUseManagedPrintJobOptionsInPrintPreview","defaultStatus":true,"line":1406,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"If enabled, use managed per-printer print job options set via DevicePrinters/PrinterBulkConfiguration policy in print preview."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseMediaFormatCodedSize","variable":"kUseMediaFormatCodedSize","defaultStatus":false,"line":2020,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseMessagesStagingUrl","variable":"kUseMessagesStagingUrl","defaultStatus":false,"line":1846,"comment":"Use the staging URL as part of the \"Messages\" feature under \"Connected Devices\" settings."},{"type":"feature","file":"ui/views/views_features.cc","name":"UseNativeViewHostAuraWithClipWindow","variable":"kUseNativeViewHostAuraWithClipWindow","defaultStatus":false,"line":54,"buildflags":["BUILDFLAG(IS_CHROMEOS)"],"comment":"Uses NativeViewHostAuraWithClipWindow instead of NativeViewHostAura."},{"type":"feature","file":"ui/views/views_features.cc","name":"UseNativeViewHostAuraWithClipWindow","variable":"kUseNativeViewHostAuraWithClipWindow","defaultStatus":true,"line":57,"buildflags":["!BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"ui/android/ui_android_features.cc","name":"UseNewEtc1Encoder","variable":"kUseNewEtc1Encoder","defaultStatus":true,"line":60,"comment":"Enables the new ETC1 encoder (used in tab and back/forward thumbnails)."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"UseNewServiceWorkerTaskQueue","variable":"kUseNewServiceWorkerTaskQueue","defaultStatus":false,"line":188,"comment":"If enabled, use the new simpler, more efficient service worker task queue."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseOutOfProcessVideoDecoding","variable":"kUseOutOfProcessVideoDecoding","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":1436,"buildflags":["BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)"],"comment":"Note: please use IsOutOfProcessVideoDecodingEnabled() to determine if OOP-VD is enabled instead of directly checking this feature flag. The reason is that that function may perform checks beyond the feature flag."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseOutOfProcessVideoEncoding","variable":"kUseOutOfProcessVideoEncoding","defaultStatus":false,"line":1453,"buildflags":["BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)"],"comment":"Spawn utility processes to perform hardware encode acceleration instead of using the GPU process."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"UseParallelRequestsForHTTP2","variable":"kUseParallelRequestsForHTTP2","defaultStatus":true,"line":65,"comment":"Whether parallel download is used for HTTP2 connections."},{"type":"feature","file":"components/download/public/common/download_features.cc","name":"UseParallelRequestsForQUIC","variable":"kUseParallelRequestsForQUIC","defaultStatus":true,"line":67,"comment":"Whether parallel download is used for QUIC connections."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"UsePortalAccentColor","variable":"kUsePortalAccentColor","defaultStatus":true,"line":323,"buildflags":["BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)"]},{"type":"feature","file":"components/signin/public/base/signin_switches.cc","name":"UsePrimaryAndTonalButtonsForPromos","variable":"kUsePrimaryAndTonalButtonsForPromos","defaultStatus":true,"line":821},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UserActivityPrediction","variable":"kUserActivityPrediction","defaultStatus":true,"line":1861,"comment":"Enables or disables user activity prediction for power management on ChromeOS. Defined here rather than in //chrome alongside other related features so that PowerPolicyController can check it."},{"type":"feature","file":"content/public/common/content_features.cc","name":"UserMediaCaptureOnFocus","variable":"kUserMediaCaptureOnFocus","defaultStatus":false,"line":1075,"comment":"If enabled, GetUserMedia API will only work when the concerned tab is in focus"},{"type":"feature","file":"content/public/common/content_features.cc","name":"UserMediaScreenCapturing","variable":"kUserMediaScreenCapturing","defaultStatus":false,"line":1470,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Screen Capture API support for Android. This should not be enabled unless ENABLE_SCREEN_CAPTURE is on, otherwise it won't work. Enabled by Finch depending on form factor."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"UserValueDefaultBrowserStrings","variable":"kUserValueDefaultBrowserStrings","defaultStatus":false,"line":1410},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSCContentSharingPicker","variable":"kUseSCContentSharingPicker","defaultStatus":false,"line":467,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Use the built-in MacOS screen-sharing picker (SCContentSharingPicker). This flag will only use the built-in picker on MacOS 15 Sequoia and later where it is required to avoid recurring permission dialogs."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSecurityLevelWhenCheckingMediaDrmVersion","variable":"kUseSecurityLevelWhenCheckingMediaDrmVersion","defaultStatus":true,"line":1259,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Specify the required security level for MediaDrm when checking the MediaDrm version."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSequencedTaskRunnerForMediaService","variable":"kUseSequencedTaskRunnerForMediaService","defaultStatus":false,"line":1457,"comment":"Use SequencedTaskRunner for MediaService."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSequencedTaskRunnerForMojoVEAProvider","variable":"kUseSequencedTaskRunnerForMojoVEAProvider","defaultStatus":[{"condition":"BUILDFLAG(IS_APPLE)","value":true},{"condition":"!BUILDFLAG(IS_APPLE)","value":false}],"line":1464,"buildflags":["!BUILDFLAG(IS_WIN)"],"comment":"SequencedTaskRunner isn't supported on Windows since the accelerator requires a COM STA TaskRunner. Use SequencedTaskRunner for MojoVideoEncodeAcceleratorProvider."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSequencedTaskRunnerForVEA","variable":"kUseSequencedTaskRunnerForVEA","defaultStatus":false,"line":1311,"buildflags":["BUILDFLAG(USE_LINUX_VIDEO_ACCELERATION)"],"comment":"Use SequencedTaskRunner for VideoEncodeAccelerator"},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"UseSettingsAddressEditorInPaymentsRequest","variable":"kUseSettingsAddressEditorInPaymentsRequest","defaultStatus":false,"line":1055,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"When enabled, the address add/edit editor in the payments request would be removed and instead, the address editor from the settings will be used.","todos":["TODO: crbug.com/399071964 - Remove when launched."]},{"type":"feature","file":"media/base/media_switches.cc","name":"UseSharedImageInOOPVDProcess","variable":"kUseSharedImageInOOPVDProcess","defaultStatus":true,"line":1447,"buildflags":["BUILDFLAG(ALLOW_OOP_VIDEO_DECODER)"],"comment":"Use shared image interface to transport video frame resources.","todos":["TODO(crbug.com/457296322): Enable after fixing issue where SharedImages are missing from the SharedImageManager."]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseStorkSmdsServerAddress","variable":"kUseStorkSmdsServerAddress","defaultStatus":false,"line":1851,"comment":"Use the Stork production SM-DS server when fetching pending eSIM profiles."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"UseStrongRefToSharedImageInterface","variable":"kUseStrongRefToSharedImageInterface","defaultStatus":false,"line":388,"comment":"When enabled, this feature allows ClientSharedImage to store and use a scoped_refptr to SharedImageInterface, instead of the raw_ptr as used in SharedImageInterfaceHolder."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseTaskRunnerForMojoAudioDecoderService","variable":"kUseTaskRunnerForMojoAudioDecoderService","defaultStatus":false,"line":1484,"comment":"Feature flag to run the MojoAudioDecoderService in a sequence different than the other mojo media services. On some Android devices, MediaCodec may block the thread which leads to frequent audio decoder underrun in renderer. Running the audio decoder in a separate sequence can improve the performance. Note: running audio decoder in a separate thread/sequence will cause multithread access to mojo media services. For Android audio decoder, the thread safety is easier to guarantee because: 1. The audio decoder and most of the other mojo media services don't cross reference each other. 2. The only exception is CDM so we use a lock inside MojoCdmServiceContext for thread safety."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseTokenHandleStore","variable":"kUseTokenHandleStore","defaultStatus":true,"line":1823,"comment":"If enabled, the new `TokenHandleStoreImpl` will be used instead of `TokenHandleUtil`."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"UseUtf8EncodingForSvgImage","variable":"kUseUtf8EncodingForSvgImage","defaultStatus":true,"line":440},{"type":"feature","file":"base/task/task_features.cc","name":"UseUtilityThreadGroup","variable":"kUseUtilityThreadGroup","defaultStatus":false,"line":25,"comment":"Under this feature, a utility_thread_group will be created for running USER_VISIBLE tasks."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"UseWallpaperStagingUrl","variable":"kUseWallpaperStagingUrl","defaultStatus":false,"line":1855,"comment":"Use the staging server as part of the Wallpaper App to verify additions/removals of wallpapers."},{"type":"feature","file":"media/base/media_switches.cc","name":"UseWindowBoundsForPip","variable":"kUseWindowBoundsForPip","defaultStatus":true,"line":1686,"comment":"Safety switch to allow us to revert to the previous behavior of using the restored bounds for PiP windows, rather than the window bounds. If this feature is enabled (the default), then we'll use the window bounds."},{"type":"feature","file":"media/base/media_switches.cc","name":"V4L2H264TemporalLayerHWEncoding","variable":"kV4L2H264TemporalLayerHWEncoding","defaultStatus":false,"line":889,"buildflags":["BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)"],"comment":"Enable H264 temporal layer encoding with V4L2 HW encoder on ChromeOS."},{"type":"feature","file":"content/public/common/content_features.cc","name":"V8AndroidDesktopHighEndConfig","variable":"kV8AndroidDesktopHighEndConfig","defaultStatus":false,"line":1226,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Enables V8 to use a set of experimental optimizations for Android Desktop. This feature flag is intended to control various performance-related tweaks.","todos":["TODO(crbug.com/425860368): This feature may need to be updated or removed based on the evolution of V8's performance features for high-end devices."]},{"type":"feature","file":"gin/gin_features.cc","name":"V8BaselineBatchCompilation","variable":"kV8BaselineBatchCompilation","defaultStatus":false,"line":127,"comment":"Enables batch compilation for Sparkplug (baseline) compilation."},{"type":"feature","file":"gin/gin_features.cc","name":"V8CodeMemoryWriteProtection","variable":"kV8CodeMemoryWriteProtection","defaultStatus":false,"line":60,"comment":"Enables W^X code memory protection in V8. This is enabled in V8 by default. To test the performance impact, we are going to disable this feature in a finch experiment."},{"type":"feature","file":"gin/gin_features.cc","name":"V8CompactCodeSpaceWithStack","variable":"kV8CompactCodeSpaceWithStack","defaultStatus":false,"line":12,"comment":"Enable code space compaction when finalizing a full GC with stack."},{"type":"feature","file":"gin/gin_features.cc","name":"V8CompactWithStack","variable":"kV8CompactWithStack","defaultStatus":false,"line":15,"comment":"Enable compaction when finalizing a full GC with stack."},{"type":"feature","file":"gin/gin_features.cc","name":"V8ConcurrentMaglevHighPriorityThreads","variable":"kV8ConcurrentMaglevHighPriorityThreads","defaultStatus":false,"line":78},{"type":"feature","file":"gin/gin_features.cc","name":"V8ConcurrentMarkingHighPriorityThreads","variable":"kV8ConcurrentMarkingHighPriorityThreads","defaultStatus":false,"line":162},{"type":"feature","file":"gin/gin_features.cc","name":"V8ConcurrentSparkplug","variable":"kV8ConcurrentSparkplug","defaultStatus":false,"line":116,"comment":"Enables the concurrent Sparkplug compiler."},{"type":"feature","file":"gin/gin_features.cc","name":"V8ConcurrentSparkplugHighPriorityThreads","variable":"kV8ConcurrentSparkplugHighPriorityThreads","defaultStatus":false,"line":119},{"type":"feature","file":"gin/gin_features.cc","name":"V8ExperimentalRegexpEngine","variable":"kV8ExperimentalRegexpEngine","defaultStatus":false,"line":63,"comment":"Enables fallback to a breadth-first regexp engine on excessive backtracking."},{"type":"feature","file":"gin/gin_features.cc","name":"V8FlushBaselineCode","variable":"kV8FlushBaselineCode","defaultStatus":false,"line":26,"comment":"Enables flushing of baseline code in V8."},{"type":"feature","file":"gin/gin_features.cc","name":"V8FlushBytecode","variable":"kV8FlushBytecode","defaultStatus":false,"line":21,"comment":"Enables flushing of JS bytecode in V8."},{"type":"feature","file":"gin/gin_features.cc","name":"V8FlushCodeBasedOnTabVisibility","variable":"kV8FlushCodeBasedOnTabVisibility","defaultStatus":false,"line":29,"comment":"Enables code flushing based on tab visibility."},{"type":"feature","file":"gin/gin_features.cc","name":"V8FlushCodeBasedOnTime","variable":"kV8FlushCodeBasedOnTime","defaultStatus":false,"line":33,"comment":"Enables code flushing based on time."},{"type":"feature","file":"gin/gin_features.cc","name":"V8FlushEmbeddedBlobICache","variable":"kV8FlushEmbeddedBlobICache","defaultStatus":false,"line":47,"comment":"Enables flushing of the instruction cache for the embedded blob."},{"type":"feature","file":"gin/gin_features.cc","name":"V8HighEndAndroid","variable":"kV8HighEndAndroid","defaultStatus":false,"line":83},{"type":"feature","file":"gin/gin_features.cc","name":"V8IdleGcOnContextDisposal","variable":"kV8IdleGcOnContextDisposal","defaultStatus":false,"line":168},{"type":"feature","file":"gin/gin_features.cc","name":"V8IgnitionElideRedundantTdzChecks","variable":"kV8IgnitionElideRedundantTdzChecks","defaultStatus":false,"line":172,"comment":"Elide redundant TDZ hole checks in bytecode. This only sets the V8 flag when manually overridden."},{"type":"feature","file":"gin/gin_features.cc","name":"V8LazyFeedbackAllocation","variable":"kV8LazyFeedbackAllocation","defaultStatus":false,"line":41,"comment":"Enables lazy feedback allocation in V8."},{"type":"feature","file":"gin/gin_features.cc","name":"V8Maglev","variable":"kV8Maglev","defaultStatus":false,"line":77,"comment":"Enables Maglev compiler. Note that this only sets the V8 flag when manually overridden; otherwise it defers to whatever the V8 default is."},{"type":"feature","file":"gin/gin_features.cc","name":"V8MaxValidPolymorphicMapCount","variable":"kV8MaxValidPolymorphicMapCount","defaultStatus":false,"line":81},{"type":"feature","file":"gin/gin_features.cc","name":"V8MegaDomIC","variable":"kV8MegaDomIC","defaultStatus":false,"line":136,"comment":"Enables faster DOM methods for megamorphic ICs"},{"type":"feature","file":"gin/gin_features.cc","name":"V8MemoryPoolReleaseOnMallocFailures","variable":"kV8MemoryPoolReleaseOnMallocFailures","defaultStatus":false,"line":93},{"type":"feature","file":"gin/gin_features.cc","name":"V8MemoryReducer","variable":"kV8MemoryReducer","defaultStatus":false,"line":88},{"type":"feature","file":"gin/gin_features.cc","name":"V8MemoryReducerDelay","variable":"kV8MemoryReducerDelay","defaultStatus":false,"line":101},{"type":"feature","file":"gin/gin_features.cc","name":"V8NoReclaimUnmodifiedWrappers","variable":"kV8NoReclaimUnmodifiedWrappers","defaultStatus":false,"line":54,"comment":"Disables reclaiming of unmodified wrappers objects."},{"type":"feature","file":"gin/gin_features.cc","name":"V8OffThreadFinalization","variable":"kV8OffThreadFinalization","defaultStatus":false,"line":38,"comment":"Enables finalizing streaming JS compilations on a background thread."},{"type":"feature","file":"gin/gin_features.cc","name":"V8OptimizeJavascript","variable":"kV8OptimizeJavascript","defaultStatus":false,"line":18,"comment":"Enables optimization of JavaScript in V8."},{"type":"feature","file":"gin/gin_features.cc","name":"V8PerContextMarkingWorklist","variable":"kV8PerContextMarkingWorklist","defaultStatus":false,"line":44,"comment":"Enables per-context marking worklists in V8 GC."},{"type":"feature","file":"gin/gin_features.cc","name":"V8PreconfigureOldGen","variable":"kV8PreconfigureOldGen","defaultStatus":false,"line":96},{"type":"feature","file":"gin/gin_features.cc","name":"V8ReduceConcurrentMarkingTasks","variable":"kV8ReduceConcurrentMarkingTasks","defaultStatus":false,"line":50,"comment":"Enables reduced number of concurrent marking tasks."},{"type":"feature","file":"gin/gin_features.cc","name":"V8ScavengerHigherCapacity","variable":"kV8ScavengerHigherCapacity","defaultStatus":false,"line":106},{"type":"feature","file":"gin/gin_features.cc","name":"V8ShortBuiltinCalls","variable":"kV8ShortBuiltinCalls","defaultStatus":false,"line":130,"comment":"Enables short builtin calls feature."},{"type":"feature","file":"gin/gin_features.cc","name":"V8SideStepTransitions","variable":"kV8SideStepTransitions","defaultStatus":false,"line":139,"comment":"Faster object cloning"},{"type":"feature","file":"gin/gin_features.cc","name":"V8SingleThreadedGCInBackground","variable":"kV8SingleThreadedGCInBackground","defaultStatus":false,"line":142,"comment":"Avoids background threads for GC if isolate is in background."},{"type":"feature","file":"gin/gin_features.cc","name":"V8SingleThreadedGCInBackgroundNoIncrementalMarking","variable":"kV8SingleThreadedGCInBackgroundNoIncrementalMarking","defaultStatus":false,"line":148},{"type":"feature","file":"gin/gin_features.cc","name":"V8SingleThreadedGCInBackgroundParallelPause","variable":"kV8SingleThreadedGCInBackgroundParallelPause","defaultStatus":false,"line":145},{"type":"feature","file":"gin/gin_features.cc","name":"V8SlowHistograms","variable":"kV8SlowHistograms","defaultStatus":false,"line":153,"comment":"Enables slow histograms that provide detailed information at increased runtime overheads."},{"type":"feature","file":"gin/gin_features.cc","name":"V8SlowHistogramsCodeMemoryWriteProtection","variable":"kV8SlowHistogramsCodeMemoryWriteProtection","defaultStatus":false,"line":156,"comment":"Multiple finch experiments might use slow-histograms. We introduce separate feature flags to circumvent finch limitations."},{"type":"feature","file":"gin/gin_features.cc","name":"V8SlowHistogramsSparkplug","variable":"kV8SlowHistogramsSparkplug","defaultStatus":false,"line":158},{"type":"feature","file":"gin/gin_features.cc","name":"V8SlowHistogramsSparkplugAndroid","variable":"kV8SlowHistogramsSparkplugAndroid","defaultStatus":false,"line":159},{"type":"feature","file":"gin/gin_features.cc","name":"V8Sparkplug","variable":"kV8Sparkplug","defaultStatus":false,"line":113,"comment":"Enables Sparkplug compiler. Note that this only sets the V8 flag when manually overridden; otherwise it defers to whatever the V8 default is."},{"type":"feature","file":"gin/gin_features.cc","name":"V8SparkplugNeedsShortBuiltinCalls","variable":"kV8SparkplugNeedsShortBuiltinCalls","defaultStatus":false,"line":123,"comment":"Makes sure the experimental Sparkplug compiler is only enabled if short builtin calls are enabled too."},{"type":"feature","file":"gin/gin_features.cc","name":"V8Turbofan","variable":"kV8Turbofan","defaultStatus":false,"line":66,"comment":"Enables the Turbofan compiler."},{"type":"feature","file":"gin/gin_features.cc","name":"V8TurboFastApiCalls","variable":"kV8TurboFastApiCalls","defaultStatus":false,"line":133,"comment":"Enables fast API calls in TurboFan."},{"type":"feature","file":"gin/gin_features.cc","name":"V8Turboshaft","variable":"kV8Turboshaft","defaultStatus":false,"line":69,"comment":"Enables Turbofan's new compiler IR Turboshaft."},{"type":"feature","file":"gin/gin_features.cc","name":"V8TurboshaftInstructionSelection","variable":"kV8TurboshaftInstructionSelection","defaultStatus":false,"line":72,"comment":"Enable running instruction selection on Turboshaft IR directly."},{"type":"feature","file":"gin/gin_features.cc","name":"V8UseOriginalMessageForStackTrace","variable":"kV8UseOriginalMessageForStackTrace","defaultStatus":false,"line":165},{"type":"feature","file":"content/public/common/content_features.cc","name":"V8VmFuture","variable":"kV8VmFuture","defaultStatus":false,"line":1217,"comment":"Enables future V8 VM features"},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiAV1TemporalLayerHWEncoding","variable":"kVaapiAV1TemporalLayerHWEncoding","defaultStatus":true,"line":879,"buildflags":["defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable AV1 temporal layer encoding with HW encoder on ChromeOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiEarlyPPSParsingForCENCv1","variable":"kVaapiEarlyPPSParsingForCENCv1","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_VAAPI)","value":true},{"condition":"!(BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_VAAPI))","value":false}],"line":850,"comment":"Ensures that the VAAPI context has been created before performing encrypted slice header parsing on ChromeOS VAAPI systems.","todos":["TODO(b/520117896): remove the feature when a workaround can be found in the H264VaapiDecoderDelegate."]},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiH264SWBitrateController","variable":"kVaapiH264SWBitrateController","defaultStatus":false,"line":877,"buildflags":["defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable software bitrate controller for H264 temporal layer encoding with HW encoder on ChromeOS."},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiIgnoreDriverChecks","variable":"kVaapiIgnoreDriverChecks","defaultStatus":false,"line":822,"comment":"Ignore the non-intel driver blacklist for VaapiVideoDecoder implementations. Intended for manual usage only in order to gague the status of newer driver implementations."},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiLowPowerEncoderGen9x","variable":"kVaapiLowPowerEncoderGen9x","defaultStatus":true,"line":859,"comment":"Enable VA-API hardware low power encoder for all codecs on intel Gen9x gpu."},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiOnNvidiaGPUs","variable":"kVaapiOnNvidiaGPUs","defaultStatus":[{"condition":"defined(ARCH_CPU_ARM64) && BUILDFLAG(IS_LINUX)","value":false},{"condition":"!(defined(ARCH_CPU_ARM64) && BUILDFLAG(IS_LINUX))","value":false}],"line":838,"comment":"NVIDIA VA-API drivers do not support Chromium and can sometimes cause crashes, disable VA-API on NVIDIA GPUs by default. See crbug.com/1492880. NVIDIA has been considering possibly supporting for an improved driver for hardware acceleration for ARM64 linux devices, so we have separated out the feature flag on that architecture."},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiVideoMinResolutionForPerformance","variable":"kVaapiVideoMinResolutionForPerformance","defaultStatus":true,"line":867,"comment":"Ensure the advertised minimum supported resolution is larger than or equal to a given one (likely QVGA + 1) for certain codecs/modes and platforms, for performance reasons. This does not affect JPEG decoding. NOTE: This feature is default-enabled, but selectively disabled by tests so they can test resolutions below the threshold. See crbug.com/40650027"},{"type":"feature","file":"media/base/media_switches.cc","name":"VaapiVp9SModeHWEncoding","variable":"kVaapiVp9SModeHWEncoding","defaultStatus":true,"line":883,"buildflags":["defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)"],"comment":"Enable VP9 S-mode encoding with HW encoder for webrtc use case on ChromeOS."},{"type":"feature","file":"content/public/common/content_features.cc","name":"ValidateCommitOriginAtCommit","variable":"kValidateCommitOriginAtCommit","defaultStatus":false,"line":1214,"comment":"Enables a CHECK in NavigationRequest::ValidateCommitOrigin() to verify that the origin used at commit time matches the expected origin stored in the FrameNavigationEntry, whenever PageState is non-empty. This helps catch session history corruption or stale origin-related state being sent to the renderer, which could violate origin isolation and lead to security issues (see crbug.com/41492620). This feature is disabled by default while we diagnose on Canary only."},{"type":"feature","file":"media/base/media_switches.cc","name":"ValidateEncryptionPatternSize","variable":"kValidateEncryptionPatternSize","defaultStatus":true,"line":1674,"comment":"Validates that the EncryptionPattern parameters are within the bounds specified by ISO/IEC 23001-7:2016."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"VariableRefreshRateAvailable","variable":"kVariableRefreshRateAvailable","defaultStatus":false,"line":398},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcBackgroundReplace","variable":"kVcBackgroundReplace","defaultStatus":true,"line":1869,"comment":"Controls whether the vc background replace is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcControlsUiFakeEffects","variable":"kVcControlsUiFakeEffects","defaultStatus":false,"line":1894,"comment":"Enable or disable the fake effects for ChromeOS video conferencing controls UI. Only meaningful in the emulator."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcDlcUi","variable":"kVcDlcUi","defaultStatus":true,"line":1883,"comment":"Controls whether the DLC downloading UI for video conferencing tiles is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcPortraitRelight","variable":"kVcPortraitRelight","defaultStatus":true,"line":1886,"comment":"This is only used as a way to disable portrait relighting."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcRelightingInferenceBackend","variable":"kVcRelightingInferenceBackend","defaultStatus":false,"line":1890,"comment":"Enables or disables alternative inference backends for running ChromeOS video conferencing portrait relighing models."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcResizeThumbnail","variable":"kVcResizeThumbnail","defaultStatus":true,"line":1879,"comment":"Whether to resize thumbnail in VcBackgroundApp."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcRetouchInferenceBackend","variable":"kVcRetouchInferenceBackend","defaultStatus":false,"line":1909,"comment":"Enables or disables alternative inference backends for running ChromeOS video conferencing face retouch models."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcSegmentationInferenceBackend","variable":"kVcSegmentationInferenceBackend","defaultStatus":false,"line":1898,"comment":"Enables or disables alternative inference backends for running ChromeOS video conferencing segmentation models."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcSegmentationModel","variable":"kVcSegmentationModel","defaultStatus":false,"line":1903,"comment":"Enables or disables alternative segmentation models for ChromeOS video conferencing blur or relighting."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcStudioLook","variable":"kVcStudioLook","defaultStatus":true,"line":1913,"comment":"Enables or disables Studio Look and VC settings for ChromeOS video conferencing."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcTrayMicIndicator","variable":"kVcTrayMicIndicator","defaultStatus":true,"line":1916,"comment":"Enables or disables mic indicator inside VC tray title header"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcTrayTitleHeader","variable":"kVcTrayTitleHeader","defaultStatus":true,"line":1921,"comment":"Enables or disables sidetone toggle inside VC tray title header"},{"type":"feature","file":"ash/constants/ash_features.cc","name":"VcWebApi","variable":"kVcWebApi","defaultStatus":false,"line":1926,"comment":"Enables or disables web API support for ChromeOS video conferencing."},{"type":"feature","file":"content/public/common/content_features.cc","name":"VerifyDidCommitParams","variable":"kVerifyDidCommitParams","defaultStatus":true,"line":1203,"comment":"Enables comparing browser and renderer's DidCommitProvisionalLoadParams in RenderFrameHostImpl::VerifyThatBrowserAndRendererCalculatedDidCommitParamsMatch."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"VerticalTabsGrabHandleRemoval","variable":"kVerticalTabsGrabHandleRemoval","defaultStatus":false,"line":538},{"type":"feature","file":"media/base/media_switches.cc","name":"VideoBlitColorAccuracy","variable":"kVideoBlitColorAccuracy","defaultStatus":true,"line":894,"comment":"Inform video blitter of video color space."},{"type":"feature","file":"media/base/media_switches.cc","name":"VideoDecodeBatching","variable":"kVideoDecodeBatching","defaultStatus":true,"line":1670,"comment":"Controls whether to pre-dispatch more decode tasks when pending decodes is smaller than maximum supported decodes as advertiszed by decoder. Note: This is controlled on a per-board basis by ChromeOS and must be kept."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VideoDecoder","variable":"kVideoDecoder","defaultStatus":true,"line":249,"comment":"Controls whether ARC uses VideoDecoder-backed video decoding. When enabled, GpuArcVideoDecodeAccelerator will use VdVideoDecodeAccelerator to delegate decoding tasks to VideoDecoder implementations, instead of using VDA implementations created by GpuVideoDecodeAcceleratorFactory."},{"type":"feature","file":"chrome/browser/ui/toasts/toast_features.cc","name":"VideoFrameCopiedToast","variable":"kVideoFrameCopiedToast","defaultStatus":true,"line":20,"comment":"Enables the video frame copied confirmation toast."},{"type":"feature","file":"media/base/media_switches.cc","name":"VideoPipDisplaySmoothnessOptimization","variable":"kVideoPipDisplaySmoothnessOptimization","defaultStatus":true,"line":384,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Enables video Picture-in-Picture display smoothness optimization. Ensures that the video PiP window title view is properly sized to only fit the favicon and origin."},{"type":"feature","file":"media/base/media_switches.cc","name":"VideoPipForceTrustedForMediaPlaybackForTesting","variable":"kVideoPipForceTrustedForMediaPlaybackForTesting","defaultStatus":false,"line":389,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Forces video Picture-in-Picture windows to be treated as trusted for media playback. Used for debugging."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"VidsAppConsumerPreinstall","variable":"kVidsAppConsumerPreinstall","defaultStatus":true,"line":268,"comment":"Controls whether Vids is preinstalled for consumers."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"VidsAppExistingConsumerPreinstall","variable":"kVidsAppExistingConsumerPreinstall","defaultStatus":true,"line":271,"comment":"Controls whether Vids is preinstalled for existing consumer users."},{"type":"feature","file":"chromeos/constants/chromeos_features.cc","name":"VidsAppPreinstall","variable":"kVidsAppPreinstall","defaultStatus":true,"line":265,"comment":"Controls whether Vids is preinstalled."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"ViewsAccessibilitySerializeOnDataChanged","variable":"kViewsAccessibilitySerializeOnDataChanged","defaultStatus":true,"line":118},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"ViewsJSAppModalDialog","variable":"kViewsJSAppModalDialog","defaultStatus":false,"line":319,"buildflags":["BUILDFLAG(IS_MAC)"],"comment":"Cocoa to views migration."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"VirtualFileChunkedRead","variable":"kVirtualFileChunkedRead","defaultStatus":true,"line":491},{"type":"feature","file":"headless/lib/common/headless_features.cc","name":"VirtualTime","variable":"kVirtualTime","defaultStatus":false,"line":9,"comment":"Enables virtual time, which allows for deterministic time control. In addition to the switches below, this feature also suppresses audio decoding and rendering. Audio plays in real time and does not respect virtual time, and video tracks are kept in sync with audio. For virtual time to work with video playback, audio must be suppressed."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"VisitCustomSearchOnUndefaulting","variable":"kVisitCustomSearchOnUndefaulting","defaultStatus":false,"line":32},{"type":"feature","file":"chrome/browser/default_browser/default_browser_features.cc","name":"VisualGuidedSetterDocking","variable":"kVisualGuidedSetterDocking","defaultStatus":false,"line":99,"comment":"Enables continuous docking in the visual guided setter."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VmMemoryPSIReports","variable":"kVmMemoryPSIReports","defaultStatus":true,"line":254,"comment":"Feature to continuously log PSI memory pressure data to Chrome."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VmMemorySize","variable":"kVmMemorySize","defaultStatus":true,"line":270,"comment":"Controls whether a custom memory size is used when creating ARCVM. When enabled, ARCVM is sized with the following formula: min(max_mib, ram_percentage / 100 * RAM + shift_mib) If disabled, memory is sized by concierge which, at the time of writing, uses RAM - 1024 MiB."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VmmSwapKeyboardShortcut","variable":"kVmmSwapKeyboardShortcut","defaultStatus":false,"line":306,"comment":"Controls experimental key to enable Vmm swap for ARCVM by keyboard shortcut."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VmmSwapoutGhostWindow","variable":"kVmmSwapoutGhostWindow","defaultStatus":false,"line":301,"comment":"Controls experimental key to enable ghost window when launch app under ARCVM swap out state."},{"type":"feature","file":"chromeos/ash/experiences/arc/arc_features.cc","name":"VmmSwapPolicy","variable":"kVmmSwapPolicy","defaultStatus":false,"line":311,"comment":"Controls experimental key to enable and swap out ARCVM by policy."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"VoiceSearchCoherenceComposeboxes","variable":"kVoiceSearchCoherenceComposeboxes","defaultStatus":true,"line":444,"comment":"Kill switch - Enables voice search coherence across composeboxes in NTP, cobrowsing, omnibox by default, unless feature param overrides. - Submit and stop buttons in voice search mode. - New voice recording animation. - New metrics for voice search across composeboxes. - No live transcription below the new recording animation."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"VoiceSearchCoherenceSearchbox","variable":"kVoiceSearchCoherenceSearchbox","defaultStatus":false,"line":458,"comment":"Enables voice search live experiment for NTP searchbox, (arm 1): - Submit and stop buttons in voice search mode. - New voice recording animation. - New metrics for voice search across searchbox. - NO live transcription below the new recording animation."},{"type":"feature","file":"media/base/media_switches.cc","name":"VSyncMjpegDecoding","variable":"kVSyncMjpegDecoding","defaultStatus":false,"line":885,"buildflags":["defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)"],"comment":"Enables VSync aligned MJPEG decoding."},{"type":"feature","file":"media/base/media_switches.cc","name":"VTVideoEncodeAcceleratorCalculatePSNR","variable":"kVTVideoEncodeAcceleratorCalculatePSNR","defaultStatus":false,"line":428,"buildflags":["BUILDFLAG(IS_APPLE)"],"comment":"Enables VideoToolbox Quality Metrics (MSE / PSNR) generation."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"Vulkan","variable":"kVulkan","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":242,"comment":"Enable Vulkan graphics backend for compositing and rasterization. Defaults to native implementation if --use-vulkan flag is not used. Otherwise --use-vulkan will be followed. Note Android WebView uses kWebViewDrawFunctorUsesVulkan instead of this."},{"type":"feature","file":"ui/gl/gl_switches.cc","name":"VulkanFromANGLE","variable":"kVulkanFromANGLE","defaultStatus":false,"line":309,"comment":"Enable sharing Vulkan device queue with ANGLE's Vulkan backend."},{"type":"feature","file":"components/regional_capabilities/regional_capabilities_switches.cc","name":"WaffleRestrictToAssociatedCountries","variable":"kWaffleRestrictToAssociatedCountries","defaultStatus":false,"line":28,"comment":"Whether to enable eligibility based on the current location for Waffle choice screens (see ChoiceScreenEligibilityConfig.restrict_to_associated_countries)."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WakeOnWifiAllowed","variable":"kWakeOnWifiAllowed","defaultStatus":false,"line":1929,"comment":"Controls whether to allow enabling wake on WiFi features in shill."},{"type":"feature","file":"components/wallet/core/common/wallet_features.cc","name":"WalletablePassDetection","variable":"kWalletablePassDetection","defaultStatus":false,"line":31,"comment":"Controls whether to enable walletable pass detection on web pages."},{"type":"feature","file":"components/wallet/core/common/wallet_features.cc","name":"WalletablePassSave","variable":"kWalletablePassSave","defaultStatus":true,"line":43,"comment":"This is a test only flag, and should be removed before starting the rollout."},{"type":"feature","file":"components/wallet/core/common/wallet_features.cc","name":"WalletApiPrivatePassesConsent","variable":"kWalletApiPrivatePassesConsent","defaultStatus":true,"line":28,"comment":"Controls whether session IDs should be attached to Upsert API calls for new private passes."},{"type":"feature","file":"components/wallet/core/common/wallet_features.cc","name":"WalletApiPrivatePassesEnabled","variable":"kWalletApiPrivatePassesEnabled","defaultStatus":false,"line":16,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"]},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WallpaperFastRefresh","variable":"kWallpaperFastRefresh","defaultStatus":false,"line":1932,"comment":"Enable \"daily\" refresh wallpaper to refresh every ten seconds for testing."},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"WallpaperSearchGraduated","variable":"kWallpaperSearchGraduated","defaultStatus":true,"line":41},{"type":"feature","file":"components/optimization_guide/core/model_execution/model_execution_features.cc","name":"WallpaperSearchSettingsVisibility","variable":"kWallpaperSearchSettingsVisibility","defaultStatus":false,"line":20},{"type":"feature","file":"media/audio/audio_features.cc","name":"WasapiInputDeviceInUseRetry","variable":"kWasapiInputDeviceInUseRetry","defaultStatus":false,"line":52,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enable retry loop for WASAPI input stream initialization when the device is in use."},{"type":"feature","file":"ui/accessibility/accessibility_features.cc","name":"WasmTtsEngineAutoInstallDisabled","variable":"kWasmTtsEngineAutoInstallDisabled","defaultStatus":false,"line":545,"buildflags":["BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)"],"comment":"Disable the wasm tts engine component to use dev version local extension files."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"WaylandExternalBeginFrameSource","variable":"kWaylandExternalBeginFrameSource","defaultStatus":false,"line":143,"buildflags":["BUILDFLAG(IS_OZONE)"],"comment":"Controls whether external begin frames are driven by Wayland frame callbacks."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"WaylandSessionManagement","variable":"kWaylandSessionManagement","defaultStatus":false,"line":140,"buildflags":["BUILDFLAG(IS_OZONE)"],"comment":"Controls whether Wayland session management protocol is enabled."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"WaylandTextInputV3","variable":"kWaylandTextInputV3","defaultStatus":true,"line":137,"buildflags":["BUILDFLAG(IS_OZONE)"],"comment":"Controls whether Wayland text-input-v3 protocol support is enabled."},{"type":"feature","file":"chrome/browser/android/webapk/webapk_features.cc","name":"WebApkMinShellVersion","variable":"kWebApkMinShellVersion","defaultStatus":true,"line":12},{"type":"feature","file":"chrome/browser/android/webapk/webapk_features.cc","name":"WebApkShellUpdate","variable":"kWebApkShellUpdate","defaultStatus":true,"line":7},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppHandleAppMigrationViaSync","variable":"kWebAppHandleAppMigrationViaSync","defaultStatus":true,"line":1833,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When this feature is enabled, the web app sync code will process the `migrated_from_manifest_id` field in its sync data to possibly treat new applications that come in via sync as being the result of a migration. Unless `blink::features::kWebAppMigrationApi` is enabled on some other synced profile, no such data should exist in sync."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppInstallDialog","variable":"kWebAppInstallDialog","defaultStatus":false,"line":1825,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppInstallDialogWinPin","variable":"kWebAppInstallDialogWinPin","defaultStatus":false,"line":1826,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppMigratePreinstalledChat","variable":"kWebAppMigratePreinstalledChat","defaultStatus":true,"line":1823,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppPeriodicPreinstallUpdate","variable":"kWebAppPeriodicPreinstallUpdate","defaultStatus":true,"line":1821,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebAppUpgradeToDatabaseVersion6","variable":"kWebAppUpgradeToDatabaseVersion6","defaultStatus":true,"line":1837},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebAssemblyBaseline","variable":"kWebAssemblyBaseline","defaultStatus":true,"line":1230,"comment":"Enable WebAssembly baseline compilation (Liftoff)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebAssemblyLazyCompilation","variable":"kWebAssemblyLazyCompilation","defaultStatus":true,"line":1250,"comment":"Enable WebAssembly lazy compilation (JIT on first call)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebAssemblyStackSwitching","variable":"kWebAssemblyStackSwitching","defaultStatus":false,"line":1270,"comment":"Enable WebAssembly Core stack switching. https://github.com/WebAssembly/stack-switching"},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebAssemblyTiering","variable":"kWebAssemblyTiering","defaultStatus":true,"line":1253,"comment":"Enable WebAssembly tiering (Liftoff -> TurboFan)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebAssemblyTrapHandler","variable":"kWebAssemblyTrapHandler","defaultStatus":[{"condition":"((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ||  \\","value":true},{"condition":"!(((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) ||  \\)","value":false}],"line":1256,"comment":"Enable WebAssembly trap handler."},{"type":"feature","file":"media/audio/audio_features.cc","name":"WebAudioRemoveAudioDestinationResampler","variable":"kWebAudioRemoveAudioDestinationResampler","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":false}],"line":60,"comment":"This feature flag controls whether the WebAudio destination resampler is bypassed. When enabled, if the WebAudio context's sample rate differs from the hardware's sample rate, the resampling step that normally occurs within the WebAudio destination node is skipped. This allows the AudioService to handle any necessary resampling, potentially reducing latency and overhead."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WebAuthNAuthDialogMerge","variable":"kWebAuthNAuthDialogMerge","defaultStatus":true,"line":1842,"comment":"This features controls whether or not we'll show the legacy WebAuthNDialog, that lives in ash/in_session_auth/auth_dialog_contents_view or the new dialog that's also shared with Settings and Password Manager, that lives in ash/auth/view/active_session_auth_view"},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebauthnDisabledOnAuto","variable":"kWebauthnDisabledOnAuto","defaultStatus":true,"line":1494,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Disables WebAuthn on Android Auto. Default enabled in M137, remove in or after M140."},{"type":"feature","file":"components/password_manager/core/browser/features/password_features.cc","name":"WebAuthnUsePasskeyFromAnotherDeviceInManualFallback","variable":"kWebAuthnUsePasskeyFromAnotherDeviceInManualFallback","defaultStatus":true,"line":220,"comment":"Enables the \"Use a passkey / Use a different passkey\" in the password manual fallback."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebBluetooth","variable":"kWebBluetooth","defaultStatus":false,"line":1274,"comment":"Controls whether the Web Bluetooth API is enabled: https://webbluetoothcg.github.io/web-bluetooth/"},{"type":"feature","file":"device/bluetooth/public/cpp/bluetooth_features.cc","name":"WebBluetoothAllowGetAvailabilityWithBfcache","variable":"kWebBluetoothAllowGetAvailabilityWithBfcache","defaultStatus":true,"line":11,"comment":"When enabled, calling navigator.bluetooth.getAvailability() does not prevent the frame from entering the back forward cache."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebBluetoothNewPermissionsBackend","variable":"kWebBluetoothNewPermissionsBackend","defaultStatus":false,"line":1281,"comment":"Controls whether Web Bluetooth should use the new permissions backend. The new permissions backend uses ObjectPermissionContextBase, which is used by other device APIs, such as WebUSB. When enabled, WebBluetoothWatchAdvertisements and WebBluetoothGetDevices blink features are also enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebCodecsDecoderFlushOptimizations","variable":"kWebCodecsDecoderFlushOptimizations","defaultStatus":true,"line":906,"comment":"Enables optimizations to flush() and configure() in the WebCodecs' audio and video decoder implementations. Kill-switch to be removed after M145 stable."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebCodecsVideoEncoderFrameDrop","variable":"kWebCodecsVideoEncoderFrameDrop","defaultStatus":false,"line":910,"comment":"A video encoder is allowed to drop a frame in WebCodecs."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebContentsDiscard","variable":"kWebContentsDiscard","defaultStatus":[{"condition":"BUILDFLAG(IS_ANDROID)","value":true},{"condition":"!BUILDFLAG(IS_ANDROID)","value":false}],"line":378,"comment":"Enables a discard operation on WebContents to free associated resources. Eliminates the need to destroy the WebContents object to free its resources."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUAndroidOpenGLES","variable":"kWebGPUAndroidOpenGLES","defaultStatus":true,"line":887},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUBlobCache","variable":"kWebGPUBlobCache","defaultStatus":false,"line":276},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUCompatibilityMode","variable":"kWebGPUCompatibilityMode","defaultStatus":true,"line":885},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUDecomposeUniformBuffers","variable":"kWebGPUDecomposeUniformBuffers","defaultStatus":true,"line":319},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUEnableRangeAnalysisForRobustness","variable":"kWebGPUEnableRangeAnalysisForRobustness","defaultStatus":true,"line":314},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUQualcommWindows","variable":"kWebGPUQualcommWindows","defaultStatus":true,"line":890,"buildflags":["BUILDFLAG(IS_WIN)"]},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUService","variable":"kWebGPUService","defaultStatus":false,"line":275},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUUseHLSL2021","variable":"kWebGPUUseHLSL2021","defaultStatus":false,"line":321},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUUseSpirv14","variable":"kWebGPUUseSpirv14","defaultStatus":true,"line":317},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebGPUUseSpirvReconvergenceMode","variable":"kWebGPUUseSpirvReconvergenceMode","defaultStatus":false,"line":323},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebHidAttributeAllowsBackForwardCache","variable":"kWebHidAttributeAllowsBackForwardCache","defaultStatus":true,"line":68,"comment":"When enabled, accessing the navigator.hid attribute does not prevent the frame from entering the back forward cache."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebHidRecursiveFiltering","variable":"kWebHidRecursiveFiltering","defaultStatus":true,"line":132,"comment":"Enables recursive filtering of nested HID collections to prevent WebHID security bypasses (e.g., nested keyboards or FIDO keys)."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebIdentityDigitalCredentials","variable":"kWebIdentityDigitalCredentials","defaultStatus":true,"line":504,"comment":"Enables the Digital Credential API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebIdentityDigitalCredentialsCreation","variable":"kWebIdentityDigitalCredentialsCreation","defaultStatus":true,"line":507,"comment":"Enables the Digital Credentials Creation API."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"Webium","variable":"kWebium","defaultStatus":false,"line":1841,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"components/metrics/mapping/metrics_mapping_features.cc","name":"WebiumMetricsMapping","variable":"kWebiumMetricsMapping","defaultStatus":false,"line":9,"comment":"Controls whether Webium (Initial WebUI) telemetry is separated from general web browsing metrics. When disabled, all metrics are reported as-is. When enabled, metrics are filtered or renamed according to the provided configuration rules."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebLockScreenApi","variable":"kWebLockScreenApi","defaultStatus":false,"line":1087,"comment":"Enable the web lockscreen API implementation (https://github.com/WICG/lock-screen) in Chrome."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebOTP","variable":"kWebOTP","defaultStatus":true,"line":1079,"comment":"This is intended as a kill switch for the WebOTP Service feature. To enable this feature, the experimental web platform features flag should be set."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebOtpBackendAuto","variable":"kWebOtpBackendAuto","defaultStatus":false,"line":1286,"comment":"Controls which backend is used to retrieve OTP on Android. When disabled we use User Consent API."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebPayments","variable":"kWebPayments","defaultStatus":true,"line":1289,"comment":"The JavaScript API for payments on the web."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"WebRequestPerContextEventDispatch","variable":"kWebRequestPerContextEventDispatch","defaultStatus":false,"line":80,"comment":"When enabled, the browser dispatches blocking webRequest events once per renderer context (using the parent event name) instead of once per listener (using per-listener synthetic sub-event names). The renderer matches listeners itself, reports each blocking listener's response via the `webRequestInternal.eventHandled` function, and signals completion with a single `webRequestInternal.eventHandlingDone` per context."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"WebRequestSecurityInfo","variable":"kWebRequestSecurityInfo","defaultStatus":false,"line":78,"comment":"Enables the securityInfo in chrome.webRequest API for extensions. Allowing them to retrieve certificate information from web requests."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcAllowH265Receive","variable":"kWebRtcAllowH265Receive","defaultStatus":true,"line":50,"comment":"When enabled, allow H.265 codec to be used for receiving WebRTC streams. Platform hardware H.265 decoder needs to be supported and enabled in order to negotiate usage of H.265 in SDP in the direction of receiving."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcAllowH265Send","variable":"kWebRtcAllowH265Send","defaultStatus":true,"line":45,"comment":"When enabled, allow H.265 codec to be used for sending WebRTC streams. Platform hardware H.265 encoder needs to be supported and enabled in order to negotiate usage of H.265 in SDP in the direction of sending."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcAllowInputVolumeAdjustment","variable":"kWebRtcAllowInputVolumeAdjustment","defaultStatus":true,"line":33,"todos":["TODO(crbug.com/40872787): Deactivate the flag gradually before deleting it. When disabled, any WebRTC Audio Processing Module input volume recommendation is ignored and no adjustment takes place."]},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcAllowWgcUsingTexture","variable":"kWebRtcAllowWgcUsingTexture","defaultStatus":false,"line":27,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, DesktopCapturer will provide a texture handle in DesktopFrame instead of mapping texture data, if the WGC capturer is available and enabled. In this mode, textures are not mapped by default to reduce memory copies. Clients should process texture in the same sequence as desktop capturer."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcApmDownmixCaptureAudioMethod","variable":"kWebRtcApmDownmixCaptureAudioMethod","defaultStatus":false,"line":39,"comment":"When enabled, overrides the Audio Processing Module parameter that controls how multi-channel capture audio is downmixed to mono (when downmixing is needed)."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebRtcAudioNeuralResidualEchoEstimation","variable":"kWebRtcAudioNeuralResidualEchoEstimation","defaultStatus":false,"line":1788,"comment":"When enabled, input audio processing in the audio process may use an ML-based residual echo estimator instead of the default heuristics, when applying WebRTC echo cancellation."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcAV1HWEncode","variable":"kWebRtcAV1HWEncode","defaultStatus":[{"condition":"BUILDFLAG(IS_WIN)","value":false},{"condition":"!BUILDFLAG(IS_WIN)","value":true}],"line":63,"comment":"When enabled, allows AV1 HW encoding to be used for WebRTC streams, if the platform accelerator supports encoding of AV1."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebRTCColorAccuracy","variable":"kWebRTCColorAccuracy","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":false},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":true}],"line":919,"comment":"Inform webrtc with correct video color space information whenever possible."},{"type":"feature","file":"third_party/blink/renderer/modules/peerconnection/peer_connection_features.cc","name":"WebRtcEncodedTransformRememberMetadata","variable":"kWebRtcEncodedTransformRememberMetadata","defaultStatus":true,"line":13,"comment":"Keep the metadata of RTC encoded frames after they are neutered. If disabled, the metadata is reset to default or no values."},{"type":"feature","file":"third_party/blink/renderer/modules/peerconnection/peer_connection_features.cc","name":"WebRtcEncodedTransformRememberVideoFrameType","variable":"kWebRtcEncodedTransformRememberVideoFrameType","defaultStatus":true,"line":18,"comment":"Keep the type (\"key\" or \"delta\") of an RTCEncodedVideoFrame after it is neutered. If disabled, the type changes to \"empty\"."},{"type":"feature","file":"third_party/blink/renderer/modules/peerconnection/peer_connection_features.cc","name":"WebRtcEncryptedRtpHeaderExtensions","variable":"kWebRtcEncryptedRtpHeaderExtensions","defaultStatus":true,"line":24,"comment":"This feature enables encrypting RTP header extensions using RFC 6904, if requested. Requesting should be done using the RTP header extension API; doing it via SDP munging is possible, but not recommended."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcH265L1T2","variable":"kWebRtcH265L1T2","defaultStatus":false,"line":54,"comment":"When enabled, allows H.265 L1T2 to be used for sending WebRTC streams, if the accelerator reports support of encoding in L1T2."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcH265L1T3","variable":"kWebRtcH265L1T3","defaultStatus":false,"line":59,"comment":"When enabled, allows H.265 L1T3 to be used for sending WebRTC streams, if the accelerator reports support of encoding in L1T3. If this is enabled, L1T2 is also implied to be enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebRTCHardwareVideoEncoderFrameDrop","variable":"kWebRTCHardwareVideoEncoderFrameDrop","defaultStatus":true,"line":914,"comment":"A hardware video encoder is allowed to drop a frame in WebRTC."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebRtcHWDecoding","variable":"kWebRtcHWDecoding","defaultStatus":[{"condition":"BUILDFLAG(PLATFORM_CFM)","value":false},{"condition":"!BUILDFLAG(PLATFORM_CFM)","value":true}],"line":362,"comment":"Enables HW decode acceleration for WebRTC."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebRtcHWEncoding","variable":"kWebRtcHWEncoding","defaultStatus":true,"line":372,"comment":"Enables HW encode acceleration for WebRTC."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebrtcMediaCapabilitiesParameters","variable":"kWebrtcMediaCapabilitiesParameters","defaultStatus":true,"line":495,"comment":"Used to set a few tunable parameters for the WebRTC Media Capabilities implementation."},{"type":"feature","file":"media/capture/capture_switches.cc","name":"WebRtcPipeWireCamera","variable":"kWebRtcPipeWireCamera","defaultStatus":false,"line":49,"buildflags":["defined(WEBRTC_USE_PIPEWIRE)"],"comment":"Controls whether the PipeWire support for cameras is enabled on the Wayland display server."},{"type":"feature","file":"third_party/blink/renderer/modules/peerconnection/peer_connection_features.cc","name":"WebRtcRtpScriptTransformerFrameRestrictions","variable":"kWebRtcRtpScriptTransformerFrameRestrictions","defaultStatus":true,"line":32,"comment":"This features enables the restriction that frames sent to an RTCRtpScriptTransformer's writable must come from the transformer's readable and must be written in the same order in which they are read. This feature does not affect streams created with the createEncodedStreams() method, which never applies this restriction."},{"type":"feature","file":"media/base/media_switches.cc","name":"WebRtcVoiceIsolationDenoiser","variable":"kWebRtcVoiceIsolationDenoiser","defaultStatus":false,"line":1791,"comment":"When enabled, input audio processing in the audio process may use an ML-based voice isolation denoiser."},{"type":"feature","file":"media/webrtc/webrtc_features.cc","name":"WebRtcWgcRequireBorder","variable":"kWebRtcWgcRequireBorder","defaultStatus":false,"line":20,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"When enabled, instruct WGC to draw a border around the captured window or screen."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebSerialWorldIsolatedCache","variable":"kWebSerialWorldIsolatedCache","defaultStatus":true,"line":35,"comment":"Restricts the sharing of C++ SerialPort and WritableStream instances across different DOMWrapperWorld contexts to prevent cross-world leaks."},{"type":"feature","file":"extensions/common/extension_features.cc","name":"WebstoreHostedApp","variable":"kWebstoreHostedApp","defaultStatus":[{"condition":"BUILDFLAG(IS_CHROMEOS)","value":true},{"condition":"!BUILDFLAG(IS_CHROMEOS)","value":false}],"line":168,"todos":["TODO(https://crbug.com/328494022): Disable this on ChromeOS, too, and then eventually remove it."],"comment":"Controls whether the component webstore hosted app is loaded."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIAppMenuButton","variable":"kWebUIAppMenuButton","defaultStatus":false,"line":1940,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the app menu button will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome."},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"WebUIAvatarButton","variable":"kWebUIAvatarButton","defaultStatus":false,"line":412,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Controls whether the WebUI version of the Avatar Button is used."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIBackForwardButton","variable":"kWebUIBackForwardButton","defaultStatus":false,"line":1945,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the back/forward buttons will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/470038385"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIBatterySaverButton","variable":"kWebUIBatterySaverButton","defaultStatus":false,"line":1931,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the battery saver button will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/503821930"},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebUIBundledCodeCache","variable":"kWebUIBundledCodeCache","defaultStatus":false,"line":1296,"comment":"Enables build-time generated resource-bundled code caches for WebUI pages. See crbug.com/375509504 for details."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebUICodeCache","variable":"kWebUICodeCache","defaultStatus":false,"line":1292,"comment":"Enables code caching for scripts used on WebUI pages."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIExtensionsContainer","variable":"kWebUIExtensionsContainer","defaultStatus":false,"line":1954,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the extensions container will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIHomeButton","variable":"kWebUIHomeButton","defaultStatus":false,"line":1927,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the home button will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/470039765"},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebUIInProcessResourceLoadingV2","variable":"kWebUIInProcessResourceLoadingV2","defaultStatus":false,"line":1316,"comment":"If enabled, WebUI will optimize resources loading by piping a dictionary of URL paths to materialized WebUI resource content to the renderer via LocalResourceLoaderConfig. This is an extension of `kWebUIInProcessResourceLoading` which previously serves only resources in resource bundle. See crbug.com/459528908."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebUIJSErrorReportingExtended","variable":"kWebUIJSErrorReportingExtended","defaultStatus":true,"line":1307,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Reports WebUI Javascript errors to the crash server on all desktop platforms. Previously, this was only supported on ChromeOS and Linux. Intentionally enabled by default and will be used as a kill switch in case of regressions."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUILocationBar","variable":"kWebUILocationBar","defaultStatus":false,"line":1855,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"Switches location bar over to a WebUI implementation. See crbug.com/470042732"},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxAimPopup","variable":"kWebUIOmniboxAimPopup","defaultStatus":false,"line":38,"comment":"If enabled, Omnibox popup will transition to AI-Mode with the compose-box panel taking up the whole of the popup, covering the location bar completely."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxAimPopupDisableAnimation","variable":"kWebUIOmniboxAimPopupDisableAnimation","defaultStatus":false,"line":74,"comment":"If enabled, there will no longer be animation when opening the WebUI Omnibox AIM popup."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxAskGAboutThisPage","variable":"kWebUIOmniboxAskGAboutThisPage","defaultStatus":false,"line":100,"comment":"If enabled, the \"Ask Google about this page\" action will route to cobrowse."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxDisableCaretColorAnimation","variable":"kWebUIOmniboxDisableCaretColorAnimation","defaultStatus":false,"line":71,"comment":"If enabled, disables caret color animation for the WebUI Omnibox AIM popup."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxDynamicAiModeButton","variable":"kWebUIOmniboxDynamicAiModeButton","defaultStatus":false,"line":104,"comment":"If enabled, the Ai Mode button will be dynamically shown in the omnibox."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxFullPopup","variable":"kWebUIOmniboxFullPopup","defaultStatus":false,"line":78,"comment":"If enabled, then both the input row and suggestions dropdown (in the Omnibox) will be rendered using the WebUI stack (i.e. the cutout for the location bar will be removed)."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxFullPopupDoubleClick","variable":"kWebUIOmniboxFullPopupDoubleClick","defaultStatus":false,"line":81,"comment":"Enables the double click mechanism of sending selection set by passing click events through the WebView."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxPopup","variable":"kWebUIOmniboxPopup","defaultStatus":false,"line":34,"comment":"If enabled, shows the omnibox suggestions in the popup in WebUI."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxPopupDebug","variable":"kWebUIOmniboxPopupDebug","defaultStatus":false,"line":85,"comment":"Enables the WebUI for omnibox suggestions without modifying the popup UI."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxPopupSelectionControl","variable":"kWebUIOmniboxPopupSelectionControl","defaultStatus":false,"line":91,"comment":"If enabled, the WebUIOmniboxPopup controls its own selection state instead of following that of the OmniboxEditModel."},{"type":"feature","file":"chrome/browser/ui/omnibox/omnibox_next_features.cc","name":"WebUIOmniboxSimplification","variable":"kWebUIOmniboxSimplification","defaultStatus":false,"line":42,"comment":"If enabled, the Omnibox Popup will enable a different UI state when on a webpage.","todos":["TODO(crbug.com/521521553): Remove this feature flag once the feature flag is fully rolled out."]},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIPerformanceInterventionButton","variable":"kWebUIPerformanceInterventionButton","defaultStatus":false,"line":1935,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the performance intervention button will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/503822129"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIPinnedToolbarActions","variable":"kWebUIPinnedToolbarActions","defaultStatus":false,"line":1950,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the pinned toolbar actions will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/474061420"},{"type":"feature","file":"chrome/browser/ui/ui_features.cc","name":"WebuiRefresh2026","variable":"kWebuiRefresh2026","defaultStatus":false,"line":69},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIReloadButton","variable":"kWebUIReloadButton","defaultStatus":false,"line":1850,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enable, the reload button will be replaced with the a WebView, and chrome://webui-toolbar.top-chrome will be loaded as the content. crbug.com/444358999"},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"WebUIRoundedIcons","variable":"kWebUIRoundedIcons","defaultStatus":false,"line":517},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"WebUISearchboxWithoutModelController","variable":"kWebUISearchboxWithoutModelController","defaultStatus":false,"line":232,"comment":"When enabled, the WebUI searchbox will bypass OmniboxController and OmniboxEditModel."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUISplitTabsButton","variable":"kWebUISplitTabsButton","defaultStatus":false,"line":1923,"buildflags":["!BUILDFLAG(IS_ANDROID)"],"comment":"When enabled, the split tabs button will be replaced with WebUI loaded from chrome://webui-toolbar.top-chrome. crbug.com/470039098"},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WebUIToolbarProcessOverheadExperiment","variable":"kWebUIToolbarProcessOverheadExperiment","defaultStatus":false,"line":1851,"buildflags":["!BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebUsb","variable":"kWebUsb","defaultStatus":true,"line":1321,"comment":"Controls whether the WebUSB API is enabled: https://wicg.github.io/webusb"},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebUsbBlocklist","variable":"kWebUsbBlocklist","defaultStatus":true,"line":44,"comment":"This feature allows to dynamically introduce an additional list of devices blocked by WebUSB via a Finch parameter. This parameter should be specified in the Finch configuration to manage the list of blocked devices."},{"type":"feature","file":"chrome/browser/browser_features.cc","name":"WebUsbDeviceDetection","variable":"kWebUsbDeviceDetection","defaultStatus":true,"line":179,"comment":"Enables runtime detection of USB devices which provide a WebUSB landing page descriptor."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebUsbEnforceStandardRequestAllowlist","variable":"kWebUsbEnforceStandardRequestAllowlist","defaultStatus":true,"line":58,"comment":"When enabled, WebUSB control transfers enforce a positive matching allowlist for Standard requests (permitting only GET_STATUS, GET_DESCRIPTOR, GET_CONFIGURATION, GET_INTERFACE, SYNCH_FRAME). All other Standard requests are strictly blocked."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebUsbHardenEndpointAliasing","variable":"kWebUsbHardenEndpointAliasing","defaultStatus":true,"line":64,"comment":"When enabled, WebUSB rejects claiming interfaces that share endpoints with already claimed interfaces, and avoids overwriting endpoint mapping entries. See crbug.com/513167952."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WebUsbProtectedClassControlTransferBlock","variable":"kWebUsbProtectedClassControlTransferBlock","defaultStatus":true,"line":51,"comment":"When enabled, WebUSB control transfers are blocked if they target a protected interface class, even if the recipient is not set to interface or endpoint. This protects devices which ignore this field."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewAddQuicHints","variable":"kWebViewAddQuicHints","defaultStatus":true,"line":30,"comment":"Kill switch for Profile.addQuicHints."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebViewAsyncDrawOnly","variable":"kWebViewAsyncDrawOnly","defaultStatus":true,"line":1083,"comment":"Trial to disable synchronous draw for synchronous compositor (ie Android WebView)."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewAwClassPreloader","variable":"kWebViewAwClassPreloader","defaultStatus":true,"line":34,"comment":"Preloads expensive classes that will be used by WebView on a background thread."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewBackForwardCache","variable":"kWebViewBackForwardCache","defaultStatus":false,"line":39,"comment":"Enable back/forward cache support in WebView. Note that this will only take effect iff both this feature flag and the content/public kBackForwardCache flag is enabled."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewBackgroundClassPreloading","variable":"kWebViewBackgroundClassPreloading","defaultStatus":false,"line":43,"comment":"Enables preloading WebView classes on a background thread during early startup."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewBackgroundTracingInit","variable":"kWebViewBackgroundTracingInit","defaultStatus":false,"line":49,"comment":"Enables tracing init on a background thread. This is mutually exclusive with `kWebViewEarlyTracingInit`. If both flags are enabled, `kWebViewEarlyTracingInit` will take precedent."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewBypassHttpCacheForPrefetchFromHeader","variable":"kWebViewBypassHttpCacheForPrefetchFromHeader","defaultStatus":true,"line":55,"comment":"Enables parsing a custom header passed by the WebView embedder during a prefetch request that allows bypassing the HTTP cache for that request. This is a kill switch, so it is enabled by default.","todos":["TODO(crbug.com/455296998): Remove this code for M145."]},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewBypassProvisionalCookieManager","variable":"kWebViewBypassProvisionalCookieManager","defaultStatus":false,"line":62,"comment":"When enabled, the temporary cookie manager used before WebView startup is bypassed. If WebView isn't already started up, calling `CookieManager.getInstance()` will trigger WebView startup on the main looper and wait for startup to complete."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewCacheSizeLimitDerivedFromAppCacheQuota","variable":"kWebViewCacheSizeLimitDerivedFromAppCacheQuota","defaultStatus":true,"line":70,"comment":"When enabled, instead of using the 20MiB as the HTTP cache limit, derive the value from the cache quota allocated to the app by the Android framework. Each code cache's limit will be half the value of the HTTP cache limit."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewContentRestrictionSupport","variable":"kWebViewContentRestrictionSupport","defaultStatus":false,"line":94,"comment":"Enables content restriction support in WebView."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewCppMetricsFiltering","variable":"kWebViewCppMetricsFiltering","defaultStatus":false,"line":98,"comment":"Enables C++ UMA metrics filtering."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewDownloadFavicons","variable":"kWebViewDownloadFavicons","defaultStatus":true,"line":103,"comment":"When enabled (which is the default state) a navigation will download a Favicon. When disabled (which can be done through Finch or Flag UI) a navigation will not download a Favicon."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewEarlyStartupTracing","variable":"kWebViewEarlyStartupTracing","defaultStatus":false,"line":108,"comment":"Enables early Java startup tracing, which unconditionally collects timing information and queues runnables to emit the trace events once Perfetto is initialized. This flag does not affect tracing in native code."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewEarlyTracingInit","variable":"kWebViewEarlyTracingInit","defaultStatus":false,"line":113,"comment":"Enables early tracing init. This will initialize tracing as soon as the native library is loaded, which should make it available by the time we start calling content code."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewEnableApiCallUserActions","variable":"kWebViewEnableApiCallUserActions","defaultStatus":false,"line":116,"comment":"Enables recording user actions for API calls."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewEnableCrash","variable":"kWebViewEnableCrash","defaultStatus":false,"line":120,"comment":"This enables WebView crashes."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewEnableDnsPlatform","variable":"kWebViewEnableDnsPlatform","defaultStatus":false,"line":123,"comment":"Enables the resolution of hostnames via platform DNS APIs in WebView."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewFasterGetDefaultUserAgent","variable":"kWebViewFasterGetDefaultUserAgent","defaultStatus":false,"line":127,"comment":"When enabled, the default user agent string is fetched more quickly without waiting for chromium startup to complete."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewFileSystemAccess","variable":"kWebViewFileSystemAccess","defaultStatus":false,"line":136,"comment":"Enable JS FileSystemAccess API. This flag is set by WebView internal code based on an app's targetSdkVersion. It is enabled for version B+. The default value here is not relevant, and is not expected to be manually changed.","todos":["TODO(b/364980165): Flag can be removed when SDK versions prior to B are no longer supported."]},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewForceWebAuthn","variable":"kWebViewForceWebAuthn","defaultStatus":false,"line":139,"comment":"Force the default WebAuthn state to be APP mode."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewGateTextSizeAdjustOnTextAutosizing","variable":"kWebViewGateTextSizeAdjustOnTextAutosizing","defaultStatus":false,"line":143,"comment":"Gate text-size-adjust on whether the app called setLayoutAlgorithm(TEXT_AUTOSIZING)."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewHttpCacheQuotaApi","variable":"kWebViewHttpCacheQuotaApi","defaultStatus":true,"line":153,"comment":"Partial kill switch for the HTTP Cache Quota API. When enabled, HTTP Cache quota can be configured by the WebView embedder. When disabled, the setters are no-ops and defaults are restored. Note that getters still function regardless of whether this feature is enabled, though they may not reflect any embedder configured values."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewHyperlinkContextMenu","variable":"kWebViewHyperlinkContextMenu","defaultStatus":false,"line":194,"comment":"This enables WebView's hyperlink context menu."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewIgnoreDuplicateNavs","variable":"kWebViewIgnoreDuplicateNavs","defaultStatus":false,"line":198,"comment":"Controls whether we ignore duplicate navigations or not, in favor of preserving the already ongoing navigation."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewInvokeZoomPickerOnGSU","variable":"kWebViewInvokeZoomPickerOnGSU","defaultStatus":false,"line":206,"comment":"If enabled zoom picker is invoked on every kGestureScrollUpdate consumed ack, otherwise the zoom picker is persistently shown from scroll start to scroll end plus the usual delay in hiding."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewLatchedCookiePolicy","variable":"kWebViewLatchedCookiePolicy","defaultStatus":true,"line":211,"comment":"When enabled, cookie policy settings are captured at RestrictedCookieManager creation time and used throughout its lifetime. This enables shared memory cookie versioning to reduce IPC overhead."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMemoryProfilingClient","variable":"kWebViewMemoryProfilingClient","defaultStatus":false,"line":219,"comment":"Install the profiling client with memory_system::Initializer. If this is enabled the profiler MAY be started by HeapProfilerController::StartIfEnabled, which is controlled by the cross-platform features in components/heap_profiling/in_process/heap_profiler_parameters.h. Otherwise the profiler will never be started."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMigrateVisitedLinks","variable":"kWebViewMigrateVisitedLinks","defaultStatus":false,"line":223,"comment":"Migrates WebView's visited links database to the new partitioned database structure without performing actual partitioning."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMixedContentAutoupgrades","variable":"kWebViewMixedContentAutoupgrades","defaultStatus":false,"line":231,"comment":"When enabled, passive mixed content (Audio/Video/Image subresources loaded over HTTP on HTTPS sites) will be autoupgraded to HTTPS, and the load will be blocked if the resource fails to load over HTTPS. This only affects apps that set the mixed content mode to MIXED_CONTENT_COMPATIBILITY_MODE, autoupgrades are always disabled for MIXED_CONTENT_NEVER_ALLOW and MIXED_CONTENT_ALWAYS_ALLOW modes."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMoveWorkToProviderInit","variable":"kWebViewMoveWorkToProviderInit","defaultStatus":false,"line":238,"comment":"Moves some of the work that is being run during `startChromium` to be done beforehand during WebView provider initialization. This is expected to improve startup performance especially when async startup takes place."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMoveWorkToProviderInitThreadPool","variable":"kWebViewMoveWorkToProviderInitThreadPool","defaultStatus":false,"line":243,"comment":"When enabled, WebViewMoveWorkToProviderInit tasks are run on a posted task instead of synchronously during WebView provider initialization. Only has any effect if `kWebViewMoveWorkToProviderInit` is also enabled."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewMultiProfileSkipDefaultProfile","variable":"kWebViewMultiProfileSkipDefaultProfile","defaultStatus":false,"line":248,"comment":"When enabled, accessing multi-profile APIs skips automatic initialization of the Default profile during startup."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewNavigate","variable":"kWebViewNavigate","defaultStatus":true,"line":252,"comment":"Kill switch for the WebView Navigate method."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewNonBlockingCookieStoreHandoff","variable":"kWebViewNonBlockingCookieStoreHandoff","defaultStatus":false,"line":258,"comment":"When enabled, the provisional cookie store is properly closed before the Network Service opens the database, fixing race conditions that can cause cookie loss and CHECK failures when cookies are set before WebView is fully initialized."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewOptInToGmsBindServiceOptimization","variable":"kWebViewOptInToGmsBindServiceOptimization","defaultStatus":false,"line":262,"comment":"When enabled, opts in WebView to GMSCore's bindService optimizations."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPersistentMetricsInNoBackupDir","variable":"kWebViewPersistentMetricsInNoBackupDir","defaultStatus":true,"line":267,"comment":"When enabled, WebView stores the persistent metrics files in the app's non-backed-up files directory instead of the app's data directory."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPersistHttpServerProperties","variable":"kWebViewPersistHttpServerProperties","defaultStatus":false,"line":272,"comment":"When enabled, HttpServerProperties will be persisted to disk across app restarts."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPrefetchAheadOfPrerender","variable":"kWebViewPrefetchAheadOfPrerender","defaultStatus":false,"line":275},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebViewPrefetchHighestPrefetchPriority","variable":"kWebViewPrefetchHighestPrefetchPriority","defaultStatus":true,"line":1324,"comment":"Apply `PrefetchPriority::kHighest` for Webview Prefetch API."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPrefetchNativeLibrary","variable":"kWebViewPrefetchNativeLibrary","defaultStatus":true,"line":279,"comment":"Prefetches the native WebView code to memory during startup."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPrefetchOffTheMainThread","variable":"kWebViewPrefetchOffTheMainThread","defaultStatus":false,"line":289,"comment":"This enables to start main resource prefetch request from off the main thread for WebView Prefetch API. See crbug.com/452406598, crbug.com/452389538 for more details. Only takes effect if `kPrefetchOffTheMainThread` is enabled as well."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPrefetchOnRendererReuse","variable":"kWebViewPrefetchOnRendererReuse","defaultStatus":false,"line":293,"comment":"Prefetches the native WebView code to memory when renderer is reused."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPreloadServingMetrics","variable":"kWebViewPreloadServingMetrics","defaultStatus":true,"line":297,"comment":"Kill switch for reporting `PreloadServingMetrics` for WebView."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewProfileStoreNotTriggerStartup","variable":"kWebViewProfileStoreNotTriggerStartup","defaultStatus":false,"line":300,"comment":"Enables lazy profile creation in WebView."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewPropagateNetworkChangeSignals","variable":"kWebViewPropagateNetworkChangeSignals","defaultStatus":true,"line":310,"comment":"Propagate Android's network change notification signals to the networking stack. This only propagates the following notifications: * OnNetworkConnected * OnNetworkDisconnected * OnNetworkMadeDefault * OnNetworkSoonToDisconnect. AreNetworkHandlesCurrentlySupported is also controlled through this flag."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewRecordAppCacheHistograms","variable":"kWebViewRecordAppCacheHistograms","defaultStatus":false,"line":315,"comment":"When enabled, records histograms relating to app's cache size."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewReducedSeedExpiration","variable":"kWebViewReducedSeedExpiration","defaultStatus":false,"line":320,"comment":"Reduce when the app's copy of the finch seed expires. This makes WebView more aggressive in requesting a new copy of its finch seed."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewReducedSeedRequestPeriod","variable":"kWebViewReducedSeedRequestPeriod","defaultStatus":false,"line":325,"comment":"This flag reduces the minimum amount of time before WebView can request a new seed. This, in conjunction with kWebViewReducedSeedExpiration, should mean more up-to-date copies of finch seeds."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewReduceUAAndroidVersionDeviceModel","variable":"kWebViewReduceUAAndroidVersionDeviceModel","defaultStatus":false,"line":329,"comment":"This enables reducing webview user-agent android version and device model."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewRemoveInstantAppSupport","variable":"kWebViewRemoveInstantAppSupport","defaultStatus":false,"line":333,"comment":"When enabled, WebView support for Instant Apps is removed."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewRenderDocument","variable":"kWebViewRenderDocument","defaultStatus":true,"line":339,"comment":"This enables RenderDocument in WebView. Note that this will only take effect iff both this feature flag and the content/public kRenderDocument flag is enabled."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewRendererKeepAlive","variable":"kWebViewRendererKeepAlive","defaultStatus":true,"line":343,"comment":"Keeps the renderer process alive after the last WebView is destroyed to allow for reuse."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewSaveStateIncludeHeaders","variable":"kWebViewSaveStateIncludeHeaders","defaultStatus":true,"line":351,"comment":"When enabled, navigation headers will be saved and restored as part of saved state for WebView."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewSetDownloadFaviconsEnabled","variable":"kWebViewSetDownloadFaviconsEnabled","defaultStatus":true,"line":354,"comment":"Kill switch for WebSettings setShouldDownloadFavicons method."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewSkipInterceptsForPrefetch","variable":"kWebViewSkipInterceptsForPrefetch","defaultStatus":true,"line":359,"comment":"Whether to skip shouldInterceptRequest and other checks for prefetch requests."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewStaticMethodsNotTriggerStartup","variable":"kWebViewStaticMethodsNotTriggerStartup","defaultStatus":false,"line":363,"comment":"When enabled, certain static methods in SharedStatics do not trigger startup."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebViewSurfaceControl","variable":"kWebViewSurfaceControl","defaultStatus":false,"line":130,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"Hardware Overlays for WebView."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebViewSurfaceControlForTV","variable":"kWebViewSurfaceControlForTV","defaultStatus":false,"line":132,"buildflags":["BUILDFLAG(IS_ANDROID)"]},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewTestFeature","variable":"kWebViewTestFeature","defaultStatus":false,"line":369,"comment":"A Feature used for WebView variations tests. Not used in production. Please do not clean up this stale feature: we intentionally keep this feature flag around for testing purposes."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewTestNonembeddedLowEntropySource","variable":"kWebViewTestNonembeddedLowEntropySource","defaultStatus":false,"line":374,"comment":"A no-op feature flag used to verify that the nonembedded low entropy source pipeline for Finch experiments is working correctly. This feature is not intended to be used to gate any production code."},{"type":"feature","file":"gpu/config/gpu_finch_features.cc","name":"WebViewThreadSafeMediaDefault","variable":"kWebViewThreadSafeMediaDefault","defaultStatus":false,"line":136,"buildflags":["BUILDFLAG(IS_ANDROID)"],"comment":"This is used as default state because it's different for webview and chrome. WebView hardcodes this as enabled in AwMainDelegate."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewUnreducedProductVersion","variable":"kWebViewUnreducedProductVersion","defaultStatus":true,"line":379,"comment":"Provide the unreduced product version from the AwContentBrowserClient API, regardless of the user agent reduction policy."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewUseMetricsUploadServiceOnlySdkRuntime","variable":"kWebViewUseMetricsUploadServiceOnlySdkRuntime","defaultStatus":false,"line":383,"comment":"Use WebView's nonembedded MetricsUploadService to upload UMA metrics instead of sending it directly to GMS-core when running within the SDK Runtime."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewVizDirectCompositorThreadIpcFrameSinkManager","variable":"kWebViewVizDirectCompositorThreadIpcFrameSinkManager","defaultStatus":false,"line":389,"comment":"When enabled, binds FrameSinkManager as a DirectReceiver, allowing IPCs targeting that interface, and any other interfaces passed through it to arrive without the intermediate I/O thread hop."},{"type":"feature","file":"android_webview/common/aw_features.cc","name":"WebViewWebPerformanceMetricsReporting","variable":"kWebViewWebPerformanceMetricsReporting","defaultStatus":true,"line":393,"comment":"Kill switch for reporting web performance metrics."},{"type":"feature","file":"content/public/common/content_features.cc","name":"WebXr","variable":"kWebXr","defaultStatus":true,"line":1335,"comment":"Controls whether the WebXR Device API is enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTour","variable":"kWelcomeTour","defaultStatus":true,"line":1935,"comment":"Enables the Welcome Tour that walks new users through ChromeOS System UI."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTourChromeVoxSupported","variable":"kWelcomeTourChromeVoxSupported","defaultStatus":true,"line":1939,"comment":"Whether ChromeVox is supported in the Welcome Tour that walks new users through ChromeOS System UI."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTourCounterfactualArm","variable":"kWelcomeTourCounterfactualArm","defaultStatus":false,"line":1943,"comment":"Whether the Welcome Tour is enabled counterfactually as part of an experiment arm. When this is enabled, the Welcome Tour V1 will be shown."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTourForceUserEligibility","variable":"kWelcomeTourForceUserEligibility","defaultStatus":false,"line":1948,"comment":"Forces user eligibility for the Welcome Tour that walks new users through ChromeOS System UI. Enabling this flag has no effect unless `kWelcomeTour` is also enabled."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTourHoldbackArm","variable":"kWelcomeTourHoldbackArm","defaultStatus":false,"line":1953,"comment":"Whether the Welcome Tour holdback is enabled as part of an experiment arm. When this is enabled, neither version of Welcome Tour version will be shown."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WelcomeTourV3","variable":"kWelcomeTourV3","defaultStatus":true,"line":1957,"comment":"Enables the Welcome Tour V3 that has different strings and steps than V1. Enabling this flag has no effect unless `kWelcomeTour` is also enabled."},{"type":"feature","file":"media/base/media_switches.cc","name":"WidevinePersistentLicenseSupport","variable":"kWidevinePersistentLicenseSupport","defaultStatus":[{"condition":"BUILDFLAG(ENABLE_LIBRARY_CDMS)","value":false}],"line":500,"comment":"Controls the persistent license support for protected media that uses widevine."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WifiConcurrency","variable":"kWifiConcurrency","defaultStatus":false,"line":1965,"comment":"Control whether the Wi-Fi concurrency Shill API is used when enable station Wi-Fi or tethering in Chrome Ash."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WifiConnectMacAddressRandomization","variable":"kWifiConnectMacAddressRandomization","defaultStatus":false,"line":1960,"comment":"Controls whether to enable MAC Address Randomization on WiFi connection."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WifiSyncAndroid","variable":"kWifiSyncAndroid","defaultStatus":true,"line":1969,"comment":"Controls whether to enable syncing of Wi-Fi configurations between ChromeOS and a connected Android phone."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WifiSyncApplyProxyConfigs","variable":"kWifiSyncApplyProxyConfigs","defaultStatus":false,"line":1977,"comment":"Controls whether to enable syncing of proxy configurations on Wi-Fi networks that are received from Chrome Sync."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WifiSyncUploadProxyConfigs","variable":"kWifiSyncUploadProxyConfigs","defaultStatus":false,"line":1973,"comment":"Controls whether to enable syncing of proxy configurations on Wi-Fi networks that are uploaded to Chrome Sync."},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WindowSplitting","variable":"kWindowSplitting","defaultStatus":false,"line":1981,"comment":"Enables an experimental feature that splits windows by dragging one window over another window."},{"type":"feature","file":"chrome/browser/tracing/tracing_features.cc","name":"WindowsSystemTracing","variable":"kWindowsSystemTracing","defaultStatus":true,"line":8,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"A Feature to selectively enable connecting to the Windows system tracing service when the tracing service is started."},{"type":"feature","file":"chrome/common/chrome_features.cc","name":"WinPinPWAShortcutWithLAF","variable":"kWinPinPWAShortcutWithLAF","defaultStatus":true,"line":1980,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Kill switch for pinning PWA Shortcut to the Windows taskbar with the Taskbar pinning Limited Access Feature."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WinSystemLocationPermission","variable":"kWinSystemLocationPermission","defaultStatus":true,"line":73,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enable integration with the Windows system-level location permission."},{"type":"feature","file":"services/device/public/cpp/device_features.cc","name":"WinSystemLocationPermissionEventBased","variable":"kWinSystemLocationPermissionEventBased","defaultStatus":true,"line":76,"buildflags":["BUILDFLAG(IS_WIN)"],"comment":"Enables the event-based approach for monitoring the Windows system-level location permission. If disabled, the polling approach is used."},{"type":"feature","file":"components/search_engines/search_engines_switches.cc","name":"WipeChoicePrefsOnMissingDefaultSearchEngine","variable":"kWipeChoicePrefsOnMissingDefaultSearchEngine","defaultStatus":false,"line":67},{"type":"feature","file":"ash/constants/ash_features.cc","name":"WmMode","variable":"kWmMode","defaultStatus":false,"line":1985,"comment":"Enables an experimental feature that lets users easily layout, resize and position their windows using only mouse and touch gestures."},{"type":"feature","file":"ui/base/ui_base_features.cc","name":"WriteBookmarkWithoutTitle","variable":"kWriteBookmarkWithoutTitle","defaultStatus":true,"line":443,"comment":"Enables copy bookmark and writes url format to clipboard with empty title."},{"type":"feature","file":"device/gamepad/public/cpp/gamepad_features.cc","name":"XboxUseGameControllerDataFetcherMac","variable":"kXboxUseGameControllerDataFetcherMac","defaultStatus":true,"line":46,"buildflags":["BUILDFLAG(IS_APPLE)"],"comment":"Enable Xbox gamepad support in GameControllerDataFetcherMac"},{"type":"feature","file":"components/autofill/core/common/autofill_features.cc","name":"YourSavedInfoSettingsPage","variable":"kYourSavedInfoSettingsPage","defaultStatus":true,"line":1060,"buildflags":["!(BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \\)"],"comment":"Defines if the \"Your Saved Info\" page is eligible to be shown in Chrome settings."},{"type":"feature","file":"media/base/media_switches.cc","name":"ZeroCopyDesktopCapture","variable":"kZeroCopyDesktopCapture","defaultStatus":false,"line":902,"comment":"Gated behind feature flag to allow safe rollback of zero-copy capture."},{"type":"feature","file":"chrome/browser/glic/suggestions/contextual_cueing_features.cc","name":"ZeroStateSuggestionsUsePrivateAi","variable":"kZeroStateSuggestionsUsePrivateAi","defaultStatus":false,"line":19},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ZeroSuggestPrefetchDebouncing","variable":"kZeroSuggestPrefetchDebouncing","defaultStatus":false,"line":101,"comment":"Enables the use of a request debouncer to throttle the number of ZPS prefetch requests initiated over a given period of time (to help minimize the performance impact of ZPS prefetching on the remote Suggest service)."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ZeroSuggestPrefetchingForComposebox","variable":"kZeroSuggestPrefetchingForComposebox","defaultStatus":false,"line":104,"comment":"Enables prefetching of the zero prefix suggestions for composebox contexts."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ZeroSuggestPrefetchingOnSRP","variable":"kZeroSuggestPrefetchingOnSRP","defaultStatus":false,"line":107,"comment":"Enables prefetching of the zero prefix suggestions for eligible users on SRP."},{"type":"feature","file":"components/omnibox/common/omnibox_features.cc","name":"ZeroSuggestPrefetchingOnWeb","variable":"kZeroSuggestPrefetchingOnWeb","defaultStatus":false,"line":111,"comment":"Enables prefetching of the zero prefix suggestions for eligible users on the Web (i.e. non-NTP and non-SRP URLs)."}]