Enable with --enable-features, disable with --disable-features:
| Name | Description | Enabled by default |
|---|---|---|
| kAbortNavigationsFromTabClosures | Marks navigations as aborted when the NavigationHandle is destroyed mid navigation, likely due to a tab closure. This is a kill switch. | ✅ |
| kAndroidCaptureKeyEvents | Capture Android key event objects to send them to the web contents when the IME sends composition texts. | ❌ |
| kAndroidCaretBrowsing | Enables the caret browsing a11y feature - can use arrow keys to navigate through web pages. | ❌ |
| kAndroidDevToolsFrontend | DevTools frontend for Android. | ❌ |
| kAndroidEnableBackgroundMediaLargeFormFactors | Enables media to continue playing in the background. | ✅ |
| kAndroidFallbackToNextSlot | 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. | ✅ |
| kAndroidMediaInsertion | Enables IMEs to insert media content such as images, gifs and stickers. | ❌ |
| kAndroidNavigationBlurTransitionAnimation | Enables a blur animation of the current page when navigating away from it. | ❌ |
| kAndroidPkAutocorrectUnderline | Enables the physical keyboard autocorrect underline feature. | ❌ |
| kAndroidBlockMisspellingSuggestionSpanInCompositionMode | Blocks the misspelling suggestion span in composition mode. | ❌ |
| kAndroidWarmUpSpareRendererWithTimeout | Warm up a spare renderer after each navigation on Android. | ❌ |
| kAttachUnownedInnerWebContents | 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. | ❌ |
| kAudioServiceLaunchOnStartup | Launches the audio service on the browser startup. | ❌ |
| kAudioServiceOutOfProcess | Runs the audio service in a separate process. | ❌ |
| kAudioServiceSandbox | Enables the audio-service sandbox. This feature has an effect only when the kAudioServiceOutOfProcess feature is enabled. | ❌ |
| kBackgroundFetch | Kill switch for Background Fetch. | ✅ |
| kBackForwardCache | Enable using the BackForwardCache. | ✅ |
| kBackForwardCacheEntryTimeout | Set a time limit for the page to enter the cache. Disabling this prevents flakes during testing. | ✅ |
| kBackForwardCacheMemoryControls | BackForwardCacheMemoryControls is enabled only on Android to disable BackForwardCache for lower memory devices due to memory limitations. | ❌ |
| kBackForwardCacheCCNSIgnoreUnchangedCookies | 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. | ❌ |
| kBackToAdIntervention | 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. | ❌ |
| kBatterySaverModeAlignWakeUps | If enabled, makes battery saver request heavy align wake ups. | ❌ |
| kBrokerFileOperationsOnDiskCacheInNetworkService | Broker file operations on disk cache in the Network Service. This is no-op if the network service is hosted in the browser process. | ❌ |
| kBypassRedirectChecksPerRequest | Allows the decision to bypass redirect checks to be made based on the specific request. | ✅ |
| kCacheControlNoStoreEnterBackForwardCache | 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. | ✅ |
| kClearCrossSiteCrossBrowsingContextGroupWindowName | Clear the window.name property for the top-level cross-site navigations that swap BrowsingContextGroups(BrowsingInstances). | ❌ |
| kCompositeBGColorAnimation | — | ❌ |
| kDeferSpeculativeRFHCreation | 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. | ❌ |
| kDeviceBoundSessionTerminationEvictBackForwardCache | 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 | ❌ |
| kDevToolsLiveEdit | Whether DevTools Live Edit (Debugger.setScriptSource usage in CDP) is enabled. | ❌ |
| kDigitalGoodsApi | Controls whether the Digital Goods API is enabled. https://github.com/WICG/digital-goods/ | ❌ |
| kBtm | 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. | ❌ |
| kBtmTtl | Flag used to control the TTL for user interactions (separately from the |kBtm| feature flag). | ❌ |
| kWebRtcHWDecoding | Enables HW decode acceleration for WebRTC. | ❌ |
| kWebRtcHWEncoding | Enables HW encode acceleration for WebRTC. | ❌ |
| kWebContentsDiscard | Enables a discard operation on WebContents to free associated resources. Eliminates the need to destroy the WebContents object to free its resources. | ❌ |
| kDisablePartialStorageCleanupForGPUDiskCache | When this feature is enabled, partial storage cleanup will be disabled for the GPU disk cache. (Performance improvement) | ❌ |
| kDrawCutoutEdgeToEdge | Enable drawing under System Bars within DisplayCutout. | ✅ |
| kEnableCanvas2DLayers | Enables canvas 2d methods BeginLayer and EndLayer. | ❌ |
| kEnsureExistingRendererAlive | Ensures the renderer is not dead when getting the process host for a site instance. | ❌ |
| kFedCm | 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. | ✅ |
| kFedCmEmbedderCheck | Kill switch for checking if there is an ongoing embedder task in the auto re-authn flow. | ✅ |
| kFedCmAutofill | Enables RPs to enhance autofill with federated accounts fetched by the FedCM API. | ❌ |
| kFedCmAmbientUI | Enables the FedCM ambient UI. | ❌ |
| kFedCmDelegation | Enables usage of the FedCM Delegation API. | ❌ |
| kEmailVerificationProtocol | Enables the FedCM email verification protocol. | ❌ |
| kEnforceDedicatedWorkerSameOriginCheck | Enforce same-origin check for dedicated worker script URLs. See https://crbug.com/496253755. | ❌ |
| kFedCmErrorAttribute | Enables the spec-compliant 'error' attribute in IdentityCredentialError while deprecating the legacy 'code' attribute. | ✅ |
| kFedCmIdPRegistration | Enables usage of the FedCM IdP Registration API. | ❌ |
| kFedCmLightweightMode | Enables Lightweight FedCM Mode | ❌ |
| kFedCmMetricsEndpoint | Enables usage of the FedCM API with metrics endpoint at the same time. | ❌ |
| kFedCmEmbedderInitiatedLogin | Enables FedCM to support login request initiated by the embedder. | ❌ |
| kFedCmNonceInParams | Enables Nonce usage in Params | ❌ |
| kFedCmWellKnownEndpointValidation | 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. | ❌ |
| kFedCmWithoutWellKnownEnforcement | Enables bypassing the well-known file enforcement. | ❌ |
| kFedCmNavigationInterception | Enables usage of the FedCM IdP-Initiation API. | ❌ |
| kFencedFramesEnforceFocus | Enables browser-side focus verification when crossing fenced boundaries. | ❌ |
| kForwardMemoryPressureToBlinkIsolates | 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 | ✅ |
| kWebIdentityDigitalCredentials | Enables the Digital Credential API. | ✅ |
| kWebIdentityDigitalCredentialsCreation | Enables the Digital Credentials Creation API. | ✅ |
| kFractionalScrollOffsets | Enables scrollers inside Blink to store scroll offsets in fractional floating-point numbers rather than truncating to integers. | ❌ |
| kNetworkQualityEstimatorWebHoldback | 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). | ❌ |
| kGuestViewMPArch | Whether GuestViews (see components/guest_view/README.md) are implemented using MPArch inner pages. See https://crbug.com/40202416 | ❌ |
| kIdbSqliteBackingStore | This flag unconditionally enables the SQLite backing store. Used for about:flags. | ❌ |
| kIgnoreDuplicateNavs | Controls whether we ignore duplicate navigations or not, in favor of preserving the already ongoing navigation. | ❌ |
| kInitialWebUI | 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. | ❌ |
| kInitialWebUISyncNavStartToCommit | Whether initial WebUI navigations should synchronously go from navigation start to commit, by doing e.g. in-renderer body loading. | ❌ |
| kInstalledApp | Kill switch for the GetInstalledRelatedApps API. | ✅ |
| kInstalledAppProvider | Allow Windows specific implementation for the GetInstalledRelatedApps API. | ✅ |
| kIsolatesPriorityUseProcessPriority | 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". | ❌ |
| kIsolatesPriorityBestEffortWhenHidden | 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). | ❌ |
| kIsolatedWebApps | 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. | ❌ |
| kIsolateFencedFrames | 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. | ❌ |
| kIsolateOrigins | Alternative to switches::kIsolateOrigins, for turning on origin isolation. List of origins to isolate has to be specified via kIsolateOriginsFieldTrialParamName. | ❌ |
| kLazyBrowserInterfaceBroker | 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. | ❌ |
| kLoadingPredictorLimitPreconnectSocketCount | If this is enabled, LoadingPredictor restricts the number of preconnects for the same destination to one. | ❌ |
| kLogJsConsoleMessages | — | ✅ |
| kMBIMode | 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. | ❌ |
| kNavigationConfidenceEpsilon | Controls the configurablity of the navigation confidence noise level. If the feature is not enabled, then the epsilon value will be 1.1. | ❌ |
| kNavigationNetworkResponseQueue | When NavigationNetworkResponseQueue is enabled, the browser will schedule some tasks related to navigation network responses in a kHigh priority queue. | ✅ |
| kNetworkServiceInProcess | If the network service is enabled, runs it in process. | ❌ |
| kNoSelectionMenuCaching | Feature which disables caching a previous selection menu object. | ❌ |
| kNoStatePrefetchHoldback | Feature which holdbacks NoStatePrefetch on all surfaces. | ❌ |
| kOriginIsolationHeader | 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. | ✅ |
| kOverscrollHistoryNavigation | History navigation in response to horizontal overscroll (aka gesture-nav). | ✅ |
| kPeriodicBackgroundSync | Whether web apps can run periodic tasks upon network connectivity. | ❌ |
| kPrefetchOffTheMainThread | Allow starting prefetch request from off the main thread. Please see crbug.com/452389538 for more details. | ❌ |
| kPrefetchPrerenderIntegration | Use code paths for prefetch/prerender integration.
See also | ❌ |
| kPrefetchProxy | If explicitly disabled, prefetch proxy is not used. | ✅ |
| kPreloadingRespectUserAgentOverride | Killswitch for UA override issue fix (crbug.com/441612842) in preloading. | ❌ |
| kPrerender2ReuseHost | If enabled, the feature allows the prerender host to be reused for the future same-site page prerender if marked as reusable. | ❌ |
| kPreviewHandwritingGesture | If enabled, the feature allows user to see a preview of their handwriting gestures (Select and Delete gestures). | ❌ |
| kPrivacySandboxAdsAPIsOverride | 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. | ❌ |
| kProcessSelectionDeferringConditions | 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. | ✅ |
| kOriginKeyedProcessesByDefault | 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. | ❌ |
| kPushSubscriptionChangeEventOnInvalidation | Fires the | ❌ |
| kPushSubscriptionChangeEventOnResubscribe | Fires the | ✅ |
| kReduceSubresourceResponseStartedIPC | 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. | ❌ |
| kRenderDocument | Enable using the RenderDocument. | ✅ |
| kRestrictThreadPoolInBackground | Restrict the maximum number of concurrent ThreadPool tasks when a renderer is low priority. | ❌ |
| kSpareRendererProcessPriority | 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. | ❌ |
| kSkipIPCChannelPausingForNonGuests | 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. | ✅ |
| kSkipPagehideInCommitForDSENavigation | When enabled, skip pagehide-in-commit when navigating to DSE. (See: https://crbug.com/375385416) | ❌ |
| kProcessPerSiteUpToMainFrameThreshold | 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. | ✅ |
| kServiceWorkerAutoPreload | 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. | ✅ |
| kServiceWorkerStaticRouterRaceNetworkRequestPerformanceImprovement | 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. | ✅ |
| kRunVideoCaptureServiceInBrowserProcess | Run video capture service in the Browser process as opposed to a dedicated utility process. | ❌ |
| kSchedQoSOnResourcedForChrome | Update scheduler settings using resourced on ChromeOS. | ❌ |
| kSecurePaymentConfirmation | 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. | ❌ |
| kSecurePaymentConfirmationDebug | 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. | ❌ |
| kServiceWorkerPaymentApps | Service worker based payment apps as defined by w3c here: https://w3c.github.io/webpayments-payment-apps-api/ TODO(rouslan): Remove this. | ✅ |
| kServiceWorkerBackgroundUpdateForRegisteredStorageKeys | 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. | ✅ |
| kSharedArrayBuffer | http://tc39.github.io/ecmascript_sharedmem/shmem.html This feature is also enabled independently of this flag for cross-origin isolated renderers. | ❌ |
| kUserMediaCaptureOnFocus | If enabled, GetUserMedia API will only work when the concerned tab is in focus | ❌ |
| kWebOTP | 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. | ✅ |
| kWebViewAsyncDrawOnly | Trial to disable synchronous draw for synchronous compositor (ie Android WebView). | ✅ |
| kWebLockScreenApi | Enable the web lockscreen API implementation (https://github.com/WICG/lock-screen) in Chrome. | ❌ |
| kSiteInstanceGroupsForDataUrls | When enabled, puts subframe data: URLs in a separate SiteInstance in the same SiteInstanceGroup as the initiator. | ✅ |
| kDefaultSiteInstanceGroups | When enabled, puts non-isolated sites in separate SiteInstances in a default SiteInstanceGroup (per BrowsingInstance), rather than sharing a default SiteInstance. | ✅ |
| kSiteIsolationForCrossOriginOpenerPolicy | 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. | ❌ |
| kDisableProcessReuse | When enabled, OOPIFs will not try to reuse compatible processes from unrelated tabs. | ❌ |
| kSpareRendererForSitePerProcess | 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. | ✅ |
| kStrictOriginIsolation | Controls whether site isolation should use origins instead of scheme and eTLD+1. | ❌ |
| kSuppressDifferentOriginSubframeJSDialogs | Disallows window.{alert, prompt, confirm} if triggered inside a subframe that
is not same origin with the main frame. | ❌ |
| kSyntheticPointerActions | Dispatch touch events to "SyntheticGestureController" for events from Devtool Protocol Input.dispatchTouchEvent to simulate touch events close to real OS events. | ❌ |
| kTouchDragAndContextMenu | 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). | ❌ |
| kTrackEmptyRendererProcessesForReuse | 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. | ✅ |
| kUnrestrictedSharedArrayBuffer | 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 | ❌ |
| kVerifyDidCommitParams | Enables comparing browser and renderer's DidCommitProvisionalLoadParams in RenderFrameHostImpl::VerifyThatBrowserAndRendererCalculatedDidCommitParamsMatch. | ✅ |
| kValidateCommitOriginAtCommit | 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. | ❌ |
| kV8VmFuture | Enables future V8 VM features | ❌ |
| kWebAppSystemMediaControls | Enables per PWA System Media Controls. Only supported on Windows and macOS. | ❌ |
| kWebAssemblyBaseline | Enable WebAssembly baseline compilation (Liftoff). | ✅ |
| kEnableExperimentalWebAssemblySharedEverything | Enables WebAssembly Shared-Everything Threads. | ❌ |
| kWebAssemblyLazyCompilation | Enable WebAssembly lazy compilation (JIT on first call). | ✅ |
| kWebAssemblyTiering | Enable WebAssembly tiering (Liftoff -> TurboFan). | ✅ |
| kWebAssemblyTrapHandler | Enable WebAssembly trap handler. | ❌ |
| kWebAssemblyStackSwitching | Enable WebAssembly Core stack switching. https://github.com/WebAssembly/stack-switching | ❌ |
| kWebBluetooth | Controls whether the Web Bluetooth API is enabled: https://webbluetoothcg.github.io/web-bluetooth/ | ❌ |
| kWebBluetoothNewPermissionsBackend | 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. | ❌ |
| kWebOtpBackendAuto | Controls which backend is used to retrieve OTP on Android. When disabled we use User Consent API. | ❌ |
| kWebPayments | The JavaScript API for payments on the web. | ✅ |
| kWebUICodeCache | Enables code caching for scripts used on WebUI pages. | ❌ |
| kWebUIBundledCodeCache | Enables build-time generated resource-bundled code caches for WebUI pages. See crbug.com/375509504 for details. | ❌ |
| kWebUIJSErrorReportingExtended | 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. | ✅ |
| kWebUIInProcessResourceLoadingV2 | 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 | ❌ |
| kWebUsb | Controls whether the WebUSB API is enabled: https://wicg.github.io/webusb | ❌ |
| kWebViewPrefetchHighestPrefetchPriority | Apply | ✅ |
| kWebXr | Controls whether the WebXR Device API is enabled. | ❌ |
| kIOThreadInteractiveThreadType | Sets IO threads to kInteractive all the time. | ❌ |
| kPwaNavigationCapturing | — | ✅ |
| kSubframeProcessShutdownDelay | 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. | ✅ |
| kAIPageContentIncludePopupWindows | — | ✅ |
| kAIPageContentMissingSubframesFailSilently | — | ✅ |
| kAdAuctionSignals | — | ✅ |
| kAvoidTrustedParamsCopies | — | ✅ |
| kUnthrottleAsyncTouchMoves | Blocks the misspelling suggestion span in composition mode. | ❌ |
| kBlockMidiByDefault | — | ✅ |
| kComputePressureRateObfuscationMitigation | — | ✅ |
| kCrashReportingAPIMoreContextData | The delay for creating the Android spare renderer in SpareRenderProcessHostManager::PrepareForFutureRequests. The parameter will not be effective if | ✅ |
| kOverrideCrashReportingEndpoint | The delay for creating the Android spare renderer in
SpareRenderProcessHostManager::PrepareForFutureRequests.
The parameter will not be effective if
| ✅ |
| kLowerHighResolutionTimerThreshold | — | ❌ |
| kAllowDatapipeDrainedAsBytesConsumerInBFCache | The timeout for the created spare renderer after each navigation on Android. | ✅ |
| kAllowDevToolsMainThreadDebuggerForMultipleMainFrames | The timeout for the created spare renderer after each navigation on Android. The created renderer will be destroyed after the timeout. A negative value indicates that no timeout will be set for the spare renderer. | ✅ |
| kAllowURNsInIframes | The lower memory limit to create a spare renderer after each navigation on | ✅ |
| kDisplayWarningDeprecateURNIframesUseFencedFrames | Kill the spare renderer when the browser goes to the background to free | ❌ |
| kAudioWorkletThreadRealtimePriority | — | ✅ |
| kAudioWorkletThreadPool | — | ✅ |
| kAutofillFixFieldsAssociatedWithNestedFormsByParser | — | ✅ |
| kAutofillSendUnidentifiedKeyAfterFill | Enables the audio-service sandbox. This feature has an effect only when the | ❌ |
| kAutoSpeculationRules | — | ❌ |
| kBFCacheOpenBroadcastChannel | — | ✅ |
| kBFCacheWithSharedWorker | — | ✅ |
| kBackForwardCacheDWCOnJavaScriptExecution | Set a time limit for the page to enter the cache. Disabling this prevents flakes during testing. | ❌ |
| kBackForwardCachePauseMicrotasks | BackForwardCache is disabled on low memory devices. The threshold is defined via a field trial param: "memory_threshold_for_back_forward_cache_in_mb" | ❌ |
| kBackgroundResourceFetch | "BackForwardCacheMemoryControls" is checked before "BackForwardCache". It means the low memory devices will activate neither the control group nor the experimental group of the BackForwardCache field trial. | ✅ |
| kBakedGamutMapping | — | ❌ |
| kBackgroundTracingPerformanceMark | — | ❌ |
| kBoostImageSetLoadingTaskPriority | 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. | ✅ |
| kBoostFontLoadingTaskPriority | — | ✅ |
| kBoostVideoLoadingTaskPriority | — | ✅ |
| kBoostRenderBlockingStyleLoadingTaskPriority | If enabled, makes battery saver request heavy align wake ups. | ✅ |
| kBoostNonRenderBlockingStyleLoadingTaskPriority | — | ✅ |
| kBrowsingTopicsBypassIPIsPubliclyRoutableCheck | Allows the decision to bypass redirect checks to be made based on the | ❌ |
| kBrowsingTopicsDocumentAPI | — | ✅ |
| kBrowsingTopicsParameters | Clear the window.name property for the top-level cross-site navigations that swap BrowsingContextGroups(BrowsingInstances). | ✅ |
| kCacheStorageCodeCacheHintHeader | — | ❌ |
| kCanvas2DHibernation | Enable drawing under System Bars within DisplayCutout. | ❌ |
| kCanvas2DHibernationDefer | — | ❌ |
| kCanvas2DHibernationNoSmallCanvas | — | ❌ |
| kCanvas2DHibernationReleaseTransferMemory | 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. | ❌ |
| kCapStringBuilderLengthTo1GiB | — | ✅ |
| kCaptureJSExecutionLocation | — | ✅ |
| kClearSiteDataPrefetchPrerenderCache | Enables RPs to enhance autofill with federated accounts fetched by the FedCM API. | ✅ |
| kCSSFontComparisonFix | — | ✅ |
| kClientHintsDPR_DEPRECATED | — | ✅ |
| kClientHintsDeviceMemory_DEPRECATED | — | ✅ |
| kClientHintsResourceWidth_DEPRECATED | — | ✅ |
| kClientHintsViewportWidth_DEPRECATED | Enables the spec-compliant 'error' attribute in IdentityCredentialError while deprecating the legacy 'code' attribute. | ✅ |
| kCompositedAnimationsForceMainFrames | Enables usage of the FedCM IdP Registration API. | ✅ |
| kCompressParkableStrings | — | ✅ |
| kLessAggressiveParkableString | — | ✅ |
| kConsumeCodeCacheOffThread | — | ✅ |
| kContentCaptureConstantStreaming | Whether a memory pressure signal in a renderer should be forwarded to Blink isolates. Forwarding the signal triggers a GC (critical) or starts | ✅ |
| kContentSchemeIsLocal | Enables the Digital Credential API. | ❌ |
| kCreateImageBitmapOrientationNone | Puts network quality estimate related Web APIs in the holdback mode. When the | ❌ |
| kDeclarativeCSSModulesUseDataURI | — | ❌ |
| kDataUrlWorkerOpaqueOrigin | — | ❌ |
| kDeferRendererTasksAfterInput | This flag unconditionally enables the SQLite backing store. Used for | ✅ |
| kDelayAsyncScriptExecution | — | ❌ |
| kDelayLayerTreeViewDeletionOnLocalSwap | — | ✅ |
| kDevToolsImprovedNetworkError | — | ❌ |
| kDevToolsWebMCPSupport | — | ❌ |
| kDirectCompositorThreadIpc | — | ❌ |
| kDisableArrayBufferSizeLimitsForTesting | — | ❌ |
| kDiscardInputEventsToRecentlyMovedFrames | When NavigationNetworkResponseQueue is enabled, the browser will schedule some tasks related to navigation network responses in a kHigh priority | ❌ |
| kDropInputEventsWhilePaintHolding | — | ✅ |
| kEnableDevtoolsDeepLinkViaExtensibilityApi | If the network service is enabled, runs it in process. | ❌ |
| kEnableLazyLoadImageForInvisiblePage | — | ✅ |
| kEnforceNoopenerOnBlobURLNavigation | — | ✅ |
| kEventTimingIgnorePresentationTimeFromUnexpectedFrameSource | — | ❌ |
| kExpandCompositedCullRect | — | ✅ |
| kFadeInScrollbarWhenMouseWheelMayBegin | — | ✅ |
| kFencedFrames | — | ✅ |
| kFencedFramesCrossOriginEventReporting | 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. | ✅ |
| kFencedFramesAutomaticBeaconCredentials | — | ✅ |
| kFencedFramesCrossOriginAutomaticBeaconData | Fires the | ✅ |
| kFencedFramesLocalUnpartitionedDataAccess | — | ❌ |
| kFencedFramesReportEventHeaderChanges | 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 | ✅ |
| kFencedFramesSrcPermissionsPolicy | — | ✅ |
| kExemptUrlFromNetworkRevocationForTesting | When a Web application is video-capturing a tab, it can use the Region
Capture API to crop the resulting video.
- If | ❌ |
| kFetchDestinationJsonCssModules | When a Web application is video-capturing a tab, it can use the Region Capture API to crop the resulting video. - If | ❌ |
| kFileHandlingIcons | RenderDocument: | ❌ |
| kFileSystemUrlNavigation | RenderDocument: Currently, a RenderFrameHost represents neither a frame nor a document, but a frame in a given process. A new one is created after a different-process | ❌ |
| kFileSystemUrlNavigationForChromeAppsOnly | RenderDocument: Currently, a RenderFrameHost represents neither a frame nor a document, but a frame in a given process. A new one is created after a different-process navigation. The goal of RenderDocument is to get a new one for each document instead. | ✅ |
| kFilteringScrollPrediction | RenderDocument: Currently, a RenderFrameHost represents neither a frame nor a document, but a frame in a given process. A new one is created after a different-process navigation. The goal of RenderDocument is to get a new one for each document instead. Design doc: https://bit.ly/renderdocument Main bug tracker: https://crbug.com/936696 | ❌ |
| kFledge | If enabled, set a soft limit on the number of renderer processes on | ✅ |
| kFledgeBiddingAndAuctionServer | If enabled, set a soft limit on the number of renderer processes on Android, after which Chrome will reuse existing processes when possible. This diverges from current Clank behavior, where we do not set any upper bound and instead delegate that to the system. 42 is approximated from 8GBs ((8192 - 1024) / (16384 / 96)), and has nothing to do with Douglas | ✅ |
| kFledgeOriginScopedKeys | 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 | ✅ |
| kBlockPartialResponseWithoutRange | Disabled by default on ChromeOS because of ChromeOS-only regressions at crbug.com/458372810. | ✅ |
| kFledgeConsiderKAnonymity | — | ❌ |
| kFledgeEnforceKAnonymity | — | ❌ |
| kFledgeLimitSelectableBuyerAndSellerReportingIds | — | ❌ |
| kFledgeMaxGroupLifetimeFeature | — | ✅ |
| kFledgeEnableSampleDebugReportOnCookieSetting | — | ❌ |
| kFledgeSampleDebugReports | — | ✅ |
| kFledgeEnforcePermissionPolicyContributeOnEvent | 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. | ❌ |
| kFledgeDisableLocalAdsAuctions | — | ❌ |
| kFledgeLimitSelectableBuyerAndSellerReportingIdsFetchedFromKAnon | If enabled, UI thread tasks can check ServiceWorker registration information | ❌ |
| kFledgeTruncateSelectableBuyerAndSellerReportingIdsToKAnonLimit | Supports x-on-meet-coop interop implementation. TODO: crbug.com/398741358 - clean up this temporary workaround after https://crbug.com/333029146 replaces COOP restrict-properties. | ❌ |
| kForceHighPerformanceGPUForWebGL | — | ❌ |
| kForceOffTextAutosizing | If enabled, GetUserMedia API will only work when the concerned tab is in focus | ✅ |
| kForceSkcmsICCParsing | — | ✅ |
| kForceSkExifCppParsing | 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. | ❌ |
| kForceWebContentsDarkMode | Trial to disable synchronous draw for synchronous compositor (ie Android | ❌ |
| kFrameMetadataObserver | Enabled by default on Android only; see https://crbug.com/1206770. | ✅ |
| kFreezeSharedWorker | — | ❌ |
| kFrequencyCappingForLargeStickyAdDetection | This feature param (true by default) controls whether sites are persisted across restarts. | ✅ |
| kFrequencyCappingForOverlayPopupDetection | This feature param controls the maximum size of stored sites. Only used | ✅ |
| kGMSCoreEmoji | — | ✅ |
| kGetDisplayMediaIgnoreAudioPermissionFailures | This feature param controls the period of time for which the stored sites | ✅ |
| kIgnoreInputWhileHidden | Disallows window.{alert, prompt, confirm} if triggered inside a subframe that
is not same origin with the main frame. | ❌ |
| kImageLoadingPrioritizationFix | Dispatch touch events to "SyntheticGestureController" for events from Devtool Protocol Input.dispatchTouchEvent to simulate touch events close to real OS events. | ❌ |
| kImageReplacement | — | ❌ |
| kInitialWebUIWithoutExtensions | 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 | ❌ |
| kIndexedDBCompressValuesWithSnappy | — | ✅ |
| kInlineScriptCache | — | ❌ |
| kInputPredictorTypeChoice | 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 | ❌ |
| kIntensiveWakeUpThrottling | — | ✅ |
| kInteractiveDetectorIgnoreFcp | 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. | ❌ |
| kIsolateSandboxedIframes | 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. | ✅ |
| kKeepAliveInBrowserMigration | — | ✅ |
| kLimitLayerMergeDistance | Windows enabled since 124. | ✅ |
| kLCPCriticalPathPredictor | — | ❌ |
| kLCPScriptObserver | — | ❌ |
| kLCPTimingPredictorPrerender2 | — | ❌ |
| kLCPPAutoPreconnectLcpOrigin | — | ❌ |
| kLCPPDeferUnusedPreload | When this feature is enabled, the accessibility tree will be requested to signal content changed events next to a boolean value that will determine if this event should cause a nodes's children to be rerendered if there've been structural changes. | ❌ |
| kLCPPFontURLPredictor | — | ❌ |
| kLCPPInitiatorOrigin | — | ✅ |
| kLCPPLazyLoadImagePreload | — | ✅ |
| kPreloadSystemFonts | — | ❌ |
| kLCPPMultipleKey | — | ✅ |
| kLCPPPrefetchSubresource | — | ❌ |
| kLCPPPrefetchSubresourceAsync | — | ❌ |
| kHttpDiskCachePrewarming | — | ❌ |
| kLegacyParsingOfXContentTypeOptions | namespace features | ❌ |
| kLightweightNoStatePrefetch | namespace features | ❌ |
| kLoadingTasksUnfreezable | namespace features | ✅ |
| kLogUnexpectedIPCPostedToBackForwardCachedDocuments | namespace features | ✅ |
| kLowPriorityAsyncScriptExecution | namespace features | ✅ |
| kMixedContentAutoupgrade | namespace features | ❌ |
| kMemoryCacheIntelligentPruning | namespace features | ❌ |
| kMemoryCacheStrongReferenceExtensions | namespace features | ❌ |
| kMemoryCacheStrongReference | namespace features | ✅ |
| kMemoryPurgeOnFreeze | namespace features | ❌ |
| kMemoryPurgeOnFreezeLimit | namespace features | ❌ |
| kMemorySaverModeRenderTuning | namespace features | ❌ |
| kMHTML_Improvements | namespace features | ❌ |
| kNavigationPredictor | namespace features | ✅ |
| kNavigationPredictorNewViewportFeatures | namespace features | ❌ |
| kNoForcedFrameUpdatesForWebTests | namespace features | ❌ |
| kNoReferrerForPreloadFromSubresource | namespace features | ✅ |
| kNoThrottlingVisibleAgent | namespace features | ❌ |
| kNoThrowForCSPBlockedWorker | namespace features | ✅ |
| kOpenAllUrlsOrFilesOnDrop | namespace features | ✅ |
| kOptimizeHTMLElementUrls | namespace features | ✅ |
| kOriginAgentClusterDefaultEnabled | namespace features | ❌ |
| kPaintHolding | namespace features | ✅ |
| kPath2DPaintCache | namespace features | ❌ |
| kDedicatedWorkerAblationStudyEnabled | namespace features | ❌ |
| kUpdatedDeviceMemoryLimitsFor2026 | namespace features | ✅ |
| kUseAncestorRenderFrameForWorker | namespace features | ✅ |
| kUseSandboxTokenForOriginDerivation | namespace features | ✅ |
| kPrecompileInlineScripts | namespace features | ❌ |
| kPreferCompositingToLCDText | namespace features | ❌ |
| kPreloadingEagerHoverHeuristics | namespace features | ❌ |
| kPreloadingEagerViewportHeuristics | namespace features | ❌ |
| kPreloadingHeuristicsMLModel | namespace features | ❌ |
| kPreloadingModerateViewportHeuristics | namespace features | ❌ |
| kPrerender2MemoryControls | namespace features | ✅ |
| kPrerender2EarlyDocumentLifecycleUpdate | namespace features | ❌ |
| kPrivateAggregationApi | namespace features | ✅ |
| kPrivateAggregationApiProtectedAudienceAdditionalExtensions | namespace features | ✅ |
| kProcessHtmlDataImmediately | namespace features | ❌ |
| kForceProduceCompileHints | namespace features | ❌ |
| kLocalCompileHints | namespace features | ✅ |
| kQuoteEmptySecChUaStringHeadersConsistently | namespace features | ✅ |
| kReducedReferrerGranularity | namespace features | ✅ |
| kReleaseResourceStrongReferencesOnMemoryPressure | namespace features | ✅ |
| kReleaseResourceDecodedDataOnMemoryPressure | namespace features | ✅ |
| kRemoveCommitRedirectUrlsArray | namespace features | ✅ |
| kRemovePurposeHeaderForPrefetch | namespace features | ✅ |
| kReuseNoStoreImageOnSameSrcReassignment | namespace features | ✅ |
| kRenderBlockingFonts | namespace features | ✅ |
| kRenderSizeInScoreAdBrowserSignals | namespace features | ✅ |
| kResamplingInputEvents | namespace features | ❌ |
| kResamplingScrollEvents | namespace features | ✅ |
| kResampleScrollEventsForFling | namespace features | ❌ |
| kRestrictLinkHeaderOnSubresource | namespace features | ❌ |
| kRustyBmpFeature | namespace features | ❌ |
| kUnrestrictSpellingAndGrammarForTesting | namespace features | ❌ |
| kSafelistPaytoToRegisterProtocolHandler | namespace features | ❌ |
| kPausePagesPerBrowsingContextGroup | namespace features | ❌ |
| kShowHudDisplayForPausedPages | namespace features | ✅ |
| kScriptStreaming | namespace features | ✅ |
| kScriptStreamingForNonHTTP | namespace features | ✅ |
| kScrollPredictorFilteringBypassOnSynthetic | namespace features | ❌ |
| kScrollPredictorRefinedHasPrediction | namespace features | ❌ |
| kScrollPredictorSyntheticKalman | namespace features | ❌ |
| kSecPurposePrefetchHeaderNoStatePrefetch | namespace features | ✅ |
| kSecPurposePrefetchHeaderRelPrefetch | namespace features | ✅ |
| kSendCnameAliasesToSubresourceFilterFromRenderer | namespace features | ❌ |
| kSetIntervalWithoutClamp | namespace features | ✅ |
| kSharedStorageWorkletSharedBackingThreadImplementation | namespace features | ❌ |
| kSharedStorageCreateWorkletCustomDataOrigin | namespace features | ✅ |
| kSharedStorageSelectURLSavedQueries | namespace features | ✅ |
| kSharedStorageAPIEnableWALForDatabase | namespace features | ✅ |
| kSpeculativeImageDecodes | namespace features | ❌ |
| kSpeculativeServiceWorkerWarmUp | namespace features | ✅ |
| kServiceWorkerSyntheticResponse | namespace features | ❌ |
| kBoostRenderProcessForLoading | namespace features | ✅ |
| kStopInBackground | namespace features | ❌ |
| kStreamlineRendererInit | namespace features | ❌ |
| kSubSampleWindowProxyUsageMetrics | namespace features | ✅ |
| kSupportOpeningDraggedLinksInSameTab | namespace features | ❌ |
| kTaskAttributionTraceMicrotaskTaskState | namespace features | ✅ |
| kThreadedBodyLoader | namespace features | ❌ |
| kThreadedPreloadScanner | namespace features | ❌ |
| kThrottleInstallingServiceWorker | namespace features | ✅ |
| kThrottleUnimportantFrameTimers | namespace features | ❌ |
| kUACHOverrideBlank | namespace features | ❌ |
| kEmulateLoadStartedForInspectorOncePerResource | namespace features | ❌ |
| kDevToolsAllowPopoverForcing | namespace features | ✅ |
| kUnloadBlocklisted | namespace features | ❌ |
| kUrgentMainFrameForInput | namespace features | ❌ |
| kURLPatternDummyURLCanonicalization | namespace features | ✅ |
| kUsePageViewportInLCP | namespace features | ✅ |
| kUsePersistentCacheForCodeCache | namespace features | ❌ |
| kUseSnappyForParkableStrings | namespace features | ❌ |
| kUseZstdForParkableStrings | namespace features | ✅ |
| kVSyncDecoding | namespace features | ❌ |
| kVSyncEncoding | namespace features | ❌ |
| kVisualRectMappingApplyLocalVisualViewportTransform | namespace features | ✅ |
| kWebBluetoothCancelConnect | namespace features | ✅ |
| kWebRtcUseCaptureBeginTimestamp | namespace features | ✅ |
| kWebRtcAudioSinkUseTimestampAligner | namespace features | ❌ |
| kWebRtcPqcForDtls | namespace features | ❌ |
| kWebRtcUseMediaThreadTypes | namespace features | ❌ |
| kRendererMainIsDefaultThreadTypeForWebRTC | namespace features | ❌ |
| kWebAppBorderless | namespace features | ❌ |
| kWebAppEnableScopeExtensionsBySite | namespace features | ❌ |
| kWebAppEnableScopeExtensionsForIsolatedWebApps | namespace features | ✅ |
| kWebAppManifestLocalization | namespace features | ✅ |
| kWebAppManifestLockScreen | namespace features | ❌ |
| kWebAppMigrationApi | namespace features | ❌ |
| kWebAudioDeferPullStatusUpdate | namespace features | ❌ |
| kWebFontsCacheAwareTimeoutAdaption | namespace features | ✅ |
| kWebRtcHideLocalIpsWithMdns | namespace features | ✅ |
| kWebRtcIgnoreUnspecifiedColorSpace | namespace features | ❌ |
| kWebRtcUseMinMaxVEADimensions | namespace features | ❌ |
| kWebRtcAllowDataChannelRecordingInWebrtcInternals | namespace features | ✅ |
| kWebUSBTransferSizeLimit | namespace features | ✅ |
| kWebviewAccelerateSmallCanvases | namespace features | ❌ |
| kWorkerThreadRespectTermRequest | namespace features | ✅ |
| kXrDevice | namespace features | ❌ |
| kUnframedIwa | namespace features | ❌ |
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 | — | ❌ |
| 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 | — | ✅ |
| 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 | ✅ |
| AncestorRevealingNewSpec | Enables the new behavior for this spec change: https://github.com/whatwg/html/pull/11457 https://issues.chromium.org/issues/433545121 https://chromestatus.com/feature/5179013869993984 | ✅ |
| 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 | — | ❌ |
| ApproximateGeolocationPermissionAPI | — | ❌ |
| ApproximateGeolocationWebVisibleAPI | — | ❌ |
| AppTitle | — | ❌ |
| AriaActions | — | ❌ |
| AriaNotify | — | ❌ |
| AriaNotifyV2 | — | ❌ |
| AriaRowColIndexText | — | ✅ |
| AsyncSetCookie | When enabled, perform async IPCs from CookieJar::SetCookie to the network service. | ✅ |
| 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 | — | ❌ |
| AuthenticatorPasswordsOnlyImmediateRequests | — | ❌ |
| AuthorSpecifiedLayoutScrollSnapBehavior | https://drafts.csswg.org/css-scroll-snap | ✅ |
| AutoDarkMode | — | ❌ |
| Autofill | — | ❌ |
| AutofillEvent | — | ❌ |
| AutomationControlled | — | ❌ |
| AutoPictureInPictureVideoHeuristics | — | ❌ |
| AvoidForcedLayoutOnInvisibleDocumentClose | — | ✅ |
| 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 | — | ❌ |
| 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 | — | ❌ |
| CallExitNodeWithoutLayoutObject | — | ✅ |
| Canvas2dCanvasFilter | — | ❌ |
| Canvas2dGPUTransfer | — | ❌ |
| 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. | ✅ |
| ClipboardChangeEvent | Enables clipboardchange event API for listening for changes to the system clipboard https://chromestatus.com/feature/5085102657503232 | ✅ |
| ClipboardEventTargetCanBeFocusedElement | This ensures that clipboard event fires on a target node which is focused in case no visible selection is present. crbug.com/40735783 | ✅ |
| ClipboardItemGetTypeCounter | Allows usecounter in | ✅ |
| 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 | ❌ |
| CommandEventNotComposed | Makes the command event not composed. Launched in M141. https://github.com/whatwg/html/pull/11255 https://issues.chromium.org/issues/414826954 | ✅ |
| 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 | — | ❌ |
| ComputePressureOwnContributionEstimate | — | ❌ |
| 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 | ✅ |
| 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 | ✅ |
| CssFitWidthText | crbug.com/417306102 | ❌ |
| CssFitWidthTextReshaping | crbug.com/417306102 | ❌ |
| 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 | ❌ |
| 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 | — | ❌ |
| CSSLineClampLinesAndHeight | This flag makes | ❌ |
| CSSListCounterAccounting | Implements | ❌ |
| CSSLogicalCombinationPseudo | Allows pseudo-element selectors within logical combination pseudo- classes, e.g. :is(div::before). https://crbug.com/444386484 | ❌ |
| CSSMarkerNestedPseudoElement | — | ✅ |
| 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 | ❌ |
| CSSPseudoPlayingPaused | When an audio, video, or similar resource is "playing" or "paused". https://www.w3.org/TR/selectors-4/#video-state | ❌ |
| 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. | ✅ |
| 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. | ❌ |
| 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 | ❌ |
| 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 | ✅ |
| 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 | ❌ |
| 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 | ❌ |
| DateTimeLocalArabicCommaWorkaround | crbug.com/40153320 | ✅ |
| 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 | — | ❌ |
| 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 in M146 and can be removed in M148. | ✅ |
| EditContextAssignmentAsPerSpec | See https://crbug.com/443612843 | ❌ |
| EditContextHandleTextOrSelectionUpdateDuringComposition | See https://crbug.com/379170477 | ❌ |
| EditEmojiTagSequence | Enables proper backspace handling for emoji tag sequences (e.g., subdivision flags like 🏴) per UTS #51 ED-14a. | ✅ |
| 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 | ❌ |
| 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 | — | ✅ |
| 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 | ✅ |
| FixStrikethroughToggleInEmptyContentEditable | Fix for strikethrough toggle not working in empty contenteditable. See https://crbug.com/427915243 | ✅ |
| 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 | — | ❌ |
| FontFallbackForTabSize | — | ✅ |
| FontFamilyPostscriptMatchingCTMigration | — | ❌ |
| FontFamilyStyleMatchingCTMigration | — | ❌ |
| FontFeatureSettingsDescriptor | crbug.com/40398871 | ✅ |
| FontFormatAvar2 | — | ✅ |
| FontLanguageOverride | crbug.com/41170551 | ✅ |
| FontMatchAliasesAsLastResort | — | ✅ |
| FontSrcLocalMatching | — | ❌ |
| 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 | ❌ |
| FormControlRestoreStateIfAutocompleteOff | TODO(crbug.com/1419161): Remove this feature after M113 has been stable
for a few weeks or more. This is a kill switch that, when enabled, goes
back to the old behavior, which was to restore the state for <input>
and <select> even when they had | ❌ |
| 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 | Removed status stable due to https://crbug.com/456164629. | ❌ |
| 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. | ❌ |
| HTMLInterestForAttribute | Adds support for the | ✅ |
| HTMLInterestForInterestHintPseudo | 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 | — | ❌ |
| ImprovedSourceRetargeting | Improved retargeting behavior of ToggleEvent.source and CommandEvent.source to match Event.relatedTarget. crbug.com/420639769 Enabled in M142, can be removed in M144. | ✅ |
| IncomingCallNotifications | — | ❌ |
| InertElementNonEditable | — | ✅ |
| InfiniteCullRect | If a painting bug no longer reproduces with this feature enabled, then the bug is caused by incorrect cull rects. | ❌ |
| InheritUserModifyWithoutContenteditable | — | ✅ |
| 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 | — | ✅ |
| InteractivityInertImportant | Adds | ✅ |
| InterestGroupsInSharedStorageWorklet | — | ✅ |
| IntersectionObserverCompositedAnimationsForceMainFrames | If enabled, BeginMainFrame will always be requested when there are active IntersectionObservers and also active composited animations. | ✅ |
| InvertedColors | — | ❌ |
| InvisibleSVGAnimationThrottling | — | ✅ |
| JavaScriptCompileHintsPerFunctionMagicRuntime | — | ❌ |
| JavaScriptSourcePhaseImports | — | ❌ |
| KeyboardAccessibleTooltip | — | ❌ |
| KeyboardFocusabilityAfterFindInPage | Fixes a bug after find-in-page tries to return focus to the page. This change shipped in M142, and this flag can be removed in M144. | ✅ |
| 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 | — | ❌ |
| LayoutIgnoreMarginsForSticky | — | ❌ |
| LayoutImageEmptyNaturalSizeBeforeSizeAvailable | — | ✅ |
| LayoutReinsertOnInFlowStateChange | — | ✅ |
| 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 | ❌ |
| LinkBlurImprovement | Improves the logic for removing focus from a currently focused <a> element when its href attribute is removed by considering other ways that an <a> may be focusable. Shipped in M142, should be safe to remove in M144. https://issues.chromium.org/issues/443585794 | ✅ |
| ListOwnerMustHaveCSSBox | — | ✅ |
| LocalNetworkAccessNonSecureContextAllowed | Reverse origin trial allowing Local Network Access requests on non-secure contexts (but still requiring a permission grant from the user). | ❌ |
| LocalNetworkAccessPermissionPolicy | — | ❌ |
| LocalNetworkAccessSplitPermissions | — | ❌ |
| 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 | — | ❌ |
| MediaElementVolumeGreaterThanOne | — | ❌ |
| MediaEngagementBypassAutoplayPolicies | Set to reflect the kMediaEngagementBypassAutoplayPolicies feature. | ❌ |
| MediaLatencyHint | — | ❌ |
| MediaPlaybackWhileNotVisiblePermissionPolicy | — | ❌ |
| MediaQueryNavigationControls | — | ❌ |
| MediaSession | — | ✅ |
| MediaSessionChapterInformation | — | ✅ |
| MediaSourceExperimental | — | ❌ |
| MediaSourceExtensionsForWebCodecs | — | ❌ |
| 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 | — | ❌ |
| 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. Behind a flag for safer rollout. 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. | ❌ |
| NoAriaDetailsForAnchorPos | This is a killswitch flag, shipped in M144. It can be removed in M146. | ✅ |
| 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 | ✅ |
| 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. | ✅ |
| 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 | — | ✅ |
| 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. | ✅ |
| 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 | ✅ |
| 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. | ❌ |
| 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. | ❌ |
| ReduceUserAgentDataLinuxPlatformVersion | If enabled, the platform version in User-Agent Data will be removed. This feature is limited to Linux only. | ❌ |
| 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. | ✅ |
| 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 | ❌ |
| 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. | ✅ |
| 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 | ✅ |
| 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() | ✅ |
| ScrollbarColor | — | ✅ |
| ScrollbarGutterBugFix | — | ✅ |
| ScrollbarWidth | — | ✅ |
| 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. | ✅ |
| 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 | ❌ |
| 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 | — | ✅ |
| 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 | — | ❌ |
| SpecialRulesForNestedH1Elements | This is a flag that re-enables some deprecated/removed "special rules" that apply to the styles of an <h1> element nested within <article>, <aside>, <nav>, or <section>. It is disabled by default, and here as a Finch killswitch only. This was shipped (disabled) in M140, and the flag can be removed in M142. | ❌ |
| SpellCheckCustomDictionaryAPI | API for accessing the Custom Dictionary for spell checking purpose. https://chromestatus.com/feature/6185007701557248 | ❌ |
| SplitTextNotCleanupDummySpans | — | ✅ |
| 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 | ✅ |
| StandardizedBrowserZoom | See https://github.com/w3c/csswg-drafts/issues/9398 | ✅ |
| StandardizedBrowserZoomOptOut | — | ❌ |
| 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 | — | ✅ |
| SvgIgnoreNegativeEllipseRadii | — | ✅ |
| SvgInlineRootPixelSnappingScaleAdjustment | — | ❌ |
| SvgLengthListClearOnParsingFailure | — | ✅ |
| SvgLengthResolveUnparsedValue | — | ✅ |
| SvgNumberListClearOnParsingFailure | — | ✅ |
| SvgPartitionSVGDocumentResourcesInMemoryCache | — | ✅ |
| SvgPathLengthCssProperty | — | ❌ |
| SvgScriptElementAsyncAttribute | — | ✅ |
| SvgSizingWithPreserveAspectRatioNone | — | ❌ |
| SvgTextPathPathAttribute | — | ✅ |
| SvgTransformOnNestedSvgElement | — | ✅ |
| 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. | ✅ |
| 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 | ✅ |
| TextSpacingTrimYuGothicUI | crbug.com/331123676 | ✅ |
| 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 | — | ❌ |
| 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. | ❌ |
| 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 | — | ✅ |
| 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 | — | ❌ |
| WebAssemblyCustomDescriptors | https://chromestatus.com/feature/6024844719947776 | ❌ |
| 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 | ❌ |
| 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 | — | ❌ |
| 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 | — | ✅ |
| WebTransportCustomCertificates | — | ✅ |
| 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 | — | ✅ |
| WindowControlsOverlay | — | ❌ |
| 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 |
|---|---|---|
| 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 | — |
| 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 | — |
| deviceScaleAdjustment | 1.0 | double |
| 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 | — |
| textAutosizingEnabled | false | — |
| textSizeAdjustEnabled | false | — |
| textAutosizingWindowSizeOverride | — | gfx::Size |
| 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:
{
"default_apps": "",
"safebrowsing_for_trusted_sources_enabled": "",
"disable_screenshots": "",
"download_bubble": {
"partial_view_enabled": "",
"partial_view_impressions": ""
},
"profile": {
"ephemeral_mode": "",
"creation_time": "",
"icon_version": "",
"icon_win11_format": "",
"exit_type": "",
"avatar_index": "",
"name": "",
"using_default_name": "",
"using_default_avatar": "",
"using_gaia_avatar": "",
"managed_users": "",
"managed_accounts": {
"restriction": {
"value": "",
"all_managed_accounts": ""
}
},
"enterprise_profile_creation": {
"keep_existing_data_by_default": ""
},
"content_settings": {
"had_three_consecutive_denies": {
"notifications": ""
},
"data_url_in_svg_use_enabled": "",
"partitioned_blob_url_usage": "",
"clear_window_name_for_new_browsing_context_group": ""
},
"reduce_accept_language_enabled": "",
"last_used": "",
"last_active_profiles": "",
"profiles_created": "",
"created_by_version": "",
"info_cache": "",
"profiles_order": "",
"web_app": {
"install": {
"forcelist": ""
},
"install_by_user_enabled": "",
"policy_settings": ""
},
"managed_configuration": {
"list": "",
"last_hash": ""
},
"isolated_web_app": {
"install": {
"forcelist": "",
"user_install_enabled": "",
"pending_initialization_count": ""
}
},
"default_content_setting_values": {
"protected_media_identifier": ""
},
"extensions": {
"activity_log": {
"num_consumers_active": ""
}
},
"browser_guest_enabled": "",
"browser_guest_enforced": "",
"add_person_enabled": "",
"force_browser_signin": "",
"picker_availability_on_startup": "",
"picker_shown": "",
"show_picker_on_startup": "",
"web_share": {
"visited_targets": ""
},
"shared_array_buffer_unrestricted_access_allowed": "",
"sandbox_external_protocol_blocked": ""
},
"homepage_is_newtabpage": "",
"homepage": "",
"https_only_mode_enabled": "",
"https_first_balanced_mode_enabled": "",
"https_first_mode_incognito_enabled": "",
"https_only_mode_auto_enabled": "",
"https_upgrade_fallbacks": "",
"https_upgrade_navigations": "",
"important_sites_dialog": "",
"newtab_page_location_override": "",
"session": {
"restore_on_startup": "",
"startup_urls": ""
},
"feedback_allowed": "",
"intl": {
"charset_default": ""
},
"webkit": {
"webprefs": {
"fonts": {
"standard": {
"Arab": "",
"Jpan": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Deva": "",
"Zyyy": ""
},
"serif": {
"Arab": "",
"Jpan": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Deva": "",
"Zyyy": ""
},
"sansserif": {
"Arab": "",
"Jpan": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Deva": "",
"Zyyy": ""
},
"fixed": {
"Jpan": "",
"Hang": "",
"Hans": "",
"Hant": "",
"Deva": "",
"Zyyy": ""
},
"cursive": {
"Zyyy": ""
},
"fantasy": {
"Zyyy": ""
},
"math": {
"Zyyy": ""
}
},
"web_security_enabled": "",
"dom_paste_enabled": "",
"text_areas_are_resizable": "",
"javascript_can_access_clipboard": "",
"tabs_to_links": "",
"allow_running_insecure_content": "",
"force_dark_mode_enabled": "",
"default_font_size": "",
"default_fixed_font_size": "",
"minimum_font_size": "",
"minimum_logical_font_size": "",
"javascript_enabled": "",
"loads_images_automatically": "",
"plugins_enabled": "",
"encrypted_media_enabled": ""
}
},
"Zyyy": "",
"ssl": {
"error_override_allowed": "",
"error_override_allowed_for_origins": "",
"rev_checking": {
"enabled": "",
"required_for_local_anchors": ""
},
"version_min": "",
"version_max": "",
"cipher_suites": {
"blacklist": ""
},
"client_certs": {
"h2_coalescing_hosts": ""
},
"compliance": {
"key_exchange": "",
"cipher": ""
},
"tls13_early_data_enabled": "",
"ech_enabled": ""
},
"search": {
"suggest_enabled": ""
},
"download": {
"prompt_for_download": "",
"default_directory": "",
"directory_upgrade": "",
"extensions_to_open": "",
"extensions_to_open_by_policy": "",
"allowed_urls_for_open_by_policy": ""
},
"net": {
"quic_allowed": "",
"keep_whitespace_data_urls": "",
"network_qualities": "",
"easter_egg_high_score": "",
"network_prediction_options": "",
"network_service_failed_launch_major_version": "",
"max_connections_per_proxy": "",
"max_connections_per_proxy_for_websocket": "",
"explicitly_allowed_network_ports": "",
"compression_dictionary_transport_enabled": "",
"happy_eyeballs_v3_enabled": "",
"ipv6_reachability_override_enabled": ""
},
"default_apps_install_state": "",
"browser": {
"show_home_button": "",
"show_forward_button": "",
"pin_split_tab_button": "",
"pin_contextual_task_button": "",
"split_view_drag_and_drop_enabled": "",
"split_view_drag_and_drop_nudge_shown_count": "",
"split_view_drag_and_drop_nudge_used_count": "",
"gemini_settings": "",
"theme": {
"saved_local_theme": "",
"color_scheme": "",
"color_scheme2": "",
"user_color": "",
"user_color2": "",
"color_variant": "",
"color_variant2": "",
"follows_system_colors": "",
"is_grayscale": "",
"is_grayscale2": ""
},
"default_browser_infobar_last_declined": "",
"default_browser_infobar_last_declined_time": "",
"default_browser_infobar_declined_count": "",
"default_browser_last_declined_time": "",
"default_browser_declined_count": "",
"default_browser_app_menu_first_shown_time": "",
"default_browser_setting_enabled": "",
"suppress_default_browser_prompt_for_version": "",
"default_browser_prompt_refresh_study_group": "",
"window_placement": "",
"window_placement_popup": "",
"app_window_placement": "",
"last_redirect_origin": "",
"dns_interception_checks_enabled": "",
"command_line_flag_security_warnings_enabled": "",
"promotions_enabled": "",
"suppress_unsupported_os_warning": "",
"web_app": {
"create_on_desktop": "",
"create_in_apps_menu": "",
"create_in_quick_launch_bar": ""
},
"disk_cache_dir": "",
"disk_cache_size": "",
"relaunch_notification": "",
"relaunch_notification_period": "",
"relaunch_window": "",
"relaunch_fast_if_outdated": "",
"attempted_to_enable_autoupdate": "",
"last_whats_new_version": "",
"hovercard": {
"image_previews_enabled": "",
"memory_usage_enabled": ""
}
},
"bookmark_bar": {
"hover_count": "",
"navigation_count": ""
},
"contextual_tasks": {
"next_panel_open_count": ""
},
"settings": {
"allowed_domains_for_apps": "",
"a11y": {
"enable_accessibility_image_labels": "",
"enable_accessibility_image_labels_opt_in_accepted": "",
"focus_highlight": "",
"enable_main_node_annotations": "",
"requested_page_colors": "",
"apply_page_colors_only_on_increased_contrast": "",
"page_colors_block_list": "",
"prefers_default_scrollbar_styles": "",
"caretbrowsing": {
"enabled": "",
"show_dialog": ""
}
},
"toast": {
"alert_level": ""
}
},
"extensions": {
"theme": {
"pack": "",
"id": ""
},
"ui": {
"developer_mode": ""
},
"commands": "",
"disabled": ""
},
"autogenerated": {
"theme": {
"color": ""
}
},
"syncing_theme_prefs_migrated_to_non_syncing": "",
"should_read_incoming_syncing_theme_prefs": "",
"plugins": {
"always_open_pdf_externally": ""
},
"accessibility": {
"shown_api_type": ""
},
"partition": {
"default_zoom_level": "",
"per_host_zoom_levels": ""
},
"pinned_tabs": "",
"disable_3d_apis": "",
"enable_unsafe_swiftshader": "",
"enable_a_ping": "",
"enable_referrers": "",
"enable_do_not_track": "",
"import_autofill_form_data": "",
"import_bookmarks": "",
"import_history": "",
"import_home_page": "",
"import_saved_passwords": "",
"import_search_engine": "",
"import_dialog_autofill_form_data": "",
"import_dialog_bookmarks": "",
"import_dialog_history": "",
"import_dialog_saved_passwords": "",
"import_dialog_search_engine": "",
"invert_notification_version_2_shown": "",
"printing": {
"printer_type_deny_list": "",
"print_header_footer": "",
"allowed_background_graphics_modes": "",
"background_graphics_default": "",
"paper_size_default": "",
"print_preview_disabled": "",
"default_destination_selection_rules": "",
"use_system_default_printer": "",
"print_preview_sticky_settings": "",
"silent_printing_enabled": ""
},
"downgrade": {
"snapshot_retention_limit": ""
},
"message_center": {
"disabled_extension_ids": ""
},
"fullscreen": {
"allowed": ""
},
"gcm": {
"push_messaging_application_id_map": "",
"push_messaging_unsubscribed_entries_list": "",
"product_category_for_subtypes": ""
},
"easy_unlock": {
"allowed": "",
"pairing": "",
"device_id": ""
},
"webrtc": {
"ip_handling_policy": "",
"ip_handling_url": "",
"post_quantum_key_agreement": "",
"diagnostic_log_collection_allowed_for_origins": "",
"udp_port_range": "",
"event_logs_collection": "",
"local_ips_allowed_urls": "",
"text_log_collection_allowed": ""
},
"suppress_different_origin_subframe_js_dialogs": "",
"user_agent_reduction": "",
"projects_panel": {
"entrypoint_enabled": "",
"pinned_to_tabstrip": ""
},
"side_panel": {
"is_right_aligned": "",
"companion_pinned_to_toolbar": "",
"id_to_width": "",
"google_search_side_panel_enabled": ""
},
"tab_search": {
"is_right_aligned": "",
"pinned_to_tabstrip": "",
"pinned_to_tabstrip_migration_complete": ""
},
"everything_menu": {
"pinned_to_tabstrip": ""
},
"vertical_tabs": {
"enabled": "",
"expand_on_hover": "",
"enabled_first_time": "",
"collapsed_state": "",
"uncollapsed_width": ""
},
"chrome_data_region_setting": "",
"network_annotation_blocklist": "",
"view_source": {
"line_wrapping_enabled": ""
},
"static_storage_quota_enabled": "",
"media": {
"audio_input_stream_last_time_created": "",
"default_audio_capture_device": "",
"default_video_capture_Device": "",
"storage_id_salt": "",
"engagement": {
"schema_version": ""
},
"autoplay_allowed": "",
"autoplay_whitelist": "",
"block_autoplay": ""
},
"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": ""
},
"profiles": {
"profile_basenames_deleted": ""
},
"user_experience_metrics": {
"stability": {
"other_user_crash_count": "",
"kernel_crash_count": "",
"system_unclean_shutdowns": ""
}
},
"task_manager": {
"window_placement": "",
"column_visibility": "",
"category": "",
"end_process_enabled": ""
},
"savefile": {
"default_directory": "",
"type": ""
},
"selectfile": {
"last_directory": ""
},
"select_file_dialogs": {
"allowed": ""
},
"protocol_handler": {
"allowed_origin_protocol_pairs": "",
"policy": {
"auto_launch_protocols_from_origins": ""
}
},
"restart": {
"last": {
"session": {
"on": {
"shutdown": ""
}
}
}
},
"ntp_footer": {
"settings": {
"extension_attribution": "",
"management_notice": ""
}
},
"was": {
"restarted": ""
},
"ntp": {
"collapsed_foreign_sessions": "",
"custom_background_dict2": "",
"custom_background_local_to_device": "",
"custom_background_local_to_device_id": "",
"custom_background_inspiration": "",
"custom_background_dict": "",
"promo_blocklist": "",
"promo_visible": "",
"wallpaper_search_history": ""
},
"NewTabPage": {
"CustomizeChromeButtonOpenCount": "",
"DisabledModules": "",
"CustomizeChromeHiddenModules": "",
"CustomizeChromeSidePanelAutoOpeningsCount": "",
"CustomizeChromeExplicitlyClosed": "",
"CustomizeChromeIPHAutoOpened": "",
"HiddenModules": "",
"MicrosoftFilesModuleLastDismissedTime": "",
"MicrosoftFilesModuleRetryAfterTime": "",
"ModulesOrder": "",
"ModulesVisible": "",
"ToolChipsVisible": "",
"ModulesLoadedCountDict": "",
"ModulesInteractedCountDict": "",
"OutlookCalendar": {
"LastAttachmentRequestSuccess": "",
"LastAttachmentRequestTime": "",
"LastDismissedTime": "",
"RetryAfterTime": ""
},
"OutlookModuleVisible": "",
"SharepointModuleVisible": "",
"WallpaperSearchButtonShownCount": "",
"FooterVisible": ""
},
"colorpicker": {
"SeedColorChangeCount": ""
},
"devtools": {
"adb_key": "",
"availability": "",
"availability_allowlist": "",
"availability_blocklist": "",
"last_open_timestamp": "",
"remote_debugging": {
"allowed": "",
"user-enabled": ""
},
"backgroundserviceexpiration": "",
"discover_usb_devices": "",
"edited_files": "",
"file_system_paths": "",
"port_forwarding_enabled": "",
"port_forwarding_default_set": "",
"port_forwarding_config": "",
"discover_tcp_targets": "",
"tcp_discovery_config": "",
"preferences": "",
"sync_preferences": "",
"synced_preferences_sync_enabled": "",
"synced_preferences_sync_disabled": "",
"gen_ai_settings": "",
"google_developer_program_profile_availability": ""
},
"sync_promo": {
"user_menu_show_count": ""
},
"web_app": {
"app_id": {
"install_url": ""
}
},
"web_app_install_metrics": "",
"web_apps": {
"daily_metrics": "",
"daily_metrics_date": "",
"app_agnostic_iph_state": "",
"app_agnostic_ml_state": "",
"app_agnostic_iph_link_capturing_state": "",
"last_preinstall_synchronize_version": "",
"did_migrate_default_chrome_apps": "",
"uninstalled_default_chrome_apps": "",
"web_app_ids": ""
},
"background_contents": {
"registered": ""
},
"total_memory_limit_mb": "",
"auth": {
"schemes": "",
"http_auth_allowed_for_origins": "",
"disable_negotiate_cname_lookup": "",
"enable_negotiate_port": "",
"server_allowlist": "",
"negotiate_delegate_whitelist": "",
"gssapi_library_name": "",
"android_negotiate_account_type": "",
"allow_cross_origin_prompt": "",
"globally_scoped_http_auth_cache_enabled": "",
"ambient_auth_in_private_modes": "",
"basic_over_http_enabled": ""
},
"hsts": {
"policy": {
"upgrade_bypass_list": ""
}
},
"async_dns": {
"enabled": "",
"additional_dns_query_types_enabled": ""
},
"dns_over_https": {
"mode": "",
"templates": "",
"automatic_mode_fallback_to_doh": ""
},
"hardware": {
"audio_capture_enabled": "",
"audio_capture_allowed_urls": "",
"video_capture_enabled": "",
"video_capture_allowed_urls": "",
"screen_capture_enabled": "",
"screen_capture_allowed_by_origins": "",
"window_capture_allowed_by_origins": "",
"tab_capture_allowed_by_origins": "",
"same_origin_tab_capture_allowed_by_origins": ""
},
"feedback": {
"performance_tracing_enabled": ""
},
"DebuggingFeaturesRequested": "",
"EnableAdbSideloadingRequested": "",
"media_router": {
"enable_media_router": "",
"show_cast_icon_in_toolbar": ""
},
"qr_code_generator_enabled": "",
"background_mode": {
"enabled": ""
},
"hardware_acceleration_mode": {
"enabled": ""
},
"hardware_acceleration_mode_previous": "",
"policy": {
"device_refresh_rate": "",
"lens_region_search_enabled": "",
"lens_desktop_ntp_search_enabled": ""
},
"media_galleries": {
"gallery_id": "",
"remembered_galleries": ""
},
"apps": {
"shortcuts_version": "",
"shortcuts_arch": ""
},
"proxy": {
"quick_check_enabled": ""
},
"signin": {
"interception_enabled": ""
},
"cryptauth": {
"instance_id": "",
"instance_id_token": ""
},
"allow_dinosaur_easter_egg": "",
"tab_stats": {
"total_tab_count_max": "",
"max_tabs_per_window": "",
"window_count_max": "",
"last_daily_sample": "",
"discards_external": "",
"discards_urgent": "",
"discards_proactive": "",
"discards_suggested": "",
"discards_frozen": "",
"reloads_external": "",
"reloads_urgent": "",
"reloads_proactive": "",
"reloads_suggested": "",
"reloads_frozen": ""
},
"unsafely_treat_insecure_origin_as_secure": "",
"site_isolation": {
"isolate_origins": "",
"site_per_process": "",
"origin_keyed_processes_enabled": ""
},
"file_system": {
"file_or_directory_picker_without_allowed_for_origins": ""
},
"persistent_notifications": {
"next_id": "",
"next_trigger": ""
},
"tab_freezing_enabled": "",
"enterprise_hardware_platform_api": {
"enabled": ""
},
"web_package": {
"signed_exchange": {
"enabled": ""
}
},
"ca_certificate_management_allowed": "",
"hats": {
"survey_metadata": ""
},
"external_protocol_dialog": {
"show_always_open_checkbox": ""
},
"scroll_to_text_fragment_enabled": "",
"prompt_on_multiple_matching_certificates": "",
"fetch_keepalive_duration_on_shutdown": "",
"sharing_hub": {
"desktop_sharing_hub_enabled": ""
},
"lens": {
"lens_overlay_start_count": ""
},
"privacy_guide": {
"viewed": ""
},
"cors_non_wildcard_request_headers_support": "",
"origin_agent_cluster_default_enabled": "",
"sct_auditing": {
"hashdance_report_count": ""
},
"high_efficiency": {
"chip_expanded_count": "",
"last_chip_expanded_timestamp": ""
},
"performance_intervention": {
"background_cpu_message_count": "",
"background_cpu_rate_limited_count": "",
"last_daily_sample": ""
},
"should_show_price_track_fue_bubble_fue": "",
"strict_mime_type_check_for_worker_scripts_enabled": "",
"access_control_allow_methods_in_cors_preflight_spec_conformant": "",
"https_upgrades": {
"policy": {
"http_allowlist": "",
"upgrades_enabled": ""
}
},
"certificates": {
"ca_certificates": "",
"ca_certificates_with_constraints": "",
"ca_distrusted_certificates": "",
"ca_hint_certificates": "",
"ca_platform_integration_enabled": ""
},
"temporary_setting": {
"enterpise_badging": ""
},
"enterprise_logo": {
"url": {
"for_browser": "",
"for_profile": ""
}
},
"enterprise_label": {
"custom_value": {
"for_browser": "",
"for_profile": ""
}
},
"enterprise": {
"profile_badging": {
"toolbar_settings": ""
}
},
"web_audio_output_buffering_enabled": "",
"worker": {
"service_worker_to_control_srcdoc_iframe_enabled": "",
"shared_worker_blob_url_fix_enabled": "",
"shared_worker_extended_lifetime_enabled": "",
"service_worker_auto_preload_enabled": ""
},
"managed_local_network_access_restrictions_temporary_opt_out": "",
"managed_local_network_access_ip_address_space_overrides": "",
"preloading": {
"prefetch_with_service_worker_enabled": ""
},
"toast": {
"non_milestone_update_toast_version": ""
},
"cpu_performance_tier_policy_override": ""
}