Enable with --enable-features, disable with --disable-features:
| Name | Description | Enabled by default |
|---|---|---|
| AbortNavigationsFromTabClosures | Marks navigations as aborted when the NavigationHandle is destroyed mid navigation, likely due to a tab closure. This is a kill switch. | ✅ |
| ActiveContentSettingExpiry | — | ❌ |
| AdAuctionSignals | Controls the capturing of the Ad-Auction-Signals header, and the maximum allowed Ad-Auction-Signals header value. | ✅ |
| AIPageContentIncludePopupWindows | Controls whether to include information about the page's open popup in AIPageContent. | ✅ |
| AIPageContentMissingSubframesFailSilently | Controls whether a missing subframe while generating the APC proto is silently dropped. If false, the entire APC is considered failed when this happens. When true, the subframe is simply skipped but the rest of APC generation is unaffected. | ✅ |
| AllowDatapipeDrainedAsBytesConsumerInBFCache | — | ✅ |
| AllowDevToolsMainThreadDebuggerForMultipleMainFrames | — | ✅ |
| AllowURNsInIframes | Enables URN URLs like those produced by Protected Audience auctions to be displayed by iframes (instead of requiring fenced frames). | ✅ |
| AndroidBlockGrammarSuggestionSpanInCompositionMode | Blocks the grammar suggestion span in composition mode. | ❌ |
| AndroidBlockMisspellingSuggestionSpanInCompositionMode | Blocks the misspelling suggestion span in composition mode. | ❌ |
| AndroidCaptureKeyEvents | Capture Android key event objects to send them to the web contents when the IME sends composition texts. | ❌ |
| AndroidCaretBrowsing | Enables the caret browsing a11y feature - can use arrow keys to navigate through web pages. | ✅ |
| AndroidDevToolsFrontend | DevTools frontend for Android. | ❌ |
| AndroidEnableBackgroundMediaLargeFormFactors | Enables media to continue playing in the background. | ✅ |
| AndroidFallbackToNextSlot | 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. | ✅ |
| AndroidMediaInsertion | Enables IMEs to insert media content such as images, gifs and stickers. | ❌ |
| AndroidNavigationBlurTransitionAnimation | Enables a blur animation of the current page when navigating away from it. | ❌ |
| AndroidOpenIncognitoAsWindow | — | ✅ |
| AndroidPkAutocorrectUnderline | Enables the physical keyboard autocorrect underline feature. | ❌ |
| AndroidPkAutocorrectUnderlineV2 | Enables the physical keyboard autocorrect underline feature V2. | ❌ |
| AndroidWarmUpSpareRendererWithTimeout | Warm up a spare renderer after each navigation on Android. | ❌ |
| AomVpxUsePresentationThreadType | Controls whether AOM/VPX decoders should use the presentation thread type. | ❌ |
| ApproximateGeolocationPermission | — | ❌ |
| AttachUnownedInnerWebContents | 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. | ❌ |
| AudioDucking | Enables audio ducking. | ✅ |
| AudioFocusDuckFlash | Enables flash to be ducked by audio focus. This is enabled on Chrome OS which has audio focus enabled. | ❌ |
| AudioServiceLaunchOnStartup | Launches the audio service on the browser startup. | ❌ |
| AudioServiceOutOfProcess | Runs the audio service in a separate process. | ❌ |
| AudioServiceSandbox | Enables the audio-service sandbox. This feature has an effect only when the kAudioServiceOutOfProcess feature is enabled. | ❌ |
| AudioWorkletThreadPool | A thread pool system for effective usage of RealtimeAudioWorkletThread instances. | ✅ |
| AudioWorkletThreadRealtimePriority | A server-side switch for the kRealtimeAudio thread type of RealtimeAudioWorkletThread object. This can be controlled by a field trial, it will use the kNormal type thread when disabled. | ✅ |
| AutofillAcceptDomMutationAfterAutofillSubmission | If enabled, we start forwarding submissions with source DOM_MUTATION_AFTER_AUTOFILL, even for non-password forms. | ❌ |
| AutofillAcrossIframesIos | LINT.IfChange(autofill_across_iframes_ios) Controls whether to flatten and fill cross-iframe forms on iOS. TODO(crbug.com/40266699) Remove once launched. | ✅ |
| AutofillAcrossIframesIosThrottling | 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. | ✅ |
| AutofillAcrossIframesIosTriggerFormExtraction | Controls whether to trigger form extraction when detecting a form activity on a xframe form. Only effective when Autofill is enabled across iframes (kAutofillAcrossIframesIos). | ✅ |
| AutofillActorFormFillingSplitOutContactInfo | 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. | ❌ |
| AutofillActorMode | Kill switch: If enabled, | ✅ |
| AutofillActorRewriteCreditCardTriggerField | Controls whether to rewrite the credit card trigger field to the first credit card number field in the same section. | ✅ |
| AutofillActorSuppressImport | 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. | ❌ |
| AutofillAddOtherDatatypesPref | When enabled, other Autofill AI data types are controlled by the autofillOtherDatatypesEnabled policy and extension API. Previously, these were controlled by autofillAddressesEnabled; consequently, Autofill AI no longer depends on address-based Autofill being enabled. | ❌ |
| AutofillAddressParseSurnameNameSequence | Kill switch: If enabled, NameFieldParser will parse 'Last name, First name' sequence. TODO(crbug.com/329016404): Remove after M146 branch point (2026-02-09). | ✅ |
| AutofillAddressSuggestionsOnTyping | 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. TODO(crbug.com/381994105): Cleanup when launched. | ❌ |
| AutofillAddressSuggestionsOnTypingHasStrikeDatabase | Feature flag to controls whether Autofill on typing suggestions will have a strike database. | ❌ |
| AutofillAddressUserDeclinedSaveSurvey | 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. | ❌ |
| AutofillAddressUserDeclinedSuggestionSurvey | 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. | ❌ |
| AutofillAddressUserPerceptionSurvey | 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. | ❌ |
| AutofillAiAlwaysTriggerServerModel | If enabled (and if | ❌ |
| AutofillAiAvailableByDefault | If enabled Autofill AI becomes available by default and the previous enable toggle controls whether online model runs and MQLS logging are allowed. TODO(crbug.com/440488776): Remove once clean up happens. | ❌ |
| AutofillAiCreateEntityDataManager | Kill switch. If enabled, the EntityDataManager is created irrespective of whether other features are enabled. This is necessary so that cleaning up the browsing data also removes data if the user left the study. | ✅ |
| AutofillAiDedupeEntities | If enabled, AutofillAi entities will be deduped on every major milestone. | ❌ |
| AutofillAiFillingSurvey | 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. | ❌ |
| AutofillAiIgnoreGeoIp | If enabled, no GeoIp requirements are imposed for AutofillAi. Note that this feature can be modified as follows (all assuming that | ✅ |
| AutofillAiNewUpdatePrompt | If enabled, Autofill AI will use a new update prompt on Desktop that shows both the previous and the new value of an updated entity attribute. | ❌ |
| AutofillAiNoFillingIconsExperiment | If enabled, Autofill AI filling suggestion do not have an icon. | ❌ |
| AutofillAiOrder | If enabled, AutofillAi supports order entities. | ❌ |
| AutofillAiReauthRequired | 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. TODO(crbug.com/468236932): Remove once feature is launched. | ❌ |
| AutofillAiSavePromptSurvey | When enabled, a HaTS survey is shown after the save prompt for a walletable entity was interacted with. | ❌ |
| AutofillAiServerModel | If enabled, the client may trigger the server model for AutofillAI type predictions. | ❌ |
| AutofillAiShipment | If enabled, AutofillAi supports shipment entities. | ❌ |
| AutofillAiShowWalletDisabledBanner | Controls whether a banner is shown in settings when wallet data sharing is disabled. | ❌ |
| AutofillAiUsePrivateAi | If enabled, the client may trigger the server model for AutofillAI type predictions using Private AI Compute. | ❌ |
| AutofillAiVoteForFormatStringsForFlightNumbers | 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 | ❌ |
| AutofillAiWalletFlightReservation | If enabled, AutofillAi supports flight reservation entities from Google Wallet. | ❌ |
| AutofillAiWalletPrivatePasses | If enabled, AutofillAi supports private passes entities from Google Wallet. | ❌ |
| AutofillAiWalletPrivatePassesDeepLink | If enabled, Wallet private pass entries in settings link to their pass details page rather than the generic pass overview page. | ❌ |
| AutofillAiWalletVehicleRegistration | If enabled, AutofillAi supports vehicle registration entities from Google Wallet. | ❌ |
| AutofillAiWithDataSchema | Enables the second iteration AutofillAI. | ❌ |
| AutofillAllowFillingModifiedInitialValues | When enabled, autofill will fill not skip filling fields that had an initial value which was modified. | ❌ |
| AutofillAndroidDesktopKeyboardAccessoryRevamp | If enabled, on Android desktop, the Autofill keyboard accessory will have a new behavior and design. TODO(crbug.com/438125774): Remove when launched. | ❌ |
| AutofillAndroidDesktopSuppressAccessoryOnEmpty | If enabled, on Android desktop, Autofill keyboard accessory will be suppressed when there are no autofill suggestions. | ❌ |
| AutofillAndroidDisableSuggestionsOnJSFocus | 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.
TODO(crbug.com/40286775) Clean up autofill feature flag
| ❌ |
| AutofillAndroidFormDataCompareFieldGlobalId | 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. TODO(crbug.com/456526604): Remove when launched. | ❌ |
| AutofillAndroidKeyboardAccessoryDynamicPositioning | 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. TODO(crbug.com/438125774): Remove when launched. | ❌ |
| AutofillAtMemory | Feature flag for kAutofillAtMemory. | ❌ |
| AutofillAtMemoryInactivityNudge | Controls whether the Autosuggest nudging logic is used. If enabled, user are encouraged to use the AtMemory feature. | ❌ |
| AutofillBetterLocalHeuristicPlaceholderSupport | 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. TODO(crbug.com/320965828): Remove when launched. | ❌ |
| AutofillConsiderAutocompleteUnrecognizedFieldsInMetrics | If enabled, our | ✅ |
| AutofillCreditCardUserPerceptionSurvey | Same as | ❌ |
| AutofillDelayApcForPredictions | If enabled, | ❌ |
| AutofillDisableAddressImport | Kill switch for Autofill address import. | ❌ |
| AutofillDisableFilling | Kill switch for Autofill filling. | ❌ |
| AutofillDisallowMoreHyphenLikeLabels | 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. TODO(crbug.com/440039204): Remove when launched. | ❌ |
| AutofillDoNotUpdateAutofillAvailabilityOnFocusEvents | If enabled, autofill availability event will not be updated in BrowserAutofillManager::OnFocusOnFormField(). | ✅ |
| AutofillEnableAblationStudy | Controls an ablation study in which autofill for addresses and payment data can be suppressed. | ❌ |
| AutofillEnableAddressFieldParserNG | Enables a new implementation for address field parsing that is based on backtracking. | ❌ |
| AutofillEnableCacheForRegexMatching | When enabled, FormFieldParser::MatchesRegexWithCache tries to avoid re-computing whether a regex matches an input string by caching the result. The result size is controlled by kAutofillEnableCacheForRegexMatchingCacheSizeParam. | ✅ |
| AutofillEnableDeduplicationOnBackgroundThread | Controls whether the deduplication process for Autofill profiles is run on a background thread to avoid blocking the UI thread. TODO(crbug.com/496889243): Remove when launched. | ❌ |
| AutofillEnableExpirationDateImprovements | 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. TODO(crbug.com/40266396): Remove once launched. | ❌ |
| AutofillEnableGermanTransliteration | Control if Autofill supports German transliteration. TODO(crbug.com/328968064): Remove when/if launched. | ❌ |
| AutofillEnableImportOfUnchangedValuesForCountryAndState | If enabled, the import of unchanged values for ADDRESS_HOME_COUNTRY and ADDRESS_HOME_STATE fields is enabled. TODO(crbug.com/40137859): Remove once launched. | ❌ |
| AutofillEnableImportWhenMultiplePhoneNumbers | Controls whether to save the first number in a form with multiple phone numbers instead of aborting the import. TODO(crbug.com/40742746) Remove once launched. | ❌ |
| AutofillEnableNonAffiliatedLoyaltyCardsFilling | When enabled, Autofill will help users fill in non-affiliated loyalty cards on loyalty card only fields. | ❌ |
| AutofillEnableOneTimeCodeHeuristics | When enabled, Autofill will use heuristics to identify OTP fields. | ❌ |
| AutofillEnableSaveToWalletFromSettings | Kill switch for saving entities to wallet from settings. | ✅ |
| AutofillEnableSkippingUnrecognizedAttribute | Kill switch: If enabled, | ✅ |
| AutofillEnableStreetAddressMergeModes | 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. TODO(crbug.com/447111009): Remove when launched. | ❌ |
| AutofillEnableSupportForHomeAndWork | When enabled, chrome will support home and work addresses from account. TODO: crbug.com/354706653 - Clean up when launched. | ✅ |
| AutofillEnableSupportForNameAndEmail | When enabled, chrome will support name and email address profile. TODO(crbug.com/356845298): Clean up when launched. | ✅ |
| AutofillExtendZipCodeValidation | Enables extended zip code validation. TODO(crbug.com/434140055): Clean up when launched. | ❌ |
| AutofillExtractOnlyNonAdFrames | 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. TODO(crbug.com/40196220): Remove once launched. | ❌ |
| AutofillFilterPlaceholderValuesOnImport | If enabled, removes address field values that contain words "select", "choose", or "optional" during profile import. TODO(crbug.com/485170688): Remove when launched. | ❌ |
| AutofillFixCivilStateMisclassificationForESPT | When enabled, improves heuristic regexes for state classification to avoid misclassification as civil state. TODO(crbug.com/465491175): Cleanup when launched. | ❌ |
| AutofillFixFieldsAssociatedWithNestedFormsByParser | If enabled, WebFormElement applies the same special case to nested forms as it does for the outermost form. The fix is relevant only to Autofill. For other callers of HTMLFormElement::ListedElements(), which don't traverse shadow trees and flatten nested forms, are not affected by the feature at all. This is a kill switch. | ✅ |
| AutofillFixFormEquality | Kill switch: Changes the behavior of Form[Field]Data::DeepEqual(). TODO(crbug.com/40183094): Turn this into a kill switch after a few weeks on canary. | ✅ |
| AutofillFixFormTracking | Removes logic that resets form submission tracking data upon receiving a FORM_SUBMISSION or PROBABLE_FORM_SUBMISSION signal. Also, fixes submission deduplication so that it ignores submissions that PWM doesn't act upon. TODO(crbug.com/40281981): Remove when launched. | ✅ |
| AutofillFixIsAutofilled | Enables the new implementation of | ✅ |
| AutofillFixRewriterRules | When enabled, the rewriter uses updated rewrite rules. TODO(crbug.com/445863287): Cleanup when launched. | ❌ |
| AutofillFixStateCountryMisclassification | 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. TODO(crbug.com/444180493): Cleanup when launched. | ❌ |
| AutofillGreekRegexes | When enabled, Greek regexes are used for parsing in branded builds. | ✅ |
| AutofillIgnoreCheckableElements | LINT.IfChange(autofill_ignore_checkable_elements) If enabled, checkboxes and radio buttons aren't extracted anymore. TODO(crbug.com/40283901): Remove once launched. Also remove - autofill::FormControlType::kInputCheckbox - autofill::FormControlType::kInputRadio | ✅ |
| AutofillImproveAddressFieldSwapping | When enabled, address field swapping suggestions will not include a suggestion matching the field's current value. This decreases noises in the suggestion UI. TODO(crbug.com/381531027): Remove when launched. | ✅ |
| AutofillImprovePhoneFieldParser | When enabled, a new grammar for phone numbers is considered and we get slightly better at detecting cases where the generic regex for PHONE_COUNTRY_CODE matches a field that should not actually be classified as such. | ✅ |
| AutofillImprovePhoneNumberRationalization | When enabled, | ✅ |
| AutofillIntroduceGlobalEmptyValueRewriterRules | 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. | ❌ |
| AutofillLabelSensitiveAutocomplete | TODO(crbug.com/346507576): Remove once the experiment is over. When enabled, makes autocomplete label sensitive. | ❌ |
| AutofillLogUKMEventsWithSamplingOnSession | Enable the feature by default, and set the enabled percentage as a feature param. We are logging information of field types, autofill status and forms with a defined sampling rate of 10% on sessions. Autofill FormSummary/FieldInfo UKM schema: https://docs.google.com/document/d/1ZH0JbL6bES3cD4KqZWsGR6n8I-rhnkx6no6nQOgYq5w/. | ✅ |
| AutofillManagerFiresOnAfterFooIfCacheIsFull | Kill switch: If enabled, ParseFormAsync() calls the parsing callback even if the cache is full before the parsing even starts. TODO(crbug.com/484285907): Clean up after April 10, 2026 (M148 branch point). | ✅ |
| AutofillModelPredictions | When enabled, all behaviours related to the on-device machine learning model for field type predictions will be guarded. TODO(crbug.com/40276177): Remove when launched. | ❌ |
| AutofillMoreProminentPopup | Controls autofill popup style, if enabled it becomes more prominent, i.e. its shadow becomes more emphasized, position is also updated. TODO(crbug.com/40235454): Remove once the experiment is over. | ❌ |
| AutofillMoveSmallFormLogicToClient | When Enabled Autofill server will stop applying small form rule and Chrome will take care of this logic. | ❌ |
| AutofillNewAugmentedPhoneCountryCodeRegex | Improves the regex for matching augmented country code select options by supporting cases like +1 (234). | ✅ |
| AutofillNewRegexForPhoneCountryCode | If enabled, more patterns are added to the PHONE_COUNTRY_CODE regex. TODO(crbug.com/479503511): Remove once launched. | ✅ |
| AutofillNewSuggestionGeneration | If enabled, the new suggestion generation logic is used. TODO(crbug.com/409962888): Remove once launched. | ❌ |
| AutofillOptimizeCacheUpdates | When enabled, cache form updates will happen in place instead of creating a new form and moving it back to the cache, which reduces the number of members that are copied. TODO(crbug.com/456719060): Remove once launched. | ✅ |
| AutofillOptimizeIsNormalizedNameVariantOf | When enabled, | ❌ |
| AutofillOverwriteCountryCallingCodes | If enabled, prefilled country calling codes like "+49" do not prevent autofilling. TODO(crbug.com/453076638): Cleanup after M146 (after Feb 10, 2026). | ✅ |
| AutofillPageLanguageDetection | Enables detection of language from Translate. TODO(crbug.com/40158074): Cleanup when launched. | ❌ |
| AutofillPaymentsFieldSwapping | When enabled, focusing on a credit card number field that was traditionally autofilled will yield all credit card suggestions. TODO(crbug.com/354175563): Remove when launched. | ❌ |
| AutofillPolicyControlledFeatureAutofill | 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. TODO(crbug.com/40178859): Enable this feature. | ❌ |
| AutofillPolicyControlledFeatureManualText | Controls whether Autofill warns about manual text input in cross-origin
frames.
This feature lives in Autofill code because of its close relationship to
| ❌ |
| AutofillPopupCheckHtmlFormPopupOverlap | 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. TODO(crbug.com/417052041): Remove when launched. | ✅ |
| AutofillPopupDontAcceptNonVisibleEnoughSuggestion | 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. TODO(crbug.com/337222641): During cleaning up, in the popup row view remove emitting of "Autofill.AcceptedSuggestionDesktopRowViewVisibleEnough". | ❌ |
| AutofillPopupZOrderSecuritySurface | TODO(crbug.com/334909042): Remove after cleanup. If the feature is enabled, the Autofill popup widget is initialized with | ✅ |
| AutofillPreferPhoneCountryCodeTypeOverCountryHtmlType | When enabled, we prefer a | ✅ |
| AutofillReplaceCachedWebElementsByRendererIds | Replaces cached web elements in AutofillAgent and FormTracker by their renderer ids. TODO(crbug.com/40281981): Remove when launched. | ✅ |
| AutofillReplaceFormElementObserver | Replaces blink::WebFormElementObserver usage in FormTracker by updated logic for tracking the disappearance of forms as well as other submission triggering events. TODO(crbug.com/40281981): Remove when launched. | ❌ |
| AutofillRestrictOtpToSameTldPlusOne | Restricts OTP fields detection and fetching to forms that are in a frame with the same TLD+1 as the main frame. | ❌ |
| AutofillSendUnidentifiedKeyAfterFill | If disabled (default for many years), autofilling triggers KeyDown and KeyUp events that do not send any key codes. If enabled, these events contain the "Unidentified" key. | ❌ |
| AutofillServerExperimentalSignatures | TODO(crbug.com/435646513) - Clean-up after feature lands at 100% Stable. Enables the new experimental server-side signatures for evaluation purposes. | ✅ |
| AutofillServerQueryPredictionsEarly | 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. | ❌ |
| AutofillServerUploadMoreData | Enables uploading of more data to the Autofill server to use for computing signatures: go/autofill-signatures-more-data. | ✅ |
| AutofillShowBubblesBasedOnPriorities | When enabled, password manager and autofill bubbles will be shown based on the priorities of the bubbles. TODO(crbug.com/432429605): Remove when launched. | ✅ |
| AutofillSkipPreFilledFields | If enabled, a pre-filled field will not be filled. | ✅ |
| AutofillSmsOtpCrowdsourcing | If enabled, upload votes for sms otp. TODO(crbug.com/453999673): Clean up when launched. | ✅ |
| AutofillSmsOtpCrowdsourcingFetchFromGmscore | If enabled, fetch sms otp from gmscore and upload votes for sms otp. TODO(crbug.com/453999673): Clean up when launched. | ✅ |
| AutofillStructuredFieldsDisableAddressLines | 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. TODO(crbug.com/40266693) Remove once launched. | ❌ |
| AutofillSupportCombinedZipAndCityFR | Enables parsing of fields that combine postal code and city in France, e.g. a single field containing "75008 Paris". TODO(crbug.com/465119085): Clean up when launched. | ❌ |
| AutofillSupportPhoneticNameForJP | Enables using a custom address model for Japan, overriding the legacy one. TODO(crbug.com/359768803): Remove in M151. | ✅ |
| AutofillSupportSplitZipCode | Enables splitting two-part zip codes into two fields while filling and importing split zip codes from two adjacent fields. TODO(crbug.com/369503318): Clean up when launched. | ❌ |
| AutofillTrackSelectFieldEdits | Enables tracking of user edits to <select> fields that were not autofilled. | ❌ |
| AutofillUKMExperimentalFields | — | ❌ |
| AutofillUploadManualFallbackFieldsToServer | Enables uploading fields that were autofilled with fallback types. TODO: crbug.com/444147005 - Clean up after this feature is rolled out. | ✅ |
| AutofillUseAccessibilityAnnotator | Enables the use of the Accessibility Annotator data adapter for Autofill AI. | ❌ |
| AutofillUseINAddressModel | Enables using a custom address model for India, overriding the legacy one. | ❌ |
| AutofillUseNegativePatternForAllAttributes | When enabled, the form field parser won't try to match other attributes if any of the negative patterns matched. | ❌ |
| AutofillUseStructuralSignatureInsteadOfSecondary | Replaces the secondary signature with the structural signature for Uploads. For Queries still only the secondary (alternative) signature is used. TODO(crbug.com/431737839): Clean up when roll out finishes successfully. | ✅ |
| AutofillWebDataBackendImplRaceConditionFix | Kill switch for a race-condition fix to make it a safer merge. TODO(crbug.com/474706752): Clean up after M146 branchpoint (Feb 10 2026). | ✅ |
| AutoPictureInPictureForVideoPlayback | Allows the AutoPictureInPictureTabHelper to automatically enter picture-in-picture for websites with video playback (instead of only websites using camera or microphone). | ✅ |
| AutoPictureInPictureOnWindowOccluded | Allows the AutoPictureInPictureTabHelper to automatically enter picture-in-picture when a webpage is occluded by another window. | ❌ |
| AutoPictureInPicturePageInfoDetails | Enables showing auto picture-in-picture permission details in page info. | ✅ |
| AutoPictureInPictureSurveys | Enables Happiness Tracking Surveys for Auto Picture-in-Picture. | ❌ |
| AutoplayBypassForMicCamera | Allows media to autoplay without a user gesture if the site has been granted microphone or camera permissions. | ✅ |
| AutoplayDisableSettings | Whether we should show a setting to disable autoplay policy. | ❌ |
| AutoplayPoliciesAndroid | Enables the Enterprise Autoplay policies (AutoplayAllowed and AutoplayAllowlist) on Android. | ❌ |
| AutoSpeculationRules | https://crbug.com/1472970 | ❌ |
| AutoupgradeMixedContent | — | ✅ |
| AVDColorSpaceChanges | Whether we should allow color space changes to flush AcceleratedVideoDecoder. | ✅ |
| AvoidTrustedParamsCopies | Avoids copying ResourceRequest::TrustedParams when possible. | ✅ |
| BackForwardCache | Enable using the BackForwardCache. | ✅ |
| BackForwardCacheCCNSIgnoreUnchangedCookies | 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. | ❌ |
| BackForwardCacheDWCOnJavaScriptExecution | — | ❌ |
| BackForwardCacheEntryTimeout | Set a time limit for the page to enter the cache. Disabling this prevents flakes during testing. | ✅ |
| BackForwardCacheMemoryControls | BackForwardCacheMemoryControls is enabled only on Android to disable BackForwardCache for lower memory devices due to memory limitations. | ❌ |
| BackForwardCachePauseMicrotasks | This is a kill switch for pausing microtask while the page is in the BFCache. Remove by m155 if things go well. | ✅ |
| BackgroundFetch | Kill switch for Background Fetch. | ✅ |
| BackgroundResourceFetch | Enable background resource fetch in Blink. See https://crbug.com/1379780 for more details. | ✅ |
| BackgroundTracingPerformanceMark | Used to configure a per-origin allowlist of performance.mark events that are permitted to be included in slow reports traces. See crbug.com/1181774. | ❌ |
| BackToAdIntervention | 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. | ❌ |
| BakedGamutMapping | Redefine the oklab and oklch spaces to have gamut mapping baked into them. https://crbug.com/1508329 | ❌ |
| BatterySaverModeAlignWakeUps | If enabled, makes battery saver request heavy align wake ups. | ❌ |
| BFCacheOpenBroadcastChannel | TODO(https://crbug.com/327075943): Delete this. | ✅ |
| BFCacheWithSharedWorker | TODO(https://crbug.com/431875857): Delete this. | ✅ |
| BlockMidiByDefault | Block all MIDI access with the MIDI_SYSEX permission | ✅ |
| BlockPartialResponseWithoutRange | — | ✅ |
| BoostFontLoadingTaskPriority | — | ✅ |
| BoostImageSetLoadingTaskPriority | Boost the priority of certain loading tasks (https://crbug.com/1470003). | ✅ |
| BoostNonRenderBlockingStyleLoadingTaskPriority | — | ✅ |
| BoostRenderBlockingStyleLoadingTaskPriority | — | ✅ |
| BoostRenderProcessForLoading | If enabled, force renderer process foregrounded from CommitNavigation to DOMContentLoad (crbug/351953350). | ✅ |
| BoostVideoLoadingTaskPriority | — | ✅ |
| BrokerFileOperationsOnDiskCacheInNetworkService | Broker file operations on disk cache in the Network Service. This is no-op if the network service is hosted in the browser process. | ❌ |
| BrowserInitiatedAutomaticPictureInPictureDryRun | 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. | ❌ |
| BrowsingTopicsBypassIPIsPubliclyRoutableCheck | If enabled, the check for whether the IP address is publicly routable will be bypassed when determining the eligibility for a page to be included in topics calculation. This is useful for developers to test in local environment. | ❌ |
| BrowsingTopicsDocumentAPI | Enables calling the Topics API through Javascript (i.e. document.browsingTopics()). For this feature to take effect, the main Topics feature has to be enabled first (i.e. | ✅ |
| BrowsingTopicsParameters | Decoupled with the main | ✅ |
| BypassRedirectChecksPerRequest | Allows the decision to bypass redirect checks to be made based on the specific request. | ✅ |
| CacheControlNoStoreEnterBackForwardCache | 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. TODO(crbug.com/40189625): Remove this feature and clean up. | ✅ |
| CacheStorageCodeCacheHintHeader | When enabled allows the header name used in the blink CacheStorageCodeCacheHint runtime feature to be modified. This runtime feature disables generating full code cache for responses stored in cache_storage during a service worker install event. The runtime feature must be enabled via the blink runtime feature mechanism, however. | ❌ |
| Canvas2DHibernation | Temporarily disabled due to issues: - PDF blank previews - Canvas corruption on ARM64 macOS See https://g-issues.chromium.org/issues/328755781 | ❌ |
| Canvas2DHibernationDefer | Defer canvas hibernation when visibility changed. | ❌ |
| Canvas2DHibernationNoSmallCanvas | Don't hibernate small canvas elements. | ❌ |
| Canvas2DHibernationReleaseTransferMemory | When hibernating, make sure that the just-used transfer memory (to transfer the snapshot) is freed. | ❌ |
| CapStringBuilderLengthTo1GiB | — | ✅ |
| CaptureJSExecutionLocation | Whether to capture the source location of JavaScript execution, which is one of the renderer eviction reasons for Back/Forward Cache. | ✅ |
| CastStreamingAv1 | Controls whether mirroring negotiations will include the AV1 codec for video encoding. NOTE: currently only software AV1 encoding is supported. TODO(crbug.com/40246079): hardware AV1 encoding should be added. | ❌ |
| CastStreamingExponentialVideoBitrateAlgorithm | Controls whether the new exponential bitrate calculate logic is used, or the legacy linear algorithm. TODO(crbug.com/302584587): This is the V2 implementation of this experiment, following the failure of the initial experiment. | ❌ |
| CastStreamingHardwareHevc | — | ❌ |
| CastStreamingMediaVideoEncoder | TODO(crbug.com/282984511): Remove after M151. | ✅ |
| CastStreamingPerformanceOverlay | — | ❌ |
| CastStreamingVp8 | 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. | ✅ |
| CastStreamingVp9 | Controls whether mirroring negotiations will include the VP9 codec for video encoding. | ✅ |
| CastVideoEncoderFrameDrop | A video encoder is allowed to drop a frame in cast mirroring. | ❌ |
| CdmHostVerification | CDM host verification is enabled by default. Can be disabled for testing. Has no effect if ENABLE_CDM_HOST_VERIFICATION buildflag is false. | ✅ |
| ChildProcessSecurityPolicyRust | Enables the experimental Rust implementation of ChildProcessSecurityPolicy. See https://crbug.com/482216433. | ❌ |
| ClearCrossSiteCrossBrowsingContextGroupWindowName | Clear the window.name property for the top-level cross-site navigations that swap BrowsingContextGroups(BrowsingInstances). | ❌ |
| ClearPipCachedBoundsWhenPermissionPromptVisible | 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. | ✅ |
| ClearSiteDataPrefetchPrerenderCache | — | ✅ |
| ClientHintsDeviceMemory_DEPRECATED | Enable legacy | ✅ |
| ClientHintsDPR_DEPRECATED | Enable legacy | ✅ |
| ClientHintsResourceWidth_DEPRECATED | Enable legacy | ✅ |
| ClientHintsViewportWidth_DEPRECATED | Enable legacy | ✅ |
| CompositeBGColorAnimation | — | ❌ |
| CompositedAnimationsForceMainFrames | — | ✅ |
| CompressParkableStrings | Disabling this will cause parkable strings to never be compressed. This is useful for headless mode + virtual time. Since virtual time advances quickly, strings may be parked too eagerly in that mode. | ✅ |
| ComputePressureRateObfuscationMitigation | — | ✅ |
| ConsumeCodeCacheOffThread | Controls off-thread code cache consumption. | ✅ |
| ContentCaptureConstantStreaming | Enables the constant streaming in the ContentCapture task. | ✅ |
| ContentSchemeIsLocal | If enabled, content:// URLs are considered local, and won't be allowed to be downloaded. | ❌ |
| ContextMenu2026 | Reorders video context menu items if enabled. | ❌ |
| ContextMenuCopyVideoFrame | Enables the "Copy Video Frame" context menu item. | ✅ |
| ContextMenuSaveVideoFrameAs | Enables the "Save Video Frame As" context menu item. On Android, this is "Download Video Frame" context menu item. | ✅ |
| ContextMenuSearchForVideoFrame | Enables the "Search Video Frame with <Search Provider>" context menu item. | ✅ |
| CrashReportingAPIMoreContextData | — | ✅ |
| CreateImageBitmapOrientationNone | When enabled, add a new option, {imageOrientation: 'none'}, to
createImageBitmap, which ignores the image orientation metadata of the source
and renders the image as encoded. | ❌ |
| CSSFontComparisonFix | Fix for CSS font comparison logic. | ✅ |
| D3D11VideoDecoderForceSingleTexture | 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. | ❌ |
| D3D11VideoDecoderUseSharedHandle | — | ❌ |
| DataURIMemoryCache | — | ✅ |
| DataUrlWorkerOpaqueOrigin | — | ✅ |
| DeclarativeCSSModulesUseDataURI | When enabled, Declarative CSS Modules will generate a DataURI instead of a Blob URL in the generated Import Map. | ❌ |
| DedicatedMediaServiceThread | Runs the media service in the GPU process on a dedicated thread. | ✅ |
| DedicatedWorkerAblationStudyEnabled | — | ❌ |
| DefaultSiteInstanceGroups | When enabled, puts non-isolated sites in separate SiteInstances in a default SiteInstanceGroup (per BrowsingInstance), rather than sharing a default SiteInstance. | ✅ |
| DeferAudioFocusUntilAudible | 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. | ❌ |
| DeferRendererTasksAfterInput | — | ✅ |
| DeferSpeculativeRFHCreation | 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. | ❌ |
| DeferTreeBuilderFlush | When enabled, HTMLTreeBuilder::Flush() will be throttled in kTextMode to reduce O(n^2) string copies. The first flush will always be allowed to complete immediately, then subsequent flushes will be throttled and will backoff exponentially up to a "max_interval". The "initial_interval" is the delay introduced after the first flush and is increased by "multiplier" for each subsequent flushes. See https://crbug.com/500385603 for more context and how the numbers were selected. | ✅ |
| DelayAsyncScriptExecution | — | ❌ |
| DelayLayerTreeViewDeletionOnLocalSwap | — | ✅ |
| DetectJSFrameworksOnWorker | — | ✅ |
| DeviceBoundSessionTerminationEvictBackForwardCache | 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 | ❌ |
| DevToolsAllowPopoverForcing | Whether force-showing popovers is enabled. | ✅ |
| DevToolsImprovedNetworkError | Improves the signal-to-noise ratio of network error related messages in the DevTools Console. See http://crbug.com/124534. | ❌ |
| DevToolsLiveEdit | Whether DevTools Live Edit (Debugger.setScriptSource usage in CDP) is enabled. | ❌ |
| DevToolsWebMCPSupport | — | ✅ |
| DigitalGoodsApi | Controls whether the Digital Goods API is enabled. https://github.com/WICG/digital-goods/ | ❌ |
| DIPS | 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. | ✅ |
| DIPSTtl | Flag used to control the TTL for user interactions (separately from the |kBtm| feature flag). | ✅ |
| DirectCompositorThreadIpc | — | ❌ |
| DirectOpusAudioDecoding | Controls whether the OpusAudioDecoder is used for Opus audio decoding (instead of the FFmpegAudioDecoder). | ❌ |
| DisableArrayBufferSizeLimitsForTesting | — | ❌ |
| DisableProcessReuse | When enabled, OOPIFs will not try to reuse compatible processes from unrelated tabs. | ❌ |
| DiscardInputEventsToRecentlyMovedFrames | — | ❌ |
| DiscoFeedEndpoint | — | ✅ |
| DisplayWarningDeprecateURNIframesUseFencedFrames | A console warning is shown when the opaque url returned from Protected Audience/selectUrl is used to navigate an iframe. Since fenced frames are not going to be enforced for these APIs in the short-medium term, disabling this warning for now. | ❌ |
| DocumentPictureInPictureAnimateResize | Adds an animation to document picture-in-picture resizes. | ❌ |
| DocumentPictureInPictureCapture | Allows document picture-in-picture pages to request capture. | ✅ |
| DocumentPictureInPictureNavigation | Allow document picture-in-picture to navigate. This should be disabled except for testing. | ❌ |
| DocumentPictureInPictureReparenting | — | ❌ |
| DrawCutoutEdgeToEdge | Enable drawing under System Bars within DisplayCutout. | ✅ |
| DropInputEventsWhilePaintHolding | Drop input events at the browser process until the process receives the first signal that the renderer has sent a frame to cc (https://crbug.com/40057499). | ✅ |
| EmailVerificationProtocol | 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. | ✅ |
| EnableCanvas2DLayers | Enables canvas 2d methods BeginLayer and EndLayer. | ❌ |
| EnableDevtoolsDeepLinkViaExtensibilityApi | Extends console.timestamp to support adding deep-links into the DevTools Performance Panel, which (when clicked) call into a DevTools extension. | ❌ |
| EnableHighChannelLayouts | Enables support for >8 audio channel layouts (i.e., 5.1.4 and 7.1.4). | ❌ |
| EnableLazyLoadImageForInvisiblePage | Whether to respect loading=lazy attribute for images when they are on invisible pages. | ✅ |
| EnableRtcpReporting | Controls whether the Mirroring Service will fetch, analyze, and store information on the quality of the session using RTCP logs. | ✅ |
| EnableTabMuting | Enables user control over muting tab audio from the tab strip. | ❌ |
| EncryptedMediaOcclusionTracking | Enables tracking the occlusion of encrypted video elements. | ❌ |
| EnforceDedicatedWorkerSameOriginCheck | Enforce same-origin check for dedicated worker script URLs. See https://crbug.com/496253755. | ✅ |
| EnforceNoopenerOnBlobURLNavigation | Prevents an opener from being returned when a BlobURL is cross-site to the window's top-level site. | ✅ |
| EnforceSharedWorkerSameOriginCheck | Enforce same-origin check for shared worker script URLs. See https://crbug.com/504073872. | ✅ |
| EnsureExistingRendererAlive | Ensures the renderer is not dead when getting the process host for a site instance. | ❌ |
| EventTimingIgnorePresentationTimeFromUnexpectedFrameSource | — | ❌ |
| ExpandCompositedCullRect | — | ✅ |
| ExtendedVideoBitstreamValidation | Enables extended video bitstream validation for H.264 and H.265. | ✅ |
| ExternalClearKeyForTesting | 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. | ❌ |
| FadeInScrollbarWhenMouseWheelMayBegin | Fade in scrollbar at may-begin wheel event. This only works on macOS. | ❌ |
| FailUrlProvisionFetcherForTesting | 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. | ❌ |
| FallbackAfterDecodeError | 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. | ✅ |
| FeatureManagementLiveTranslateCrOS | FeatureManagement gate for Live Translate on ChromeOS devices. No impact outside of CrOS. | ❌ |
| FedCm | 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. | ✅ |
| FedCmAmbientUI | Enables the FedCM ambient UI. | ❌ |
| FedCmAutofill | Enables RPs to enhance autofill with federated accounts fetched by the FedCM API. | ❌ |
| FedCmDelegation | Enables usage of the FedCM Delegation API. | ❌ |
| FedCmEmbedderInitiatedLogin | Enables FedCM to support login request initiated by the embedder. | ❌ |
| FedCmErrorAttribute | Enables the spec-compliant 'error' attribute in IdentityCredentialError while deprecating the legacy 'code' attribute. | ✅ |
| FedCmIdPRegistration | Enables usage of the FedCM IdP Registration API. | ❌ |
| FedCmLightweightMode | Enables Lightweight FedCM Mode | ❌ |
| FedCmMetricsEndpoint | Enables usage of the FedCM API with metrics endpoint at the same time. | ❌ |
| FedCmNavigationInterception | Enables usage of the FedCM IdP-Initiation API. | ❌ |
| FedCmNonceInParams | Enables Nonce usage in Params | ❌ |
| FedCmWebIdentitySubdomain | Enables subdomain-first discovery for the FedCM well-known file. Fetches https://web-identity.<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). | ❌ |
| FedCmWellKnownEndpointValidation | 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. | ❌ |
| FedCmWithoutWellKnownEnforcement | Enables bypassing the well-known file enforcement. | ❌ |
| FeedAudioOverviews | — | ❌ |
| FeedContainment | — | ✅ |
| FeedImageMemoryCacheSizePercentage | — | ❌ |
| FeedLoadingPlaceholder | — | ❌ |
| FeedNoViewCache | — | ✅ |
| FeedPerformanceStudy | — | ❌ |
| FeedRecyclerBinderUnmountOnDetach | — | ❌ |
| FeedSignedOutViewDemotion | — | ❌ |
| FeedStreaming | — | ❌ |
| FeedSyntheticCapabilities | — | ❌ |
| FencedFrames | Enable the <fencedframe> element; see crbug.com/1123606. Note that enabling this feature does not automatically expose this element to the web, it only allows the element to be enabled by the runtime enabled feature, for origin trials. | ✅ |
| FencedFramesAutomaticBeaconCredentials | Temporarily un-disable credentials on fenced frame automatic beacons until third party cookie deprecation. TODO(crbug.com/1496395): Remove this after 3PCD. | ✅ |
| FencedFramesCrossOriginAutomaticBeaconData | — | ✅ |
| FencedFramesCrossOriginEventReporting | Enable sending event-level reports through reportEvent() in cross-origin subframes. This requires opt-in both from the cross-origin subframe that is sending the beacon as well as the document that contains information about the reportEvent() endpoints. | ✅ |
| FencedFramesEnforceFocus | Enables browser-side focus verification when crossing fenced boundaries. | ❌ |
| FencedFramesLocalUnpartitionedDataAccess | Controls functionality related to network revocation/local unpartitioned data access in fenced frames. | ❌ |
| FencedFramesReportEventHeaderChanges | — | ✅ |
| FencedFramesSrcPermissionsPolicy | Enables a bug fix that allows a 'src' allowlist in the |allow| parameter of a <fencedframe> or <iframe> loaded with a FencedFrameConfig to behave as expected. See: https://crbug.com/349080952 | ✅ |
| FieldClassificationModelCaching | When enabled, the field classification model uses runtime caching to not run models on the same inputs multiple times. TODO(crbug.com/371933424). Clean up when launched, if not used for Autofill experiments. | ❌ |
| FileDialogsBlockPictureInPicture | Blocks picture-in-picture windows while file dialogs are open. | ❌ |
| FileDialogsTuckPictureInPicture | Tucks picture-in-picture windows while file dialogs are open. | ❌ |
| FileHandlingIcons | File handling icons. https://crbug.com/1218213 | ❌ |
| FileSystemUrlNavigation | — | ❌ |
| FileSystemUrlNavigationForChromeAppsOnly | — | ✅ |
| FilteringScrollPrediction | — | ❌ |
| Fledge | See https://github.com/WICG/turtledove/blob/main/FLEDGE.md Enables FLEDGE implementation. See https://crbug.com/1186444. | ✅ |
| FledgeBiddingAndAuctionServer | See https://github.com/WICG/turtledove/blob/main/FLEDGE_browser_bidding_and_auction_API.md | ✅ |
| FledgeConsiderKAnonymity | See in the header. | ❌ |
| FledgeDisableLocalAdsAuctions | — | ❌ |
| FledgeEnableSampleDebugReportOnCookieSetting | — | ❌ |
| FledgeEnforceKAnonymity | — | ❌ |
| FledgeEnforcePermissionPolicyContributeOnEvent | Enable enforcement of permission policy for privateAggregation.contributeToHistogramOnEvent. | ❌ |
| FledgeLimitSelectableBuyerAndSellerReportingIds | See the header for more details. | ❌ |
| FledgeLimitSelectableBuyerAndSellerReportingIdsFetchedFromKAnon | Provides a configurable limit on the number of | ❌ |
| FledgeMaxGroupLifetimeFeature | — | ✅ |
| FledgeOriginScopedKeys | See https://github.com/WICG/turtledove/issues/1334 | ✅ |
| FledgeSampleDebugReports | — | ✅ |
| FledgeTruncateSelectableBuyerAndSellerReportingIdsToKAnonLimit | Feature flag to truncate the set of | ❌ |
| ForceHighPerformanceGPUForWebGL | — | ❌ |
| ForceProduceCompileHints | — | ❌ |
| ForceSkcmsICCParsing | — | ❌ |
| ForceSkExifCppParsing | — | ❌ |
| ForceSoftwareForRtcLowResolutions | 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. TODO: crbug.com/40068556 - Enable for Android and remove this flag. | ✅ |
| ForwardMemoryPressureToBlinkIsolates | 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 | ✅ |
| FractionalScrollOffsets | Enables scrollers inside Blink to store scroll offsets in fractional floating-point numbers rather than truncating to integers. | ❌ |
| FrameMetadataObserver | — | ✅ |
| FreezeSharedWorker | — | ❌ |
| FrequencyCappingForLargeStickyAdDetection | Enables the frequency capping for detecting large sticky ads. Large-sticky-ads are those ads that stick to the bottom of the page regardless of a user’s efforts to scroll, and take up more than 30% of the screen’s real estate. | ✅ |
| FrequencyCappingForOverlayPopupDetection | Enables the frequency capping for detecting overlay popups. Overlay-popups are the interstitials that pop up and block the main content of the page. | ✅ |
| GetDisplayMediaConfersActivation | 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. TODO(crbug.com/420406085): Remove after January 2028. Keep this flag around at least until that date. | ✅ |
| GetDisplayMediaIgnoreAudioPermissionFailures | If enabled, then display audio track permission failures are ignored. | ✅ |
| GlobalMediaControlsAutoDismiss | Auto-dismiss global media controls. | ✅ |
| GlobalMediaControlsSeamlessTransfer | Enable selection of audio output device in Global Media Controls. | ❌ |
| GlobalVaapiLock | Enable global VA-API lock. Disable this to use lock-free VA-API function calls for thread safe backends. | ❌ |
| GMSCoreEmoji | — | ✅ |
| GuestViewMPArch | Whether GuestViews (see components/guest_view/README.md) are implemented using MPArch inner pages. See https://crbug.com/40202416 | ❌ |
| H264IDRKeyframeRequiresParameterSets | 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. | ❌ |
| HardwareMediaKeyHandling | Enables handling of hardware media keys for controlling media. | ❌ |
| HardwareSecureDecryption | Enables hardware secure decryption if supported by hardware and CDM. NOTE: For Windows platform, hardware secure decryption is available via PlayReady SL3000. 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. | ✅ |
| HardwareSecureDecryptionAv1 | Enables hardware secure AV1 decoding if supported by the hardware and the OS Content Decryption Module (CDM). | ✅ |
| HardwareSecureDecryptionExperiment | Same as | ❌ |
| HardwareSecureDecryptionFallback | 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. | ✅ |
| HardwareSecureDecryptionVp9 | Enables hardware secure VP9 decoding if supported by the hardware and the OS Content Decryption Module (CDM). | ❌ |
| HeadlessCaptionEarlyStart | If enabled, Glic will start captioning as soon as a profile is loaded. | ❌ |
| HeadlessLiveCaption | Controls headless Live Caption experiment, which is likely unstable. | ❌ |
| HeavyAdIntervention | Enables or disables the intervention that unloads ad iframes with intensive resource usage. | ✅ |
| HeavyAdInterventionSendReportToEmbedder | Enables or disables sending the heavy ad report to the root ad frame's embedder. | ✅ |
| HeavyAdInterventionWarning | Enables or disables reporting on the intervention that unloads ad iframes with intensive resource usage. | ✅ |
| HeavyAdPrivacyMitigations | 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. | ✅ |
| HttpDiskCachePrewarming | — | ❌ |
| IdbSqliteBackingStore | This flag unconditionally enables the SQLite backing store. Used for about:flags. | ❌ |
| IgnoreDuplicateNavs | Controls whether we ignore duplicate navigations or not, in favor of preserving the already ongoing navigation. | ❌ |
| IgnoreInputWhileHidden | — | ❌ |
| ImageLoadingPrioritizationFix | — | ❌ |
| ImageReplacement | — | ❌ |
| IndexedDBCompressValuesWithSnappy | — | ✅ |
| InitialWebUI | 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. | ❌ |
| InitialWebUISurfaceSync | — | ❌ |
| InitialWebUISyncNavStartToCommit | Whether initial WebUI navigations should synchronously go from navigation start to commit, by doing e.g. in-renderer body loading. | ❌ |
| InitialWebUIWithoutExtensions | — | ❌ |
| InlineScriptCache | — | ❌ |
| InputPredictorTypeChoice | — | ❌ |
| InstalledApp | Kill switch for the GetInstalledRelatedApps API. | ✅ |
| InstalledAppProvider | Allow Windows specific implementation for the GetInstalledRelatedApps API. | ✅ |
| IntensiveWakeUpThrottling | When enabled, wake ups from throttleable TaskQueues are limited to 1 per minute in a page that has been backgrounded for 5 minutes. Intensive wake up throttling is enforced in addition to other throttling mechanisms: - 1 wake up per second in a background page or hidden cross-origin frame - 1% CPU time in a page that has been backgrounded for 10 seconds Feature tracking bug: https://crbug.com/1075553 The base::Feature should not be read from; rather the provided accessors should be used, which also take into account the managed policy override of the feature. The base::Feature is enabled by default on all platforms. However, on Android, it has no effect because page freezing kicks in at the same time. It would have an effect if the grace period ("grace_period_seconds" param) was reduced. | ✅ |
| InteractiveDetectorIgnoreFcp | — | ❌ |
| InterestFeedV2 | InterestFeedV2 takes precedence over InterestFeedContentSuggestions. InterestFeedV2 is cached in ChromeCachedFlags. If the default value here is changed, please update the cached one's default value in CachedFeatureFlags. | ✅ |
| InternalMediaSession | Enables the internal Media Session logic without enabling the Media Session service. | ❌ |
| IOThreadInteractiveThreadType | Sets IO threads to kInteractive all the time. | ❌ |
| IsolatedWebApps | Enable support for isolated web apps. This will guard features like serving isolated web apps via the isolated-app:// scheme, and other advanced isolated app functionality. See https://github.com/reillyeon/isolated-web-apps for a general overview. Please don't use this feature flag directly to guard the IWA code. Use IsolatedWebAppsPolicy::AreIsolatedWebAppsEnabled() in the browser process or check kEnableIsolatedWebAppsInRenderer command line flag in the renderer process. | ❌ |
| IsolateFencedFrames | Enables process isolation of fenced content (content inside fenced frames) from non-fenced content. See https://github.com/WICG/fenced-frame/blob/master/explainer/process_isolation.md for rationale and more details. | ❌ |
| IsolateOrigins | Alternative to switches::kIsolateOrigins, for turning on origin isolation. List of origins to isolate has to be specified via kIsolateOriginsFieldTrialParamName. | ❌ |
| IsolateSandboxedIframes | Allow process isolation of iframes with the 'sandbox' attribute set. Whether or not such an iframe will be isolated may depend on options specified with the attribute. Note: At present, only iframes with origin-restricted sandboxes are isolated. | ✅ |
| IsolatesPriorityBestEffortWhenHidden | 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). | ❌ |
| IsolatesPriorityUseProcessPriority | 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". | ❌ |
| JointMediaOptimizer | Enable the prototype global optimization of tuneables via finch. See media/base/tuneable.h for how to create tuneable parameters. | ❌ |
| KeepAliveInBrowserMigration | — | ✅ |
| KeepAliveReportBlockedByClient | Kill-switch for the tracking of keep-alive requests blocked by client. | ✅ |
| kEmulateLoadStartedForInspectorOncePerResource | If enabled, the body of | ✅ |
| kFetchDestinationJsonCssModules | Use "style" and "json" destinations for CSS and JSON modules. https://crbug.com/1491336 | ✅ |
| kLogSodaLoadFailures | 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. | ❌ |
| LazyBrowserInterfaceBroker | 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. | ✅ |
| LCPCriticalPathPredictor | — | ❌ |
| LCPPAutoPreconnectLcpOrigin | — | ❌ |
| LCPPDeferUnusedPreload | — | ❌ |
| LCPPFontURLPredictor | — | ❌ |
| LCPPInitiatorOrigin | — | ✅ |
| LCPPLazyLoadImagePreload | — | ✅ |
| LCPPMultipleKey | — | ✅ |
| LCPPPrefetchSubresource | — | ❌ |
| LCPPPrefetchSubresourceAsync | — | ❌ |
| LCPScriptObserver | — | ❌ |
| LCPTimingPredictorPrerender2 | — | ❌ |
| LeftHandSideActivityIndicators | — | ✅ |
| LegacyParsingOfXContentTypeOptions | — | ❌ |
| LessAggressiveParkableString | Enables more conservative settings for ParkableString: suspend parking in foreground, and increase aging tick intervals. | ✅ |
| LightweightNoStatePrefetch | A feature to reduce the set of resources fetched by No-State Prefetch. | ❌ |
| LimitLayerMergeDistance | — | ✅ |
| LiveCaption | Enables the Live Caption feature on supported devices. | ✅ |
| LiveCaptionAutomaticLanguageDownload | Enable automatic downloading of speech recognition language packs. | ❌ |
| LiveCaptionExperimentalLanguages | Enable experimental Live Caption languages. | ❌ |
| LiveCaptionLogFlickerRate | 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. | ❌ |
| LiveCaptionRightClick | Enable or disable Live Caption from the right click menu. | ❌ |
| LiveCaptionUseGreedyTextStabilizer | Use a greedy text stabilizer to reduce flickering when translating partial speech recognition results. | ✅ |
| LiveCaptionUseWaitK | Use a wait-k approach to reduce flickering when translating partial speech recognition results. | ❌ |
| LiveCaptionWebAudio | Enable or disable Live Caption support for WebAudio. | ✅ |
| LoadingPredictorLimitPreconnectSocketCount | If this is enabled, LoadingPredictor restricts the number of preconnects for the same destination to one. | ❌ |
| LoadingTasksUnfreezable | Makes network loading tasks unfreezable so that they can be processed while the page is frozen. | ✅ |
| LocalCompileHints | — | ✅ |
| LogJsConsoleMessages | — | ✅ |
| LogUnexpectedIPCPostedToBackForwardCachedDocuments | — | ✅ |
| LowerHighResolutionTimerThreshold | — | ❌ |
| LowPriorityAsyncScriptExecution | — | ✅ |
| ManageContactInfoPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited "Contact info" settings page. | ❌ |
| ManageIdentityDocsPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited "Identity docs" settings page. | ❌ |
| ManagePasswordsPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited Password Manager management surface. | ❌ |
| ManagePaymentsPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited "Payments" settings page. | ❌ |
| ManageTravelPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited "Travel" settings page. | ❌ |
| ManageYourSavedInfoPerceptionSurvey | When enabled, a HaTS survey is shown after the user visited "Your saved info" settings page. | ❌ |
| MatchSourceAudioChannelLayout | 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. TODO(crbug.com/445215599): This should be replaced with a MediaClient mechanism if it works as intended. | ❌ |
| MBIMode | 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. | ❌ |
| MediaCapabilitiesQueryGpuFactories | When enabled, MediaCapabilities will check with GPU Video Accelerator Factories to determine isPowerEfficient = true/false. | ✅ |
| MediaCapabilitiesWithParameters | Enable Media Capabilities with finch-parameters. | ✅ |
| MediaEngagementBypassAutoplayPolicies | 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. | ✅ |
| MediaEngagementHTTPSOnly | — | ❌ |
| MediaLinkHelpers | Allows per-site special processing for media links. | ✅ |
| MediaLogToConsole | 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. | ❌ |
| MediaPowerExperiment | Enable aggregate power measurement for media playback. | ❌ |
| MediaRemotingWithoutFullscreen | If enabled, users can request Media Remoting without fullscreen-in-tab. | ❌ |
| MediaSourceSeiRecoveryPointKeyframe | — | ✅ |
| MediaStreamAccurateDroppedFrameCount | Enables accurate dropped frame count for MediaStreamVideoSource. TODO(crbug.com/432367602): Remove after M143. | ✅ |
| MediaTrasncriptsFlagInPageMetadata | If enabled, chrome would inform Glic once it starts trasncribing, if Glic requested to be informed. | ❌ |
| MemoryCacheIntelligentPruning | — | ❌ |
| MemoryCacheStrongReference | — | ✅ |
| MemoryCacheStrongReferenceExtensions | — | ❌ |
| MemoryPurgeOnFreeze | — | ❌ |
| MemoryPurgeOnFreezeLimit | — | ❌ |
| MemorySaverModeRenderTuning | — | ❌ |
| MHTML_Improvements | — | ❌ |
| MP4TimedMetadataTrack | — | ✅ |
| NavigationConfidenceEpsilon | Controls the configurablity of the navigation confidence noise level. If the feature is not enabled, then the epsilon value will be 1.1. | ❌ |
| NavigationNetworkResponseQueue | When NavigationNetworkResponseQueue is enabled, the browser will schedule some tasks related to navigation network responses in a kHigh priority queue. | ✅ |
| NavigationPredictor | Used to control the collection of anchor element metrics (crbug.com/856683). If kNavigationPredictor is enabled, then metrics of anchor elements in the first viewport after the page load and the metrics of the clicked anchor element will be extracted and recorded. Note that the desktop roll out is being done separately from android. See https://crbug.com/40258405 | ✅ |
| NavigationPredictorNewViewportFeatures | Used to control the collection of new viewport related anchor element metrics. Metrics will not be recorded if either this or kNavigationPredictor is disabled. | ❌ |
| NetworkQualityEstimatorWebHoldback | 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). | ❌ |
| NetworkServiceInProcess2 | If the network service is enabled, runs it in process. | ❌ |
| NoForcedFrameUpdatesForWebTests | — | ❌ |
| NoReferrerForPreloadFromSubresource | — | ✅ |
| NoSelectionMenuCaching | Feature which disables caching a previous selection menu object. | ❌ |
| NoStatePrefetchHoldback | Feature which holdbacks NoStatePrefetch on all surfaces. | ❌ |
| NoThrottlingVisibleAgent | — | ❌ |
| NoThrowForCSPBlockedWorker | — | ✅ |
| OffscreenCanvasPropagateVisibility | — | ❌ |
| OnDeviceWebSpeech | Enables the On-Device Web Speech feature on supported devices. | ✅ |
| OnDeviceWebSpeechGeminiNano | Enables on-device speech recognition using on-device Gemini Nano. | ❌ |
| OnDeviceWebSpeechSmallExpertModel | Enables on-device speech recognition using on-device TinyGemma. | ❌ |
| OpenAllUrlsOrFilesOnDrop | — | ✅ |
| OptimizeHTMLElementUrls | — | ✅ |
| OptimizeMixedContentChecks | When enabled, fast-exits the mixed-content checks for secure URLs. | ✅ |
| OptimizeWebRequestProxyForServiceWorkerAutoPreload | Improve ServiceWorkerAutoPreload coverage by using more accurate web request proxy detection. If enabled, ServiceWorkerAutoPreload will not start if any installed extension has the | ❌ |
| OriginAgentClusterDefaultEnable | — | ✅ |
| OriginIsolationHeader | 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. | ✅ |
| OriginKeyedProcessesByDefault | 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. | ❌ |
| overlay-fullscreen-video | Only used for disabling overlay fullscreen (aka SurfaceView) in Clank. | ✅ |
| OverrideCrashReportingEndpoint | — | ✅ |
| OverscrollHistoryNavigation | History navigation in response to horizontal overscroll (aka gesture-nav). | ✅ |
| PaintHolding | Enable defer commits to avoid flash of unstyled content, for all navigations. | ✅ |
| ParseSEIRecoveryPoints | Causes the AVC parser to additionally parse and indicate when an SEI
recovery point with | ✅ |
| Path2DPaintCache | Enables the use of the PaintCache for Path2D objects that are rasterized out of process. Has no effect when kCanvasOopRasterization is disabled. | ❌ |
| PauseBackgroundTimer | 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. | ❌ |
| PauseMutedBackgroundAudio | — | ❌ |
| PausePagesPerBrowsingContextGroup | — | ❌ |
| PerformStorageCleanupForGPUDiskCache | When this feature is enabled, partial storage cleanup will be disabled for the GPU disk cache. (Performance improvement) | ❌ |
| PeriodicBackgroundSync | Whether web apps can run periodic tasks upon network connectivity. | ❌ |
| PersonalizeFeedUnsignedUsers | — | ❌ |
| PictureInPictureMuteControl | Adds a mute/unmute button to the Video Picture-in-Picture overlay window. | ❌ |
| PictureInPictureOcclusionTracking | Enables tracking the position of picture-in-picture windows to know when they occlude certain widgets. | ✅ |
| PictureInPictureShowWindowAnimation | Enables the animation of the Picture-in-Picture window creation. | ✅ |
| PlatformAudioEncoder | Allows usage of OS-level (platform) audio encoders. | ❌ |
| PrecompileInlineScripts | — | ❌ |
| PreemptiveSodaDownload | Enables the preemptive downloading of the SODA binary and language packs. | ❌ |
| PreferCompositingToLCDText | Whether we should composite a PLSA (paint layer scrollable area) even if it means losing lcd text. | ❌ |
| PrefetchOffTheMainThread | Allow starting prefetch request from off the main thread. Please see crbug.com/452389538 for more details. | ❌ |
| PrefetchPrerenderIntegration | Use code paths for prefetch/prerender integration.
See also | ❌ |
| PrefetchProxy | If explicitly disabled, prefetch proxy is not used. | ✅ |
| PrefetchRequestStatusListenerAsync | Make | ✅ |
| PreloadingEagerHoverHeuristics | Launch mouse hover feature only on Desktop. Note that Android Desktop mode is currently out of scope. | ❌ |
| PreloadingEagerViewportHeuristics | — | ❌ |
| PreloadingEligibilityCheckOnRenderer | — | ❌ |
| PreloadingHeuristicsMLModel | — | ❌ |
| PreloadingModerateViewportHeuristics | — | ❌ |
| PreloadingRespectUserAgentOverride | Killswitch for UA override issue fix (crbug.com/441612842) in preloading. | ❌ |
| PreloadMediaEngagementData | — | ✅ |
| PreloadSystemFonts | — | ❌ |
| Prerender2EarlyDocumentLifecycleUpdate | — | ❌ |
| Prerender2MemoryControls | — | ✅ |
| Prerender2ReuseHost | If enabled, the feature allows the prerender host to be reused for the future same-site page prerender if marked as reusable. | ❌ |
| PreviewHandwritingGesture | If enabled, the feature allows user to see a preview of their handwriting gestures (Select and Delete gestures). | ❌ |
| PrivacySandboxAdsAPIsOverride | 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. | ❌ |
| PrivateAggregationApi | Enables the Private Aggregation API. | ✅ |
| PrivateAggregationApiProtectedAudienceAdditionalExtensions | Adds some additional functionality (new reserved event types, base values) to things enabled by kPrivateAggregationApiEnabledInProtectedAudience. | ✅ |
| ProcessHtmlDataImmediately | — | ❌ |
| ProcessPerSiteUpToMainFrameThreshold | 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. | ✅ |
| ProcessSelectionDeferringConditions | 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. | ✅ |
| PushSubscriptionChangeEventOnInvalidation | Fires the | ❌ |
| PushSubscriptionChangeEventOnResubscribe | Fires the | ✅ |
| PwaNavigationCapturing | — | ✅ |
| QuoteEmptySecChUaStringHeadersConsistently | — | ✅ |
| RecordMediaEngagementScores | Enables Media Engagement Index recording. This data will be used to determine when to bypass autoplay policies. This is recorded on all platforms. | ✅ |
| RecordWebAudioEngagement | Enables Media Engagement Index recording for Web Audio playbacks. | ✅ |
| ReducedReferrerGranularity | Reduce the amount of information in the default 'referer' header for cross-origin requests. | ✅ |
| ReduceSubresourceResponseStartedIPC | 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. | ❌ |
| RefreshFeedOnRestart | — | ❌ |
| ReleaseResourceDecodedDataOnMemoryPressure | Whether | ✅ |
| ReleaseResourceStrongReferencesOnMemoryPressure | Whether | ✅ |
| RemoveCommitRedirectUrlsArray | Flag guard for removing usage of the CommitNavigationParams.redirects array of URLs in the renderer process. | ✅ |
| RemovePurposeHeaderForPrefetch | Disables sending the Purpose: "prefetch" header for prefetches and prerenders. | ✅ |
| RenderBlockingFonts | — | ✅ |
| RenderDocument | Enable using the RenderDocument. | ✅ |
| RendererMainIsNormalThreadTypeForWebRTC | — | ✅ |
| RenderMutedAudio | Controls whether muted media stream audio should continue to render. | ✅ |
| RenderSizeInScoreAdBrowserSignals | — | ✅ |
| ResampleScrollEventsForFling | — | ❌ |
| ResamplingInputEvents | — | ❌ |
| ResamplingScrollEvents | — | ✅ |
| ResolutionBasedDecoderPriority | 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. | ✅ |
| RestrictBackgroundFetchFromServiceWorker | — | ✅ |
| RestrictLinkHeaderOnSubresource | — | ❌ |
| RestrictThreadPoolInBackground | Restrict the maximum number of concurrent ThreadPool tasks when a renderer is low priority. | ❌ |
| resume-background-video | Let videos be resumed via remote controls (for example, the notification) when in background. | ❌ |
| ReuseNoStoreImageOnSameSrcReassignment | Allows same-document available-image reuse for no-store images. | ✅ |
| RevokeMediaSourceObjectURLOnAttach | 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. | ✅ |
| RunVideoCaptureServiceInBrowserProcess | Run video capture service in the Browser process as opposed to a dedicated utility process. | ❌ |
| RustyBmpFeature | — | ❌ |
| SafelistPaytoToRegisterProtocolHandler | https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme | ❌ |
| SafetyCheckUnusedSitePermissions | Enables unused site permission module in Safety Check. | ✅ |
| SchedQoSOnResourcedForChrome | Update scheduler settings using resourced on ChromeOS. | ❌ |
| ScriptStreaming | Controls script streaming for http and https scripts. | ✅ |
| ScriptStreamingForNonHTTP | Enables script streaming for non-http scripts. | ✅ |
| ScrollPredictorFilteringBypassOnSynthetic | — | ❌ |
| ScrollPredictorRefinedHasPrediction | — | ❌ |
| ScrollPredictorSyntheticKalman | — | ❌ |
| SecPurposePrefetchHeaderNoStatePrefetch | Enables sending Sec-Purpose: "prefetch" header for NoStatePrefetchURLLoaderThrottle. | ✅ |
| SecPurposePrefetchHeaderRelPrefetch | Enables sending Sec-Purpose: "prefetch" header for rel="prefetch". | ✅ |
| SecurePaymentConfirmationBrowser | 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. | ❌ |
| SecurePaymentConfirmationDebug | 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. | ❌ |
| SendCnameAliasesToSubresourceFilterFromRenderer | When enabled, the SubresourceFilter receives calls from the ResourceLoader to perform additional checks against any aliases found from DNS CNAME records for the requested URL. | ❌ |
| ServiceWorkerAutoPreload | 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. | ✅ |
| ServiceWorkerBackgroundUpdateForRegisteredStorageKeys | 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. | ✅ |
| ServiceWorkerInterceptDownloads | 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. | ❌ |
| ServiceWorkerPaymentApps | Service worker based payment apps as defined by w3c here: https://w3c.github.io/webpayments-payment-apps-api/ TODO(rouslan): Remove this. | ✅ |
| ServiceWorkerStaticRouterRaceNetworkRequestPerformanceImprovement | crbug.com/374606637: When this is enabled, race-network-and-fetch-hander will prioritize the response processing for the network request over the processing for the fetch handler. | ✅ |
| ServiceWorkerSyntheticResponse | (crbug.com/352578800): Enables building a sysnthetic response by ServiceWorker. For navigation requests, the pre-learned static response header is returned in parallel with dispatching the network request. | ❌ |
| SetIntervalWithoutClamp | If enabled, calling setInterval(..., 0) will not clamp to 1ms. Tracking bug: https://crbug.com/402694. | ✅ |
| SharedArrayBuffer | http://tc39.github.io/ecmascript_sharedmem/shmem.html This feature is also enabled independently of this flag for cross-origin isolated renderers. | ❌ |
| SharedStorageAPIEnableWALForDatabase | — | ✅ |
| SharedStorageCreateWorkletCustomDataOrigin | — | ✅ |
| SharedStorageSelectURLSavedQueries | — | ✅ |
| SharedStorageWorkletSharedBackingThreadImplementation | — | ❌ |
| ShowAutocompleteAtMemoryButton | If enabled, an entry point to AtMemory will be shown at the bottom of the Autocomplete dialogs. | ❌ |
| ShowHudDisplayForPausedPages | — | ✅ |
| ShowSugesstionsOnAlreadyAutofilledUnrecognized | Kill switch: if enabled, suggestions are shown for fields with unrecognized autocomplete attribute if they are already autofilled. | ✅ |
| SiteInstanceGroupsForDataUrls | When enabled, puts subframe data: URLs in a separate SiteInstance in the same SiteInstanceGroup as the initiator. | ✅ |
| SiteIsolationForCrossOriginOpenerPolicy | 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. | ❌ |
| SkipIPCChannelPausingForNonGuests | 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. | ✅ |
| SkipPagehideInCommitForDSENavigation | When enabled, skip pagehide-in-commit when navigating to DSE. (See: https://crbug.com/375385416) | ❌ |
| SpareRendererForSitePerProcess | 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. | ✅ |
| SpareRendererProcessPriority | 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. | ❌ |
| SpeakerChangeDetection | Enable the Speaker Change Detection feature, which inserts a line break when the Speech On-Device API (SODA) detects a speaker change. | ❌ |
| SpecCompliantCanPlayThrough | CanPlayThrough issued according to standard. | ✅ |
| SpeculativeImageDecodes | — | ❌ |
| SpeculativeServiceWorkerWarmUp | Enable service worker warming-up feature. (https://crbug.com/1431792) | ✅ |
| stop-in-background | Freeze scheduler task queues in background after allowed grace time. "stop" is a legacy name. | ❌ |
| StreamlineRendererInit | Reduces the work done during renderer initialization. | ❌ |
| StrictOriginIsolation | Controls whether site isolation should use origins instead of scheme and eTLD+1. | ❌ |
| SubframeProcessShutdownDelay | 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. | ✅ |
| SubSampleWindowProxyUsageMetrics | — | ✅ |
| SuggestionManageButtonSplitForEnhancedAutofill | When enabled, "Manage information" menu item for enhanced autofill will redirect user either to "/travel" or "/identityDocs" pages instead of "/yourSavedInfo" always. | ❌ |
| SuppressDifferentOriginSubframeJSDialogs | Disallows window.{alert, prompt, confirm} if triggered inside a subframe that
is not same origin with the main frame. | ❌ |
| SuspendMediaForFrozenFrames | Suspends WebMediaPlayerImpl instances when the containing RenderFrame is frozen. TODO(crbug.com/41161335): Remove in M143 after it goes stable. | ✅ |
| SyntheticPointerActions | Dispatch touch events to "SyntheticGestureController" for events from Devtool Protocol Input.dispatchTouchEvent to simulate touch events close to real OS events. | ❌ |
| TaskAttributionTraceMicrotaskTaskState | — | ✅ |
| ThreadedBodyLoader | — | ❌ |
| ThreadedPreloadScanner | — | ❌ |
| ThrottleInstallingServiceWorker | Enable throttling of fetch() requests from service workers in the installing state. The limit of 3 was chosen to match the limit in background main frames. In addition, trials showed that this did not cause excessive timeouts and resulted in a net improvement in successful install rate on some platforms. | ✅ |
| ThrottleUnimportantFrameTimers | Throttles Javascript timer wake ups of unimportant frames (cross origin frames with small proportion of the page's visible area and no user activation) on foreground pages. | ❌ |
| TouchDragAndContextMenu | 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). | ❌ |
| TrackEmptyRendererProcessesForReuse | 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. | ✅ |
| UACHOverrideBlank | Changes behavior of User-Agent Client Hints to send blank headers when the User-Agent string is overridden, instead of disabling the headers altogether. | ❌ |
| UnframedIwa | Enable the 'unframed' display override for IWAs. go/unframed-explainer-doc. | ❌ |
| UnifiedAutoplay | Enables the Unified Autoplay policy by overriding the platform's default autoplay policy. | ✅ |
| UnloadBlocklisted | If enabled, the usage of unload handlers causes a blocklisted reason for BFCache. The purpose is to capture their source location. | ❌ |
| UnrestrictedSharedArrayBuffer | This feature is for a reverse Origin Trial, enabling SharedArrayBuffer for sites as they migrate towards requiring cross-origin isolation for these features. TODO(bbudge): Remove when the deprecation is complete. https://developer.chrome.com/origintrials/#/view_trial/303992974847508481 https://crbug.com/1144104 | ❌ |
| UnrestrictSpellingAndGrammarForTesting | — | ❌ |
| UnthrottleAsyncTouchMoves | — | ❌ |
| UpdatedDeviceMemoryLimitsFor2026 | Fix for https://crbug.com/454354290. | ✅ |
| UrgentMainFrameForInput | When BeginMainFrame() is throttled, whether input-related BeginMainFrame()s are marked urgent, and thus unthtrottled. Enabled on Android, since a field trial showed benefits. | ❌ |
| URLPatternDummyURLCanonicalization | If enabled, URLPattern will use standard defined dummy URL canonicalization to canonicalize URL properties. See https://crbug.com/409350827 | ✅ |
| use-fake-device-for-media-stream | — | ❌ |
| UseAncestorRenderFrameForWorker | — | ✅ |
| UseAndroidOverlayForSecureOnly | Use AndroidOverlay only if required for secure video playback. This requires that |kOverlayFullscreenVideo| is true, else it is ignored. | ❌ |
| UsePersistentCacheForCodeCache | Use PersistentCache on either side of blink.mojom.CodeCacheHost. This feature is dependent on net::HttpCache::IsSplitCacheEnabled() being true. Always use IsPersistentCacheForCodeCacheEnabled() rather than querying this feature directly. | ❌ |
| UserBypassFeedback | — | ❌ |
| UserBypassUI | — | ✅ |
| UserBypassUxSimplification | — | ✅ |
| UserMediaCaptureOnFocus | If enabled, GetUserMedia API will only work when the concerned tab is in focus | ❌ |
| UseSandboxTokenForOriginDerivation | Enable deriving sandboxed frame origins from browser-generated tokens instead of renderer-calculated opaque origins. | ✅ |
| UseSequencedTaskRunnerForMediaService | Use SequencedTaskRunner for MediaService. | ❌ |
| UseSequencedTaskRunnerForMojoVEAProvider | Use SequencedTaskRunner for MojoVideoEncodeAcceleratorProvider. | ❌ |
| UseSettingsAddressEditorInPaymentsRequest | 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. TODO: crbug.com/399071964 - Remove when launched. | ❌ |
| UseSnappyForParkableStrings | Enabling this will cause parkable strings to use Snappy for compression iff kCompressParkableStrings is enabled. | ❌ |
| UseTaskRunnerForMojoAudioDecoderService | 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. | ❌ |
| UseWindowBoundsForPip | 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. | ✅ |
| UseZstdForParkableStrings | Use the zstd compression algorithm for ParkableString compression. | ✅ |
| V8VmFuture | Enables future V8 VM features | ❌ |
| VaapiLowPowerEncoderGen9x | Enable VA-API hardware low power encoder for all codecs on intel Gen9x gpu. | ✅ |
| VaapiOnNvidiaGPUs | 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 committed to helping support hardware acceleration for ARM64 linux devices, so on those devices we should enable this by default. | ❌ |
| VaapiVideoMinResolutionForPerformance | 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 | ✅ |
| ValidateCommitOriginAtCommit | 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. | ❌ |
| ValidateEncryptionPatternSize | Validates that the EncryptionPattern parameters are within the bounds specified by ISO/IEC 23001-7:2016. | ✅ |
| VerifyDidCommitParams | Enables comparing browser and renderer's DidCommitProvisionalLoadParams in RenderFrameHostImpl::VerifyThatBrowserAndRendererCalculatedDidCommitParamsMatch. | ✅ |
| video-blit-color-accuracy | Inform video blitter of video color space. | ✅ |
| VideoDecodeBatching | 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. | ✅ |
| VideoPipDisplaySmoothnessOptimization | 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. | ✅ |
| VideoPipForceTrustedForMediaPlaybackForTesting | Forces video Picture-in-Picture windows to be treated as trusted for media playback. Used for debugging. | ❌ |
| VisualRectMappingApplyLocalVisualViewportTransform | Server-side kill switch for applying the local VisualViewport transform (page scale + visual viewport location) when mapping visual rects into viewport space in LayoutView's slow path (ancestor == nullptr). This keeps results consistent with the GeometryMapper viewport fast path. | ✅ |
| VSyncDecoding | — | ❌ |
| VSyncEncoding | — | ❌ |
| WebAppEnableScopeExtensionsBySite | Controls scope extensions feature in web apps. Enables parsing of "site" entries in "scope_extensions" field in web app manifests. See explainer for more information: https://github.com/WICG/manifest-incubations/blob/gh-pages/scope_extensions-explainer.md | ❌ |
| WebAppEnableScopeExtensionsForIsolatedWebApps | This controls whether scope extensions work for isolated web apps which use same concepts as pwa https://github.com/WICG/manifest-incubations/blob/gh-pages/scope_extensions-explainer.md Note that for Isolated Web Apps it is not possible to capture link navigations without scope extensions. | ✅ |
| WebAppManifestLocalization | Controls parsing and usage of localized fields in web app manifests. See spec for more information: https://www.w3.org/TR/appmanifest/#x_localized-members | ✅ |
| WebAppManifestLockScreen | Controls parsing of the "lock_screen" dictionary field and its "start_url"
entry in web app manifests. See explainer for more information:
https://github.com/WICG/lock-screen/
Note: the lock screen API and OS integration is separately controlled by
the content feature | ❌ |
| WebAppMigrationApi | Enables web apps to be migrated from one manifest id to another. | ❌ |
| WebAppSystemMediaControls | Enables per PWA System Media Controls. Only supported on Windows and macOS. | ❌ |
| WebAssemblyBaseline | Enable WebAssembly baseline compilation (Liftoff). | ✅ |
| WebAssemblyExperimentalSharedEverything | Enables WebAssembly Shared-Everything Threads. | ❌ |
| WebAssemblyLazyCompilation | Enable WebAssembly lazy compilation (JIT on first call). | ✅ |
| WebAssemblyStackSwitching | Enable WebAssembly Core stack switching. https://github.com/WebAssembly/stack-switching | ❌ |
| WebAssemblyTiering | Enable WebAssembly tiering (Liftoff -> TurboFan). | ✅ |
| WebAssemblyTrapHandler | Enable WebAssembly trap handler. | ❌ |
| WebAudioDeferPullStatusUpdate | Use deferred pull status update instead of updating the status directly on audio thread. See https://crbug.com/40249972. | ❌ |
| WebBluetooth | Controls whether the Web Bluetooth API is enabled: https://webbluetoothcg.github.io/web-bluetooth/ | ❌ |
| WebBluetoothCancelConnect | — | ✅ |
| WebBluetoothNewPermissionsBackend | 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. | ❌ |
| WebCodecsDecoderFlushOptimizations | Enables optimizations to flush() and configure() in the WebCodecs' audio and video decoder implementations. Kill-switch to be removed after M145 stable. | ✅ |
| WebCodecsVideoEncoderFrameDrop | A video encoder is allowed to drop a frame in WebCodecs. | ❌ |
| WebContentsDiscard | Enables a discard operation on WebContents to free associated resources. Eliminates the need to destroy the WebContents object to free its resources. | ❌ |
| WebContentsForceDark | Automatically convert light-themed pages to use a Blink-generated dark theme | ❌ |
| WebFontsCacheAwareTimeoutAdaption | The feature is disabled on Android for WebView API issue discussed at https://crbug.com/942440. | ✅ |
| WebIdentityDigitalCredentials | Enables the Digital Credential API. | ✅ |
| WebIdentityDigitalCredentialsCreation | Enables the Digital Credentials Creation API. | ✅ |
| WebLockScreenApi | Enable the web lockscreen API implementation (https://github.com/WICG/lock-screen) in Chrome. | ❌ |
| WebOTP | 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. | ✅ |
| WebOtpBackendAuto | Controls which backend is used to retrieve OTP on Android. When disabled we use User Consent API. | ❌ |
| WebPayments | The JavaScript API for payments on the web. | ✅ |
| webrtc-hw-decoding | Enables HW decode acceleration for WebRTC. | ✅ |
| webrtc-hw-encoding | Enables HW encode acceleration for WebRTC. | ✅ |
| WebRtcAllowDataChannelRecordingInWebrtcInternals | Kill switch for crbug.com/407785197. | ✅ |
| WebRtcAudioNeuralResidualEchoEstimation | — | ❌ |
| WebRtcAudioSinkUseTimestampAligner | — | ❌ |
| WebRTCColorAccuracy | Inform webrtc with correct video color space information whenever possible. | ❌ |
| WebRTCHardwareVideoEncoderFrameDrop | A hardware video encoder is allowed to drop a frame in WebRTC. | ✅ |
| WebRtcHideLocalIpsWithMdns | Causes WebRTC to replace host ICE candidate IP addresses with generated names ending in ".local" and resolve them using mDNS. http://crbug.com/878465 | ✅ |
| WebRtcIgnoreUnspecifiedColorSpace | Causes WebRTC to not set the color space of video frames on the receive side in case it's unspecified. Otherwise we will guess that the color space is BT709. http://crbug.com/1129243 | ❌ |
| WebrtcMediaCapabilitiesParameters | Used to set a few tunable parameters for the WebRTC Media Capabilities implementation. | ✅ |
| WebRtcPqcForDtls | — | ✅ |
| WebRtcUseCaptureBeginTimestamp | — | ✅ |
| WebRtcUseMediaThreadTypes | — | ❌ |
| WebRtcUseMinMaxVEADimensions | Instructs WebRTC to honor the Min/Max Video Encode Accelerator dimensions. | ❌ |
| WebUIBundledCodeCache | Enables build-time generated resource-bundled code caches for WebUI pages. See crbug.com/375509504 for details. | ❌ |
| WebUICodeCache | Enables code caching for scripts used on WebUI pages. | ❌ |
| WebUIInProcessResourceLoadingV2 | 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 | ❌ |
| WebUIJSErrorReportingExtended | 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. | ✅ |
| WebUSB | Controls whether the WebUSB API is enabled: https://wicg.github.io/webusb | ✅ |
| WebUSBTransferSizeLimit | Kill switch for https://crbug.com/338955051. | ✅ |
| WebviewAccelerateSmallCanvases | Enables small accelerated canvases for webview (crbug.com/1004304) | ❌ |
| WebViewAsyncDrawOnly | Trial to disable synchronous draw for synchronous compositor (ie Android WebView). | ✅ |
| WebViewPrefetchHighestPrefetchPriority | Apply | ✅ |
| WebXR | Controls whether the WebXR Device API is enabled. | ✅ |
| WidevinePersistentLicenseSupport | Controls the persistent license support for protected media that uses widevine. | ✅ |
| WorkerThreadRespectTermRequest | WorkerThread termination respects the current thread termination request. | ✅ |
| XrDevice | Indicates that renderer is running on an Android XR (AR/VR) device. Enables certain features which are not needed on other platforms. | ❌ |
| XsurfaceMetricsReporting | — | ❌ |
| YourSavedInfoBrandingInSettings | When enabled, updates the "Autofill and passwords" (or "Passwords and autofill") labels and icons to "Your saved info". | ❌ |
| YourSavedInfoSettingsPage | Defines if the "Your Saved Info" page is eligible to be shown in Chrome settings. | ✅ |
| YourSavedInfoSettingsPageShoppingIntegration | Defines if the shipping and order data is included in the "Your Saved Info" settings page. | ❌ |
Enable with --enable-blink-features, disable with --disable-blink-features:
| Name | Description | Enabled by default |
|---|---|---|
| AboutBlankPageRespectsDarkModeOnUserAction | This flag changes about:blank to dark in dark mode on user action. | ✅ |
| Accelerated2dCanvas | — | ✅ |
| AcceleratedSmallCanvases | — | ✅ |
| AccessibilityAriaVirtualContent | — | ❌ |
| AccessibilityCustomElementRoleNone | — | ❌ |
| AccessibilityExposeDisplayNone | — | ❌ |
| AccessibilityImplicitActions | If the author did not define aria-actions, surface button and link children inside option and menuitem elements as implicit actions. | ❌ |
| AccessibilityMinRoleTabbable | Use a minimum role of group on elements that are keyboard-focusable. See https://w3c.github.io/html-aam/#minimum-role. | ❌ |
| AccessibilityOSLevelBoldText | — | ❌ |
| AccessibilityProhibitedNames | Enforce no accessible name on objects that have a role where names are prohibited (listed in https://w3c.github.io/aria/#namefromprohibited): log a friendly error in the developer console, and trigger a DCHECK(). The incorrect markup situation will be repaired, and the name will be exposed as a description instead. TODO(crbug.com/350528330, https://github.com/web-platform-tests/interop-accessibility/issues/133, https://github.com/w3c/accname/issues/240, https://github.com/w3c/accname/issues/241): If community feedback is positive, and WPT + accname testable statements are updated to allow this, then add status: test. | ❌ |
| AccessibilitySerializationSizeMetrics | — | ❌ |
| AccessibilityUseAXPositionForDocumentMarkers | — | ❌ |
| AccessKeyLabel | https://chromestatus.com/feature/5113389252739072 https://issues.chromium.org/issues/41119923 | ❌ |
| AddressSpace | — | ❌ |
| AdInterestGroupAPI | Interest Group JS API/runtimeflag. | ✅ |
| AdjustDOMOffsetToLayoutOffsetForSecureText | Fix for crbug.com/403358869 | ✅ |
| AdjustEndOfNextParagraphIfMovedParagraphIsUpdated | Adjust the end of the next paragraph if the end position for the paragraph is updated while moving the paragraph. See https://crbug.com/329121649 | ✅ |
| AdTagging | — | ❌ |
| AIClassifierAPI | — | ❌ |
| AIPageContentAnchoredFixedOffscreenNonActionability | Strip actionability from content that is positioned offscreen via position:fixed and cannot be reached by scrolling. | ✅ |
| AIPageContentAnchoredNonFixedOffscreenNonActionability | Strip actionability from content that is positioned offscreen via absolute/relative/static positioning and cannot be reached by scrolling. | ✅ |
| AIPageContentBuildOnLoadForTesting | Whether to automatically build an APC content_extraction tree on load. | ❌ |
| AIPageContentCheckGeometry | Whether to enforce geometry invariants in AIPageContentAgent. Only supported for DCHECK-enabled builds. | ❌ |
| AIPageContentConvertNodeTextToUtf8 | Ensures that text content extracted from DOM nodes are valid UTF-8 Before providing them to consumers of AIPageContent. | ✅ |
| AIPageContentElementCSSRedaction | When enabled, redact elements with --webkit-text-security. | ✅ |
| AIPageContentIncludeSVGSubtree | — | ✅ |
| AIPageContentOuterBoxMapToAncestorSpace | Use MapToVisualRectInAncestorSpace for outer bounding boxes, for math consistent with visual bounding boxes. | ✅ |
| AIPageContentPaidContentAnnotation | — | ✅ |
| AIPageContentTrackedElementsIframe | When enabled, iframe element coordinates will be tracked using the Element::SetTrackedElementSubRect() method. | ❌ |
| AIPageContentTrackedElementsPassword | When enabled, native or heuristics password element coordinates will be tracked using the Element::SetTrackedElementSubRect() method. | ❌ |
| AIPageContentVisualViewportClamp | Clamp AIPageContent visible bounding boxes to the local-root viewport after visual-viewport mapping to normalize viewport-relative geometry. | ✅ |
| AIPromptAPI | — | ❌ |
| AIPromptAPIForExtension | Extension access to "AIPromptAPI". | ❌ |
| AIPromptAPIForWorkers | — | ❌ |
| AIPromptAPILegacyIdentifiers | Gates access to legacy aliases of renamed "AIPromptAPI" identifiers. TODO(crbug.com/498228550): Remove after extension context usage drops. | ❌ |
| AIPromptAPILegacyParams | Gates access to legacy sampling parameter surfaces for "AIPromptAPI". Enabled in extension contexts, and for API enhancement experiments. | ❌ |
| AIPromptAPIMultimodalInput | — | ❌ |
| AIPromptAPIParams | Gates access to inference parameter enhancements for "AIPromptAPI". This feature alone does not expose any "AIPromptAPI" feature access. | ❌ |
| AIPromptAPIStructuredOutput | Gates access to the responseConstraint enhancement for "AIPromptAPI". This feature alone does not expose any "AIPromptAPI" feature access. | ✅ |
| AIPromptAPIToolUse | Gates access to the tool use (function calling) enhancement for "AIPromptAPI". This feature alone does not expose any "AIPromptAPI" feature access. | ❌ |
| AIProofreadingAPI | — | ❌ |
| AIRewriterAPI | — | ❌ |
| AIRewriterAPIForWorkers | — | ❌ |
| AISummarizationAPI | — | ❌ |
| AISummarizationAPIForWorkers | — | ❌ |
| AISummarizationPerformancePreference | — | ❌ |
| AIWriterAPI | — | ❌ |
| AIWriterAPIForWorkers | — | ❌ |
| AlignZoomToCenter | — | ✅ |
| AllImagesPaintedSentToElementTiming | — | ❌ |
| AllowContentInitiatedDataUrlNavigations | — | ❌ |
| AllowPreloadingWithCSPMetaTag | — | ❌ |
| AllowSameSiteNoneCookiesInSandbox | — | ❌ |
| AllowSkippingEditingBoundaryToMergeEnd | https://crbug.com/40681200 | ✅ |
| AllowSvgUseToReferenceExternalDocumentRoot | — | ✅ |
| AllowSyntheticTimingForCanvasCapture | — | ❌ |
| AllowURNsInIframes | — | ❌ |
| AncestorOriginsStoredOnDocument | Instead of creating a new DOMStringList on every access to location.ancestorOrigins, return the ancestor origins list stored on Document. This was added in M147 and can be removed after M149. https://issues.chromium.org/issues/483610021 | ✅ |
| AnchorFocusRingFix | This is a bug fix for rendering a missing focus ring on <a> elements. Shipping in M147, safe to remove in M150. | ✅ |
| AnchorPositionAdjustmentWithoutOverflow | Kill switch for https://crbug.com/415834974 which changes anchor positioning adjustments to occur even in cases where there is no scrollable overflow. | ✅ |
| AndroidDownloadableFontsMatching | — | ❌ |
| AnimationProgressAPI | https://chromestatus.com/feature/5083257285378048 | ✅ |
| AnimationTrigger | https://drafts.csswg.org/web-animations-2/#triggers | ✅ |
| AnimationWorklet | — | ❌ |
| AnonymousIframe | — | ✅ |
| AOMAriaRelationshipProperties | — | ✅ |
| AOMAriaRelationshipPropertiesAriaOwns | — | ❌ |
| AppearanceBase | appearance:base for in-page form controls. https://drafts.csswg.org/css-forms-1/ https://issues.chromium.org/issues/450139531 https://chromestatus.com/feature/5104958101913600 | ❌ |
| ApproximateGeolocationPermission | — | ❌ |
| ApproximateGeolocationPermissionAccuracyMode | Gates the returned accuracyMode parameter upon permissions.query({name: "geolocation"}) | ❌ |
| ApproximateGeolocationPermissionAPI | Gates the new permission "geolocation-approximate". | ❌ |
| ApproximateGeolocationWebVisibleAPI | — | ❌ |
| AppTitle | — | ❌ |
| AriaActions | — | ❌ |
| AriaNotify | — | ❌ |
| AriaNotifyV2 | — | ❌ |
| AriaRowColIndexText | — | ✅ |
| AttributionReporting | — | ✅ |
| AudioContextAsyncStateTransitions | The transition to "running" after construction happens asynchronously. Same for the transition to "suspended" after suspend() is called. https://webaudio.github.io/web-audio-api/#AudioContext-constructors | ❌ |
| AudioContextPlaybackStats | AudioContext.playbackStats interface. | ✅ |
| AudioContextPlayoutStats | AudioContext.playoutStats interface. https://chromestatus.com/feature/5172818344148992 | ❌ |
| AudioContextSetSinkId | — | ✅ |
| AudioOutputDevices | — | ❌ |
| AudioVideoTracks | — | ❌ |
| AuthorSpecifiedLayoutScrollSnapBehavior | https://drafts.csswg.org/css-scroll-snap | ✅ |
| AutoDarkMode | — | ❌ |
| AutoDarkModeSkipImages | When enabled, the dark mode filter (Auto Dark / force-dark) skips
applying dark mode to images entirely; all images are kept untouched
as if they are in light mode.
P.N. | ❌ |
| Autofill | — | ❌ |
| AutofillEvent | — | ❌ |
| AutomationControlled | — | ❌ |
| AutoPictureInPictureVideoHeuristics | — | ❌ |
| AvoidMergingStyledSpanWithSiblings | Fix for https://crbug.com/471876082 | ✅ |
| AvoidNormalizingVisiblePositionsWhenStartEqualsEnd | If the start and end positions are the same in MoveParagraph, there is no need to collapse the whitespace between them. https://crbug.com/406053617 | ✅ |
| BackfaceVisibilityInterop | When enabled, enforces new interoperable semantics for 3D transforms. See crbug.com/1008483. | ❌ |
| BackForwardCache | — | ❌ |
| BackForwardCacheExperimentHTTPHeader | — | ❌ |
| BackForwardCacheNotRestoredReasons | — | ✅ |
| BackForwardCacheRestorationPerformanceEntry | — | ❌ |
| BackForwardCacheUpdateNotRestoredReasonsName | — | ✅ |
| BackgroundClipTextDecoration | — | ✅ |
| BackgroundFetch | — | ✅ |
| BackgroundPageFreezeOptOut | A developer opt-out for background page freezing. | ❌ |
| BarcodeDetector | — | ❌ |
| BaseAppearanceInlineSizing | Removes special layout code from customizable select which was preventing it from growing in the inline direction. | ✅ |
| BasicShapeCornerRadius | closest-corner/farthest-corner in circle()/ellipse(). crbug.com/361617757 | ❌ |
| BidiCaretAffinity | — | ❌ |
| BlinkExtensionChromeOS | — | ❌ |
| BlinkExtensionChromeOSIsolatedWebAppSetShape | — | ❌ |
| BlinkExtensionChromeOSKiosk | — | ❌ |
| BlinkExtensionWebView | — | ❌ |
| BlinkExtensionWebViewMediaIntegrity | — | ❌ |
| BlinkGeometryMapperViewportFastPath | Whether MapToVisualRectInAncestorSpace() with a null ancestor can use the geometry mapper fast path. | ✅ |
| BlinkLifecycleScriptForbidden | — | ❌ |
| BlinkRuntimeCallStats | — | ❌ |
| BlobBytes | https://chromestatus.com/feature/4830298126417920 | ✅ |
| BlockingFocusWithoutUserActivation | — | ❌ |
| BlockSelectPopupUnfocusedWindow | Prevents the popup document for the select element from being opened if the corresponding OS window is not focused. Enabled in M147, can be removed in M150. | ✅ |
| BoundaryEventDispatchTracksNodeRemoval | https://crbug.com/415304289: Mouse and Pointer boundary event dispatch (i.e. dispatch of enter, leave, over, out events) tracks DOM node removal to fix event pairing on ancestor nodes. | ✅ |
| BrowserInitiatedAutomaticPictureInPicture | — | ❌ |
| BrowserVerifiedUserActivationKeyboard | — | ❌ |
| BrowserVerifiedUserActivationMouse | — | ❌ |
| BufferedBytesConsumerLimitSize | — | ✅ |
| BypassPepcSecurityForTesting | Bypasses the enforcement of the Page Embedded Permission Control security checks. This flag is disabled by default and should only be enabled in automated tests in order to allow them to avoid needing to wait until the PEPC is validated and also to use JS-initiated clicks. | ❌ |
| CacheControlRFC7234Parsing | Enables RFC 7234-compliant Cache-Control header parsing, removing RFC 2616 separators that are not valid in RFC 7234. https://crbug.com/42050325 | ❌ |
| CacheControlRFC7234ParsingMetrics | Enables metrics collection comparing RFC 7234 vs RFC 2616 Cache-Control parsing. Performs double parsing on every Cache-Control header to measure behavioral differences. Can be disabled as a kill switch if performance issues arise. https://crbug.com/42050325 | ❌ |
| CacheStorageCodeCacheHint | — | ❌ |
| CacheStyleAdjuster | For emergency flag flips in case we discover bad bugs. | ✅ |
| CallExitNodeWithoutLayoutObject | — | ✅ |
| Canvas2dCanvasFilter | — | ❌ |
| Canvas2dLayers | — | ❌ |
| Canvas2dLayersWithOptions | — | ❌ |
| Canvas2dMesh | — | ❌ |
| CanvasDrawElement | https://github.com/WICG/html-in-canvas/blob/main/README.md
Note the API name has changed to | ❌ |
| CanvasFloatingPoint | — | ✅ |
| CanvasGlobalHDRHeadroom | Canvas2D API for specifying HDR headroom for drawing operations. https:/crbug.com/428575083, https://github.com/whatwg/html/issues/11165 | ❌ |
| CanvasGradientCSSColor4 | https://crbug.com/394052224 | ❌ |
| CanvasHDR | — | ❌ |
| CanvasTextMetricsPreciseBounds | https://crbug.com/479240778 | ❌ |
| CanvasToneMapping | Canvas2D API for specifying HDR tone mapping behavior. https:/crbug.com/448552449, https://github.com/whatwg/html/issues/11424 | ❌ |
| CanvasUsesArcPaintOp | Kill switch for https://crbug.com/330506337. | ✅ |
| CapabilityDelegationDisplayCaptureRequest | — | ❌ |
| CaptureController | — | ❌ |
| CapturedMouseEvents | TODO(crbug.com/1444712): Before enabling that flag by default, make sure MouseCursorOverlayController does not transmit mouse events to a CaptureController that don't have any capturedmousechange listener attached to it. See https://github.com/screen-share/mouse-events/issues/14 | ❌ |
| CapturedSurfaceControl | — | ❌ |
| CapturedSurfaceResolution | — | ❌ |
| CaptureHandle | — | ❌ |
| CaretWithTextAffinityUpstream | Changes the caret's affinity to upstream, preventing spaces from appearing in the previous line when typing at the start of a wrapped line. See https://crbug.com/40677155 | ✅ |
| CCTNewRFMPushBehavior | Kill switch for changes to RenderFrameMetadataObserverImpl in connection with Engagement Signals. See https://crrev.com/c/4544201 and https://crbug.com/1458640. | ❌ |
| CheckableInputTypeLayoutInline | — | ✅ |
| CheckForCanonicalPositionInIdleSpellCheck | If focus is not at canonical position then spellcheck should be deactivated. crbug.com/396485529 | ✅ |
| CheckVisibilityExtraProperties | — | ✅ |
| ClampWordBoundaryToContentEditableScope | Clamps word boundary detection to the contenteditable scope when adjacent contenteditable spans have no whitespace between them. See https://crbug.com/40848794. | ✅ |
| ClearCurrentTargetAfterDispatch | Set currentTarget to null after dispatch for EventTarget. This was added in M142 and can be removed after M144. https://issues.chromium.org/issues/346766786 | ✅ |
| ClearFocusWithinOnSubtreeRemoval | Fixes a bug where ancestor elements retain a stale :focus-within state if the focused element's subtree is removed during blur or focusout events. This was added in M147 and can be removed after M149. https://issues.chromium.org/issues/454668198 https://issues.chromium.org/issues/457465869 | ✅ |
| ClearTargetOnlyIfInShadowTree | Determine clearing of target and relatedTarget by checking if the top node is in shadow tree. This was added in M142 and can be removed after M144. https://issues.chromium.org/issues/373655918 https://issues.chromium.org/issues/40253359 | ✅ |
| ClickFocusDoesntPersistStatusBubble | If the link has tabindex, the status bubble should not persist after mouse out. This was added in M146 and can be removed after M148. | ✅ |
| ClipboardEventTargetCanBeFocusedElement | This ensures that clipboard event fires on a target node which is focused in case no visible selection is present. crbug.com/40735783 | ✅ |
| ClipboardEventTargetUsesContainerNode | Uses ComputeContainerNode() instead of AnchorNode() for clipboard event targeting so that kBeforeAnchor/kAfterAnchor selections correctly target the containing parent element rather than the element itself. See https://crbug.com/40684204 | ✅ |
| ClipboardItemWithDOMStringSupport | Support ClipboardItemData of Promise<DOMString> type according to spec https://w3c.github.io/clipboard-apis/#typedefdef-clipboarditemdata | ✅ |
| ClipElementVisibleBoundsInLocalRoot | TODO(crbug.com/440374239): Disabled due to https://crbug.com/440374239. | ❌ |
| ClipPathNestedRasterOptimization | — | ✅ |
| CoalesceSelectionchangeEvent | Avoid queuing a task to fire a selectionchange event when there is already a task scheduled to do that for the target according to the new spec: https://w3c.github.io/selection-api/#scheduling-selectionhange-event | ✅ |
| CoepReflection | — | ❌ |
| CollapseZeroWidthSpaceWhenReuseItem | — | ✅ |
| ColorInputAcceptsCSSColors | Allows <input type=color> to accept any valid CSS color value (named colors, rgb(), hsl(), system colors, etc.) in addition to the legacy 7-character hex format (#rrggbb). https://crbug.com/40226268 This was added in M146 and can be removed after M148. | ✅ |
| ColorSpaceDisplayP3Linear | Enable the display-p3-linear color space in CSS. https://chromestatus.com/feature/5162372125818880 | ✅ |
| ColorSpacePredefinedLinearSpaces | Enable the srgb-linear and display-p3-linear color spaces in PredefinedColorSpace. https://chromestatus.com/feature/5122501071994880 | ❌ |
| ColorSpaceRec2100Linear | Enable the rec2100-linear color space in CSS and PredefinedColorSpace. https://chromestatus.com/feature/5204024772788224 | ❌ |
| CommaSeparatedContainerQueries | @container allowing multiple comma separated container queries. Also introduces the 'conditions' attribute on CSSContainerRule. | ✅ |
| ComposedPathReturnTargetBeingDispatched | Return the current target from composedPath() while dispatching. This was added in M142 and can be removed after M144. https://issues.chromium.org/issues/444932649 https://issues.chromium.org/issues/346766786 | ✅ |
| CompositeBGColorAnimation | — | ✅ |
| CompositeBoxShadowAnimation | — | ❌ |
| CompositeClipPathAnimation | — | ❌ |
| CompositedAnimationsCancelledAsynchronously | — | ✅ |
| CompositedSelectionUpdate | — | ❌ |
| CompositingDecisionAtAnimationPhaseBoundaries | — | ❌ |
| CompositionForegroundMarkers | — | ❌ |
| CompositorEventTrigger | — | ❌ |
| CompositorTimelineTrigger | When enabled, TimelineTriggers[1] will function via cc::TimelineTrigger objects that live on the compositor thread. [1] https://drafts.csswg.org/css-animations-2/#timeline-triggers | ❌ |
| CompressionDictionaryTransport | — | ❌ |
| ComputedAccessibilityInfo | — | ❌ |
| ComputeInlineContentsSafeRetarget | — | ✅ |
| ComputePressure | — | ❌ |
| ConnectionAllowlist | When enabled, providing developers control over the resources loaded into their pages' contexts and the endpoints to which their pages can make requests. Note: To enable this feature, developers MUST include the origin trial token within the HTTP headers. Including the origin trial token via the <meta> tag in the head of any page does NOT enable the feature. See https://wicg.github.io/connection-allowlists/. | ❌ |
| ConsiderSubOrSuperScriptAncestorAlignForCaretSelection | Fix for https://crbug.com/40659076. When enabled, queryCommandState for 'subscript' or 'superscript' with a caret selection will consider ancestor <sub> or <sup> elements, matching the behavior for range selections. | ✅ |
| ContactsManager | — | ❌ |
| ContactsManagerExtraProperties | — | ❌ |
| ContainerNameOnly | — | ✅ |
| ContainerTiming | — | ❌ |
| ContentIndex | — | ❌ |
| ContextMenu | — | ❌ |
| ControlledFrame | Enable support for Controlled Frame, providing the Controlled Frame tag to IWA apps and other contexts. See https://github.com/WICG/controlled-frame/blob/main/README.md for more info. | ✅ |
| ControlledFrameWebRequestSecurityInfo | Enable support for requesting SecurityInfo in WebRequest API for controlled frames. See https://wicg.github.io/controlled-frame/#dictdef-securityinfo for more info. | ✅ |
| CookieStoreAPIMaxAge | Enables setting the | ✅ |
| CookieStoreAPIWhitespaceStripping | Feature flag for stripping \t and space from Cookie names and values. https://crbug.com/437345480 | ✅ |
| CoopRestrictProperties | — | ❌ |
| CorrectTemplateFormParsing | Corrects the handling of <form> elements nested within <template> tags in HTML parsing. See https://crbug.com/352896478 for details. | ❌ |
| CorsRFC1918 | — | ❌ |
| CpuPerformance | CPU Performance API, work in progress. https://chromestatus.com/feature/5189864286978048 https://github.com/explainers-by-googlers/cpu-performance | ❌ |
| CrashReportingStorageAPI | — | ✅ |
| CreateInlineContentsExcludeOutOfFlow | — | ✅ |
| CSPHashesV1 | When enabled, allowlisting script urls and scripts used in eval via hashes will be supported in script-src. This is a no-op if the network::features::kCSPScriptSrcHashesInV1 flag is off, since it controls parsing in the network service. See crbug.com/392657736 for details. | ❌ |
| CSPReportHash | — | ✅ |
| CSSAccentColorKeyword | The AccentColor And AccentColorText CSS system color keywords | ❌ |
| CSSActiveCaptionMapsToCanvas | Maps deprecated ActiveCaption to Canvas instead of CanvasText. https://drafts.csswg.org/css-color-4/#deprecated-system-colors https://crbug.com/41493724 | ✅ |
| CSSAlphaColorFunction | https://drafts.csswg.org/css-color-5/#relative-alpha https://chromestatus.com/feature/5070160203481088 | ❌ |
| CSSAltCounter | Allows using counter() and counters() in alt text (after / in content property). | ✅ |
| CSSAnchorWithTransforms | Let transforms affect anchor() and anchor-size() functions. | ✅ |
| CSSAnimationIterationComposite | https://drafts.csswg.org/web-animations-2/#iteration-composite-operation | ❌ |
| CSSArgumentGrammar | https://drafts.csswg.org/css-values-5/#early-resolution | ❌ |
| CSSAtRuleCounterStyleImageSymbols | Whether <image> values are allowed as counter style <symbol> | ❌ |
| CSSAtRuleCounterStyleSpeakAsDescriptor | https://drafts.csswg.org/css-counter-styles/#counter-style-speak-as | ❌ |
| CSSBackgroundClipBorderArea | — | ❌ |
| CSSBorderShape | https://chromestatus.com/feature/5459864205393920 https://chromestatus.com/feature/5125388091260928 | ✅ |
| CSSCalcSimplificationAndSerialization | Support CSS Values Level 4 calc simplification and serialization as specified in the specs below. https://drafts.csswg.org/css-values-4/#calc-simplification https://drafts.csswg.org/css-values-4/#calc-serialize | ❌ |
| CSSCaretAnimation | https://chromestatus.com/feature/5082469066604544 | ✅ |
| CSSCaretColorWithOptionalSecondValue | Two-value caret-color: <color> [<color>]? https://github.com/w3c/csswg-drafts/issues/13723 | ❌ |
| CSSCaretShape | https://chromestatus.com/feature/6106160780017664 | ✅ |
| CSSCaseSensitiveSelector | Support case-sensitive attribute selector modifier https://drafts.csswg.org/selectors-4/#attribute-case | ❌ |
| CSSChUnitSpecCompliantFallback | In the cases where it is impossible or impractical to determine the measure of the “0” glyph, it must be assumed to be 0.5em wide by 1em tall. Thus, the ch unit falls back to 0.5em in the general case, and to 1em when it would be typeset upright (i.e. writing-mode is vertical-rl or vertical-lr and text-orientation is upright). https://drafts.csswg.org/css-values-4/#ch See crbug.com/416145497 for more details. | ✅ |
| CSSColorTypedOM | — | ❌ |
| CSSContainerProgressNotation | https://drafts.csswg.org/css-values-5/#progress container-progress() | ❌ |
| CSSContainerStyleQueriesRange | https://drafts.csswg.org/css-conditional-5/#typedef-style-range | ✅ |
| CSSContrastColor | https://drafts.csswg.org/css-color-5/#contrast-color | ✅ |
| CSSCornersShorthand | https://drafts.csswg.org/css-borders-4/#corner-shaping | ❌ |
| CSSCounterResetReversed | https://drafts.csswg.org/css-lists-3/#counter-reset https://crbug.com/40760770 | ❌ |
| CSSCrossFade | Unprefixed cross-fade() (in addition to the existing -webkit-cross-fade()). https://drafts.csswg.org/css-images-4/#cross-fade-function | ❌ |
| CSSCustomMedia | — | ❌ |
| CSSDynamicRangeLimit | — | ✅ |
| CSSEnumeratedCustomProperties | Include custom properties in CSSComputedStyleDeclaration::item/length. https://crbug.com/949807 | ✅ |
| CSSFontFamilySerialization | crbug.com/483689942 Serialize font-family names as space-separated idents when possible, per CSSWG resolution. See https://github.com/w3c/csswg-drafts/issues/5846. | ❌ |
| CSSFontSizeAdjust | — | ✅ |
| CSSFunctions | https://drafts.csswg.org/css-mixins-1/#function-rule | ✅ |
| CSSGapDecoration | https://chromestatus.com/feature/5157805733183488 | ✅ |
| CSSGridGapSuppression | https://chromestatus.com/feature/5157805733183488 | ✅ |
| CSSGridLanesLayout | — | ❌ |
| CSSHangingPunctuation | — | ❌ |
| CSSHexAlphaColor | This needs to be kept as a runtime flag as long as we need to forcibly disable it for WebView on Android versions older than P. See https://crrev.com/f311a84728272e30979432e8474089b3db3c67df | ✅ |
| CSSIdentFunction | https://drafts.csswg.org/css-values-5/#ident | ❌ |
| CSSImageAnimation | https://chromestatus.com/feature/5078177326170112 | ❌ |
| CSSImageFunction | image(<color>) functional notation, producing a solid-color image with no natural dimensions. https://drafts.csswg.org/css-images-4/#funcdef-image https://chromestatus.com/feature/5121011285622784 | ❌ |
| CSSInheritFunction | The inherit() function works like var(), except that it grabs the computed value of the specified property from the parent style instead of the current style. https://drafts.csswg.org/css-values-5/#inherit-notation | ❌ |
| CSSKeyframesRuleLength | https://chromestatus.com/feature/6289894144212992 | ✅ |
| CSSLangExtendedRanges | Support for extended language ranges in :lang() https://chromestatus.com/feature/5071058079055872 | ❌ |
| CSSLayoutAPI | — | ❌ |
| CSSLetterAndWordSpacingPercentage | — | ✅ |
| CSSLightDarkImage | light-dark() for image values (background-image, etc.) https://drafts.csswg.org/css-color-5/#light-dark | ❌ |
| CSSLineClamp | — | ❌ |
| CSSLineClampLineBreakingEllipsis | — | ❌ |
| CSSListCounterAccounting | Implements | ❌ |
| CSSLogicalCombinationPseudo | Allows pseudo-element selectors within logical combination pseudo- classes, e.g. :is(div::before). https://crbug.com/444386484 | ❌ |
| CSSMarkerNestedPseudoElement | — | ✅ |
| CSSMediaElementPseudos | Pseudo-classes :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked for media elements. https://drafts.csswg.org/selectors/#resource-pseudos | ❌ |
| CSSMediaProgressNotation | https://drafts.csswg.org/css-values-5/#progress media-progress() | ❌ |
| CSSMixins | — | ❌ |
| CSSNestedPseudoElements | — | ✅ |
| CSSOMGetComputedStylePseudoElementRequiresColon | https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle | ❌ |
| CSSOverscrollBehaviorChain | — | ✅ |
| CSSPaintAPIArguments | — | ❌ |
| CSSParserIgnoreCharsetForURLs | Ignore the stylesheet encoding when parsing URLs, always using UTF-8. See crbug.com/1485525. | ❌ |
| CSSPolygonRounding | Support | ❌ |
| CSSPositionStickyStaticScrollPosition | — | ❌ |
| CSSProgressNotation | https://drafts.csswg.org/css-values-5/#progress progress() | ✅ |
| CSSPseudoColumn | For ::column pseudo-element for fragment styling. https://github.com/flackr/carousel/blob/main/fragmentation/README.md | ✅ |
| CSSPseudoElementBackdrop | — | ❌ |
| CSSPseudoElementInterface | — | ✅ |
| CSSPseudoElementViewTransitions | — | ❌ |
| CSSPseudoHasSlotted | Enables the :has-slotted pseudo-selector. https://chromestatus.com/feature/5134941143433216 | ❌ |
| CSSPseudoScrollButtons | For ::scroll-up-button and ::scroll-down-button pseudo-elements for Carousel. https://github.com/flackr/carousel/tree/main/scroll-button | ✅ |
| CSSPseudoScrollMarkers | For ::scroll-marker and ::scroll-marker-group pseudo-elements for Carousel. https://github.com/flackr/carousel/tree/main/scroll-marker | ✅ |
| CSSRandomFunction | — | ❌ |
| CSSRandomFunctionTypedOM | — | ❌ |
| CSSResizeAuto | Non-standard 'auto' keyword for the CSS resize property. Used for selectively enable resize corner for textarea via UA stylesheet, but unintentionally exposed to author sheets. UA rule is now using -internal-textarea-auto instead. | ✅ |
| CSSResourceIntegrityEnforcement | Kill switch for integrity() enforcement on CSS image and SVG document resources. See also: CSSURLRequestModifiers | ✅ |
| CSSRevertRule | — | ✅ |
| CSSRubyOverhang | — | ❌ |
| CSSSafePrintableInset | — | ✅ |
| CSSScopeifiedParentPseudoClass | The '&' pseudo-class effectively behaves like :where(:scope) when used in @scope rules. | ✅ |
| CSSScopeImport | The "@import scope(...)" syntax. https://github.com/w3c/csswg-drafts/issues/7348 | ❌ |
| CSSScrolledContainerQueries | https://drafts.csswg.org/css-conditional-5/#scrolled | ✅ |
| CSSScrollInitialTarget | https://drafts.csswg.org/css-scroll-snap-2#scroll-initial-target | ✅ |
| CSSScrollMarkerGroupModes | https://github.com/w3c/csswg-drafts/issues/12122 | ❌ |
| CSSScrollMarkerTargetBeforeAfter | https://drafts.csswg.org/css-overflow-5/#active-before-after-scroll-markers :target-before and :target-after pseudo classes for scroll markers. | ✅ |
| CSSScrollSnapChangeEvent | https://drafts.csswg.org/css-scroll-snap-2/#scrollsnapchange | ✅ |
| CSSScrollSnapChangingEvent | https://drafts.csswg.org/css-scroll-snap-2/#scrollsnapchanging | ✅ |
| CSSScrollSnapEventConstructorExposed | https://drafts.csswg.org/css-scroll-snap-2/#snapevent-interface | ❌ |
| CSSScrollSnapEvents | https://drafts.csswg.org/css-scroll-snap-2/#snap-events | ✅ |
| CSSScrollTargetGroup | scroll-target-group property https://drafts.csswg.org/css-overflow-5/#scroll-target-group | ✅ |
| CSSScrollTargetGroupAriaCurrent | scroll-target-group property sets aria-current=true on :target-current html scroll marker. | ❌ |
| CSSShapeEllipseCirclePositionSerialization | — | ✅ |
| CSSShapeOutsidePathAndShapeSupport | path() and shape() basic shapes for shape-outside. https://drafts.csswg.org/css-shapes-1/#basic-shape-functions https://drafts.csswg.org/css-shapes/#shape-outside-property ChromeStatus: https://chromestatus.com/feature/5080980370096128 | ✅ |
| CSSShapeOutsideRectAndXywhSupport | rect() and xywh() basic shapes for shape-outside. https://drafts.csswg.org/css-shapes-1/#basic-shape-functions https://drafts.csswg.org/css-shapes/#shape-outside-property ChromeStatus: https://chromestatus.com/feature/6323071520735232 | ✅ |
| CSSStyleSheetInitBaseURL | https://drafts.csswg.org/cssom-1/#dom-cssstylesheetinit-baseurl | ❌ |
| CSSSupportsAtRuleFunction | — | ✅ |
| CSSSupportsForImportRules | — | ✅ |
| CSSSupportsNamedFeatureFunction | https://chromestatus.com/feature/5153932394102784 | ❌ |
| CSSSystemAccentColor | Allows the CSS "accent-color" property to support the system accent color as the default option. | ❌ |
| CSSTextAlignMatchParent | https://issues.chromium.org/40787216: CSS | ❌ |
| CSSTextDecorationSkipInkAll | https://issues.chromium.org/40675832: CSS | ✅ |
| CSSTextDecorationSkipSpaces | — | ❌ |
| CssTextFit | crbug.com/417306102 | ✅ |
| CssTextFitReshaping | crbug.com/417306102 | ❌ |
| CssTextIndent | crbug.com/434361099 | ✅ |
| CssTextIndentAsPrimitive | — | ✅ |
| CSSTextSpacing | crbug.com/1463890, crbug.com/1463891: CSS | ❌ |
| CSSTextTransformFullSizeKana | https://crbug.com/40928177: Support of | ❌ |
| CSSTextTransformFullWidth | https://issues.chromium.org/41297237: CSS | ❌ |
| CSSTextTransformMultiKeyword | crbug.com/41297237: Support multi-keyword values in CSS | ❌ |
| CSSTimelineScopeAll | Support for the 'all' keyword of the 'timeline-scope' property. https://drafts.csswg.org/scroll-animations-1/#timeline-scope | ❌ |
| CSSTimelineScopeGlobal | Makes timeline names global by default. https://github.com/w3c/csswg-drafts/issues/12581 | ❌ |
| CSSTypedArithmetic | — | ✅ |
| CSSURLRequestModifiers | CSS URL request modifiers: cross-origin(), integrity(), referrer-policy() inside url() functions. https://drafts.csswg.org/css-values-5/#request-url-modifiers | ✅ |
| CSSUserSelectContain | Support for | ❌ |
| CSSUserValidAndUserInvalidForRadio | https://crbug.com/488305665: Support :user-valid/:user-invalid for radio buttons. This lands in M147, and the flag can be removed in M149. https://drafts.csswg.org/selectors-4/#user-valid-pseudo | ✅ |
| CSSVideoDynamicRangeMediaQueries | — | ❌ |
| CSSViewTransitionAutoName | https://chromestatus.com/feature/4850737974345728 | ❌ |
| CSSZoomAnimation | CSSWG resolution to make the | ❌ |
| CustomElementsDisableFormattingFixups | Shipping in M148 (or backported earlier), can be removed in M150. | ✅ |
| CustomizableCombobox | appearance:base for the <datalist> element when it is invoked as a picker from an <input type=text>. https://issues.chromium.org/issues/453705243 https://chromestatus.com/feature/5067156794507264 | ❌ |
| CustomizableSelectMultiplePopup | appearance:base-select for <select multiple size=1> with a picker. | ❌ |
| CustomScrollbarApplyMinimumThumbLength | see crbug.com/341313078 | ✅ |
| Database | https://chromestatus.com/feature/5134293578285056 | ❌ |
| DateTimeInputTypeEarlyAdvanceFix | https://crbug.com/473454959 | ✅ |
| DeclarativeCSSModules | https://crbug.com/448174611 | ❌ |
| DeclarativeCSSModulesStyleTag | https://crbug.com/448174611 | ❌ |
| DecoupleComputedBorderWidthFromStyle | https://chromestatus.com/feature/5133099851317248 | ✅ |
| DecoupleResolvedColumnRuleWidthFromStyle | https://chromestatus.com/feature/5133099851317248 | ✅ |
| DelegatesFocusTextControlInputFix | Killswitch for https://crbug.com/400317114 fix. This lands in M142, and the flag can be removed in M144. | ✅ |
| DeleteTextInContentEditableBeforeRemovingChildren | Delete text from descendant text nodes before removing children of a root editable element to ensure selectionchange event fires. | ✅ |
| DeprecateUnloadOptOut | This allows pages to opt out of the unload deprecation. Enabling this allows unload event handers to be used in the frame regardless of any Permissions-Policy setting. https://crbug.com/1432116 | ❌ |
| DesktopCaptureDisableLocalEchoControl | — | ❌ |
| DesktopPWAsAdditionalWindowingControls | — | ❌ |
| DesktopPWAsAdditionalWindowingControlsOnMove | — | ❌ |
| DeviceAttributes | — | ❌ |
| DeviceOrientationRequestPermission | — | ❌ |
| DevicePosture | — | ✅ |
| DialogCloseWhenOpenRemoved | This feature makes the <dialog> element close properly when its "open" attribute is removed. https://github.com/whatwg/html/issues/5802 and https://github.com/whatwg/html/pull/10124. | ❌ |
| DialogNewFocusBehavior | — | ❌ |
| DigitalGoods | — | ❌ |
| DigitalGoodsV2_1 | — | ❌ |
| DirectSockets | — | ❌ |
| DirectSocketsInServiceWorkers | Experimental support for the Direct Sockets API in Service Workers. https://github.com/WICG/direct-sockets | ❌ |
| DirectSocketsInSharedWorkers | Experimental support for the Direct Sockets API in Shared Workers. https://github.com/WICG/direct-sockets | ❌ |
| DisableAnchorCenterOnAlignJustifyItems | — | ✅ |
| DisableDifferentOriginSubframeDialogSuppression | — | ❌ |
| DisableEllipsisWhenScrolled | Switch from ellipsis to clip when a container is scrolled. This shipped in M146 and the flag can be removed in M148. | ❌ |
| DisableReduceAcceptLanguage | — | ❌ |
| DisableRemoveFormatForPlainTextOnlyEditableDiv | Disables removeFormat command on Plaintext-only content editable div | ✅ |
| DisallowDisconnectedAreaNavigation | Disconnected <area> elements should not trigger navigation. This was added in M146, and can be removed in M148. | ✅ |
| DisallowPickerForReadonlyInputs | For readonly inputs, do not allow access to the picker. This landed in M146 and can be removed in M148. | ✅ |
| DisconnectWebSocketOnBFCache | — | ❌ |
| DispatchHiddenVisibilityTransitions |
| ✅ |
| DispatchSelectionchangeEventPerElement | Dispatch selectionchange event per element according to the new spec: https://w3c.github.io/selection-api/#selectionchange-event | ✅ |
| DisplayContentsFocusable | Allowing elements with display:contents to have focus. See https://crbug.com/1366037 | ❌ |
| DisplayCutoutAPI | — | ❌ |
| DocumentActiveViewTransition | https://chromestatus.com/feature/5067126381215744 | ✅ |
| DocumentCookie | — | ❌ |
| DocumentDomain | — | ❌ |
| DocumentIsolationPolicy | Enables DocumentIsolationPolicy. See https://https://github.com/WICG/document-isolation-policy. | ❌ |
| DocumentOpenIframeUnloadEvents | Fix iframe unload events not firing during document.open() https://crbug.com/40947017 Lands in M144; remove this flag in M146 after the milestone rolls. | ✅ |
| DocumentOpenOriginAliasRemoval | — | ❌ |
| DocumentOpenSandboxInheritanceRemoval | — | ✅ |
| DocumentPatching | https://chromestatus.com/feature/5111042975465472 <template patchfor> etc. | ❌ |
| DocumentPictureInPictureAPI | — | ❌ |
| DocumentPictureInPicturePreferInitialPlacement | Enables | ❌ |
| DocumentPictureInPictureUserActivation | Enables propagating user activation from a document picture-in-picture window up to its opener window and vice versa. | ❌ |
| DocumentPolicyDocumentDomain | Enables the ability to use Document Policy header to control feature DocumentDomain. | ❌ |
| DocumentPolicyExpectNoLinkedResources | Enables the ability to use Document Policy header to control feature ExpectNoLinkedResources. | ✅ |
| DocumentPolicyIncludeJSCallStacksInCrashReports | Enables the ability to use Document Policy header to control feature IncludeJSCallStacksInCrashReports. https://chromestatus.com/feature/4731248572628992 | ✅ |
| DocumentPolicyInDedicatedWorker | Enables Document Policy for DedicatedWorkers. | ❌ |
| DocumentPolicyNegotiation | — | ❌ |
| DocumentPolicyNetworkEfficiencyGuardrails | Enables the ability to use Document Policy header to control feature NetworkEfficiencyGuardrails. https://chromestatus.com/feature/5156240166223872 | ❌ |
| DocumentPolicySyncXHR | Enables the ability to use Document Policy header to control feature SyncXHR. | ❌ |
| DocumentWrite | — | ❌ |
| DOMActivateBubblesInheritance | DOMActivate event inherits bubbles from the underlying event to prevent activation behavior of parent elements when it doesn't bubble. crbug.com/41431966 | ✅ |
| DontLeakShadowTreesInDragEvents | When enabled, retarget the relatedTarget attribute of drag events. This landed partly in M146 and more in M150 and can be removed in M152. | ✅ |
| DragAndDropJSFileObjects | Enables JS-constructed File objects (e.g. new File([bytes], 'photo.jpg')) to carry their blob contents through the drag-and-drop pipeline. When disabled, only the filename is sent as text/plain (legacy behavior). | ❌ |
| EditContextAssignmentAsPerSpec | See https://crbug.com/443612843 | ❌ |
| EditContextHandleTextOrSelectionUpdateDuringComposition | See https://crbug.com/379170477 | ❌ |
| EditingLineMovementWithRubyFix | — | ✅ |
| EditingUseDomPositionApi | — | ❌ |
| ElasticOverscrollUseEventDeltaForAxisSelection | Uses the original event delta to choose the initial elastic overscroll axis. | ✅ |
| ElementCapture | — | ❌ |
| ElementInnerTextHandleFirstLineStyle | — | ✅ |
| ElementInternalsBehaviors | ElementInternals.behaviors allows web authors to attach platform-provided behaviors to custom elements, enabling them to adopt native behaviors without extending native elements. crbug.com/486928684 https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PlatformProvidedBehaviors/explainer.md | ❌ |
| ElementMatchContainer | — | ❌ |
| ElementSpecificReadOnlyConstraintValidation | When enabled, the readonly attribute will prevent constraint validation only in some cases, depending on the element. This was added in M147 and can be removed after M149. https://issues.chromium.org/issues/486228104 | ✅ |
| EmailVerificationProtocol | — | ❌ |
| EmojiMonochromeRendering | crbug.com/420857717 | ✅ |
| EndpointInclusiveCommitStyles | — | ✅ |
| EnforceAnonymityExposure | — | ✅ |
| EnterInOpenShadowRoots | See: crbug.com/40771555 | ✅ |
| EntropyIgnoredForFirstVideoFrameLCP | When enabled, the LCP algorithm ignores image entropy for the first video frame. See crbug.com/434659232. | ❌ |
| EventPseudoTargetProperty |
| ✅ |
| EventTimingInteractionCount | Kill-switch for https://chromestatus.com/feature/5153386492198912 Added in M144, can be removed in M146. | ✅ |
| EventTimingTargetSelector | — | ❌ |
| EventTrigger | https://drafts.csswg.org/web-animations-2/#triggers | ❌ |
| ExperimentalContentSecurityPolicyFeatures | — | ❌ |
| ExperimentalJSProfilerMarkers | — | ❌ |
| ExperimentalMachineLearningNeuralNetwork | — | ❌ |
| ExperimentalPolicies | — | ❌ |
| ExposeCSSFontFeatureValuesRule | — | ✅ |
| ExposeRenderTimeNonTaoDelayedImage | — | ❌ |
| ExtendedShapeCache | — | ✅ |
| ExtendedTextMetrics | — | ❌ |
| ExternalPopupMenuClickEvent | Kill-switch for crbug.com/40434449. Added in M139, and it can be removed in M141. | ✅ |
| EyeDropperAPI | — | ❌ |
| FaceDetector | — | ❌ |
| FastPositionIterator | — | ❌ |
| FedCm | — | ✅ |
| FedCmAutofill | — | ❌ |
| FedCmDelegation | — | ❌ |
| FedCmErrorAttribute | — | ❌ |
| FedCmIdPRegistration | — | ❌ |
| FedCmLightweightMode | — | ❌ |
| FedCmMultipleIdentityProviders | — | ✅ |
| FedCmNavigationInterception | — | ❌ |
| FedCmNonStringToken | — | ✅ |
| FencedFrames | — | ✅ |
| FencedFramesAPIChanges | — | ✅ |
| FencedFramesDefaultMode | — | ❌ |
| FencedFramesLocalUnpartitionedDataAccess | Allows fenced frames to access unpartioned data via Shared Storage in exchange for disabling untrusted network access. This is the Blink counterpart of the base::Feature with the same name. Because local unpartitioned data access requires browser and renderer process coordination, the value of this flag is strictly controlled by the base::Feature variant, and setting this flag does nothing. | ❌ |
| FetchBodyBytes | Add Request.bytes() and Response.bytes() https://chromestatus.com/feature/5239268180754432 | ✅ |
| FetchLaterAPI | The Blink runtime-enabled feature name for the API's IDL. https://chromestatus.com/feature/4654499737632768 | ✅ |
| FetchRetry | The retry ability for Fetch keepalive requests. https://chromestatus.com/feature/5181984581877760 | ❌ |
| FetchUploadStreaming | — | ✅ |
| FileHandling | Also enabled when blink::features::kFileHandlingAPI is overridden on the command line (or via chrome://flags). | ❌ |
| FileHandlingIcons | — | ❌ |
| FileSystem | — | ✅ |
| FileSystemAccess | Shared objects by OPFS and non-OPFS File System Access API. | ❌ |
| FileSystemAccessAPIExperimental | In-development features for the File System Access API. | ❌ |
| FileSystemAccessGetCloudIdentifiers | The FileSystemHandle.getCloudIdentifiers() method (see crbug.com/1443354). | ❌ |
| FileSystemAccessLocal | Non-OPFS File System Access API. | ❌ |
| FileSystemAccessLockingScheme | — | ✅ |
| FileSystemAccessOriginPrivate | OPFS File System Access API. | ✅ |
| FileSystemAccessRevokeReadOnRemove | When enabled, calling remove() on a FileSystemAccessHandle will also update the permission grants for the associated path. Restored after next write to the path. See crbug.com/421690393. | ✅ |
| FileSystemAccessWriteMode | Controls the internal write-only mode for various FileSystemAccess API. This covers mostly content layer and does not expose any write mode to user visible APIs. This flag is part of crbug.com/421690393 and crbug.com/328458680. | ✅ |
| FileSystemObserver | The FileSystemObserver interface for the File System Access API. See https://crbug.com/1019297. | ❌ |
| FileSystemObserverUnobserve | The unobserve function of the FileSystemObserver. See https://crbug.com/321980469. | ❌ |
| FilterableSelect | Adds the filter attribute to the input element, which targets a listbox select element to perform filtering. | ❌ |
| FilterContainerLevelStyles | Fix for https://crbug.com/41153707 | ✅ |
| FilteringPrimitives | Enables the beforefilter event and the option.filtered IDL, which are shared primitives needed by both the FilterableSelect and CustomizableCombobox features. | ❌ |
| FindFirstMisspellingEndWhenNonEditable | — | ✅ |
| FirstLineOnListItem | — | ✅ |
| FirstLineTextMetrics | — | ✅ |
| FirstLineTextTransform | — | ✅ |
| FixHTMLFormControlElementIsReadOnly | When enabled, HTMLFormControlElement::IsReadOnly() returns false for types that don't support readonly. | ✅ |
| FixJustifyQueryCommandValue | Returns alignment value instead of a boolean | ✅ |
| FixLinebreakForPreTag | — | ✅ |
| FixMapElementEmptyNameBug | Fix a bug in the <map> element's caching of the name attribute. This flag was added in M148, and can be removed in M150. | ✅ |
| FixMarkerSuppressionForAppearanceAuto | This fixes the suppression of markers for <details> and list items for appearance:auto. This was added in M146 and can be removed after M148. Note that as-is, this flag triggers crbug.com/408002786. | ❌ |
| FixNextPositionCalculationInInsertList | crbug.com/411739501 | ✅ |
| FixSelectionPaintRangeNullOpt | Guard the kStart / kEnd / kStartAndEnd branches of LayoutSelection::ComputeSelectionStatus against std::nullopt start_offset / end_offset in SelectionPaintRange. See https://crbug.com/489028874 | ✅ |
| FixStrikethroughToggleInEmptyContentEditable | Fix for strikethrough toggle not working in empty contenteditable. See https://crbug.com/427915243 | ✅ |
| FixVisualRectRemoteViewportTransform | Fix LayoutView viewport mapping in the GeometryMapper fast path for OOPIFs. | ✅ |
| Fledge | — | ✅ |
| FledgeAuctionDealSupport | Enables deal support within auctions. | ❌ |
| FledgeBiddingAndAuctionServerAPI | — | ✅ |
| FledgeBiddingAndAuctionServerAPIMultiSeller | — | ✅ |
| FledgeClickiness | — | ❌ |
| FledgeCustomMaxAuctionAdComponents | — | ✅ |
| FledgeDeprecatedRenderURLReplacements | Enables using a 'deprecatedRenderURLReplacements' field within the Protected Audience ad auction config. | ✅ |
| FledgeDirectFromSellerSignalsHeaderAdSlot | — | ✅ |
| FledgeDirectFromSellerSignalsWebBundles | Feature flag to control removal, in case we run into unexpected breakage. TODO(crbug.com/384481095): Remove in a few milestones, along with the implementation code. | ❌ |
| FledgeMultiBid | — | ✅ |
| FledgePrivateModelTraining | Enables the private model training API in Protected Audience. https://github.com/WICG/turtledove/blob/main/PA_private_model_training.md | ❌ |
| FledgeRealTimeReporting | Enables real time reporting API in Protected Audience. https://github.com/WICG/turtledove/blob/main/PA_real_time_monitoring.md | ✅ |
| FledgeSellerNonce | Enables the ability to set seller nonces on the header response and use bidNonce in bids. | ✅ |
| FledgeSellerScriptExecutionMode | Enables having | ❌ |
| FledgeTrustedSignalsKVv1CreativeScanning | — | ❌ |
| FledgeTrustedSignalsKVv2ContextualData | — | ❌ |
| FledgeTrustedSignalsKVv2Support | — | ✅ |
| FlexWrapBalance | — | ❌ |
| Focusgroup | https://open-ui.org/components/scoped-focusgroup.explainer/ | ✅ |
| FocusgroupGrid | 2-D grid navigation functionality of focusgroup is considered out of scope for the initial implementation. crbug.com/445992558 | ❌ |
| FontAccess | — | ❌ |
| FontDataService | — | ❌ |
| FontFallbackForTabSize | — | ✅ |
| FontFamilyPostscriptMatchingCTMigration | — | ❌ |
| FontFamilyStyleMatchingCTMigration | — | ❌ |
| FontFeatureSettingsDescriptor | crbug.com/40398871 | ✅ |
| FontFormatAvar2 | — | ✅ |
| FontLanguageOverride | crbug.com/41170551 | ✅ |
| FontMatchAliasesAsLastResort | — | ✅ |
| FontStyleObliqueZeroDegreeAsNormal | crbug.com/393391746 | ✅ |
| FontVariationSettingsDescriptor | crbug.com/40398871 | ✅ |
| ForcedColors | TODO(crbug.com/1231644): This flag is being kept (even though the feature has shipped) until there are settings to allow users to customize the feature. | ✅ |
| ForceEagerMeasureMemory | — | ❌ |
| ForceReduceMotion | https://github.com/flackr/reduce-motion/blob/main/explainer.md | ❌ |
| FractionalScrollOffsets | — | ❌ |
| FragmentedOofInCb | Generate layout fragments for out-of-flow positioned elements as children of their actual containing block - ALSO when inside block fragmentation, such as multicol. See crbug.com/40267498 | ❌ |
| FreezeFramesOnVisibility | — | ❌ |
| GamepadMultitouch | — | ❌ |
| GamepadRawInputChangeEvent | — | ❌ |
| GamepadWindowEventHandlers | — | ✅ |
| GeolocationElement | Tracking bug for the implementation: https://crbug.com/430204832 | ✅ |
| GeometryMapperSingularTransformFix | A feature flag that controls whether the geometry mapper singular transform fix is enabled. https://issues.chromium.org/issues/441128445 | ✅ |
| GeometryUtils | GeometryUtils mixin. https://drafts.csswg.org/cssom-view/#the-geometryutils-interface | ❌ |
| GeometryUtilsForCSSPseudoElement | GeometryUtils for CSSPseudoElement interface. https://www.w3.org/TR/cssom-view-1/#the-geometryutils-interface | ❌ |
| GetAllScreensMedia | — | ❌ |
| GetComputedStyleOutsideFlatTree | — | ✅ |
| GetDisplayMedia | — | ❌ |
| GetDisplayMediaRequiresUserActivation | — | ❌ |
| GetDisplayMediaWindowAudioCapture | When a Web application calls getDisplayMedia() and asks for audio, allow a hint to be provided as to whether the Web application is interested in audio being among the options offered to the user on window display surfaces. https://www.w3.org/TR/screen-capture/#dom-displaymediastreamoptions-windowaudio | ✅ |
| GetElementsByNameOnlyHTMLElements | To filter only elements in the HTML namespace when calling getElementsByName(). This was added in M141 and can be removed after M143. https://issues.chromium.org/issues/40502558 | ✅ |
| GetUserMediaEchoCancellationModes | — | ✅ |
| GroupEffect | — | ❌ |
| HandleDeletionAtStartAndEndBoundaryContainingHiddenElement | Enables Skipping children for invisible select elements containing non-editable node while calculating end of paragraph. | ✅ |
| HandleDisconnectedSelectionDuringDOMChanges | — | ✅ |
| HandleInvalidMaskImageWithBackdropFilter | Killswitch for https://crbug.com/441547032. | ✅ |
| HandleShadowDOMInSubstringUtil | — | ✅ |
| HandwritingRecognition | — | ❌ |
| HasUAVisualTransition | — | ✅ |
| HeadingOffset | TODO(crbug.com/333628468): Enables the | ❌ |
| HideVideoControlsWhenUnneeded | Kill switch for setting | ✅ |
| HighlightsFromPoint | — | ✅ |
| HitTestBorderRadiusForStackingContext | Fixed https://crbug.com/456164629, so this will be shipped in M150 and can be removed in M152. | ✅ |
| HitTestContainerTransformStateForPreserve3d | Use container_transform_state instead of local_transform_state when computing z-depth for depth ordering in preserve-3d hit testing. Fixes incorrect hit-test results for layers without CSS transforms. https://crbug.com/464173566 | ✅ |
| HrefTranslate | — | ✅ |
| HstsTopLevelNavigationsOnly | — | ❌ |
| HTMLAdoptionAlgorithmNewSteps | Extra steps in HTML Agency Adoption algorithm to remove elements from the formatting list when the internal loop reached the maximum number of iterations. This shipped in M148 and the flag can be removed in M150. | ✅ |
| HTMLCommandActionsV2 | Additional default command/commandfor actions that aren't part of v1 of commands. When this flag is disabled only v1 actions (popover and dialog defaults) will work. | ❌ |
| HTMLCommandElementRemoval | Remove support for the <command> element from the HTML parsing logic. This shipped in M148 and the flag can be removed in M150. https://issues.chromium.org/issues/491158089 NOTE: when this flag is removed, be sure to also remove "command" from third_party/blink/renderer/core/html/html_tag_names.json5. | ✅ |
| HTMLCommandForScrollCommands | Adds support for scroll commands such as 'page-up' and 'page-block-end'. https://github.com/danielsakhapov/declarative-scroll-commands-for-html-explainer | ❌ |
| HTMLElementScrollParent | — | ❌ |
| HTMLImageElementActualNaturalSize | Return a natural width/height of zero from HTMLImageElement.naturalWidth/Height for SVG images that don't have a natural width/height set. | ❌ |
| HTMLInputElementDropWebkitClearButton | Remove support for | ✅ |
| HTMLInterestForInterestButtonPseudo | Adds support for the | ❌ |
| HTMLLinkElementAttributeValueChanges | Prevents the HTMLLinkElement processing model from being invoked when attributes are processed but their value doesn't change. See https://crbug.com/41436016. | ✅ |
| HTMLParserYieldAndDelayOftenForTesting | A flag, just for local testing to make the HTML parser yield more often and take longer to resume. This helps when debugging flaky tests caused by parser yielding heuristics. | ❌ |
| HTMLParserYieldByUserTiming | — | ❌ |
| HTMLPrintingArtifactAnnotations | When enabled, specifies visual affordances for printing such as headers, footers and page numbers, to be PDF annotations. See section 14.8.2.2.1 here for info: https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf | ✅ |
| HTMLProcessingInstruction | Parse processing instructions in HTML. | ❌ |
| ICUCapitalization | — | ❌ |
| IgnoreLetterSpacingInCursiveScripts | — | ✅ |
| ImageDataPixelFormat | — | ✅ |
| ImageDocumentUseLayoutWidth | — | ✅ |
| ImageSrcsetReselection | Srcset images respond to viewport/zoom changes by re-selecting the best candidate, including for x-descriptors. https://crbug.com/41385706 | ✅ |
| ImplicitRootScroller | — | ❌ |
| IncomingCallNotifications | — | ❌ |
| InertElementNonEditable | — | ✅ |
| InfiniteCullRect | If a painting bug no longer reproduces with this feature enabled, then the bug is caused by incorrect cull rects. | ❌ |
| InheritUserModifyWithoutContenteditable | — | ✅ |
| InlineBlockLineNavigation | See crbug.com/40695399 | ✅ |
| InlineScriptCacheHint | — | ❌ |
| InnerHTMLParserFastpathLogFailure | If enabled, and the inner html parser is unable to successfully parse, it will log histograms of why it failed. The logging is non-trivial. | ❌ |
| InputEventDataTransferForInsertCmd | Enable DataTransfer propagation to input events for insertFromPaste, insertFromDrop, and insertReplacementText operations on content-editables. | ✅ |
| InputEventsDeleteNonCollapsedSelection | When enabled, deletion commands like Ctrl+Backspace (deleteWordBackward) with selected text will correctly report deleteContentBackward instead of deleteWordBackward in both beforeinput and input events, conforming to the W3C Input Events spec. | ✅ |
| InputInSelect | The HTML parser inserts a </select> end tag before inserting <input> when parsing inside of a <select> tag. We want to allow <input> inside <select>, but it isn't web compatible enough. This flag allows <input> inside <select> but only if there is another open tag in between the <input> and the <select>, like <select><div><input>. For now, this flag also makes <input> close <select> like it used to when the <input> is put directly within an <option> or <optgroup>. | ❌ |
| InputMultipleFieldsUI | — | ❌ |
| InsertBlockquoteBeforeOuterBlock | Insert a blockquote before a outer block after creating the blockquote when indenting a node whose outer block is a blockquote. See https://crbug.com/327665597 | ✅ |
| InstalledApp | — | ✅ |
| InstallElement | https://chromestatus.com/feature/5152834368700416 | ❌ |
| InstallOnDeviceSpeechRecognition | — | ✅ |
| IntegrityPolicyScript | — | ✅ |
| InterestEventsNonComposed | Fixes a bug in the implementation of | ✅ |
| InterestGroupsInSharedStorageWorklet | — | ✅ |
| IntersectionObserverCompositedAnimationsForceMainFrames | If enabled, BeginMainFrame will always be requested when there are active IntersectionObservers and also active composited animations. | ✅ |
| InvertedColors | — | ❌ |
| InvisibleSVGAnimationThrottling | — | ✅ |
| JavaScriptCompileHintsPerFunctionMagicRuntime | — | ❌ |
| JavaScriptSourcePhaseImports | — | ❌ |
| KeyboardAccessibleTooltip | — | ❌ |
| KeySystemTrackConfigurationEncryptionScheme | Adds | ❌ |
| LabelInteractiveContentCheckBeforeHandler | Checks interactive content using EventPath captured at dispatch start instead of current DOM state. This was added in M145 and can be removed after M147. https://issues.chromium.org/issues/452084024 | ✅ |
| LangAttributeAwareFormControlUI | — | ❌ |
| LanguageDetectionAPI | — | ❌ |
| LanguageDetectionAPIForWorkers | — | ❌ |
| LayoutBoxRectGettersUseFragments | The following LayoutBox functions are implemented using information from physical fragments, rather than computed style, and containing block walking (was needed for percentage padding): ClientLeft(), ClientTop(), ClientWidth(), ClientHeight(), ContentLeft(), ContentTop(), ContentWidth(), ContentHeight(). | ✅ |
| LayoutIgnoreMarginsForSticky | — | ❌ |
| LayoutOOFCollectInlinesFix | — | ✅ |
| LayoutTableCellAlignmentSafe | — | ✅ |
| LazyImageConformantLoadEventTiming | When enabled, brings chromium into compliance with the resolution of: https://github.com/whatwg/html/issues/10671 This flag can be used to easily revert to the old behavior if the new behavior causes breakage; otherwise, it can be removed after M145 reaches stable. | ✅ |
| LazyLoadVideoAndAudio | Enables the loading attribute for video and audio elements, allowing lazy loading similar to images. https://crbug.com/469111735 | ✅ |
| LeftClickToHandleSuggestion | Allow triggering the word suggestion from left click. From crbug.com/433209485 | ❌ |
| LightDismissFromClick | Makes light dismiss for popovers and dialogs use the click event instead of pointerdown and pointerup in order to fix light dismiss bugs for touch inputs. https://issues.chromium.org/issues/408010435 | ❌ |
| ListOwnerMustHaveCSSBox | — | ✅ |
| LocalNetworkAccessNonSecureContextAllowed | Reverse origin trial allowing Local Network Access requests on non-secure contexts (but still requiring a permission grant from the user). | ❌ |
| LocalNetworkAccessPermissionPolicy | — | ❌ |
| LocalNetworkAccessWebRTC | — | ❌ |
| LockedMode | — | ❌ |
| LogicalStartOfLineBlockFallback | When the start-of-line position cannot be determined (e.g., because the caret is in an empty inline element with no layout information), fall back to the start of the enclosing block rather than the start of the entire editable root. See https://crbug.com/41053053. | ✅ |
| LoginElement | — | ❌ |
| LongAnimationFrameSourceCharPosition | Enable sourceCharPosition for the invoke-type resolve-promise https://issues.chromium.org/issues/381529126 | ✅ |
| LongAnimationFrameSourceLineColumn | Enable retrieving sourceLine and sourceColumn in LoAF implementation. https://issues.chromium.org/issues/391417815 | ❌ |
| LongAnimationFrameSourceLineColumnInterface | Add sourceLine and sourceColumn to PerformanceScriptTiming https://issues.chromium.org/issues/391417815 | ❌ |
| LongAnimationFrameStyleDuration | Add styleDuration and layoutDuration to PerformanceLongAnimationFrameTiming and forcedStyleDuration and forcedLayoutDuration to PerformanceScriptTiming | ❌ |
| LongPressLinkSelectText | Long press on a link selects the link text instead of bringing up context menu. Enabled only on Android AuthView. | ❌ |
| LongTaskFromLongAnimationFrame | Use LongAnimationFrameMonitor to emit longtask entries | ❌ |
| MacCharacterFallbackCache | — | ✅ |
| MacDisableCtrlHomeEnd | — | ✅ |
| MachineLearningNeuralNetwork | — | ❌ |
| MacSystemClipboardPermissionCheck | Enables macOS system-level clipboard permission checking using NSPasteboard.accessBehavior API (available on macOS 15.4+). This allows web applications to respect user's clipboard privacy settings in System Settings > Privacy & Security > Clipboard. | ❌ |
| ManagedConfiguration | — | ✅ |
| ManualText | — | ❌ |
| MarginTrim | CSS margin-trim property: https://drafts.csswg.org/css-box-4/#margin-trim | ❌ |
| MaskDeserializationTimeForCrossOriginMessages | — | ✅ |
| MathMLOperatorRTLMirroring | Enables mirroring for stretchy and large MathML operators when the text direction is right to left. | ✅ |
| MathMLSerializationOnCopy | Enables MathML ancestor context preservation during copy-paste serialization. When enabled, copying partial MathML content includes the containing <math> element to preserve semantic context and namespace declarations. | ✅ |
| MathMLSkipMtrTagInAncestorWrapping | Enables skipping <mtr> wrapping during ancestor wrapping in serialization. When enabled duplicate <mtr> wrapping are absent. | ✅ |
| MeasureMemory | — | ✅ |
| MediaCapabilitiesEncodingInfo | — | ❌ |
| MediaCapabilitiesSpatialAudio | — | ❌ |
| MediaCapture | — | ❌ |
| MediaCaptureBackgroundBlur | — | ❌ |
| MediaCaptureCameraControls | — | ❌ |
| MediaCaptureConfigurationChange | — | ❌ |
| MediaCaptureVoiceIsolation | — | ❌ |
| MediaControlsExpandGesture | — | ❌ |
| MediaControlsOverlayPlayButton | — | ❌ |
| MediaElementMutedDefaultState | — | ❌ |
| MediaElementVolumeGreaterThanOne | — | ❌ |
| MediaEngagementBypassAutoplayPolicies | Set to reflect the kMediaEngagementBypassAutoplayPolicies feature. | ❌ |
| MediaLatencyHint | — | ❌ |
| MediaPlaybackWhileNotVisiblePermissionPolicy | — | ❌ |
| MediaQueryNavigationControls | — | ❌ |
| MediaSession | — | ✅ |
| MediaSessionChapterInformation | — | ✅ |
| MediaSourceExperimental | — | ❌ |
| MediaSourceExtensionsForWebCodecs | — | ❌ |
| MediaStreamTrackProcessorStats | — | ❌ |
| MediaStreamTrackTransfer | — | ❌ |
| MediaStreamTrackWebSpeech | — | ❌ |
| MemoryConsumerForNGShapeCache | This feature helps to add memory consumer to NGShapeCache, so that the cached shape results would be cleared once exceeding the memory limit. | ❌ |
| MenuElements | — | ❌ |
| MergeFixedLayers | Killswitch M149. | ✅ |
| MergeStickyLayers | Killswitch M149. | ✅ |
| MessagePortCloseEvent | — | ❌ |
| MiddleClickAutoscroll | This is enabled by default on Windows only. The only part that's "experimental" is the support on other platforms. | ❌ |
| MixedContentAutoupgradesUseIsMixedContentRestrictedInFrame | Killswitch for crbug.com/40062462 fix. | ✅ |
| MobileLayoutTheme | — | ❌ |
| ModifyParagraphCrossEditingoundary | — | ✅ |
| ModulePreloadReferrer | ModulePreloadReferrer enables modulepreload to send proper referrer headers as specified in the HTML spec. https://crbug.com/441933555 | ✅ |
| ModulePreloadStyleJson | https://crbug.com/466888680 | ✅ |
| MojoJS | — | ❌ |
| MojoJSTest | MojoJSTest is used exclusively in testing environments, whereas MojoJS may also be used elsewhere. | ❌ |
| MoveEndingSelectionToListChild | Move the selection to the last position in the list item. See https://crbug.com/331841851 | ✅ |
| MulticolColumnWrapping | — | ✅ |
| NavigateEventAddHandlerOnPrecommit | — | ✅ |
| NavigateEventClearOnRestore | — | ✅ |
| NavigateEventDeferCrossDocumentCommit | — | ❌ |
| NavigationEventTiming | — | ❌ |
| NavigationId | — | ❌ |
| NavigatorContentUtils | — | ❌ |
| NetInfoConstantType | — | ❌ |
| NetInfoDownlinkMax | — | ❌ |
| NewHTMLSettingMethods | https://chromestatus.com/feature/5054329641893888 streamHTML, appendHTML, etc. | ❌ |
| NoExtendSelectionToUserSelectNoneOutOfFlow | Fix for https://crbug.com/482862753 | ✅ |
| NoFontAntialiasing | This turns off all font antialiasing for tests unless it is explicitly required and enabled using the "--enable-font-antialiasing" flag like in the case of "virtual/text-antialias/" virtual test suite. crbug.com/339041663 | ❌ |
| NoIdleEncodingForWebTests | — | ❌ |
| NonEmptyBlockquotesOnOutdenting | Doesn't insert empty blockquotes on outdenting a blockquote. See https://crbug.com/323960902 | ✅ |
| NonEmptyVisibleTextSelectionForTextFragment | — | ✅ |
| NonStandardAppearanceValueSliderVertical | TODO(crbug.com/1426629): This feature enables the deprecated value slider-vertical. Disable this feature to stop parsing or allowing these values. https://drafts.csswg.org/css-ui-4/#appearance-switching | ✅ |
| NormalizeLineEndingsInInsertText | Normalizes CRLF and standalone CR to LF in execCommand("insertText")
for consistent newline handling in contenteditable elements.
See https://crbug.com/41289410 | ✅ |
| NormalizeNbspForPasteAndDrop | Converts mid-word U+00A0 (NBSP) to a regular space on paste and drop. This will be shipped in M148, and it can be removed in M150. See https://issues.chromium.org/issues/444065314. | ✅ |
| NormalizeNbspRichTextOnly | Preserve NBSP in plain-text editing contexts. Only normalize NBSP for paste/drop in rich-text editing contexts. See https://issues.chromium.org/issues/513279004. | ✅ |
| NotificationConstructor | — | ❌ |
| NotificationContentImage | NotificationContentImage is not available in all platforms The Notification Center on Mac OS X does not support content images. | ❌ |
| Notifications | — | ✅ |
| NotificationTriggers | — | ❌ |
| NumberInputFullWidthChars | — | ✅ |
| OffMainThreadCSSPaint | — | ✅ |
| OffscreenCanvasGetContextAttributes | — | ✅ |
| OffsetMappingReuseFullWidthSpaceFix | See crbug.com/512385682 | ✅ |
| OffsetPathTransformUpdateFix | Kill switch for a fix to offset-path transform invalidation for https://crbug.com/463409688. | ✅ |
| OmitBlurEventOnElementRemoval | — | ❌ |
| OnDeviceWebSpeechAvailable | — | ✅ |
| OnDeviceWebSpeechQuality | — | ✅ |
| OpaqueRange | The OpaqueRange interface provides a live AbstractRange subtype for encapsulated content within <textarea> and <input> elements. crbug.com/421421332 | ❌ |
| OpenPopoverInvokerRestrictToSameTreeScope | Restrict popover invoker lookup to the same TreeScope as the element. This will be shipped in M142, and it can be removed in M144. See https://issues.chromium.org/issues/443031270. | ✅ |
| OptionDisablednessCheckAncestors | Makes option elements match :enabled or :disabled based on whether their ancestor select element is disabled. https://github.com/w3c/csswg-drafts/issues/13383 https://issues.chromium.org/issues/490082172 | ✅ |
| OrientationEvent | — | ❌ |
| OriginAPI | — | ✅ |
| OriginIsolationHeader | — | ✅ |
| OriginPolicy | — | ❌ |
| OriginTrialsSampleAPI | Define a sample API for testing integration with the Origin Trials Framework. The sample API is used in both unit and web tests for the Origin Trials Framework. Do not change this flag to stable, as it exists solely to generate code used by the sample API implementation. | ❌ |
| OriginTrialsSampleAPIBrowserReadWrite | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIDependent | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. TODO(yashard): Add tests for this feature. | ❌ |
| OriginTrialsSampleAPIDeprecation | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIExpiryGracePeriod | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIExpiryGracePeriodThirdParty | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIImplied | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIInvalidOS | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPINavigation | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIPersistentExpiryGracePeriod | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIPersistentFeature | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIPersistentInvalidOS | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIPersistentThirdPartyDeprecationFeature | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OriginTrialsSampleAPIThirdParty | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| OutlineDrawAutoStyleZeroWidth | — | ✅ |
| OverlayGlobalRuleRemoval | Improves the performance of the global overlay:none!important UA style rule by replacing the normal UA style rule with other things which result in the same behavior. Added in M147, should be safe to remove in M150. | ✅ |
| OverlayProperty | Enables the CSS overlay property. When this flag is disabled, top layer exit animations will work without the need for using the overlay property. | ✅ |
| OverscrollGestures | https://chromestatus.com/feature/5261280285949952 | ❌ |
| PagePopup | — | ❌ |
| PagePopupCopyPaste | — | ✅ |
| PageRevealEvent | — | ✅ |
| PageSwapEvent | — | ✅ |
| PaintHoldingForIframes | — | ✅ |
| PaintOffsetTranslationForComposited | Enable PaintOffsetTranslation for all composited LayoutObjects. Killswitch M148. | ✅ |
| PaintTimingMixin | — | ✅ |
| PaintUnderInvalidationChecking | — | ❌ |
| Parakeet | PARAKEET ad serving runtime flag/JS API. | ❌ |
| PartialCompletionNotAllowedInMoveParagraphs | — | ✅ |
| PartitionVisitedLinkDatabaseWithSelfLinks | — | ❌ |
| PasswordReveal | This is to add an option to enable the Reveal button on password inputs while waiting ::reveal gets standardized. | ❌ |
| PaymentApp | — | ❌ |
| PaymentLinkDetection | https://chromestatus.com/feature/5198846820352000 | ✅ |
| PaymentMethodChangeEvent | — | ✅ |
| PaymentRequest | PaymentRequest is enabled by default on Android | ❌ |
| PerformanceManagerInstrumentation | — | ❌ |
| PerformanceMarkCustomUserTimingFromSubframe | Sends custom user timing events in subframes to the browser process. crbug.com/467177770 for more details. | ❌ |
| PerformanceMarkFeatureUsage | Enables performance.mark('mark_feature_usage'): crbug.com/1517170 | ❌ |
| PerformanceNavigationTimingConfidence | — | ✅ |
| PeriodicBackgroundSync | — | ✅ |
| PerMethodCanMakePaymentQuota | — | ❌ |
| PermissionsRequestRevoke | — | ❌ |
| PlaceholderVisibility | crbug.com/398955086 | ✅ |
| PNaCl | This is a reverse OT used for a phased deprecation. https://crbug.com/918374 | ❌ |
| PointerEventDeviceId | — | ✅ |
| PointerLockOnAndroid | Flag for enabling the pointer lock API on Android | ✅ |
| PointerRawUpdateOnlyInSecureContext | https://crbug.com/404479704 | ✅ |
| PopoverHintNewBehavior | Simplifies the behavior and stacking interactions of popover=hint and popover=auto. See https://crbug.com/499019927. This shipped in M150 and can be removed in M152. | ✅ |
| PositionOutsideTabSpanCheckSiblingNode | — | ✅ |
| PositionVisibilityIgnoreNonClipAncestors | Kill switch for https://crbug.com/448173938 which changes position visibility to ignore non-clipping ancestors. | ✅ |
| PotentialPermissionsPolicyReporting | — | ✅ |
| PreciseMemoryInfo | — | ❌ |
| PreferDefaultScrollbarStyles | Adds a web setting to disable CSS ScrollbarColor, ScrollbarWidth, and legacy ::-webkit-scrollbar* pseudo-element styling. | ❌ |
| PreferNonCompositedScrolling | Prefer not using composited scrolling. Composited scrolling will still be used if there are other reasons forcing compositing. For consistency, any code calling Settings::GetPreferCompositingToLCDTextEnabled() should ensure that this flag overrides the setting. | ❌ |
| PreferredAudioOutputDevices | — | ❌ |
| PrefersReducedData | — | ❌ |
| PreloadLinkRelDataUrls | Used to allow preloading data: URLs with link rel=preload. https://crbug.com/348442535 | ✅ |
| Prerender2 | Used to allow chrome://flags to turn off prerendering. (Without using the user-facing preloading settings page to turn off other preloading.) See https://crbug.com/1494471. It also has some feature params defined throughout the codebase. | ✅ |
| Prerender2CrossOriginIframes | Used to allow prerender cross-origin iframes with an opt-in response header. https://chromestatus.com/feature/5112398709129216 https://crbug.com/440387014 | ❌ |
| PrerenderActivationByFormSubmission | Used to allow prerender activation by form submission. See https://crbug.com/346555939. | ❌ |
| PrerenderUntilScript | — | ❌ |
| Presentation | — | ✅ |
| PreserveDropEffect | When enabled, preserves dropEffect in drag event set during dragover events. See https://crbug.com/434151262 | ✅ |
| PreventUndoIfNotEditable | When enabled, prevents undo to be applied if the enclosing block is not editable | ✅ |
| PrivateAggregationApiErrorReporting | Controls the aggregate error reporting feature, which allows for contributions to be made conditional on error conditions that can be hit when using the API. This also defers contribution merging and modifies the budgeting flow. https://chromestatus.com/feature/5194896325214208 | ❌ |
| PrivateAggregationApiMaxContributions | Controls whether Private Aggregation's "maxContributions" field is enabled for Shared Storage callers. If disabled, the field will be ignored. https://chromestatus.com/feature/5189366316793856 | ✅ |
| PrivateNetworkAccessNullIpAddress | — | ❌ |
| PrivateStateTokens | — | ✅ |
| PrivateStateTokensAlwaysAllowIssuance | Always allow trust token issuance (so long as the base::Feature is enabled). Used for testing; circumvents a runtime check that, if this RuntimeEnabledFeature is not present, guarantees the origin trial is enabled. | ❌ |
| ProfilerAPI | — | ✅ |
| ProfilerAPIForDedicatedWorker | When enabled, dedicated workers can use profiler API | ❌ |
| ProgrammaticScrollPromise | Promisify programmatic scroll methods in Element and Window. https://crbug.com/41406914 | ✅ |
| ProgressMaxIsPositive | When enabled, setting progress.max enforces a >0 constraint. This will be shipped in M146, and it can be removed in M148. | ❌ |
| PropagateOverscrollBehaviorFromRoot | Propagate overscroll-behavior from the root element rather than the body element. crbug.com/41453796 | ✅ |
| ProtectedOriginTrialsSampleAPI | Protected memory varariant of the sample API for testing integration with the Origin Trials Framework. This is used only in unit tests. Do not change this flag to stable, as it exists solely to generate code used by the sample API implementation. | ❌ |
| ProtectedOriginTrialsSampleAPIDependent | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. TODO(yashard): Add tests for this feature. | ❌ |
| ProtectedOriginTrialsSampleAPIImplied | As above. Do not change this flag to stable, as it exists solely to generate code used by the origin trials sample API implementation. | ❌ |
| PseudoElementsFocusable | Allowing pseudo-elements to have focus. | ✅ |
| PseudoElementsHitTestable | Support hit-testing for ::after, ::before, ::marker (e.g. for CSSPseudoElement). | ✅ |
| PseudoElementsHoverable | Support :hover on ::after, ::before, ::marker. | ❌ |
| PushMessageDataBytes | — | ✅ |
| PushMessaging | — | ✅ |
| PushMessagingSubscriptionChange | — | ❌ |
| QuotaExceededErrorUpdate | ChromeStatus: https://chromestatus.com/feature/6194847180128256 | ✅ |
| QuoteFirstLineStyle | — | ✅ |
| RasterInducingScroll | — | ❌ |
| ReadableStreamBYOBReaderReadMinOption | Enables support for a 'min' option in ReadableStream BYOBReader.read(), allowing callers to specify the minimum number of bytes to be read into the buffer before resolving the read request. https://chromestatus.com/feature/6396991665602560 | ✅ |
| ReadClipboardDataOnClipboardItemGetType | getType() on a ClipboardItem triggers the clipboard read operation, implementing lazy loading for clipboard data. Chrome status entry - https://chromestatus.com/feature/5203433409871872 | ✅ |
| ReadingFlowWithSlots | Enables correct reading-flow ordering when slots are involved. This will be shipped in M148, and it can be removed in M150. See https://issues.chromium.org/issues/452981723. | ✅ |
| RecheckParentDuringNodeVectorInsertion | Shipping in M148, so should be removed around M150. | ✅ |
| RecordSameDocumentPresentationTimeOnce | — | ✅ |
| ReduceAcceptLanguage | If enabled, both Accept-Language HTTP header and JavaScript getter will be reduced. | ❌ |
| ReduceUserAgentMinorVersion | If enabled, the minor version of the User-Agent string will be reduced. This User-Agent Reduction feature has been enabled starting from M101, but we still keep this flag for future phase tests. | ✅ |
| RegionCapture | — | ❌ |
| RelatedWebsitePartitionAPI | — | ❌ |
| RelOpenerBcgDependencyHint | — | ❌ |
| RemotePlayback | — | ✅ |
| RemotePlaybackBackend | — | ❌ |
| RemoveCharsetAutoDetectionForISO2022JP | This feature acts as a kill switch for ISO-2022-JP auto-detection. This will be shipped in M139, and it can be removed in M141. See https://chromestatus.com/feature/6576566521561088. | ✅ |
| RemoveChildrenInReplaceChildren | Optimize ReplaceChildren() to use RemoveChildren() for batch removal instead of looping RemoveChild(). This batches style invalidations improving performance. | ✅ |
| RemoveCollapsedPlaceholderForContentEditable | After paste operation removes the placeholder <br> tag that gets inserted in contenteditable as placeholder for newline | ✅ |
| RemoveDanglingMarkupInTarget | — | ✅ |
| RemoveDataUrlInSvgUse | — | ✅ |
| RemoveFormatFilterBackgroundColor | Fix for removeFormat command incorrectly preserving background-color when removing styles from elements. Prevents background-color from being re-applied to child elements during style removal. See https://crbug.com/41438799 | ✅ |
| RemoveNonAllowlistedCreateEvent | Remove non-allowlisted event interfaces from document.createEvent(). This was added in M148 and can be removed after M150. https://chromestatus.com/feature/5095987863486464 https://issues.chromium.org/issues/41228793 | ✅ |
| RemoveScrollNodeWorkaround | See https://issues.chromium.org/issues/40779139 | ✅ |
| RemoveSelectionCanonicalizationInMoveParagraph | See https://issues.chromium.org/issues/41474791 | ✅ |
| RemoveVisibleSelectionInDOMSelection | See https://issues.chromium.org/issues/41311101 | ❌ |
| RenderBlockingFullFrameRate | See https://github.com/whatwg/html/issues/11070 ChromeStatus: https://chromestatus.com/feature/5207202081800192 | ❌ |
| RenderBlockingStatus | — | ✅ |
| RenderPriorityAttribute | The renderpriority attribute feature. https://github.com/WICG/display-locking/blob/main/explainers/update-rendering.md | ❌ |
| ReplacedNormalFlowStackingInlinePaint | Kill switch for painting non-SVG replaced normal-flow stacking contexts inline with their siblings. | ✅ |
| ReportFirstFrameTimeAsRenderTime | — | ❌ |
| ReportLayoutShiftRectsInCssPixels | — | ✅ |
| RequestIsReloadNavigation | — | ✅ |
| RequestMainFrameAfterFirstVideoFrame | — | ❌ |
| ResolveVarStylesOnCopy | — | ✅ |
| ResourceTimingContentEncoding | — | ✅ |
| ResourceTimingContentType | — | ✅ |
| ResourceTimingInitiator | — | ❌ |
| ResourceTimingUseCORSForBodySizes | — | ❌ |
| RespectOverscrollBehaviorForScrollBubbling | — | ✅ |
| ResponsiveIframes | — | ❌ |
| RestrictGamepadAccess | — | ❌ |
| RestrictOwnAudio | — | ✅ |
| RootScrollbarFollowsBrowserTheme | If enabled, makes the root scrollbars' foreground elements follow the browser | ❌ |
| RouteMatching | Route matching, @route CSS rule, script type="routemap". https://chromestatus.com/feature/4771962874363904 | ❌ |
| RtcAlwaysNegotiateDataChannels | — | ✅ |
| RtcAudioJitterBufferMaxPackets | — | ❌ |
| RTCDataChannelPriority | — | ❌ |
| RTCDiagnosticLogging | — | ❌ |
| RTCEncodedFrameAudioLevel | — | ✅ |
| RTCEncodedFrameSetMetadata | — | ❌ |
| RTCEncodedFrameTimestamps | — | ✅ |
| RTCEncodedVideoFrameAdditionalMetadata | — | ❌ |
| RTCJitterBufferTarget | Enables the use of jitterBufferTarget attribute in WebRTC. Spec: https://w3c.github.io/webrtc-extensions/#dom-rtcrtpreceiver-jitterbuffertarget | ✅ |
| RTCLegacyCallbackBasedGetStats | Legacy callback-based getStats() has limited availability unless this Deprecation Trial is enabled. TODO(https://crbug.com/822696): Remove when origin trial ends. | ❌ |
| RTCRtpEncodingParametersCodec | Enables the use of |RTCRtpEncodingParameters.codec| | ✅ |
| RTCRtpScaleResolutionDownTo | — | ✅ |
| RTCRtpScriptTransform | — | ✅ |
| RTCRtpTransport | — | ❌ |
| RTCStatsRelativePacketArrivalDelay | — | ❌ |
| RTCSvcScalabilityMode | Enables the use of SVC scalability mode in WebRTC. Spec: https://w3c.github.io/webrtc-svc/ | ✅ |
| RunMicrotaskBeforeXmlScript | Runs a microtask checkpoint before prepare script in XML Parser. This was added in M148 and can be removed after M150. https://issues.chromium.org/issues/439639184 | ✅ |
| RunSnapshotPostLayoutStateSteps | HTML event loop invoking 'Run snapshot post-layout state steps' from the CSSOM View per spec proposal. | ✅ |
| SanitizeIDNEmailFormInput | https://issues.chromium.org/issues/429490608 | ✅ |
| SanitizerAPI | Spec: https://wicg.github.io/sanitizer-api/ Tracking bug: crbug.com/356601280 | ✅ |
| ScopedCustomElementRegistry | https://wicg.github.io/webcomponents/proposals/Scoped-Custom-Element-Registries https://github.com/whatwg/html/issues/10854 Spec PRs: https://github.com/whatwg/html/pull/10869 https://github.com/whatwg/dom/pull/1341 | ✅ |
| ScopedViewTransitions | https://github.com/WICG/view-transitions/blob/main/scoped-transitions.md | ✅ |
| ScoreLineBreakerAbort | — | ✅ |
| ScreenDetailedHdrHeadroom | https://github.com/w3c/window-management/issues/149 | ❌ |
| ScriptBasedOnUnicodeBlock | crbug.com/406917902 | ✅ |
| ScriptedSpeechRecognition | WebSpeech API with both speech recognition and synthesis functionality is not fully enabled on all platforms. | ✅ |
| ScriptedSpeechSynthesis | — | ✅ |
| ScrollAnchorPriorityCandidateSubtree | — | ✅ |
| ScrollAnchorSerializationUseParentForTextNode | Use parent element for text node to compute relative offset when serializing scroll anchor to ensure consistency with ComputeUniqueSelector() | ✅ |
| ScrollAxisLock | https://crbug.com/479472367 | ❌ |
| ScrollbarColor | — | ✅ |
| ScrollbarGutterBugFix | — | ✅ |
| ScrollbarWidth | — | ✅ |
| ScrollIntoViewAlignAuto | https://github.com/w3c/csswg-drafts/issues/9576 | ❌ |
| ScrollIntoViewNearest | — | ✅ |
| ScrollIntoViewRootFrameViewportBugFix | TODO(355460994): Remove after M129. scroll into root frame didn't take scrollbar and borders into account, while this is fixed, to avoid any web compat issues we have this killswitch. | ✅ |
| ScrollPerformanceTiming | — | ❌ |
| ScrollTimelineCurrentTime | Separate flag for crbug.com/1426506 (getCurrentTime API change) which is expected to land after the initial launch of ScrollTimeline. | ❌ |
| ScrollTimelineNamedRangeScroll | https://github.com/w3c/csswg-drafts/issues/9367#issuecomment-1854280461 | ✅ |
| ScrollTopLeftInterop | Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left as per the spec, matching other Web engines. This flag can't be removed until the Android min SDK version is 28 (i.e., 'P') or later. See AWSettings.setScrollTopLeftInteropEnabled and its caller. | ✅ |
| ScrollToTextFragmentUniqueFragments | Only consider unique case-insensitive scroll-to-text fragments. | ✅ |
| SearchTextHighlightPseudo | Allows CSS styling of browser search results. https://issues.chromium.org/issues/339298411 https://chromestatus.com/feature/5195073796177920 | ✅ |
| SecurePaymentConfirmation | SecurePaymentConfirmation has shipped on some platforms, but its availability is controlled by the browser process (via the SecurePaymentConfirmationBrowser feature), as it requires browser support to function. See //content/public/common/content_features.cc The status is set to 'test' here to enable some WPT tests that only require blink-side support to function. | ❌ |
| SecurePaymentConfirmationAvailabilityAPI | SecurePaymentConfirmationAvailabilityAPI needs to be kept as a runtime flag in order to disable the API in WebView. | ✅ |
| SecurePaymentConfirmationCapabilities | — | ✅ |
| SecurePaymentConfirmationDebug | — | ❌ |
| SecurePaymentConfirmationOptOut | — | ✅ |
| SelectAudioOutput | SelectAudioOutput API https://chromestatus.com/feature/5164535504437248 | ❌ |
| SelectedcontentelementAttribute | The selectedcontentelement attribute is for connecting select elements to arbitrary <selectedcontent> elements. https://github.com/openui/open-ui/issues/1063 https://github.com/whatwg/html/issues/12227 | ❌ |
| SelectedcontentMultiple | Makes the <selectedcontent> element work in <select multiple> by cloning the contents for each option which is selected into the <selectedcontent> element. https://issues.chromium.org/issues/483769482 | ❌ |
| SelectedcontentSpec | Aligns the implementation of the <selectedcontent> element with the HTML spec. https://issues.chromium.org/issues/458113204 | ❌ |
| SelectionAndFocusedVisiblePositionMatch | See https://crbug.com/40664519 Disabled due to UI freeze issues, see https://crbug.com/448833953. | ❌ |
| SelectionCollapsedDirectionNone | — | ✅ |
| SelectionFocusAffinity | Fixes selection focus affinity at soft wrap boundaries. When the focus of a range selection is at a soft wrap boundary (a DOM offset shared by two visual lines), this ensures the correct affinity is used based on the selection direction. See https://crbug.com/40980028 | ✅ |
| SelectionHandleWithBottomClipped | Killswitch M141. | ✅ |
| SelectionRemoveRangeNotFoundError | https://issues.chromium.org/issues/40502558 | ✅ |
| SelectionSetBaseAndExtentNonNullNode | https://issues.chromium.org/issues/40502558 | ❌ |
| SelectionToStringSkipsUserSelectNone | Enables skipping user-select: none content in DOMSelection::toString() | ✅ |
| SelectionUpdateOnlyAfterAutoscroll | Conditionally update selection only when autoscroll actually scrolls. This prevents infinite selection updates during autoscroll when the scroll position doesn't change. See https://crbug.com/412578722 | ✅ |
| SelectionUpdateToInitialSelectionInListify | See https://crbug.com/395544401 | ✅ |
| SelectiveClipboardFormatRead | See https://chromestatus.com/feature/5203433409871872 | ❌ |
| SelectivePermissionsIntervention | See https://chromestatus.com/feature/4811835974615040 | ✅ |
| SelectRemoveOverflowHidden | Removes the forced overflow:hidden rules on the select element's InnerElement unless the author specifies text-overflow:ellipsis. May cause text to overlap with the dropdown indicator. https://issues.chromium.org/issues/40805967 | ✅ |
| SendBeaconThrowForBlobWithNonSimpleType | — | ✅ |
| SendEarlyLastBeginMainFrame | — | ✅ |
| SendSlotChangeSignalAfterNodeInserted | SlotChange signal is sent after node insertion is complete, ensuring that slot fallback content is handled correctly. This was added in M145 and can be removed after M147. https://issues.chromium.org/issues/40150299 | ✅ |
| SensorExtraClasses | — | ❌ |
| SeparateDeferModuleScriptTasks | Separate defer and module script execution into individual tasks to comply with HTML spec requirement to "spin the event loop" between each script execution. This prevents long tasks and improves responsiveness. https://crbug.com/40894694 | ✅ |
| Serial | — | ✅ |
| SerializeViewTransitionStateInSPA | — | ❌ |
| SerialPortConnected | — | ❌ |
| ServiceWorkerBackgroundSyncInDedicatedWorker | Support for Service Worker background sync APIs in Dedicated Workers. See https://chromestatus.com/feature/6497653025931264 See https://issues.chromium.org/issues/40364838 | ❌ |
| ServiceWorkerClientLifecycleState | — | ❌ |
| ServiceWorkerInDedicatedWorker | Support for Service Worker APIs in Dedicated Workers. See https://chromestatus.com/feature/6497653025931264 See https://issues.chromium.org/issues/40364838 | ❌ |
| ServiceWorkerStaticRouterTimingInfo | — | ✅ |
| SetDefaultDropEffect | When enabled, sets the default drop effect as according to spec for events like dragOver, dragLeave, etc. See https://crbug.com/434151262 | ✅ |
| SetHTMLCanRunScripts | — | ❌ |
| SetSequentialFocusStartingPoint | — | ❌ |
| ShadowContourFollowsBorder | https://chromestatus.com/feature/5176753681203200 | ✅ |
| ShadowRootAdoptedStyleSheet | https://crbug.com/448174611 | ❌ |
| ShadowRootReferenceTarget | Reference Target allows IDREF attributes to refer inside Shadow DOM. crbug.com/346835896 | ❌ |
| ShadowRootReferenceTargetAriaOwns | If enabled, Reference Target will support aria-owns. https://github.com/WICG/webcomponents/issues/1091 | ❌ |
| SharedArrayBuffer | — | ❌ |
| SharedArrayBufferUnrestrictedAccessAllowed | — | ❌ |
| SharedStorageAPI | — | ✅ |
| SharedStorageWebLocks | — | ✅ |
| SharedWorker | — | ✅ |
| SharedWorkerExtendedLifetime | If enabled, SharedWorker supports extendedLifetime https://github.com/whatwg/html/issues/10997 https://issues.chromium.org/issues/400473072 | ✅ |
| SideRelativeBackgroundPosition | — | ✅ |
| SignatureBasedInlineIntegrity | — | ❌ |
| SingleAxisScrollContainers | — | ❌ |
| SkipAd | — | ✅ |
| SkipCallbacksWhenDevToolsNotOpen | If enabled, only call ResourceLoadObserver callbacks if the DevTools panel is open. | ❌ |
| SkipEventCapture | Improves performance of event dispatching by skipping the capture phase if there are no capture listeners registered on the page. | ✅ |
| SkipNonEditableInAtomicMove | When enabled, cursor movement (arrow keys) will skip over non-editable atomic or empty inline elements within editable content, instead of getting stuck or moving into the non-editable content. | ✅ |
| SkipOofItemForBreakCandidate | — | ✅ |
| SkipParagraphSplitForInlineInsertHTML | Skips paragraph split in insertHTML when the fragment contains only inline content, preventing inline elements from being inserted outside their containing block. See https://crbug.com/41024699. | ✅ |
| SkipPseudoOnlyLinesInLineNavigation | Skip lines that contain only pseudo-element content (like ::before or ::after) when determining valid caret positions for line navigation. Pseudo-elements don't have DOM nodes for caret positioning, so including them caused incorrect selection behavior. See crbug.com/357889508 | ✅ |
| SkipTouchEventFilter | Skips the browser touch event filter, ensuring that events that reach the queue and would otherwise be filtered out will instead be passed onto the renderer compositor process as long as the page hasn't timed out. If skip_filtering_process is browser_and_renderer, also skip the renderer cc touch event filter, ensuring that events will be passed onto the renderer main thread. | ✅ |
| SkipUnselectableContentInSerialization | Fix for crbug.com/41393366 | ✅ |
| SkipUnselectableElementsInParagraphBoundary | See crbug.com/446113738. | ✅ |
| SmallerViewportUnits | — | ✅ |
| SmartCard | — | ❌ |
| SmartZoom | — | ❌ |
| SnapshotScrollTimelinesPostLayout | Snapshot scroll-timelines post layout only. See RunSnapshotPostLayoutStateSteps flag. | ❌ |
| SoftNavigationDetection | Used to enable the code for detecting soft navigations through task attribution. Set to stable as this generates an enabled-by-default base::Feature for a field-trial remote shutoff. Needs to be a runtime feature so that the Soft Navigation Heuristics Origin Trial can depend on it. | ✅ |
| SoftNavigationDetectionIncludeReplaceState | — | ✅ |
| SoftNavigationHeuristics | — | ❌ |
| SortedLayoutShiftSourcesByImpactArea | — | ✅ |
| SourceSpecificMulticastInDirectSockets | Source-specific multicast support in the Direct Sockets API. | ❌ |
| SpatNavUsesCursorInheritance | Whether spatial navigation should use cursor inheritance to exclude nodes where cursor is inherited. Kill-switch that can be remove once the change goes through a stable release. | ✅ |
| SpeakerSelection | — | ❌ |
| SpeculationMeasurement | Exposes speculation measurement data (preloads, prefetches, prerenders) on performance.speculations. | ❌ |
| SpellCheckChunking | — | ❌ |
| SpellCheckCustomDictionaryAPI | API for accessing the Custom Dictionary for spell checking purpose. https://chromestatus.com/feature/6185007701557248 | ❌ |
| SplitTextNotCleanupDummySpans | — | ✅ |
| SplitViewLinkOpen | Mirrors ui::features::kSplitViewLinkOpen. | ❌ |
| SrcsetSelectionMatchesImageSet | Kill switch for change to unify image-set and srcset selection logic. | ✅ |
| StableBlinkFeatures | Used as argument in attribute of stable-release functions/interfaces where a runtime-enabled feature name is required for correct IDL syntax. This is a global flag; do not change its status. | ✅ |
| StackingContextIsNotStacked | Kill switch for falsifying IsStacked() for non-stacked stacking contexts. https://crbug.com/40208685 | ✅ |
| StaleImageNaturalSizeDuringRevalidation | Kill switch for sending ImageChanged() to newly added observers while a stale cached image is revalidating. https://crbug.com/40757070 | ✅ |
| StandardizedBrowserZoom | See https://github.com/w3c/csswg-drafts/issues/9398 | ✅ |
| StandardizedBrowserZoomOptOut | — | ❌ |
| StickyPositionHasOverflowPerAxis | Killswitch M149. | ✅ |
| StickyUserActivationAcrossSameOriginNavigation | Preserves the sticky user activation state after a page navigates to another same-origin page. https://crbug.com/433729626 | ✅ |
| StorageBuckets | — | ✅ |
| StorageBucketsDurability | Gates the | ❌ |
| StorageBucketsLocks | Gates the | ❌ |
| StreamingSanitizer | Performs sanitization while parsing instead of post-processing a parsed fragment. https://crbug.com/498272014 | ❌ |
| StrictMimeTypesForWorkers | — | ❌ |
| StylusHandwriting | — | ❌ |
| SubApps | — | ❌ |
| SuppressPointerStreamAfterDrag | 'pointercancel' and boundary leave ('pointerout' and 'pointerleave')
events would now fire after a mouse drag start, matching the spec's
definition of "pointer stream suppression". See:
https://github.com/w3c/pointerevents/issues/555 | ✅ |
| SvgAnchorElementAttributes | — | ✅ |
| SvgAnchorElementDownloadAttribute | — | ✅ |
| SvgAnimateMotionDiscreteCalcMode | — | ✅ |
| SvgAvoidResettingFilterQualityForTiledPattern | — | ✅ |
| SVGEmbeddedAsReplacedElement | Treat SVG documents in <object>/<embed> as replaced elements https://issues.chromium.org/41302806 | ❌ |
| SvgEnableTextDecorationCssStyling | — | ✅ |
| SvgFallBackToContainerSize | — | ✅ |
| SvgFeImageSkipHiddenContainerViewportDependence | — | ✅ |
| SvgFilterPaintsForHiddenContent | — | ✅ |
| SvgFilterUserSpaceViewportForSvg | — | ✅ |
| SvgIgnoreNegativeEllipseRadii | — | ✅ |
| SvgInlineRootPixelSnappingScaleAdjustment | — | ❌ |
| SvgLengthResolveUnparsedValue | — | ✅ |
| SvgPartitionSVGDocumentResourcesInMemoryCache | — | ✅ |
| SvgPathLengthCssProperty | — | ❌ |
| SvgPointListClearOnParsingFailure | — | ✅ |
| SvgScriptElementAsyncAttribute | — | ✅ |
| SvgSizingWithPreserveAspectRatioNone | — | ❌ |
| SvgSmilClockValueValidation | — | ✅ |
| SvgSupportMediaFragments | — | ❌ |
| SvgTextPathPathAttribute | — | ✅ |
| SvgUseNestedResourceDocuments | — | ✅ |
| SvgUseNestedResourceDocumentsDelayLoad | — | ✅ |
| SynthesizedKeyboardEventsForAccessibilityActions | — | ❌ |
| SyntheticMouseHoverOverInactivePage | — | ❌ |
| SystemDefaultAccentColors | — | ✅ |
| SystemFallbackEmojiVSSupport | This is used for emoji variation selectors support in system fallback matching. This is a workaround solution that helps to avoid incorrect font matching due to lack of cmap format 14 subtable in system emoji fonts on various platforms. This should be eventually removed when the custom emoji font is shipped with Chrome or when system emoji fonts will have cmap format 14 subtable. | ✅ |
| SystemWakeLock | — | ❌ |
| TableBorderColorNoImplicitBorder | Don't trigger table border rendering with only bordercolor attribute. This shipped in M146 and can be removed in M148. | ✅ |
| TableDefaultBorderColorCurrentColor | Remove <table>'s explicit | ✅ |
| TableIsAutoFixedLayout | — | ❌ |
| TabSizeAncestor | — | ✅ |
| TabSizeWithSpacing | — | ✅ |
| TargetInShadowDeterminedBeforeListener | When checking the shadow tree during invoke(), use the invocationTargetInShadowTree saved before calling the listener. This was added in M142 and can be removed after M147. https://issues.chromium.org/issues/41408360 | ✅ |
| TestBlinkFeatureDefault | For unit tests. This is for testing copied_from_base_feature_if. This is set in base/test/test_suite.cc. | ❌ |
| TestFeature | — | ❌ |
| TestFeatureDependent | For unit tests. | ❌ |
| TestFeatureForBrowserProcessReadWriteAccessOriginTrial | This is a feature used for testing what happens when an origin trial feature has browser-process read/write access. It should never be used in production code. | ❌ |
| TestFeatureImplied | For unit tests. | ❌ |
| TestFeatureProtected | For unit tests. | ❌ |
| TestFeatureProtectedDependent | For unit tests. | ❌ |
| TestFeatureProtectedImplied | For unit tests. | ❌ |
| TestFeatureStable | For unit tests. | ✅ |
| TextAreaScrollTopPreview | — | ✅ |
| TextBoxTrimForNestedList | — | ✅ |
| TextDetector | — | ❌ |
| TextEmphasisLetterSpacing | crbug.com/40812040 | ✅ |
| TextEmphasisPositionAuto | crbug.com/368657256 | ❌ |
| TextEmphasisPunctuationExceptions | — | ✅ |
| TextEmphasisWithRuby | crbug.com/442481227 | ✅ |
| TextFragmentAPI | — | ❌ |
| TextFragmentIdentifiers | — | ✅ |
| TextFragmentTapOpensContextMenu | — | ❌ |
| TextMetricsBaselines | — | ✅ |
| TextOverflowClipWithSelection | When enabled, text-overflow ellipsis is clipped when selection focus is inside the element, revealing the full text content. See https://crbug.com/40731275 | ✅ |
| TextOverflowString | https://crbug.com/41492459 | ❌ |
| TextScaleMetaTag | — | ✅ |
| TextSpacingTrimFallback | crbug.com/431660829 | ✅ |
| TextSpacingTrimFallback2 | crbug.com/431660829 | ❌ |
| TextSpacingTrimFallbackChws | crbug.com/440947112 | ✅ |
| ThrottledHistoryAPIThrowsSecurityError | — | ❌ |
| TimelineTrigger | https://drafts.csswg.org/web-animations-2/#triggers | ✅ |
| TimerThrottlingForBackgroundTabs | — | ✅ |
| TimestampBasedCLSTracking | — | ❌ |
| TimeZoneChangeEvent | — | ❌ |
| TopicsAPI | — | ✅ |
| TopicsDocumentAPI | — | ✅ |
| TopicsImgAPI | This feature allows calling the Topics API via an image attribute. | ❌ |
| TouchDragAndContextMenu | 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). This feature is enabled by default in Android, where TouchDragOnShortPress is not shipped due to interactions with the OS that caused issues in the behavior. Please see https://issues.chromium.org/40823294 | ❌ |
| TouchDragAndDrop | This feature enables drag and drop using touch input devices. Replaces the old "--enable-touch-drag-drop" and "--disable-touch-drag-drop" switches. Enabled by default in Android, ChromeOS and Windows. | ❌ |
| TouchDragOnShortPress | This feature makes touch dragging to occur at the short-press gesture, which occurs right before the long-press gesture. | ❌ |
| TouchEventFeatureDetection | Many websites disable mouse support when touch APIs are available. We'd like to enable this always but can't until more websites fix this bug. Chromium sets this conditionally (eg. based on the presence of a touchscreen) in ApplyWebPreferences. "Touch events" themselves are always enabled since they're a feature always supported by Chrome. | ✅ |
| TouchTextEditingRedesign | Set to reflect the kTouchTextEditingRedesign feature. | ❌ |
| TransferableRTCDataChannel | — | ✅ |
| TransitionNavigationQuietSkip | Fixing detection of unhandled promise rejections for view-transitions created a spike in unhandled rejections for cross-document view transitions. The transition on the old document is skipped, but as the old document is only used to capture the snapshot, and a skip is imminent, the promise rejection is not indicative of unexpected behavior. crbug.com/496115780 | ✅ |
| TranslateService | This is conditionally set if the platform supports translation. | ❌ |
| TranslationAPI | — | ❌ |
| TranslationAPIForWorkers | — | ❌ |
| TraverseFlatTreeToHandleSlots | Traverse flat tree to find start and end of paragraph in delete selection to handle slot distribution in details. See https://crbug.com/413595949 | ✅ |
| TreatMhtmlInitialDocumentLoadsAsCrossDocument | When enabled, treats the initial navigation to about:blank#fragment in an MHTML document as a cross-document navigation. Although it appears to be a same-document fragment navigation, MHTML loading replaces the initial empty document with a new committed document that has an opaque origin. This feature acts as a kill switch for https://crbug.com/40580002. | ✅ |
| TrustedTypesCreateParserOptions | When enabled, trusted types can be used to enforce sanitization & script running rules. For example, it can enforce that any HTML setter would go through a sanitizer. See https://github.com/w3c/trusted-types/issues/594 | ❌ |
| TrustedTypesFromLiteral | — | ❌ |
| TrustedTypesHTML | Adapt Trusted Types to its new spec, as part of HTML. Tracking bug: 330516530 | ✅ |
| TrustedTypesUseCodeLike | — | ❌ |
| TwoPhaseViewTransition | — | ❌ |
| UnboundedElement | The Unbounded Element API. See crbug.com/508672616. | ❌ |
| UnboundedElementOnTheOpenWeb | The Unbounded Element API. See crbug.com/508672616. Enable Unbounded Element on the open web without privileged context. | ❌ |
| UnclosedFormControlIsInvalid | — | ❌ |
| UnexposedTaskIds | — | ❌ |
| UnprefixedSpeechRecognition | This is a kill switch for the unprefixed Web Speech API. | ✅ |
| UnrestrictedMeasureUserAgentSpecificMemory | — | ❌ |
| UnrestrictedSharedArrayBuffer | This is a reverse OT used for a phased deprecation, on desktop https://crbug.com/1071424 | ❌ |
| UnrestrictedUsb | Enables using policy-controlled feature "usb-unrestricted" to allow isolated context to access protected USB interface classes and to bypass the USB blocklist. | ✅ |
| UpdateComplexSafaAreaConstraints | If enabled, notify the associated DisplayCutoutHost of changes in complex safe area constraint usage on the page. Only Android may make use of this feature currently. | ❌ |
| UpdateSelectionOnNodeInsertion | — | ❌ |
| UpdateTrivalTextAfterFragmentCreationFromText | Fix for https://crbug.com/436624850 Ensures trivialtext is updated after fragment creation from text by calling UpdateTrivialReplacementText() | ✅ |
| URLPatternCompareComponent | — | ❌ |
| URLPatternGenerate | — | ❌ |
| URLSearchParamsHasAndDeleteMultipleArgs | — | ✅ |
| UseBeginFramePresentationFeedback | — | ❌ |
| UseBoundedSelectionOffsetsInEditContextDeleteOperations | Fix for https://crbug.com/454639396 | ✅ |
| UseLargestPaintedImageForLCPCandidate | — | ✅ |
| UseLowQualityInterpolation | Android currently uses low-quality interpolation, while other platforms default to medium-quality. This flag is for experimenting with changing the value on Android. See: https://crbug.com/374315986. | ❌ |
| UseOriginalDomOffsetsForOffsetMap | This flag uses the original DOM text for input when the password echo is enabled to create the offset_map. | ❌ |
| UsePositionForPointInFlexibleBoxWithSingleChildElement | — | ✅ |
| UsePositionIfIsVisuallyEquivalentCandidate | — | ✅ |
| UserActionPseudosStopAtTopLayer | Stops user action pseudo-classes from propagating out of top layer elements. See https://crbug.com/407769114. This shipped in M149, and can be removed in M151. | ✅ |
| UserDefinedEntryPointTiming | — | ❌ |
| UserMediaElement | — | ❌ |
| UseSelectionInDOMTreeAnchorInExtendSelection | Fix for https://crbug.com/421314614 | ✅ |
| UseShadowHostStyleCheckEditable | — | ✅ |
| UseUndoStepElementDispatchBeforeInput | — | ✅ |
| V8IdleTasks | — | ❌ |
| VideoAutoFullscreen | Whether a video element should automatically play fullscreen unless 'playsinline' is set. | ❌ |
| VideoFrameMetadataBackgroundBlur | — | ❌ |
| VideoFrameMetadataRtpTimestamp | — | ✅ |
| VideoFullscreenOrientationLock | — | ❌ |
| VideoRotateToFullscreen | — | ❌ |
| VideoTrackGenerator | — | ❌ |
| VideoTrackGeneratorInWindow | — | ❌ |
| VideoTrackGeneratorInWorker | — | ❌ |
| ViewportHeightClientHintHeader | — | ✅ |
| ViewportSegments | — | ✅ |
| ViewTransitionAsyncFinished | — | ✅ |
| ViewTransitionDelayUnpauseOnTeardown | — | ✅ |
| ViewTransitionHoistBackdropFilterEffect | — | ✅ |
| ViewTransitionLongCallbackTimeoutForTesting | — | ❌ |
| ViewTransitionUpdateLifecycleBeforeReady | — | ✅ |
| ViewTransitionWaitUntil | — | ✅ |
| VisibilityCollapseColumn | — | ❌ |
| VisualRectMappingFixForExpansion | Guards the removal of legacy visual rect inflation when mapping through nested 2D transforms. Prevents rotated or skewed descendants from being repeatedly expanded while computing visible bounds. | ✅ |
| WakeLock | The "WakeLock" feature was originally implied_by "ScreenWakeLock" and "SystemWakeLock". The former was removed after being promoted to stable, but we need to keep this feature around for code and IDLs that should work with both screen and system wake locks. | ✅ |
| WarnOnContentVisibilityRenderAccess | When enabled, this will issue a warning to the console any time rendering is forced withing content-visibility subtrees (both content-visibility: auto and content-visibility: hidden). | ❌ |
| WebAppInstallation | https://chromestatus.com/feature/5183481574850560 | ❌ |
| WebAppLaunchQueue | This needs to be kept as a runtime flag in order to disable the API in WebView. | ✅ |
| WebAppScopeExtensions | — | ❌ |
| WebAppScopeSystemAccentColor | If enabled, form controls will only render the OS accent color in a web app context for the initial browser profile. | ✅ |
| WebAppTabStrip | — | ❌ |
| WebAppTabStripCustomizations | — | ❌ |
| WebAppTranslations | — | ❌ |
| WebAssemblyCustomDescriptorsV2 | https://chromestatus.com/feature/6024844719947776, take 2 | ❌ |
| WebAssemblyJSPromiseIntegration | WebAssembly JS Promise Integration, https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration | ❌ |
| WebAudioBypassOutputBuffering | https://chromestatus.com/feature/5077691662073856 | ❌ |
| WebAudioBypassOutputBufferingOptOut | https://chromestatus.com/feature/5077691662073856 Allows an Enterprise Policy to override WebAudioBypassOutputBuffering | ❌ |
| WebAudioConfigurableRenderQuantum | https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-renderquantumsize | ❌ |
| WebAuth | WebAuth is disabled on Android versions prior to N (7.0) due to lack of supporting APIs, see runtime_features.cc. | ✅ |
| WebAuthAuthenticatorAttachment | When enabled adds the authenticator attachment used for registration and authentication to the public key credential response. | ❌ |
| WebAuthenticationAmbient | Prototyping https://github.com/w3c/webauthn/issues/2144 | ❌ |
| WebAuthenticationAttestationFormats | https://w3c.github.io/webauthn/#dom-publickeycredentialcreationoptions-attestationformats | ❌ |
| WebAuthenticationCmtgKey | — | ❌ |
| WebAuthenticationImmediateGet | Enables | ❌ |
| WebAuthenticationRemoteDesktopSupport | — | ❌ |
| WebAuthenticationSupplementalPubKeys | https://w3c.github.io/webauthn/#sctn-supplemental-public-keys-extension | ❌ |
| WebBluetooth | WebBluetooth is enabled by default on Android, ChromeOS, iOS, macOS and Windows. | ❌ |
| WebBluetoothGetDevices | — | ❌ |
| WebBluetoothScanning | — | ❌ |
| WebBluetoothWatchAdvertisements | — | ❌ |
| WebCodecsVideoEncoderBuffers | — | ❌ |
| WebCryptoPQC | Adding post-quantum algorithms (ML-DSA, ML-KEM) to WebCrypto. Also adding ChaCha20-Poly1305 while we're at it. https://chromestatus.com/feature/5198951632470016 | ❌ |
| WebFontResizeLCP | — | ❌ |
| WebGLDeveloperExtensions | — | ❌ |
| WebGLDraftExtensions | Draft WebGL extensions are deliberately not enabled by experimental web platform features. | ❌ |
| WebGLDrawingBufferStorage | — | ✅ |
| WebGLOnWebGPU | Switch WebGL to use an experimental implementation where WebGL calls are translated in Blink, via ANGLE, to WebGPU calls. Note that this is not marked as "experimental" because it is not an incremental addition like other experimental features but a code switch, so we don't want to enable it when testing all "experimental Web platform features". | ❌ |
| WebGPUCompatibilityMode | Launch feature flag for WebGPU Compatibility Mode https://chromestatus.com/feature/6436406437871616 | ✅ |
| WebGPUDeveloperFeatures | WebGPU developer features are deliberately not enabled by experimental web platform features. | ❌ |
| WebGPUExperimentalFeatures | WebGPU experimental features are meant for features that would eventually land in the WebGPU spec. | ❌ |
| WebGPUImmediatesFeature | — | ❌ |
| WebGPUMapSyncOnWorkers | Enables GPUBuffer::mapSync for WebGPU. | ❌ |
| WebGPUMultithreadDawnWireOnWorkers | Allows handling of WebGPU related commands from the GPU process to happen on a separate thread. This is a pre-requisite for emulation of serialized asynchronous APIs, i.e. mapSync. | ❌ |
| WebGPUTransientAttachment | — | ✅ |
| WebHID | — | ❌ |
| WebHIDOnServiceWorkers | It is only enabled in extension environment for now. | ❌ |
| WebIdentityDigitalCredentials | — | ✅ |
| WebIdentityDigitalCredentialsCreation | — | ❌ |
| WebIDLBigIntUsesToBigInt | Kill switch for making BigInt handling in WebIDL use ToBigInt. | ✅ |
| WebMCP | — | ❌ |
| WebMCPDeclarativeFileInput | — | ❌ |
| WebMCPFormAssociatedCustomElements | Support for form-associated custom elements in declarative WebMCP tools. | ❌ |
| WebMCPTesting | — | ❌ |
| WebNFC | — | ❌ |
| WebOTP | — | ✅ |
| WebOTPAssertionFeaturePolicy | — | ✅ |
| WebPreferences | https://wicg.github.io/web-preferences-api/ | ❌ |
| WebPrinting | — | ❌ |
| WebRtcSctpSnap | Experimental implementation of https://www.ietf.org/archive/id/draft-hancke-tsvwg-snap-00.html | ❌ |
| WebShare | WebShare is enabled by default on Android (non-WebView), Win, ChromeOS, and Mac. This is done in chrome/renderer/chrome_content_renderer_client.cc to prevent making the API available to Linux and WebView. Ideally we would set the status below to "stable" once we can do so without significant test expectation duplication. | ❌ |
| WebSocketStream | — | ✅ |
| WebSocketStreamStandardBinaryChunkType | — | ❌ |
| WebSpeechRecognitionContext | — | ❌ |
| WebTransportApplicationProtocol | — | ✅ |
| WebTransportCongestionControl | — | ❌ |
| WebTransportCustomCertificates | — | ✅ |
| WebTransportReceiveStream | — | ❌ |
| WebTransportSendGroup | — | ❌ |
| WebTransportStats | Note: enabling this without setting WebTransportCongestionControl to either BBRv1 or BBRv2 will produce poor bandwidth estimates. | ❌ |
| WebUIBundledCodeCacheAsyncFetch | Fetches the WebUI code cache from the resource bundle asynchronously on a worker thread. | ❌ |
| WebUSB | — | ✅ |
| WebUSBOnDedicatedWorkers | — | ✅ |
| WebUSBOnServiceWorkers | It is only enabled in extension environment for now. | ❌ |
| WebVTTRegions | — | ❌ |
| WebXR | — | ✅ |
| WebXREnabledFeatures | — | ✅ |
| WebXRFrameRate | — | ❌ |
| WebXRFrontFacing | — | ❌ |
| WebXRGPUBinding | — | ❌ |
| WebXRHitTestEntityTypes | — | ❌ |
| WebXRImageTracking | — | ❌ |
| WebXRLayers | — | ✅ |
| WebXRLayersCommon | — | ❌ |
| WebXRMeshDetection | — | ❌ |
| WebXRPlaneDetection | — | ✅ |
| WebXRPoseMotionData | — | ❌ |
| WebXRSpecParity | — | ❌ |
| WebXRVisibilityMask | — | ✅ |
| WindowDefaultStatus | If enabled, window.default[Ss]tatus will be supported. This is disabled by default, and is here to allow this behavior to be re-enabled via Finch in case of problems. This flag should be removed by Q1 2023, assuming no problems are encountered. | ❌ |
| WordSkipSpacesPunctuationFix | Fixes an issue where Ctrl+Right Arrow skips punctuation before a newline. | ✅ |
| WordSpacingWhiteSpacePre | — | ✅ |
| XMLNoExternalEntities | Moving to the Rust parser requires deprecation of the niche feature of synchronously including external entities. https://crbug.com/455813733 | ✅ |
| XMLParsingRust | — | ❌ |
| XMLRustForNonXslt | Enables the Rust XML parser for situations where we know no XSLT processing will be required. This covers usage of JS DOMParser API to parse XML, and usage of XMLHttpRequest with its responseXML document. https://crbug.com/466303347 | ❌ |
| XMLSerializerConsistentDefaultNsDeclMatching | — | ❌ |
| XPathShadowDOMSupport | Support XPath evaluation within Shadow DOM. This was added in M146 and can be removed after M148. | ✅ |
| XSLT | A feature flag that controls whether XSLT is supported by the browser. The current default state is XSLT-enabled. Note that there is a Finch trial underway that sets this flag to false for pre-stable channels. See XSLTSpecialTrial below. crbug.com/435623334. | ✅ |
| XSLTSpecialTrial | A feature flag that will be used for a "special trial" of disabling XSLT on pre-stable channels only. This flag does not control the actual enabled state of XSLT. It merely changes the console error that gets emitted if XSLT is disabled. When this flag is true, a "special trial run" message is used. crbug.com/435623334. | ❌ |
Modify with --blink-settings:
| Name | Default | Type |
|---|---|---|
| batterySaverEnabled | false | bool |
| preloadingDisabled | false | bool |
| acceptLanguages | — | String |
| defaultTextEncodingName | — | String |
| passwordEchoEnabledPhysical | false | — |
| passwordEchoEnabledTouch | false | — |
| passwordEchoDurationInSeconds | 1 | double |
| validationMessageTimerMagnification | 50 | int |
| minimumFontSize | 0 | int |
| minimumLogicalFontSize | 0 | int |
| defaultFontSize | 0 | int |
| defaultFixedFontSize | 0 | int |
| editingBehaviorType | array ( 'Mac' => 'mojom::blink::EditingBehavior::kEditingMacBehavior', 'Win' => 'mojom::blink::EditingBehavior::kEditingWindowsBehavior', 'Android' => 'mojom::blink::EditingBehavior::kEditingAndroidBehavior', 'ChromeOS' => 'mojom::blink::EditingBehavior::kEditingChromeOSBehavior', 'default' => 'mojom::blink::EditingBehavior::kEditingUnixBehavior', ) | mojom::EditingBehavior |
| localStorageEnabled | false | — |
| allowUniversalAccessFromFileURLs | true | — |
| allowFileAccessFromFileURLs | true | — |
| supportsMultipleWindows | true | — |
| javaScriptCanAccessClipboard | false | — |
| shouldPrintBackgrounds | false | — |
| shouldClearDocumentBackground | true | — |
| InspectorHighlightAds | false | — |
| HighlightAds | false | — |
| textAreasAreResizable | false | — |
| acceleratedCompositingEnabled | false | — |
| allowScriptsToCloseWindows | false | — |
| allowUnrestrictedWindowFocus | false | — |
| downloadableBinaryFontsEnabled | true | — |
| LCDTextPreference | LCDTextPreference::kStronglyPreferred | LCDTextPreference |
| webGL1Enabled | true | — |
| webGL2Enabled | true | — |
| webGLErrorsToConsoleEnabled | true | — |
| antialiased2dCanvasEnabled | true | — |
| antialiasedClips2dCanvasEnabled | true | — |
| accelerated2dCanvasMSAASampleCount | 0 | int |
| hyperlinkAuditingEnabled | false | — |
| allowRunningOfInsecureContent | true | — |
| pictureInPictureEnabled | true | — |
| webAppScope | — | String |
| isInitialProfile | false | — |
| presentationRequiresUserGesture | true | — |
| embeddedMediaExperienceEnabled | false | — |
| immersiveModeEnabled | false | — |
| immersiveVideoPlaybackEnabled | false | — |
| scrollAnimatorEnabled | true | — |
| mockGestureTapHighlightsEnabled | false | — |
| maxTouchPoints | 0 | int |
| multiTargetTapNotificationEnabled | true | — |
| barrelButtonForDragEnabled | false | — |
| syncXHRInDocumentsEnabled | true | — |
| targetBlankImpliesNoOpenerEnabledWillBeRemoved | true | — |
| ignorePermissionForDeviceChangedEvent | false | — |
| cookieEnabled | true | — |
| navigateOnDragDrop | true | — |
| DOMPasteAllowed | false | — |
| allowCustomScrollbarInMainFrame | true | — |
| placeRTLScrollbarsOnLeftSideInMainFrame | false | — |
| webSecurityEnabled | true | — |
| spatialNavigationEnabled | false | — |
| touchDragDropEnabled | false | — |
| touchDragEndContextMenu | false | — |
| defaultVideoPosterURL | — | String |
| smartInsertDeleteEnabled | false | — |
| selectTrailingWhitespaceEnabled | array ( 'Win' => true, 'default' => false, ) | — |
| selectionIncludesAltImageText | false | — |
| selectionStrategy | SelectionStrategy::kCharacter | SelectionStrategy |
| viewportMetaZeroValuesQuirk | false | — |
| ignoreMainFrameOverflowHiddenQuirk | false | — |
| reportScreenSizeInPhysicalPixelsQuirk | false | — |
| viewportMetaMergeContentQuirk | false | — |
| wideViewportQuirkEnabled | false | — |
| forceZeroLayoutHeight | false | — |
| scaleAllFontsIfNoMetaTextScaleTag | false | — |
| mainFrameClipsContent | true | — |
| useWideViewport | true | — |
| loadWithOverviewMode | true | — |
| shouldReuseGlobalForUnownedMainFrame | false | — |
| touchEditingEnabled | false | — |
| rubberBandingOnCompositorThread | false | — |
| caretBrowsingEnabled | false | — |
| accessibilityFontScaleFactor | 1.0 | double |
| accessibilityFontWeightAdjustment | 0 | int |
| accessibilityTextSizeContrastFactor | 0 | int |
| mediaTypeOverride | "" | String |
| displayModeOverride | blink::mojom::DisplayMode::kUndefined | blink::mojom::DisplayMode |
| windowShowState | ui::mojom::blink::WindowShowState::kDefault | ui::mojom::blink::WindowShowState |
| resizable | true | bool |
| loadsImagesAutomatically | false | — |
| imagesEnabled | true | — |
| imageAnimationPolicy | mojom::blink::ImageAnimationPolicy::kImageAnimationPolicyAllowed | mojom::blink::ImageAnimationPolicy |
| doHtmlPreloadScanning | true | — |
| pluginsEnabled | false | — |
| viewportEnabled | false | — |
| viewportMetaEnabled | false | — |
| shrinksViewportContentToFit | false | — |
| dnsPrefetchingEnabled | false | — |
| scriptEnabled | false | — |
| parserScriptingFlagPolicy | ParserScriptingFlagPolicy::kOnlyIfScriptIsEnabled | ParserScriptingFlagPolicy |
| forceAndroidOverlayScrollbar | false | — |
| NetworkQuietTimeout | 0.5 | double |
| forceMainWorldInitialization | false | — |
| forceTouchEventFeatureDetectionForInspector | false | — |
| fullscreenSupported | true | — |
| v8CacheOptions | mojom::blink::V8CacheOptions::kDefault | mojom::blink::V8CacheOptions |
| availablePointerTypes | ui::POINTER_TYPE_NONE | int |
| availableHoverTypes | ui::HOVER_TYPE_NONE | int |
| primaryPointerType | mojom::blink::PointerType::kPointerNone | blink::mojom::PointerType |
| primaryHoverType | mojom::blink::HoverType::kHoverNone | mojom::blink::HoverType |
| outputDeviceUpdateAbilityType | mojom::blink::OutputDeviceUpdateAbilityType::kFastType | mojom::blink::OutputDeviceUpdateAbilityType |
| accessibilityPasswordValuesEnabled | false | — |
| showContextMenuOnMouseUp | false | — |
| alwaysShowContextMenuOnTouch | true | — |
| disableReadingFromCanvas | false | — |
| strictMixedContentChecking | false | — |
| strictMixedContentCheckingForPlugin | false | — |
| strictPowerfulFeatureRestrictions | false | — |
| strictlyBlockBlockableMixedContent | false | — |
| allowGeolocationOnInsecureOrigins | false | — |
| logDnsPrefetchAndPreconnect | false | — |
| logPreload | false | — |
| smoothScrollForFindEnabled | false | — |
| viewportStyle | mojom::blink::ViewportStyle::kDefault | mojom::blink::ViewportStyle |
| textTrackKindUserPreference | TextTrackKindUserPreference::kDefault | TextTrackKindUserPreference |
| textTrackBackgroundColor | — | String |
| textTrackFontFamily | — | String |
| textTrackFontStyle | — | String |
| textTrackFontVariant | — | String |
| textTrackTextColor | — | String |
| textTrackTextShadow | — | String |
| textTrackTextSize | — | String |
| textTrackWindowColor | — | String |
| textTrackWindowRadius | — | String |
| textTrackMarginPercentage | 0 | double |
| preferHiddenVolumeControls | false | — |
| disallowFetchForDocWrittenScriptsInMainFrameIfEffectively2G | false | — |
| disallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections | true | — |
| disallowFetchForDocWrittenScriptsInMainFrame | false | — |
| mainFrameResizesAreOrientationChanges | false | — |
| hideScrollbars | false | — |
| spellCheckEnabledByDefault | true | — |
| hideDownloadUI | false | — |
| presentationReceiver | false | — |
| mediaControlsEnabled | true | — |
| doNotUpdateSelectionOnMutatingSelectionRange | false | — |
| autoplayPolicy | AutoplayPolicy::Type::kNoUserGestureRequired | AutoplayPolicy::Type |
| requireTransientActivationForGetDisplayMedia | true | — |
| requireTransientActivationForShowFileOrDirectoryPicker | true | — |
| forceDarkModeEnabled | false | — |
| navigatorPlatformOverride | — | String |
| lowPriorityIframesThreshold | WebEffectiveConnectionType::kTypeUnknown | WebEffectiveConnectionType |
| shouldProtectAgainstIpcFlooding | true | — |
| lazyLoadEnabled | true | — |
| lazyLoadingFrameMarginPxUnknown | 4000 | int |
| lazyLoadingFrameMarginPxOffline | 8000 | int |
| lazyLoadingFrameMarginPxSlow2G | 8000 | int |
| lazyLoadingFrameMarginPx2G | 6000 | int |
| lazyLoadingFrameMarginPx3G | 3500 | int |
| lazyLoadingFrameMarginPx4G | 2500 | int |
| lazyLoadingImageMarginPxUnknown | 3000 | int |
| lazyLoadingImageMarginPxOffline | 8000 | int |
| lazyLoadingImageMarginPxSlow2G | 8000 | int |
| lazyLoadingImageMarginPx2G | 6000 | int |
| lazyLoadingImageMarginPx3G | 2500 | int |
| lazyLoadingImageMarginPx4G | 1250 | int |
| inForcedColors | false | bool |
| isForcedColorsDisabled | false | bool |
| rootScrollbarThemeColor | std::nullopt | std::optional |
| preferredRootScrollbarColorScheme | mojom::blink::PreferredColorScheme::kLight | mojom::blink::PreferredColorScheme |
| preferredColorScheme | mojom::blink::PreferredColorScheme::kLight | mojom::blink::PreferredColorScheme |
| preferredContrast | mojom::blink::PreferredContrast::kNoPreference | mojom::blink::PreferredContrast |
| prefersReducedMotion | false | — |
| prefersReducedTransparency | false | — |
| invertedColors | false | — |
| DontSendKeyEventsToJavascript | false | — |
| navigationControls | NavigationControls::kNone | NavigationControls |
| accessibilityAlwaysShowFocus | false | — |
| ariaModalPrunesAXTree | false | — |
| useAXMenuList | true | — |
| selectionClipboardBufferAvailable | false | — |
| middleClickPasteAllowed | true | — |
| accessibilityIncludeSvgGElement | false | — |
| bypassCSP | false | — |
| textSizeAdjustEnabled | false | — |
| WebXRImmersiveArAllowed | true | bool |
| modalContextMenu | true | bool |
| printingMaximumShrinkFactor | 1.5 | float |
| prefersDefaultScrollbarStyles | false | bool |
| requireTransientActivationAndAuthorizationForSubAppsAPI | true | — |
| dynamicSafeAreaInsetsEnabled | false | bool |
The following JSON preferences can be modified in the Preferences file in the profile:
{
"abusive_experience_intervention_enforce": "",
"accessibility": {
"captions": {
"background_color": "",
"background_opacity": "",
"headless_caption_enabled": "",
"live_caption_bubble_expanded": "",
"live_caption_enabled": "",
"live_caption_language": "",
"live_caption_mask_offensive_words": "",
"live_caption_media_foundation_renderer_error_": "",
"live_translate_enabled": "",
"live_translate_target_language": "",
"text_color": "",
"text_font": "",
"text_opacity": "",
"text_shadow": "",
"text_size": ""
},
"shown_api_type": ""
},
"access_control_allow_methods_in_cors_preflight_spec_conformant": "",
"account_info": "",
"allow_dinosaur_easter_egg": "",
"alternate_error_pages": {
"enabled": ""
},
"apps": {
"fullscreen": {
"allowed": ""
},
"shortcuts_arch": "",
"shortcuts_version": ""
},
"async_dns": {
"additional_dns_query_types_enabled": "",
"enabled": ""
},
"auth": {
"allow_cross_origin_prompt": "",
"ambient_auth_in_private_modes": "",
"android_negotiate_account_type": "",
"basic_over_http_enabled": "",
"disable_negotiate_cname_lookup": "",
"enable_negotiate_port": "",
"globally_scoped_http_auth_cache_enabled": "",
"gssapi_library_name": "",
"http_auth_allowed_for_origins": "",
"negotiate_delegate_whitelist": "",
"schemes": "",
"server_allowlist": ""
},
"autocomplete": {
"retention_policy_last_version": ""
},
"autofill": {
"ai_last_version_deduped": "",
"amount_extraction_ai_terms_seen": "",
"autofill_ai": {
"identity_entities_enabled": "",
"opt_in_status": "",
"shopping_entities_enabled": "",
"synced_opt_in_status": "",
"travel_entities_enabled": ""
},
"bnpl_enabled": "",
"credit_card_enabled": "",
"credit_card_fido_auth_enabled": "",
"enabled": "",
"has_seen_bnpl": "",
"has_seen_iban": "",
"home_metadata": "",
"last_version_deduped": "",
"metadata_upload_events": "",
"name_and_email_profile_not_selected_counter": "",
"name_and_email_profile_signature": "",
"payment_card_benefits": "",
"payment_cvc_storage": "",
"profile_enabled": "",
"secondary_form_signature_upload_events": "",
"silent_updates": {
"home": "",
"work": ""
},
"states_data_dir": "",
"sync_transport_opt_ins": "",
"upload_encoding_seed": "",
"upload_events": "",
"upload_events_last_reset_timestamp": "",
"was_name_and_email_profile_used": "",
"work_metadata": ""
},
"autogenerated": {
"theme": {
"color": "",
"policy": {
"color": ""
}
}
},
"auto_pin_new_tab_groups": "",
"background_contents": {
"registered": ""
},
"background_mode": {
"enabled": ""
},
"background_tracing": {
"session_state": ""
},
"bookmark": {
"storage_computation_last_update": ""
},
"bookmarks": {
"editing_enabled": "",
"managed_bookmarks": "",
"managed_bookmarks_folder_name": ""
},
"bookmark_bar": {
"hover_count": "",
"navigation_count": "",
"show_apps_shortcut": "",
"show_managed_bookmarks": "",
"show_on_all_tabs": "",
"show_tab_groups": ""
},
"bookmark_editor": {
"expanded_nodes": ""
},
"browser": {
"app_window_placement": "",
"attempted_to_enable_autoupdate": "",
"clear_data": {
"browsing_data_lifetime": "",
"browsing_history": "",
"browsing_history_basic": "",
"cache": "",
"cache_basic": "",
"clear_on_exit": "",
"clear_on_exit_pending": "",
"close_tabs": "",
"cookies": "",
"cookies_basic": "",
"download_history": "",
"form_data": "",
"history_notice_shown_times": "",
"hosted_apps_data": "",
"passwords": "",
"site_settings": "",
"time_period": "",
"time_period_basic": ""
},
"click_to_call_enabled": "",
"command_line_flag_security_warnings_enabled": "",
"ctrl_tab_mru": "",
"default_browser_app_menu_first_shown_time": "",
"default_browser_declined_count": "",
"default_browser_infobar_declined_count": "",
"default_browser_infobar_last_declined": "",
"default_browser_infobar_last_declined_time": "",
"default_browser_last_declined_time": "",
"default_browser_prompt_refresh_study_group": "",
"default_browser_setting_enabled": "",
"disk_cache_dir": "",
"disk_cache_size": "",
"dns_interception_checks_enabled": "",
"enabled_labs_experiments": "",
"enabled_labs_experiments_origin_lists": "",
"enable_spellchecking": "",
"gemini_settings": "",
"hovercard": {
"image_previews_enabled": "",
"memory_usage_disable_migration_complete": "",
"memory_usage_enabled": ""
},
"intranet_redirect_behavior": "",
"last_clear_browsing_data_tab": "",
"last_clear_browsing_data_time": "",
"last_redirect_origin": "",
"last_whats_new_version": "",
"migrated_to_quick_delete_pref_values": "",
"pin_contextual_task_button": "",
"pin_split_tab_button": "",
"promotions_enabled": "",
"quick_delete_ever_used": "",
"relaunch_fast_if_outdated": "",
"relaunch_notification": "",
"relaunch_notification_period": "",
"relaunch_window": "",
"shared_clipboard_enabled": "",
"show_forward_button": "",
"show_home_button": "",
"split_view_drag_and_drop_enabled": "",
"split_view_drag_and_drop_nudge_shown_count": "",
"split_view_drag_and_drop_nudge_used_count": "",
"suppress_default_browser_prompt_for_version": "",
"suppress_unsupported_os_warning": "",
"theme": {
"color_scheme": "",
"color_scheme2": "",
"color_variant": "",
"color_variant2": "",
"follows_system_colors": "",
"is_grayscale": "",
"is_grayscale2": "",
"saved_local_theme": "",
"user_color": "",
"user_color2": ""
},
"web_app": {
"create_in_apps_menu": "",
"create_in_quick_launch_bar": "",
"create_on_desktop": ""
},
"window_placement": "",
"window_placement_popup": ""
},
"ca_certificate_management_allowed": "",
"certificates": {
"ca_certificates": "",
"ca_certificates_with_constraints": "",
"ca_distrusted_certificates": "",
"ca_hint_certificates": "",
"ca_platform_integration_enabled": ""
},
"certificate_transparency": {
"excluded_hosts": "",
"excluded_spkis": ""
},
"child_account_status_known": "",
"chrome": {
"prefetch_proxy": {
"origin_decider": {
"retry_after": ""
}
}
},
"chrome_data_region_setting": "",
"cloned_install": {
"count": "",
"first_timestamp": "",
"last_timestamp": "",
"session_start_last_detection_timestamp": ""
},
"colorpicker": {
"SeedColorChangeCount": ""
},
"commerce_daily_metrics_last_update_time": "",
"component_updates": {
"component_updates_enabled": ""
},
"content_settings": "",
"contextual_search": {
"drive_disclaimer_accepted": "",
"search_content_sharing_settings": ""
},
"contextual_tasks": {
"next_panel_open_count": ""
},
"cors_non_wildcard_request_headers_support": "",
"cpu_performance_tier_override": "",
"credentials_enable_automatic_passkey_upgrades": "",
"credentials_enable_autosignin": "",
"credentials_enable_passkeys": "",
"credentials_enable_service": "",
"custom_handlers": {
"enabled": "",
"ignored_protocol_handlers": "",
"policy": {
"ignored_protocol_handlers": "",
"registered_protocol_handlers": ""
},
"registered_protocol_handlers": ""
},
"custom_links": {
"initialized": "",
"list": "",
"preinstalledremoved": ""
},
"data_sharing": {
"eligible_for_version_out_of_date_instant_message": "",
"eligible_for_version_out_of_date_persistent_message": "",
"eligible_for_version_updated_message": "",
"has_shown_any_version_out_of_date_message": ""
},
"default_apps": "",
"default_apps_install_state": "",
"default_search_provider": {
"choice_invalidation_timestamp": "",
"choice_screen_completion_program": "",
"choice_screen_completion_timestamp": "",
"choice_screen_completion_version": "",
"choice_screen_random_shuffle_seed": "",
"context_menu_access_allowed": "",
"enabled": "",
"guest_mode_prepopulated_id": "",
"guid": "",
"notification_reset_time": "",
"pending_choice_screen_display_state": "",
"reset_occurred": "",
"reset_time": ""
},
"device_signals": {
"consent_collection_enabled": "",
"consent_received": "",
"permanent_consent_received": ""
},
"device_variations_restrictions_by_policy": "",
"devtools": {
"adb_key": "",
"availability": "",
"availability_allowlist": "",
"availability_blocklist": "",
"backgroundserviceexpiration": "",
"discover_tcp_targets": "",
"discover_usb_devices": "",
"edited_files": "",
"file_system_paths": "",
"gen_ai_settings": "",
"google_developer_program_profile_availability": "",
"last_open_timestamp": "",
"port_forwarding_config": "",
"port_forwarding_default_set": "",
"port_forwarding_enabled": "",
"preferences": "",
"remote_debugging": {
"allowed": "",
"user-enabled": ""
},
"synced_preferences_sync_disabled": "",
"synced_preferences_sync_enabled": "",
"sync_preferences": "",
"tcp_discovery_config": ""
},
"disable_3d_apis": "",
"disable_screenshots": "",
"dns_over_https": {
"automatic_mode_fallback_to_doh": "",
"mode": "",
"templates": ""
},
"dom_distiller": {
"font_family": "",
"font_scale": "",
"links_enabled": "",
"reader_for_accessibility": "",
"theme": ""
},
"downgrade": {
"snapshot_retention_limit": ""
},
"download": {
"allowed_urls_for_open_by_policy": "",
"default_directory": "",
"directory_upgrade": "",
"extensions_to_open": "",
"extensions_to_open_by_policy": "",
"prompt_for_download": ""
},
"download_bubble": {
"partial_view_enabled": "",
"partial_view_impressions": ""
},
"download_restrictions": "",
"dwa": {
"client_id": "",
"client_id_last_updated": "",
"persistent_logs": ""
},
"easy_unlock": {
"allowed": "",
"pairing": ""
},
"enable_a_ping": "",
"enable_do_not_track": "",
"enable_referrers": "",
"enable_unsafe_swiftshader": "",
"enterprise": {
"profile_badging": {
"toolbar_settings": ""
}
},
"enterprise_hardware_platform_api": {
"enabled": ""
},
"enterprise_label": {
"custom_value": {
"for_browser": "",
"for_profile": ""
}
},
"enterprise_logo": {
"url": {
"for_browser": "",
"for_profile": ""
}
},
"enterprise_reporting": {
"chrome_cloud_reporting": "",
"chrome_profile_cloud_reporting": "",
"last_signals_upload_attempt_timestamp": "",
"last_signals_upload_succeeded_config": "",
"last_signals_upload_succeeded_timestamp": "",
"last_upload_succeeded_timestamp": "",
"last_upload_timestamp": "",
"policies_ever_fetched_with_profile_id": "",
"saas_usage": {
"domain_urls_for_browser": "",
"domain_urls_for_profile": "",
"last_trigger_time": "",
"report": ""
},
"security_signals_client_certificates_selectors": "",
"upload_frequency": "",
"user_security_signals": {
"authenticated": "",
"enabled": ""
}
},
"EulaAccepted": "",
"everything_menu": {
"pinned_to_tabstrip": ""
},
"extensions": {
"alerts": {
"initialized": ""
},
"allowed_install_sites": "",
"allowed_types": "",
"block_external_extensions": "",
"commands": "",
"cws_info_fetch_error_timestamp": "",
"cws_info_timestamp": "",
"deleted_component_extensions": "",
"disabled": "",
"enterprise_promotion": {
"expiration_time": ""
},
"extended_background_lifetime_urls": "",
"extension_install_type_blocklist": "",
"global_shortcuts": {
"uuid": ""
},
"has_dismissed_enterprise_promotion": "",
"install": {
"allowlist": "",
"cloud_policy_checks_enabled": "",
"denylist": "",
"forcelist": "",
"initiallist": "",
"initialprovidername": ""
},
"last_chrome_version": "",
"management": "",
"manifest_v2": "",
"oauth_redirect_urls": "",
"pinned_extensions": "",
"settings": "",
"theme": {
"id": "",
"pack": ""
},
"ui": {
"developer_mode": ""
},
"unpublished_availability": ""
},
"external_protocol_dialog": {
"show_always_open_checkbox": ""
},
"feature_engagement": {
"profile_to_device_event_migration_completed": ""
},
"feed": {
"clicks_and_views_upload_conditions_reached": "",
"host_override": {
"bless_nonce": "",
"host": ""
},
"info_card_states": "",
"last_fetch_had_notice_card": "",
"notice_card_clicks_count": "",
"notice_card_views_count": "",
"user_actions_collection": ""
},
"feedback": {
"performance_tracing_enabled": ""
},
"feedback_allowed": "",
"feedv2": {
"actions_endpoint_override": "",
"client_instance_id": "",
"debug_stream_data": "",
"experiments_v2": "",
"experiments_v3": "",
"has_stored_data": "",
"metrics_data": "",
"reliability_logging_id_salt": "",
"request_schedule": "",
"request_throttler": {
"last_request_time": "",
"request_counts": ""
}
},
"fetch_keepalive_duration_on_shutdown": "",
"file_system": {
"file_or_directory_picker_without_allowed_for_origins": ""
},
"first_install_time": "",
"from_webstore": "",
"fullscreen": {
"allowed": ""
},
"gaia_cookie": {
"changed_time": "",
"hash": "",
"last_list_accounts_binary_data": "",
"periodic_report_time_2": ""
},
"gcm": {
"product_category_for_subtypes": "",
"push_messaging_application_id_map": "",
"push_messaging_unsubscribed_entries_list": ""
},
"google": {
"services": {
"account_id": "",
"consented_to_sync": "",
"last_gaia_id": "",
"last_signed_in_username": "",
"last_username": "",
"signin_scoped_device_id": "",
"syncing_gaia_id_migrated_to_signed_in": "",
"syncing_username_migrated_to_signed_in": "",
"syncing_user_migration_type": "",
"username_pattern": ""
}
},
"hardware": {
"audio_capture_allowed_urls": "",
"audio_capture_enabled": "",
"same_origin_tab_capture_allowed_by_origins": "",
"screen_capture_allowed_by_origins": "",
"screen_capture_enabled": "",
"tab_capture_allowed_by_origins": "",
"video_capture_allowed_urls": "",
"video_capture_enabled": "",
"window_capture_allowed_by_origins": ""
},
"hardware_acceleration_mode": {
"enabled": ""
},
"hardware_acceleration_mode_previous": "",
"has_dismissed_management_page_promotion_banner": "",
"has_dismissed_policy_page_promotion_banner": "",
"has_started_service_worker": "",
"hats": {
"survey_metadata": ""
},
"hide_web_store_icon": "",
"high_efficiency": {
"chip_expanded_count": "",
"last_chip_expanded_timestamp": ""
},
"history": {
"deleting_enabled": "",
"saving_disabled": "",
"sync_promo_shown_count": ""
},
"history_page": {
"history_sync_promo_last_dismissed_timestamp": "",
"history_sync_promo_shown_after_dismissal": ""
},
"home": {
"module": {
"magic_stack": {
"enabled": ""
},
"most_visited": {
"enabled": ""
},
"price_tracking": {
"enabled": ""
},
"safety_check": {
"enabled": ""
},
"tab_resumption": {
"enabled": ""
},
"tips": {
"enabled": ""
}
}
},
"homepage": "",
"homepage_is_newtabpage": "",
"hsts": {
"policy": {
"upgrade_bypass_list": ""
}
},
"https_first_balanced_mode_enabled": "",
"https_first_mode_incognito_enabled": "",
"https_only_mode_auto_enabled": "",
"https_only_mode_enabled": "",
"https_upgrades": {
"policy": {
"http_allowlist": "",
"upgrades_enabled": ""
}
},
"https_upgrade_fallbacks": "",
"https_upgrade_navigations": "",
"important_sites_dialog": "",
"import_autofill_form_data": "",
"import_bookmarks": "",
"import_dialog_autofill_form_data": "",
"import_dialog_bookmarks": "",
"import_dialog_history": "",
"import_dialog_saved_passwords": "",
"import_dialog_search_engine": "",
"import_history": "",
"import_home_page": "",
"import_saved_passwords": "",
"import_search_engine": "",
"incognito": {
"mode_availability": ""
},
"incognito_content_settings": "",
"incognito_preferences": "",
"info-card-tracking-state-dict": "",
"install_parameter": "",
"intl": {
"accept_languages": "",
"app_locale": "",
"charset_default": "",
"forced_languages": "",
"selected_languages": ""
},
"invert_notification_version_2_shown": "",
"ios": {
"send_tab_to_self": {
"last_received_tab_url": ""
}
},
"last_update_time": "",
"lens": {
"lens_overlay_start_count": ""
},
"local": {
"password_hash_data_list": ""
},
"local_test_policies_for_next_startup": "",
"managed": {
"serial_allow_all_ports_for_urls": "",
"serial_allow_usb_devices_for_urls": "",
"web_hid_allow_all_devices_for_urls": "",
"web_hid_allow_devices_for_urls": "",
"web_hid_allow_devices_for_urls_on_login_screen": "",
"web_hid_allow_devices_with_hid_usages_for_urls": ""
},
"managed_local_network_access_ip_address_space_overrides": "",
"managed_local_network_access_restrictions_temporary_opt_out": "",
"media": {
"audio_input_stream_last_time_created": "",
"autoplay_allowed": "",
"autoplay_whitelist": "",
"block_autoplay": "",
"default_audio_capture_device": "",
"default_video_capture_Device": "",
"engagement": {
"schema_version": ""
},
"storage_id_salt": ""
},
"media_galleries": {
"gallery_id": "",
"remembered_galleries": ""
},
"media_router": {
"cast_allow_all_ips": "",
"enable_media_router": "",
"media_remoting": {
"enabled": ""
},
"receiver_id_hash_token": "",
"show_cast_icon_in_toolbar": "",
"show_cast_sessions_started_by_other_devices": {
"enabled": ""
},
"suppress_local_discovery_permission_error": ""
},
"message_center": {
"disabled_extension_ids": ""
},
"metrics": {
"current_user_id": "",
"requires_client_id_reset_on_consent": "",
"user_consent": "",
"user_id": "",
"user_metrics_logs": "",
"user_metrics_logs_metadata": ""
},
"native_messaging": {
"allowlist": "",
"blocklist": "",
"user_level_hosts": ""
},
"net": {
"allow_socket_pool_size_randomization_for_proxies": "",
"compression_dictionary_transport_enabled": "",
"easter_egg_high_score": "",
"explicitly_allowed_network_ports": "",
"happy_eyeballs_v3_enabled": "",
"ipv6_reachability_override_enabled": "",
"keep_whitespace_data_urls": "",
"max_connections_per_proxy": "",
"max_connections_per_proxy_for_websocket": "",
"network_prediction_options": "",
"network_qualities": "",
"network_service_failed_launch_major_version": "",
"quic_allowed": ""
},
"network_annotation_blocklist": "",
"network_time": {
"network_time_mapping": "",
"network_time_queries_enabled": ""
},
"NewTabPage": {
"CustomizeChromeButtonOpenCount": "",
"CustomizeChromeExplicitlyClosed": "",
"CustomizeChromeHiddenModules": "",
"CustomizeChromeIPHAutoOpened": "",
"CustomizeChromeSidePanelAutoOpeningsCount": "",
"DisabledModules": "",
"FooterVisible": "",
"HiddenModules": "",
"MicrosoftFilesModuleLastDismissedTime": "",
"MicrosoftFilesModuleRetryAfterTime": "",
"ModulesInteractedCountDict": "",
"ModulesLoadedCountDict": "",
"ModulesOrder": "",
"ModulesVisible": "",
"OutlookCalendar": {
"LastAttachmentRequestSuccess": "",
"LastAttachmentRequestTime": "",
"LastDismissedTime": "",
"RetryAfterTime": ""
},
"OutlookModuleVisible": "",
"SharepointModuleVisible": "",
"ToolChipsVisible": "",
"WallpaperSearchButtonShownCount": ""
},
"newtab_page_location_override": "",
"ntp": {
"animated_doodles_enabled": "",
"collapsed_foreign_sessions": "",
"compose_button": {
"shown_count": ""
},
"custom_background_dict": "",
"custom_background_dict2": "",
"custom_background_inspiration": "",
"custom_background_local_to_device": "",
"custom_background_local_to_device_id": "",
"custom_links_visible": "",
"doodle_murals_enabled": "",
"enterprise_shortcuts_visible": "",
"last_module_staleness_update": "",
"last_shortcuts_staleness_update": "",
"modules_auto_removal_disabled": "",
"module_staleness_count_dict": "",
"most_visited_tile_hover_count": "",
"most_visited_tile_navigation_count": "",
"num_personal_suggestions": "",
"personal_shortcuts_visible": "",
"promo_blocklist": "",
"promo_visible": "",
"shortcust_visible": "",
"shortcuts_auto_removal_disabled": "",
"shortcuts_staleness_count": "",
"shortcuts_type": "",
"show_all_most_visited_tiles": "",
"use_most_visited_tiles": "",
"wallpaper_search_history": ""
},
"ntp_footer": {
"settings": {
"extension_attribution": "",
"management_notice": ""
}
},
"ntp_snippets": {
"enable": "",
"list_visible": ""
},
"ntp_snippets_by_dse": {
"enable": ""
},
"omnibox": {
"aim_hint_daily_impressions_count": "",
"aim_hint_last_impression_day": "",
"aim_hint_total_impressions": "",
"ai_mode_settings": "",
"bottom_omnibox_ever_used": "",
"dismissed_enterprise_search_aggregator_iph": "",
"dismissed_featured_enterprise_search_iph": "",
"dismissed_gemini_iph": "",
"dismissed_history_embeddings_scope_promo": "",
"dismissed_history_embeddings_settings_promo": "",
"dismissed_history_scope_promo": "",
"focused_srp_web_count": "",
"is_in_bottom_position": "",
"keyword_space_triggering_enabled": "",
"prevent_url_elisions": "",
"shown_count_enterprise_search_aggregator_iph": "",
"shown_count_featured_enterprise_search_iph": "",
"shown_count_gemini_iph": "",
"shown_count_history_embeddings_scope_promo": "",
"shown_count_history_embeddings_settings_promo": "",
"shown_count_history_scope_promo": "",
"show_ai_mode_omnibox_button": "",
"show_google_lens_shortcut": "",
"show_search_tools": ""
},
"on_device_translation": {
"translate_kit_binary_path": "",
"translate_kit_registered": "",
"translator_api_allowed": ""
},
"optimization_guide": {
"hintsfetcher": {
"hosts_successfully_fetched": "",
"last_fetch_attempt": ""
},
"model_cache_key_mapping": "",
"model_store_metadata": "",
"pending_hints_processing_version": "",
"predictionmodelfetcher": {
"last_fetch_attempt": "",
"last_fetch_success": ""
},
"previously_registered_optimization_types": "",
"previous_optimization_types_with_filter": "",
"store_file_paths_to_delete": ""
},
"origin_agent_cluster_default_enabled": "",
"origin_trials": {
"disabled_features": "",
"disabled_tokens": "",
"public_key": ""
},
"partition": {
"default_zoom_level": "",
"per_host_zoom_levels": ""
},
"passwords_pref_with_new_label_used": "",
"password_manager": {
"account_store_backup_password_cleaning_last_timestamp": "",
"account_store_date_last_used_for_filling": "",
"account_store_migrated_to_os_crypt_async": "",
"clearing_undecryptable_passwords": "",
"last_negative_password_change_timestamp": "",
"password_promo_cards_list": "",
"password_sharing_enabled": "",
"profile_store_backup_password_cleaning_last_timestamp": "",
"profile_store_date_last_used_for_filling": "",
"profile_store_migrated_to_os_crypt_async": ""
},
"password_removal_reason_for_account": "",
"password_removal_reason_for_profile": "",
"pdf": {
"enable_out_of_process_iframe_viewer": "",
"enable_skia": "",
"restrict_save_to_drive_accounts_to_pattern": "",
"xfa_forms_enabled": ""
},
"pdf_local_file_access_allowed_for_domains": "",
"performance_intervention": {
"background_cpu_message_count": "",
"background_cpu_rate_limited_count": "",
"last_daily_sample": ""
},
"persistent_notifications": {
"next_id": "",
"next_trigger": ""
},
"pinned_tabs": "",
"plugins": {
"always_open_pdf_externally": ""
},
"policy": {
"allow_back_forward_cache_for_cache_control_no_store_page_": "",
"built_in_ai_apis_enabled": "",
"cloud_management_enrollment_mandatory": "",
"copy_prevention_settings": "",
"css_custom_state_deprecated_syntax_enabled": "",
"device_refresh_rate": "",
"dlp_clipboard_check_size_limit": "",
"dlp_reporting_enabled": "",
"dlp_rules_list": "",
"feedback_surveys_enabled": "",
"force_permission_policy_unload_default_enabled": "",
"intensive_wake_up_throttling_enabled": "",
"last_statistics_update": "",
"lens_desktop_ntp_search_enabled": "",
"lens_region_search_enabled": "",
"local_network_access_permissions_policy_default_enabled": "",
"native_window_occlusion_enabled": "",
"restrict_background_fetch_from_service_worker_enabled": "",
"safe_sites_filter_behavior": "",
"select_parser_relaxation_enabled": "",
"standardized_browser_zoom_enabled": "",
"system_features_disable_list": "",
"system_features_disable_mode": "",
"user_refresh_rate": "",
"xslt_enabled": ""
},
"policy_test_page_enabled": "",
"popular_sites": {
"override_country": "",
"override_directory": "",
"override_url": "",
"override_version": ""
},
"popular_sites_last_download": "",
"popular_sites_url": "",
"preferences": "",
"prefetch": {
"search_prefetch": {
"cache": ""
}
},
"prefs": {
"preference_reset_time": "",
"tracked_preferences_reset": ""
},
"preloading": {
"prefetch_with_service_worker_enabled": ""
},
"price_tracking": {
"email_notifications_enabled": ""
},
"printing": {
"allowed_background_graphics_modes": "",
"background_graphics_default": "",
"default_destination_selection_rules": "",
"paper_size_default": "",
"printer_type_deny_list": "",
"print_header_footer": "",
"print_preview_disabled": "",
"print_preview_sticky_settings": "",
"silent_printing_enabled": "",
"use_system_default_printer": ""
},
"privacy_guide": {
"viewed": ""
},
"privacy_sandbox": {
"allow_notice_for_3PC_blocked_trial": "",
"blocked_topics": "",
"consent_decision_made": "",
"disabled_insufficient_confirmation": "",
"first_party_sets_data_access_allowed_initialized": "",
"first_party_sets_enabled": "",
"fledge_join_blocked": "",
"m1": {
"ad_measurement_enabled": "",
"consent_decision_made": "",
"eea_notice_acknowledged": "",
"fledge_enabled": "",
"prompt_suppressed": "",
"restricted": "",
"restricted_notice_acknowledged": "",
"row_notice_acknowledged": "",
"topics_enabled": ""
},
"notice_displayed": "",
"no_confirmation_3PC_blocked": "",
"no_confirmation_manually_controlled": "",
"no_confirmation_sandbox_disabled": "",
"no_confirmation_sandbox_managed": "",
"no_confirmation_sandbox_restricted": "",
"topics_consent": {
"consent_given": "",
"last_update_reason": "",
"last_update_time": "",
"text_at_last_update": ""
},
"topics_data_accessible_since": ""
},
"product_specifications": {
"accepted_disclosure_version": ""
},
"product_specifications_entry_point_last_dismissed_time": "",
"product_specifications_entry_point_show_interval_in_days": "",
"profile": {
"add_person_enabled": "",
"avatar_index": "",
"browser_guest_enabled": "",
"browser_guest_enforced": "",
"content_settings": {
"clear_window_name_for_new_browsing_context_group": "",
"data_url_in_svg_use_enabled": "",
"did_migrate_adaptive_notification_quieting_to_": "",
"disable_quiet_permission_ui_time": {
"notifications": ""
},
"enable_cpss": {
"geolocation": "",
"notifications": ""
},
"enable_quiet_permission_ui": {
"geolocation": "",
"notifications": ""
},
"had_three_consecutive_denies": {
"notifications": ""
},
"in_content_cookies_controls_opened": "",
"partitioned_blob_url_usage": "",
"permission_actions": "",
"pref_version": ""
},
"cookie_controls_mode": "",
"created_by_version": "",
"creation_time": "",
"default_content_setting_values": {
"protected_media_identifier": ""
},
"enterprise_profile_creation": {
"keep_existing_data_by_default": ""
},
"ephemeral_mode": "",
"exit_type": "",
"extensions": {
"activity_log": {
"num_consumers_active": ""
}
},
"family_member_role": "",
"force_browser_signin": "",
"icon_version": "",
"icon_win11_format": "",
"info_cache": "",
"isolated_web_app": {
"install": {
"forcelist": "",
"pending_initialization_count": "",
"user_install_enabled": ""
}
},
"last_active_profiles": "",
"last_engagement_time": "",
"last_time_obsolete_http_credentials_removed": "",
"last_time_password_check_completed": "",
"last_time_password_store_metrics_reported": "",
"last_used": "",
"lookalike_domain_allowlist": "",
"managed": {
"custodian_email": "",
"custodian_name": "",
"custodian_obfuscated_gaia_id": "",
"custodian_profile_image_url": "",
"custodian_profile_url": "",
"default_filtering_behavior": "",
"extensions_may_request_permissions": "",
"manual_hosts": "",
"manual_urls": "",
"safe_sites": "",
"second_custodian_email": "",
"second_custodian_name": "",
"second_custodian_obfuscated_gaia_id": "",
"second_custodian_profile_image_url": "",
"second_custodian_profile_url": "",
"shared_settings": "",
"skip_parent_approval_to_install_extensions": ""
},
"managed_access_to_get_all_screens_media_in_session_allowed_": "",
"managed_accounts": {
"restriction": {
"all_managed_accounts": "",
"value": ""
}
},
"managed_automatic_fullscreen_allowed_for_urls": "",
"managed_automatic_fullscreen_blocked_for_urls": "",
"managed_auto_select_certificate_for_urls": "",
"managed_clipboard_allowed_for_urls": "",
"managed_clipboard_blocked_for_urls": "",
"managed_configuration": {
"last_hash": "",
"list": ""
},
"managed_controlled_frame_allowed_for_urls": "",
"managed_controlled_frame_blocked_for_urls": "",
"managed_cookies_allowed_for_urls": "",
"managed_cookies_blocked_for_urls": "",
"managed_cookies_sessiononly_for_urls": "",
"managed_default_content_settings": {
"ads": "",
"clipboard": "",
"controlled_frame": "",
"cookies": "",
"direct_sockets": "",
"direct_sockets_pna": "",
"file_system_read_guard": "",
"file_system_write_guard": "",
"geolocation": "",
"idle_detection": "",
"images": "",
"insecure_content": "",
"javascript": "",
"javascript_jit": "",
"javascript_optimizer": "",
"legacy_cookie_scope": "",
"local_fonts": "",
"media_stream": "",
"notifications": "",
"popups": "",
"sensors": "",
"serial_guard": "",
"sub_apps_without_prompts": "",
"web_bluetooth_guard": "",
"web_hid_guard": "",
"web_printing": "",
"web_usb_guard": "",
"window_management": ""
},
"managed_direct_sockets_allowed_for_urls": "",
"managed_direct_sockets_blocked_for_urls": "",
"managed_direct_sockets_pna_allowed_for_urls": "",
"managed_direct_sockets_pna_blocked_for_urls": "",
"managed_file_system_read_ask_for_urls": "",
"managed_file_system_read_blocked_for_urls": "",
"managed_file_system_write_ask_for_urls": "",
"managed_file_system_write_blocked_for_urls": "",
"managed_geolocation_allowed_for_urls": "",
"managed_geolocation_blocked_for_urls": "",
"managed_idle_detection_allowed_for_urls": "",
"managed_idle_detection_blocked_for_urls": "",
"managed_images_allowed_for_urls": "",
"managed_images_blocked_for_urls": "",
"managed_insecure_content_allowed_for_urls": "",
"managed_insecure_content_blocked_for_urls": "",
"managed_javascript_allowed_for_urls": "",
"managed_javascript_blocked_for_urls": "",
"managed_javascript_jit_allowed_for_sites": "",
"managed_javascript_jit_blocked_for_sites": "",
"managed_javascript_optimizer_allowed_for_sites": "",
"managed_javascript_optimizer_blocked_for_sites": "",
"managed_legacy_cookie_access_allowed_for_domains": "",
"managed_legacy_cookie_scope_for_domains": "",
"managed_local_fonts_allowed_for_urls": "",
"managed_local_fonts_blocked_for_urls": "",
"managed_local_network_access_allowed_for_urls": "",
"managed_local_network_access_blocked_for_urls": "",
"managed_local_network_allowed_for_urls": "",
"managed_local_network_blocked_for_urls": "",
"managed_loopback_network_allowed_for_urls": "",
"managed_loopback_network_blocked_for_urls": "",
"managed_notifications_allowed_for_urls": "",
"managed_notifications_blocked_for_urls": "",
"managed_popups_allowed_for_urls": "",
"managed_popups_blocked_for_urls": "",
"managed_sensors_allowed_for_urls": "",
"managed_sensors_blocked_for_urls": "",
"managed_serial_ask_for_urls": "",
"managed_serial_blocked_for_urls": "",
"managed_sub_apps_without_prompts_allowed_for_origins": "",
"managed_sub_apps_without_prompts_blocked_for_origins": "",
"managed_users": "",
"managed_user_id": "",
"managed_web_hid_ask_for_urls": "",
"managed_web_hid_blocked_for_urls": "",
"managed_web_printing_allowed_for_urls": "",
"managed_web_printing_blocked_for_urls": "",
"managed_web_usb_allow_devices_for_urls": "",
"managed_web_usb_ask_for_urls": "",
"managed_web_usb_blocked_for_urls": "",
"managed_window_management_allowed_for_urls": "",
"managed_window_management_blocked_for_urls": "",
"mixed_forms_warnings": "",
"name": "",
"one_time_permission_prompts_decided_count": "",
"password_account_storage_settings": "",
"password_dismiss_compromised_alert": "",
"password_hash_data_list": "",
"password_manager_leak_detection": "",
"picker_availability_on_startup": "",
"picker_shown": "",
"profiles_created": "",
"profiles_order": "",
"reduce_accept_language_enabled": "",
"sandbox_external_protocol_blocked": "",
"shared_array_buffer_unrestricted_access_allowed": "",
"show_picker_on_startup": "",
"using_default_avatar": "",
"using_default_name": "",
"using_gaia_avatar": "",
"was_auto_sign_in_first_run_experience_shown": "",
"web_app": {
"install": {
"forcelist": ""
},
"install_by_user_enabled": "",
"policy_settings": ""
},
"web_share": {
"visited_targets": ""
},
"were_old_google_logins_removed": ""
},
"profiles": {
"profile_basenames_deleted": ""
},
"profile_separation": {
"data_migration_settings": "",
"domain_exception_list": "",
"settings": ""
},
"projects_panel": {
"entrypoint_enabled": "",
"pinned_to_tabstrip": ""
},
"prompt_on_multiple_matching_certificates": "",
"protocol_handler": {
"allowed_origin_protocol_pairs": "",
"policy": {
"auto_launch_protocols_from_origins": ""
}
},
"proxy": {
"quick_check_enabled": ""
},
"proxy_override_rules": "",
"qr_code_generator_enabled": "",
"reading_list": {
"desktop_first_use_experience_shown": ""
},
"recovery_component": {
"unpack_path": "",
"version": ""
},
"regular_only_preferences": "",
"restart": {
"in": {
"background": {
"on": {
"shutdown": ""
}
}
},
"last": {
"session": {
"on": {
"shutdown": ""
}
}
}
},
"safebrowsing_for_trusted_sources_enabled": "",
"saved_tab_groups": {
"closed_remote_group_ids": "",
"deleted_group_ids": "",
"did_enable_shared_tab_groups_in_last_session": "",
"did_sync_tab_groups_in_last_session": "",
"pinned_position_to_projects_position_migration": "",
"specifics_to_data_migration": ""
},
"savefile": {
"default_directory": "",
"type": ""
},
"schedule_to_flush_to_disk": "",
"scroll_to_text_fragment_enabled": "",
"sct_auditing": {
"hashdance_report_count": ""
},
"search": {
"suggest_enabled": ""
},
"search_engines": {
"client_side_study_group": ""
},
"search_provider_overrides": "",
"search_provider_overrides_version": "",
"selectfile": {
"last_directory": ""
},
"select_file_dialogs": {
"allowed": ""
},
"send_tab_to_self": {
"initial_animation_shown": ""
},
"session": {
"restore_on_startup": "",
"startup_urls": ""
},
"settings": {
"a11y": {
"apply_page_colors_only_on_increased_contrast": "",
"caretbrowsing": {
"enabled": "",
"show_dialog": ""
},
"enable_accessibility_image_labels": "",
"enable_accessibility_image_labels_opt_in_accepted": "",
"enable_main_node_annotations": "",
"focus_highlight": "",
"page_colors_block_list": "",
"prefers_default_scrollbar_styles": "",
"requested_page_colors": ""
},
"allowed_domains_for_apps": "",
"force_google_safesearch": "",
"force_youtube_restrict": "",
"toast": {
"alert_level": ""
},
"use_shared_proxies": ""
},
"shared_tab_groups": {
"managed_account_setting": ""
},
"sharing": {
"fcm_registration": "",
"local_sharing_info": ""
},
"sharing_hub": {
"desktop_sharing_hub_enabled": ""
},
"shopping_list_bookmark_last_update_time": "",
"should_read_incoming_syncing_theme_prefs": "",
"should_show_price_track_fue_bubble_fue": "",
"side_panel": {
"companion_pinned_to_toolbar": "",
"google_search_side_panel_enabled": "",
"id_to_width": "",
"is_right_aligned": ""
},
"signin": {
"account_preview_data_dict": "",
"account_preview_data_last_update": "",
"AddressSignInPromoDismissCountForLimitsExperiment": "",
"AddressSignInPromoShownCount": "",
"AddressSignInPromoShownCountForLimitsExperiment": "",
"allowed": "",
"allowed_on_next_startup": "",
"AutofillSignInPromoDismissCount": "",
"BookmarkSignInPromoDismissCountForLimitsExperiment": "",
"BookmarkSignInPromoShownCount": "",
"BookmarkSignInPromoShownCountForLimitsExperiment": "",
"bound_session_credentials_enabled": "",
"HistoryPageHistorySyncPromoLastDismissedTimestampPerProfile": "",
"HistoryPageHistorySyncPromoShownAfterDismissalPerProfile": "",
"HistoryPageHistorySyncPromoShownCount": "",
"history_sync": {
"last_declined_timestamp": "",
"successive_decline_count": ""
},
"interception": {
"idp_cookies": {
"url": ""
}
},
"interception_enabled": "",
"PasswordSignInPromoDismissCountForLimitsExperiment": "",
"PasswordSignInPromoShownCount": "",
"PasswordSignInPromoShownCountForLimitsExperiment": "",
"prefs_themes_search_engines_account_storage_enabled": "",
"primary_account_set_after_signin_migration": "",
"ProfileCreationInterceptionDeclinedPref": "",
"SearchAIModeSignInPromoDismissCount": "",
"SearchAIModeSignInPromoLastImpressionTimestamp": "",
"SearchAIModeSignInPromoShownCount": "",
"signin_with_explicit_browser_signin_on": "",
"user_cloud_signin_policy_response_from_policy_test_page": "",
"with_credential_provider": ""
},
"site_isolation": {
"isolate_origins": "",
"origin_keyed_processes_enabled": "",
"site_per_process": "",
"user_triggered_isolated_origins": "",
"web_triggered_isolated_origins": ""
},
"spellcheck": {
"blocked_dictionaries": "",
"dictionaries": "",
"dictionary": "",
"forced_dictionaries": "",
"use_spelling_service": ""
},
"ssl": {
"cipher_suites": {
"blacklist": ""
},
"client_certs": {
"h2_coalescing_hosts": ""
},
"compliance": {
"cipher": "",
"key_exchange": ""
},
"ech_enabled": "",
"error_override_allowed": "",
"error_override_allowed_for_origins": "",
"rev_checking": {
"enabled": "",
"required_for_local_anchors": ""
},
"tls13_early_data_enabled": "",
"version_max": "",
"version_min": ""
},
"static_storage_quota_enabled": "",
"strict_mime_type_check_for_worker_scripts_enabled": "",
"subresource_filter": {
"highlight_ads": ""
},
"suggested_sites_json": "",
"suggested_sites_version": "",
"supervised_user": {
"metrics": {
"day_id": ""
}
},
"suppress_different_origin_subframe_js_dialogs": "",
"sync": {
"apps": "",
"autofill": "",
"bookmarks": "",
"cached_passphrase_type": "",
"cached_persistent_auth_error": "",
"cached_trusted_vault_auto_upgrade_experiment_group": "",
"clean_up_stats_table_from_account_password_store": "",
"cookies": "",
"data_type_status_for_sync_to_signin": "",
"enable_local_sync_backend": "",
"encryption_bootstrap_token": "",
"encryption_bootstrap_token_per_account": "",
"extensions": "",
"feature_status_for_sync_to_signin": "",
"first_time_tried_to_migrate_sync_feature_paused_to_signin": "",
"has_setup_completed": "",
"keep_everything_synced": "",
"local_sync_backend_dir": "",
"managed": "",
"migrate_extensions_from_local_to_account": "",
"migrate_reading_list_from_local_to_account": "",
"migrate_theme_from_local_to_account": "",
"passphrase_prompt_muted_product_version": "",
"passwords": "",
"payments": "",
"preferences": "",
"product_comparison": "",
"reading_list": "",
"saved_tab_groups": "",
"selected_types_per_account": "",
"sync_to_signin_migration_state": "",
"tabs": "",
"themes": "",
"transport_data_per_account": "",
"typed_urls": ""
},
"syncing_theme_prefs_migrated_to_non_syncing": "",
"sync_promo": {
"user_menu_show_count": ""
},
"tabgroup": {
"sync_enabled": ""
},
"tab_freezing_enabled": "",
"tab_groups": {
"deletion": {
"skip_dialog_on_close_tab": "",
"skip_dialog_on_delete": "",
"skip_dialog_on_remove_tab": "",
"skip_dialog_on_ungroup": ""
},
"editor_bubble": {
"learn_more_footer_shown_count": ""
}
},
"tab_group_saves_ui_update_migrated": "",
"tab_search": {
"is_right_aligned": "",
"pinned_to_tabstrip": "",
"pinned_to_tabstrip_migration_complete": "",
"pinned_to_tabstrip_migration_complete_2": ""
},
"tab_stats": {
"discards_external": "",
"discards_frozen": "",
"discards_proactive": "",
"discards_suggested": "",
"discards_urgent": "",
"last_daily_sample": "",
"max_tabs_per_window": "",
"reloads_external": "",
"reloads_frozen": "",
"reloads_proactive": "",
"reloads_suggested": "",
"reloads_urgent": "",
"total_tab_count_max": "",
"window_count_max": ""
},
"task_manager": {
"category": "",
"column_visibility": "",
"end_process_enabled": "",
"window_placement": ""
},
"temporary_setting": {
"enterpise_badging": ""
},
"toast": {
"non_milestone_update_toast_version": ""
},
"toolbar": {
"pinned_actions": "",
"pinned_cast_migration_complete": "",
"pinned_chrome_labs_migration_complete": "",
"pinned_search_companion_migration_complete": "",
"tabs_from_other_devices_auto_pinned_migration": "",
"tab_search_migration_complete": ""
},
"total_memory_limit_mb": "",
"total_passwords_available_for_account": "",
"total_passwords_available_for_profile": "",
"tracking_protection": {
"block_all_3pc_toggle_enabled": "",
"show_rollback_ui_mode_b": "",
"tracking_protection_3pcd_enabled": ""
},
"translate": {
"enabled": ""
},
"translate_allowlists": "",
"translate_blocked_languages": "",
"translate_recent_target": "",
"translate_recent_targets": "",
"translate_site_blocklist_with_time": "",
"ukm": {
"client_id": "",
"persisted_logs": "",
"session_id": ""
},
"uninstall_metrics": {
"installation_date2": ""
},
"unsafely_treat_insecure_origin_as_secure": "",
"url_keyed_anonymized_data_collection": {
"enabled": ""
},
"user_agent_reduction": "",
"user_experience_metrics": {
"app_drive_has_seek_penalty": "",
"client_id2": "",
"client_id_timestamp": "",
"consent_migration_done": "",
"consent_restructure_feature_state": "",
"default_opt_in": "",
"file_metrics_metadata": "",
"initial_logs2": "",
"last_seen": {
"": ""
},
"limited_entropy_randomization_source": "",
"log_finalized_record_id": "",
"log_record_id": "",
"low_entropy_source2": "",
"low_entropy_source3": "",
"machine_id": "",
"ongoing_logs2": "",
"provisional_client_id": "",
"pseudo_low_entropy_source": "",
"reporting_enabled": "",
"reporting_level": "",
"reset_metrics_ids": "",
"session_id": "",
"stability": {
"browser_last_live_timestamp": "",
"crash_count_due_to_gms_core_update": "",
"exited_cleanly": "",
"file_metrics_unsent_files_count": "",
"file_metrics_unsent_samples_count": "",
"gms_core_version": "",
"kernel_crash_count": "",
"other_user_crash_count": "",
"saved_system_profile": "",
"saved_system_profile_hash": "",
"stats_buildtime": "",
"stats_version": "",
"system_crash_count": "",
"system_unclean_shutdowns": ""
},
"uma_cell_datause": "",
"unsent_log_metadata": {
"initial_logs": "",
"ongoing_logs": ""
},
"user_call_datause": "",
"user_data_drive_has_seek_penalty": ""
},
"variations_compressed_seed": "",
"variations_country": "",
"variations_crash_streak": "",
"variations_failed_to_fetch_seed_streak": "",
"variations_forced_field_trials": "",
"variations_forced_trial_expiration": "",
"variations_forced_trial_starts": "",
"variations_geo_level1": "",
"variations_google_groups": "",
"variations_last_fetch_time": "",
"variations_permanent_consistency_country": "",
"variations_permanent_overridden_country": "",
"variations_restrictions_by_policy": "",
"variations_restrict_parameter": "",
"variations_safe_compressed_seed": "",
"variations_safe_seed_date": "",
"variations_safe_seed_fetch_time": "",
"variations_safe_seed_locale": "",
"variations_safe_seed_milestone": "",
"variations_safe_seed_permanent_consistency_country": "",
"variations_safe_seed_session_consistency_country": "",
"variations_safe_seed_signature": "",
"variations_seed_date": "",
"variations_seed_milestone": "",
"variations_seed_serial_number": "",
"variations_seed_signature": "",
"variations_sticky_studies": "",
"vertical_tabs": {
"collapsed_state": "",
"enabled": "",
"enabled_first_time": "",
"expand_on_hover": "",
"uncollapsed_width": ""
},
"view_source": {
"line_wrapping_enabled": ""
},
"was": {
"restarted": ""
},
"was_installed_by_default": "",
"was_installed_by_oem": "",
"webauthn": {
"allow_with_broken_certs": "",
"enclave_declined_gpm_bootstrapping_count": "",
"enclave_declined_gpm_credential_creation_count": "",
"enclave_failed_pin_attempts_count": "",
"remote_desktop_allowed_origins": "",
"remote_proxied_requests_allowed": "",
"touchid": {
"metadata_secret": ""
}
},
"webkit": {
"webprefs": {
"allow_running_insecure_content": "",
"default_fixed_font_size": "",
"default_font_size": "",
"dom_paste_enabled": "",
"encrypted_media_enabled": "",
"fonts": {
"cursive": {
"Zyyy": ""
},
"fantasy": {
"Zyyy": ""
},
"fixed": {
"Deva": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Jpan": "",
"Zyyy": ""
},
"math": {
"Zyyy": ""
},
"sansserif": {
"Arab": "",
"Deva": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Jpan": "",
"Zyyy": ""
},
"serif": {
"Arab": "",
"Deva": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Jpan": "",
"Zyyy": ""
},
"standard": {
"Arab": "",
"Deva": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Jpan": "",
"Zyyy": ""
}
},
"force_dark_mode_enabled": "",
"javascript_can_access_clipboard": "",
"javascript_enabled": "",
"loads_images_automatically": "",
"minimum_font_size": "",
"minimum_logical_font_size": "",
"plugins_enabled": "",
"tabs_to_links": "",
"text_areas_are_resizable": "",
"web_security_enabled": ""
}
},
"webrtc": {
"diagnostic_log_collection_allowed_for_origins": "",
"event_logs_collection": "",
"ip_handling_policy": "",
"ip_handling_url": "",
"local_ips_allowed_urls": "",
"post_quantum_key_agreement": "",
"text_log_collection_allowed": "",
"udp_port_range": ""
},
"web_app": {
"app_id": {
"install_url": ""
}
},
"web_apps": {
"app_agnostic_iph_link_capturing_state": "",
"app_agnostic_iph_state": "",
"app_agnostic_ml_state": "",
"daily_metrics": "",
"daily_metrics_date": "",
"did_migrate_default_chrome_apps": "",
"last_preinstall_synchronize_version": "",
"uninstalled_default_chrome_apps": "",
"web_app_ids": ""
},
"web_app_install_metrics": "",
"web_audio_output_buffering_enabled": "",
"web_package": {
"signed_exchange": {
"enabled": ""
}
},
"worker": {
"data_url_in_web_worker_opaque_origin_enabled": "",
"service_worker_auto_preload_enabled": "",
"service_worker_to_control_srcdoc_iframe_enabled": "",
"shared_worker_blob_url_fix_enabled": "",
"shared_worker_extended_lifetime_enabled": ""
},
"zerosuggest": {
"cachedresults": "",
"cachedresults_composebox": "",
"cachedresults_with_url": ""
},
"Zyyy": ""
}